X-Git-Url: https://git.madduck.net/etc/offlineimap.git/blobdiff_plain/e5c6ce3fbfeedc7dc19351dffe5e02908bf390d8..901347ff646e78869a8e0c150484736ed1776eec:/.offlineimap/helper.py?ds=sidebyside

diff --git a/.offlineimap/helper.py b/.offlineimap/helper.py
index 056eb5d..1744243 100644
--- a/.offlineimap/helper.py
+++ b/.offlineimap/helper.py
@@ -1,6 +1,14 @@
-def py_foldersort_seamus(x, y):
-    prioritised = ('outgoing','resubmit','drafts','inbox','phd','ul','debian','sudetia','admin','retrain')
-    deprioritised = ('discard','spam','store','spool')
+# -*- coding: utf-8 -*-
+
+import re
+
+base_excludes = ['delayed', 'outgoing', 'Trash', 'Queue', 'inbox']
+base_excludes_re = [ '[Ss]ent.*' ]
+full_excludes_re = ['discard', 'spool', 'spam', 'store/.+']
+prioritised = ['resubmit','drafts','inbox','ardex','kbkg','toni','tahi','debian','mtfk','admin','retrain']
+deprioritised = ['discard','spam','store','spool']
+
+def py_foldersort_main(x, y):
     for prefix in prioritised:
         if x.startswith(prefix):
             return -1
@@ -13,50 +21,34 @@ def py_foldersort_seamus(x, y):
             return -1
     return cmp(x, y)
 
-import re
-
-def py_nametrans_seamus(x):
+def py_nametrans(x):
     return re.sub('^INBOX', 'inbox', x)
 
-def should_do_full_sync():
-    import os, stat, time
-    FILE = os.path.expanduser('~/.var/offlineimap/lastrun')
-    INTERVAL = 30
-    now = int(time.time())
-
-    try:
-        mtime = os.stat(FILE)[stat.ST_MTIME]
-    except OSError:
-        mtime = 0
-
-    since = now - mtime
-    print 'now=%d mtime=%d since=%d INTERVAL=%d' \
-            % (now, mtime, since, INTERVAL)
-    if since > INTERVAL:
-        file(FILE, 'wb').close()
-        print 'Running a full sync...'
-        return True
+def py_folderfilter_main(x):
+    if x in base_excludes:
+        return False
 
-    print 'Running a partial sync, next full sync in %d seconds...' \
-            % (INTERVAL - since)
-    return False
+    elif re.search('^(' + '|'.join(base_excludes_re) + ')', x):
+        return False
+
+    elif re.search('^(' + '|'.join(full_excludes_re) + ')', x):
+        return False
 
-#do_full = should_do_full_sync()
-do_full = True
-def py_folderfilter_seamus(x):
-    base_excludes = ['delayed', 'outgoing', 'Trash', 'Sent']
-
-    if do_full:
-        return x not in base_excludes
-    else:
-        if x in base_excludes:
-            return False
-        if x in ('spool', 'discard', 'spam'):
-            return False
-        if re.search('^store\..+', x):
-            return False
     return True
 
+def py_foldersort_bulk(x, y):
+    if x == 'spool': return -1
+    if y == 'spool': return  1
+    if x in ('discard', 'spam'): return 1
+    if y in ('discard', 'spam'): return -1
+
+def py_folderfilter_bulk(x):
+    if re.search('^(' + '|'.join(full_excludes_re) + ')', x):
+        return True
+
+    return False
+
 def py_folderfilter_mbnames(acct, x):
-    return acct in ['seamus.madduck.net'] \
-            and not re.search('^(store(/.+)?|retrain/(ham|spam)|spool|discard|spam)', x)
+    full_excludes_re_mbnames = ['retrain(/(sp|h)am)?$'] + full_excludes_re
+    return acct in ['madduck.net', 'madduck.net_bulk'] \
+            and not re.search('^(' + '|'.join(full_excludes_re_mbnames) + ')', x)