X-Git-Url: https://git.madduck.net/etc/offlineimap.git/blobdiff_plain/aefbbc15b27499b05113fa342fa165b3ab4341ba..bfb178bc78dac4488c2371fe64551a79a01b1dbd:/.offlineimap/helper.py?ds=sidebyside diff --git a/.offlineimap/helper.py b/.offlineimap/helper.py index 15824d2..74400ca 100644 --- a/.offlineimap/helper.py +++ b/.offlineimap/helper.py @@ -29,31 +29,32 @@ def should_do_full_sync(): now = int(time.time()) try: - mtime = os.stat(FILE)[stat.ST_MTIME] - except OSError: - mtime = 0 + since = now - os.stat(FILE)[stat.ST_MTIME] + except: + since = INTERVAL + 1 - since = now - mtime if since > INTERVAL: - file(FILE, 'wb').close() + @atexit.register + def write_trace(): + print 'Writing trace file…' + file(FILE, 'wb').close() return True - print 'Partial sync; next full sync in %d seconds...' \ + @atexit.register + def write_sync_notice(): + print 'Partial sync complete; 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 + if x in base_excludes: + return False + + elif re.search('^(' + '|'.join(full_excludes_re) + ')', x): + return should_do_full_sync() + return True def py_folderfilter_mbnames(acct, x):