(self, imapserver, name, repository, decode=True)
| 42 | |
| 43 | class IMAPFolder(BaseFolder): |
| 44 | def __init__(self, imapserver, name, repository, decode=True): |
| 45 | # decode the folder name from IMAP4_utf_7 to utf_8 if |
| 46 | # - utf8foldernames is enabled for the *account* |
| 47 | # - the decode argument is given |
| 48 | # (default True is used when the folder name is the result of |
| 49 | # querying the IMAP server, while False is used when creating |
| 50 | # a folder object from a locally available utf_8 name) |
| 51 | # In any case the given name is first dequoted. |
| 52 | name = imaputil.dequote(name) |
| 53 | if decode and repository.account.utf_8_support: |
| 54 | name = imaputil.IMAP_utf8(name) |
| 55 | self.sep = imapserver.delim |
| 56 | super(IMAPFolder, self).__init__(name, repository) |
| 57 | if repository.getdecodefoldernames(): |
| 58 | self.visiblename = imaputil.decode_mailbox_name(self.visiblename) |
| 59 | self.idle_mode = False |
| 60 | self.expunge = repository.getexpunge() |
| 61 | self.root = None # imapserver.root |
| 62 | self.imapserver = imapserver |
| 63 | self.randomgenerator = random.Random() |
| 64 | # self.ui is set in BaseFolder. |
| 65 | self.imap_query = ['BODY.PEEK[]'] |
| 66 | |
| 67 | # number of times to retry fetching messages |
| 68 | self.retrycount = self.repository.getconfint('retrycount', 2) |
| 69 | |
| 70 | fh_conf = self.repository.account.getconf('filterheaders', '') |
| 71 | self.filterheaders = [h for h in re.split(r'\s*,\s*', fh_conf) if h] |
| 72 | |
| 73 | # self.copy_ignoreUIDs is used by BaseFolder. |
| 74 | self.copy_ignoreUIDs = repository.get_copy_ignore_UIDs( |
| 75 | self.getvisiblename()) |
| 76 | if self.repository.getidlefolders(): |
| 77 | self.idle_mode = True |
| 78 | |
| 79 | def __selectro(self, imapobj, force=False): |
| 80 | """Select this folder when we do not need write access. |
nothing calls this directly
no test coverage detected