/head: changeset 84

Fixed read-only folders and UW flag case-sensitivity. Readied 2.0.4.
This commit is contained in:
jgoerzen
2002-07-06 01:22:23 +01:00
parent f56e3dbdf2
commit 98981a6cf0
6 changed files with 46 additions and 9 deletions

View File

@ -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)

View File

@ -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])

View File

@ -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):