]> code.delx.au - offlineimap/commitdiff
/head: changeset 29
authorjgoerzen <jgoerzen>
Fri, 21 Jun 2002 02:31:05 +0000 (03:31 +0100)
committerjgoerzen <jgoerzen>
Fri, 21 Jun 2002 02:31:05 +0000 (03:31 +0100)
Updated

head/offlineimap.py
head/offlineimap/folder/__init__.py

index dd46caf3b739d9c9beac5a3b9e57e70f2d37b071..5c08570a5d7b3327948999ec50a2c478e230d12d 100644 (file)
@@ -68,16 +68,36 @@ for accountname in accounts:
     print "Done."
     for remotefolder in remoterepos.getfolders():
         print "*** SYNCHRONIZING FOLDER %s" % remotefolder.getname()
+        # Load local folder.
         localfolder = localrepos.getfolder(remotefolder.getname())
-        #if not localfolder.isuidvalidityok(remotefolder):
-        #    print 'UID validity is a problem for this folder; skipping.'
-        #    continue
-        print "Reading remote message list...",
-        remotefolder.cachemessagelist()
-        print len(remotefolder.getmessagelist().keys()), "messages."
+        if not localfolder.isuidvalidityok(remotefolder):
+            print 'UID validity is a problem for this folder; skipping.'
+            continue
         print "Reading local message list...",
         localfolder.cachemessagelist()
         print len(localfolder.getmessagelist().keys()), "messages."
+
+        # Load remote folder.
+        print "Reading remote message list...",        
+        remotefolder.cachemessagelist()
+        print len(remotefolder.getmessagelist().keys()), "messages."
+
+        # Load status folder.
+        statusfolder = statusrepos.getfolder(remotefolder.getname())
+        
+        if statusfolder.isnewfolder():
+            print "Local status folder is new; ignoring."
+        else:
+            print "Synchronizing local changes."
+            localfolder.syncmessagesto(statusfolder, [remotefolder, statusfolder])
+        
+        # Synchronize remote changes.
         print "Synchronizing remote to local..."
-        remotefolder.syncmessagesto(localfolder)
+        remotefolder.syncmessagesto(localfolder, [localfolder, statusfolder])
+
+        # Make sure the status folder is up-to-date.
+        print "Updating local status cache..."
+        localfolder.syncmessagesto(statusfolder)
+        statusfolder.save()
+        
         
index 52dd3de87b92ee283781721c9ab0a9cb9a92f778..bcdb8441e91843e2f3239546adcade7ba9ec0d39 100644 (file)
@@ -1 +1,2 @@
-import Base, IMAP, Maildir
+import Base, IMAP, Maildir, LocalStatus
+