/offlineimap/head: changeset 286
Added ability to disable expunging on the server.
This commit is contained in:
@ -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:
|
||||
|
Reference in New Issue
Block a user