diff --git a/libs/subliminal/cache.py b/libs/subliminal/cache.py index 3d8848e1d..da0312ba5 100644 --- a/libs/subliminal/cache.py +++ b/libs/subliminal/cache.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import absolute_import import datetime +from hashlib import sha1 from dogpile.cache import make_region @@ -14,4 +15,13 @@ EPISODE_EXPIRATION_TIME = datetime.timedelta(days=3).total_seconds() REFINER_EXPIRATION_TIME = datetime.timedelta(weeks=1).total_seconds() -region = make_region() +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)