X-Git-Url: http://git.kaliko.me/?a=blobdiff_plain;f=sima%2Futils%2Futils.py;h=93bac25e78084dd94b92708fc7c83b5c91daefd8;hb=67bcabe7439d4830cb3ae8c61fa269eb9232ac59;hp=c3bc6c0175db30f36325c941d41d63d378c5f36e;hpb=cae35b4090eaeb8eec24c7ea77ec2311f3fc0608;p=mpd-sima.git diff --git a/sima/utils/utils.py b/sima/utils/utils.py index c3bc6c0..93bac25 100644 --- a/sima/utils/utils.py +++ b/sima/utils/utils.py @@ -27,9 +27,10 @@ import sys from argparse import ArgumentError, Action from base64 import b64decode as push from codecs import getencoder -from datetime import datetime +from datetime import datetime, timedelta from os import environ, access, getcwd, W_OK, R_OK from os.path import dirname, isabs, join, normpath, exists, isdir, isfile +from time import sleep def getws(dic): @@ -77,6 +78,19 @@ def exception_log(): log.info('Quiting now!') sys.exit(1) +def purge_cache(obj, age=4): + now = datetime.utcnow() + if now.hour == obj.timestamp.hour: + return + obj.timestamp = datetime.utcnow() + cache = obj.cache + delta = timedelta(hours=age) + for url in list(cache.keys()): + timestamp = cache.get(url).created() + if now - timestamp > delta: + cache.pop(url) + + class SigHup(Exception): pass