| 207 | | @return: Number of messages in the folder. |
| 208 | | @rtype: long int |
| | 208 | @return: A dictionary containing the SELECT response |
| | 209 | values. At least the EXISTS, FLAGS and RECENT keys are |
| | 210 | guaranteed to exist. Example: |
| | 211 | {'EXISTS': 3, |
| | 212 | 'FLAGS': ('\\Answered', '\\Flagged', '\\Deleted', ... ), |
| | 213 | 'RECENT': 0, |
| | 214 | 'PERMANENTFLAGS': ('\\Answered', '\\Flagged', '\\Deleted', ... ), |
| | 215 | 'READ-WRITE': True, |
| | 216 | 'UIDNEXT': 11, |
| | 217 | 'UIDVALIDITY': 1239278212} |
| 212 | | return long(data[0]) |
| | 221 | return self._process_select_response(self._imap.untagged_responses) |
| | 222 | |
| | 223 | |
| | 224 | def _process_select_response(self, resp): |
| | 225 | out = {} |
| | 226 | for key, value in resp.iteritems(): |
| | 227 | key = key.upper() |
| | 228 | if key == 'OK': |
| | 229 | continue |
| | 230 | elif key in ('EXISTS', 'RECENT', 'UIDNEXT', 'UIDVALIDITY'): |
| | 231 | value = int(value[0]) |
| | 232 | elif key in ('FLAGS', 'PERMANENTFLAGS'): |
| | 233 | value = parse_response(value)[0] |
| | 234 | elif key == 'READ-WRITE': |
| | 235 | value = True |
| | 236 | |
| | 237 | out[key] = value |
| | 238 | return out |