offlineimap rev 533
"Automatic Subversion Change Mailer" <[email protected]> Sun, 27 Jul 2003 18:39:52 -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 18:39:47 -0500 (Sun, 27 Jul 2003)
New Revision: 533
Modified:
offlineimap/branches/twisted/offlineimap/accounts.py
offlineimap/branches/twisted/offlineimap/folder/Base.py
offlineimap/branches/twisted/offlineimap/folder/IMAP.py
Log:
More progress, working on cachemessagelist
Diff:
Modified: offlineimap/branches/twisted/offlineimap/accounts.py
==============================================================================
--- offlineimap/branches/twisted/offlineimap/accounts.py 2003-07-27 23:31:15 UTC (rev 532)
+++ offlineimap/branches/twisted/offlineimap/accounts.py 2003-07-27 23:39:47 UTC (rev 533)
@@ -261,12 +261,12 @@
self.remotefolder.saveuidvalidity()
# Load remote folder.
- ui.loadmessagelist(self.remoterepos, self.remotefolder)
+ self.ui.loadmessagelist(self.remoterepos, self.remotefolder)
return self.remotefolder.cachemessagelist()
def check_local_deleted(self, d):
- ui.messagelistloaded(self.remoterepos, self.remotefolder,
+ self.ui.messagelistloaded(self.remoterepos, self.remotefolder,
len(self.remotefolder.getmessagelist().keys()))
@@ -291,14 +291,14 @@
def sync_remote_changes(self, d):
# Synchronize remote changes.
- ui.syncingmessages(self.remoterepos, self.remotefolder,
+ self.ui.syncingmessages(self.remoterepos, self.remotefolder,
self.localrepos, self.localfolder)
return remotefolder.syncmessagesto(localfolder,
[localfolder, statusfolder])
def sync_status(self, d):
# Make sure the status folder is up-to-date.
- ui.syncingmessages(self.localrepos, self.localfolder,
+ self.ui.syncingmessages(self.localrepos, self.localfolder,
self.statusrepos, self.statusfolder)
return self.localfolder.syncmessagesto(self.statusfolder)
Modified: offlineimap/branches/twisted/offlineimap/folder/Base.py
==============================================================================
--- offlineimap/branches/twisted/offlineimap/folder/Base.py 2003-07-27 23:31:15 UTC (rev 532)
+++ offlineimap/branches/twisted/offlineimap/folder/Base.py 2003-07-27 23:39:47 UTC (rev 533)
@@ -19,6 +19,7 @@
from threading import *
from offlineimap.ui import UIBase
import os.path, re
+from offlineimap.imaputil import rd
class BaseFolder:
def __init__(self):
Modified: offlineimap/branches/twisted/offlineimap/folder/IMAP.py
==============================================================================
--- offlineimap/branches/twisted/offlineimap/folder/IMAP.py 2003-07-27 23:31:15 UTC (rev 532)
+++ offlineimap/branches/twisted/offlineimap/folder/IMAP.py 2003-07-27 23:39:47 UTC (rev 533)
@@ -19,7 +19,7 @@
from Base import BaseFolder
from offlineimap import imaputil
from offlineimap.ui import UIBase
-import rfc822, time, string, random, binascii, re
+import rfc822, time, string, random, binascii, re, sys
from StringIO import StringIO
from copy import copy
@@ -57,35 +57,40 @@
def getuidvalidity(self):
imapobj = self.imapserver.acquireconnection()
try:
- # Primes untagged_responses
- imapobj.select(self.getfullname(), readonly = 1)
- return long(imapobj.untagged_responses['UIDVALIDITY'][0])
+ d = imapobj.examine(self.getfullname())
+ d.addCallback(lambda x: x['UIDVALIDITY'])
+ return d
+ #return long(imapobj.untagged_responses['UIDVALIDITY'][0])
finally:
self.imapserver.releaseconnection(imapobj)
def cachemessagelist(self):
imapobj = self.imapserver.acquireconnection()
+ maindefer = defer.Deferred()
+ d = imapobj.examine(self.getfullname())
+ d.addCallback(self.cachemessagelist_worker, maindefer)
+ return maindefer
+
+ def cachemessagelist_worker(self, examineresult, maindefer):
self.messagelist = {}
try:
- # Primes untagged_responses
- imapobj.select(self.getfullname(), readonly = 1, force = 1)
- try:
- # Some mail servers do not return an EXISTS response if
- # the folder is empty.
- maxmsgid = long(imapobj.untagged_responses['EXISTS'][0])
- except KeyError:
- return
- if maxmsgid < 1:
- # No messages; return
- return
+ # Some mail servers do not return an EXISTS response if
+ # the folder is empty.
+ maxmsgid = long(examineresult['EXISTS'])
+ except KeyError:
+ maindefer.callback(None)
+ return
+ if maxmsgid < 1:
+ # No messages; return
+ maindefer.callback(None)
+ return
- # Now, get the flags and UIDs for these.
- # We could conceivably get rid of maxmsgid and just say
- # '1:*' here.
- response = imapobj.fetch('1:%d' % maxmsgid, '(FLAGS UID)')[1]
- finally:
- self.imapserver.releaseconnection(imapobj)
+ # Now, get the flags and UIDs for these.
+ # We could conceivably get rid of maxmsgid and just say
+ # '1:*' here.
+ # FIXME: START HERE
+ response = imapobj.fetch('1:%d' % maxmsgid, '(FLAGS UID)')[1]
for messagestr in response:
# Discard the message number.
messagestr = string.split(messagestr, maxsplit = 1)[1]