offlineimap rev 534
"Automatic Subversion Change Mailer" <[email protected]> Sun, 27 Jul 2003 19:42:30 -0500 (CDT)
| Newsgroups | gmane.mail.imap.offlineimap.subversion |
|---|---|
| Message-ID | <[email protected]> |
You are receiving this message because
all commits get sent to this address.
Author: jgoerzen
Date: 2003-07-27 19:42:25 -0500 (Sun, 27 Jul 2003)
New Revision: 534
Modified:
offlineimap/branches/twisted/offlineimap/accounts.py
offlineimap/branches/twisted/offlineimap/folder/IMAP.py
Log:
Fixed up cachemessage list, at least preliminarily.
Diff:
Modified: offlineimap/branches/twisted/offlineimap/accounts.py
==============================================================================
--- offlineimap/branches/twisted/offlineimap/accounts.py 2003-07-27 23:39:47 UTC (rev 533)
+++ offlineimap/branches/twisted/offlineimap/accounts.py 2003-07-28 00:42:25 UTC (rev 534)
@@ -293,8 +293,9 @@
# Synchronize remote changes.
self.ui.syncingmessages(self.remoterepos, self.remotefolder,
self.localrepos, self.localfolder)
- return remotefolder.syncmessagesto(localfolder,
- [localfolder, statusfolder])
+ return self.remotefolder.syncmessagesto(self.localfolder,
+ [self.localfolder,
+ self.statusfolder])
def sync_status(self, d):
# Make sure the status folder is up-to-date.
Modified: offlineimap/branches/twisted/offlineimap/folder/IMAP.py
==============================================================================
--- offlineimap/branches/twisted/offlineimap/folder/IMAP.py 2003-07-27 23:39:47 UTC (rev 533)
+++ offlineimap/branches/twisted/offlineimap/folder/IMAP.py 2003-07-28 00:42:25 UTC (rev 534)
@@ -22,8 +22,8 @@
import rfc822, time, string, random, binascii, re, sys
from StringIO import StringIO
from copy import copy
+from twisted.internet import defer
-
class IMAPFolder(BaseFolder):
def __init__(self, imapserver, name, visiblename, accountname, repository):
self.config = imapserver.config
@@ -68,10 +68,10 @@
imapobj = self.imapserver.acquireconnection()
maindefer = defer.Deferred()
d = imapobj.examine(self.getfullname())
- d.addCallback(self.cachemessagelist_worker, maindefer)
+ d.addCallback(self.cachemessagelist_starter, maindefer, imapobj)
return maindefer
- def cachemessagelist_worker(self, examineresult, maindefer):
+ def cachemessagelist_starter(self, examineresult, maindefer, imapobj):
self.messagelist = {}
try:
@@ -89,7 +89,29 @@
# Now, get the flags and UIDs for these.
# We could conceivably get rid of maxmsgid and just say
# '1:*' here.
- # FIXME: START HERE
+ df = imapobj.fetchFlags('1:%d' % maxmsgid)
+ du = imapobj.fetchUID('1:%d' % maxmsgid)
+ dl = defer.DeferredList([df, du])
+ dl.addCallback(self.cachemessagelist_worker, maindefer)
+
+ def cachemessagelist_worker(self, flags_uids, maindefer):
+ print "flags_uids is", flags_uids
+ #if not len(flags_uids):
+ # # FIXME: this sometimes happens. Is it right?
+ # maindefer.callback(None)
+ # return
+ # FIXME: not yet as robust as below.
+ flags, uids = flags_uids
+ flags = flags[1]
+ uids = uids[1]
+ for msg in flags.keys():
+ flags = imaputil.flagsimap2maildir(flags)
+ uid = uids[msg]
+ self.messagelist[uid] = {'uid': uid, 'flags': flags}
+
+ maindefer.callback(None)
+
+ def cachemessagelist_old(self):
response = imapobj.fetch('1:%d' % maxmsgid, '(FLAGS UID)')[1]
for messagestr in response:
# Discard the message number.