Skip to content

Commit 7e4ce1b

Browse files
committed
TV-Grabber ttvdb.py: fix compatibility with requests-cache
with newer requests-cache packages. The provided monkey patch is only valid for versions < 0.6 of the package 'requests-cache'. Fixes MythTV#498
1 parent ce31be6 commit 7e4ce1b

1 file changed

Lines changed: 25 additions & 22 deletions

File tree

mythtv/bindings/python/MythTV/ttvdb/tvdb_create_key.py

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,31 @@
99
'''
1010

1111
import requests_cache
12-
1312
import hashlib
14-
def create_key(self, request):
15-
try:
16-
if self._ignored_parameters:
17-
url, body = self._remove_ignored_parameters(request)
18-
else:
13+
14+
rc_version_info = tuple(int(x) for x in requests_cache.__version__.split('.'))
15+
# patch only older versions than '0.6.0'
16+
if rc_version_info < (0, 6, 0):
17+
def create_key(self, request):
18+
try:
19+
if self._ignored_parameters:
20+
url, body = self._remove_ignored_parameters(request)
21+
else:
22+
url, body = request.url, request.body
23+
except AttributeError:
1924
url, body = request.url, request.body
20-
except AttributeError:
21-
url, body = request.url, request.body
22-
key = hashlib.sha256()
23-
key.update(requests_cache.backends.base._to_bytes(request.method.upper()))
24-
key.update(requests_cache.backends.base._to_bytes(url))
25-
if request.body:
26-
key.update(requests_cache.backends.base._to_bytes(body))
27-
else:
28-
if self._include_get_headers and request.headers != requests_cache.backends.base._DEFAULT_HEADERS:
29-
for name, value in sorted(request.headers.items()):
30-
# include only Accept-Language as it is important for context
31-
if name in ['Accept-Language']:
32-
key.update(requests_cache.backends.base._to_bytes(name))
33-
key.update(requests_cache.backends.base._to_bytes(value))
34-
return key.hexdigest()
25+
key = hashlib.sha256()
26+
key.update(requests_cache.backends.base._to_bytes(request.method.upper()))
27+
key.update(requests_cache.backends.base._to_bytes(url))
28+
if request.body:
29+
key.update(requests_cache.backends.base._to_bytes(body))
30+
else:
31+
if self._include_get_headers and request.headers != requests_cache.backends.base._DEFAULT_HEADERS:
32+
for name, value in sorted(request.headers.items()):
33+
# include only Accept-Language as it is important for context
34+
if name in ['Accept-Language']:
35+
key.update(requests_cache.backends.base._to_bytes(name))
36+
key.update(requests_cache.backends.base._to_bytes(value))
37+
return key.hexdigest()
3538

36-
requests_cache.backends.base.BaseCache.create_key = create_key
39+
requests_cache.backends.base.BaseCache.create_key = create_key

0 commit comments

Comments
 (0)