/offlineimap/head: changeset 286

Added ability to disable expunging on the server.
This commit is contained in:
jgoerzen
2002-11-12 22:36:34 +01:00
parent f7c4889918
commit 61b6c32d0f
3 changed files with 24 additions and 2 deletions

View File

@ -26,6 +26,10 @@ from copy import copy
class IMAPFolder(BaseFolder):
def __init__(self, imapserver, name, visiblename, accountname, repository):
self.config = imapserver.config
self.expunge = 1
if self.config.has_option(accountname, 'expunge'):
self.expunge = self.config.getboolean(accountname, 'expunge')
self.name = imaputil.dequote(name)
self.root = None # imapserver.root
self.sep = imapserver.delim
@ -85,7 +89,9 @@ class IMAPFolder(BaseFolder):
else:
uid = long(options['UID'])
flags = imaputil.flagsimap2maildir(options['FLAGS'])
self.messagelist[uid] = {'uid': uid, 'flags': flags}
# Skip messages already flagged for deletion on the server.
if not 'T' in flags:
self.messagelist[uid] = {'uid': uid, 'flags': flags}
def getmessagelist(self):
return self.messagelist
@ -249,7 +255,8 @@ class IMAPFolder(BaseFolder):
except imapobj.readonly:
UIBase.getglobalui().deletereadonly(self, uidlist)
return
assert(imapobj.expunge()[0] == 'OK')
if self.expunge:
assert(imapobj.expunge()[0] == 'OK')
finally:
self.imapserver.releaseconnection(imapobj)
for uid in uidlist: