summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--libs/subliminal/cache.py12
1 files changed, 11 insertions, 1 deletions
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)