+# -*- coding: utf-8 -*-
+
+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']
+deprioritised = ['discard','spam','store','spool']
+
def py_foldersort_seamus(x, y):
- prioritised = ('outgoing','resubmit','drafts','inbox','phd','ul','debian','sudetia','admin','retrain')
- deprioritised = ('discard','spam','store','spool')
for prefix in prioritised:
if x.startswith(prefix):
return -1
return -1
return cmp(x, y)
-import re
-
def py_nametrans_seamus(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
+ INTERVAL = 86400/2
now = int(time.time())
try:
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
- print 'Running a partial sync, next full sync in %d seconds...' \
+ print 'Partial sync; next full sync in %d seconds...' \
% (INTERVAL - since)
return False
-#do_full = should_do_full_sync()
-do_full = True
+do_full_sync = should_do_full_sync()
def py_folderfilter_seamus(x):
- base_excludes = ['delayed', 'outgoing', 'Trash', 'Sent']
- if do_full:
+ 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):
+ 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'] \
- and not re.search('^(store(/.+)?|retrain/(ham|spam)|spool|discard|spam)', x)
+ and not re.search('^(' + '|'.join(full_excludes_re_mbnames) + ')', x)