mirror of
https://github.com/morpheus65535/bazarr
synced 2024-12-26 17:47:20 +00:00
9d73ccacf3
Subliminal uses dogpile.cache to save state of subtitle availability. Some methods that dogpile.cache caches can have big argument lists, resulting in a default cache key that is longer than 255 characters. The dogpile.cache backend used, saves cache items to the filesystem, using the cache key as filename. This can result in errors about Filename too long. SHA1 generates a 160bit hash of the key, and we use the hexadecimal digest of that hash, resulting in key names of 80 characters.
27 lines
747 B
Python
27 lines
747 B
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import absolute_import
|
|
import datetime
|
|
from hashlib import sha1
|
|
|
|
from dogpile.cache import make_region
|
|
|
|
#: Expiration time for show caching
|
|
SHOW_EXPIRATION_TIME = datetime.timedelta(weeks=3).total_seconds()
|
|
|
|
#: Expiration time for episode caching
|
|
EPISODE_EXPIRATION_TIME = datetime.timedelta(days=3).total_seconds()
|
|
|
|
#: Expiration time for scraper searches
|
|
REFINER_EXPIRATION_TIME = datetime.timedelta(weeks=1).total_seconds()
|
|
|
|
|
|
def sha1_key_mangler(key):
|
|
"""Return sha1 hex for cache keys"""
|
|
if isinstance(key, str):
|
|
key = key.encode("utf-8")
|
|
|
|
return sha1(key).hexdigest()
|
|
|
|
|
|
# Use key mangler to limit cache key names to 40 characters
|
|
region = make_region(key_mangler=sha1_key_mangler)
|