bazarr/libs/subliminal/cache.py
Michiel van Baak 87fbd196a4
Make subliminal always mangle cache keys to prevent long filenames
* Use dogpile.cache sha1_mangle_key to mangle cache keys

When using the subtitle hashes as cache keys, sometimes they come
out as filenames of 270 characters.
Not a lot of filesystems out there support filenames with over 250
characters.
This behaviour was reported with ext4 and zfs on both linux and FreeBSD.

The dogpile.cache utils come with a function that returns a hex digest
of the key, limiting the filename to a fixed length of 40 characters.

* Set region to subliminal.region and only then configure it, instead of assigning the result of configure to the property

* Make sure subliminal ALWAYS mangles keys with the sha1 to prevent filenames that are too long
2021-03-13 18:04:18 -05:00

18 lines
580 B
Python

# -*- coding: utf-8 -*-
from __future__ import absolute_import
import datetime
from dogpile.cache import make_region
from dogpile.cache.util import sha1_mangle_key
#: 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()
# Mangle keys to prevent long filenames
region = make_region(key_mangler=sha1_mangle_key)