You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
957 B
35 lines
957 B
2 years ago
|
# coding=utf-8
|
||
|
|
||
|
import os
|
||
|
import logging
|
||
|
import datetime
|
||
|
import glob
|
||
|
|
||
|
from subliminal import region as subliminal_cache_region
|
||
|
|
||
|
from app.get_args import args
|
||
|
|
||
|
|
||
|
def cache_maintenance():
|
||
|
main_cache_validity = 14 # days
|
||
|
pack_cache_validity = 4 # days
|
||
|
|
||
|
logging.info("BAZARR Running cache maintenance")
|
||
|
now = datetime.datetime.now()
|
||
|
|
||
|
def remove_expired(path, expiry):
|
||
|
mtime = datetime.datetime.fromtimestamp(os.path.getmtime(path))
|
||
|
if mtime + datetime.timedelta(days=expiry) < now:
|
||
|
try:
|
||
|
os.remove(path)
|
||
|
except (IOError, OSError):
|
||
|
logging.debug("Couldn't remove cache file: %s", os.path.basename(path))
|
||
|
|
||
|
# main cache
|
||
|
for fn in subliminal_cache_region.backend.all_filenames:
|
||
|
remove_expired(fn, main_cache_validity)
|
||
|
|
||
|
# archive cache
|
||
|
for fn in glob.iglob(os.path.join(args.config_dir, "*.archive")):
|
||
|
remove_expired(fn, pack_cache_validity)
|