import re, os, stat, time, atexit
base_excludes = ['delayed', 'outgoing', 'Trash', 'Sent', 'Queue']
-full_excludes_re = ['discard', 'spool', 'spam', 'store(\..+)?']
-prioritised = ['outgoing','resubmit','drafts','inbox','phd','ul','debian','sudetia','admin','retrain']
+full_excludes_re = ['discard', 'spool', 'spam', 'store\..+']
+prioritised = ['outgoing','resubmit','drafts','inbox','ardex','debian','sudetia','admin','retrain']
deprioritised = ['discard','spam','store','spool']
-def py_foldersort_seamus(x, y):
+def py_foldersort_main(x, y):
for prefix in prioritised:
if x.startswith(prefix):
return -1
return -1
return cmp(x, y)
-def py_nametrans_seamus(x):
+def py_nametrans_main(x):
return re.sub('^INBOX', 'inbox', x)
-def should_do_full_sync():
- FILE = os.path.expanduser('~/.var/offlineimap/lastrun')
- INTERVAL = 86400/2
- now = int(time.time())
+def py_folderfilter_main(x):
+ if x in base_excludes:
+ return False
- try:
- mtime = os.stat(FILE)[stat.ST_MTIME]
- except OSError:
- mtime = 0
+ elif re.search('^(' + '|'.join(full_excludes_re) + ')', x):
+ return False
- since = now - mtime
- if since > INTERVAL:
- file(FILE, 'wb').close()
+ 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
- print 'Partial sync; next full sync in %d seconds...' \
- % (INTERVAL - since)
return False
-do_full_sync = should_do_full_sync()
-def py_folderfilter_seamus(x):
-
- if do_full_sync:
- 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_folderfilter_mbnames(acct, x):
full_excludes_re_mbnames = ['retrain/(sp|h)am'] + full_excludes_re
- return acct in ['seamus.madduck.net'] \
+ return acct in ['madduck.net', 'madduck.net-bulk'] \
and not re.search('^(' + '|'.join(full_excludes_re_mbnames) + ')', x)