/head: changeset 84
Fixed read-only folders and UW flag case-sensitivity. Readied 2.0.4.
This commit is contained in:
@ -55,7 +55,10 @@ class IMAPFolder(BaseFolder):
|
||||
def cachemessagelist(self):
|
||||
imapobj = self.imapserver.acquireconnection()
|
||||
try:
|
||||
imapobj.select(self.getfullname())
|
||||
try:
|
||||
imapobj.select(self.getfullname()) # Needed for fetch below
|
||||
except imapobj.readonly:
|
||||
pass
|
||||
self.messagelist = {}
|
||||
response = imapobj.status(self.getfullname(), '(MESSAGES)')[1][0]
|
||||
result = imaputil.imapsplit(response)[1]
|
||||
@ -82,7 +85,10 @@ class IMAPFolder(BaseFolder):
|
||||
def getmessage(self, uid):
|
||||
imapobj = self.imapserver.acquireconnection()
|
||||
try:
|
||||
imapobj.select(self.getfullname())
|
||||
try:
|
||||
imapobj.select(self.getfullname())
|
||||
except imapobj.readonly:
|
||||
pass
|
||||
return imapobj.uid('fetch', '%d' % uid, '(BODY.PEEK[])')[1][0][1].replace("\r\n", "\n")
|
||||
finally:
|
||||
self.imapserver.releaseconnection(imapobj)
|
||||
|
@ -76,13 +76,13 @@ def imapsplit(string):
|
||||
return retval
|
||||
|
||||
def flagsimap2maildir(string):
|
||||
flagmap = {'\\Seen': 'S',
|
||||
'\\Answered': 'R',
|
||||
'\\Flagged': 'F',
|
||||
'\\Deleted': 'T',
|
||||
'\\Draft': 'D'}
|
||||
flagmap = {'\\seen': 'S',
|
||||
'\\answered': 'R',
|
||||
'\\flagged': 'F',
|
||||
'\\deleted': 'T',
|
||||
'\\draft': 'D'}
|
||||
retval = []
|
||||
imapflaglist = flagsplit(string)
|
||||
imapflaglist = [x.lower() for x in flagsplit(string)]
|
||||
for imapflag in imapflaglist:
|
||||
if flagmap.has_key(imapflag):
|
||||
retval.append(flagmap[imapflag])
|
||||
|
@ -55,7 +55,8 @@ class IMAPRepository(BaseRepository):
|
||||
self.imapserver.releaseconnection(imapobj)
|
||||
for string in listresult:
|
||||
flags, delim, name = imaputil.imapsplit(string)
|
||||
if '\\Noselect' in imaputil.flagsplit(flags):
|
||||
flaglist = [x.lower() for x in imaputil.flagsplit(flags)]
|
||||
if '\\noselect' in flaglist:
|
||||
continue
|
||||
foldername = imaputil.dequote(name)
|
||||
if not self.folderfilter(foldername):
|
||||
|
Reference in New Issue
Block a user