From: martin f. krafft Date: Wed, 23 Jun 2010 06:35:26 +0000 (+0200) Subject: add bulk account, remove full run logic X-Git-Url: https://git.madduck.net/etc/offlineimap.git/commitdiff_plain/60b6943f1562471884e69d277785a57303cff155?ds=inline;pf=etc add bulk account, remove full run logic --- diff --git a/.crontab.d/offlineimap b/.crontab.d/offlineimap index c3afd5d..6c49698 100644 --- a/.crontab.d/offlineimap +++ b/.crontab.d/offlineimap @@ -1,2 +1,3 @@ */30 * * * * sleep $((900 * $RANDOM / 32768)) && ip r | grep -q via && $HOME/.bin/offlineimap 38 */4 * * * sleep $((60 * $RANDOM / 32768)) && ip r | grep -q via && $HOME/.bin/offlineimap -a logcheck +55 */8 * * * sleep $((300 * $RANDOM / 32768)) && ip r | grep -q via && $HOME/.bin/offlineimap -a madduck.net-bulk diff --git a/.offlineimap/helper.py b/.offlineimap/helper.py index 590e201..840896f 100644 --- a/.offlineimap/helper.py +++ b/.offlineimap/helper.py @@ -4,7 +4,7 @@ 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'] +prioritised = ['outgoing','resubmit','drafts','inbox','ardex','debian','sudetia','admin','retrain'] deprioritised = ['discard','spam','store','spool'] def py_foldersort_main(x, y): @@ -23,40 +23,22 @@ def py_foldersort_main(x, y): 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/6 - now = int(time.time()) - - try: - since = now - os.stat(FILE)[stat.ST_MTIME] - except: - since = INTERVAL + 1 - - if since > INTERVAL: - @atexit.register - def write_trace(): - print 'Writing trace file…' - file(FILE, 'wb').close() - return True - - @atexit.register - def write_sync_notice(): - print 'Partial sync complete; next full sync in %d seconds…' \ - % (INTERVAL - since) - - return False - def py_folderfilter_main(x): if x in base_excludes: return False elif re.search('^(' + '|'.join(full_excludes_re) + ')', x): - return should_do_full_sync() + return False return True +def py_folderfilter_bulk(x): + if re.search('^(' + '|'.join(full_excludes_re) + ')', x): + return True + + return False + def py_folderfilter_mbnames(acct, x): full_excludes_re_mbnames = ['retrain/(sp|h)am'] + full_excludes_re - return acct in ['madduck.net'] \ + return acct in ['madduck.net', 'madduck.net-bulk'] \ and not re.search('^(' + '|'.join(full_excludes_re_mbnames) + ')', x) diff --git a/.offlineimaprc b/.offlineimaprc index 2d15b60..4bb5f3b 100644 --- a/.offlineimaprc +++ b/.offlineimaprc @@ -23,6 +23,12 @@ remoterepository = madduck.net autorefresh = 15 quick = 16 +[Account madduck.net-bulk] +localrepository = local-main +remoterepository = madduck.net-bulk +autorefresh = 15 +quick = 16 + [Repository local-main] type = Maildir localfolders = ~/mail @@ -39,6 +45,14 @@ nametrans = py_nametrans_main folderfilter = py_folderfilter_main idlefolders = ['inbox', 'mass', 'debian', 'ul', 'phd', 'admin'] +[Repository madduck.net-bulk] +type = IMAP +maxconnections = 3 +holdconnectionopen = yes +preauthtunnel = SSH_AUTH_SOCK= ssh -TCaxS ~/.var/offlineimap/ssh_ctl_sock -o "ControlMaster auto" -o "ProtocolKeepAlives 10" -o "ConnectTimeout 60" -i ~/.offlineimap/id_rsa.imap@seamus imap.madduck.net +expunge = yes +folderfilter = py_folderfilter_bulk + [Account logcheck] localrepository = local-logcheck remoterepository = logcheck