From 89a158af8e07f6fc547b7e7112ff79d1442fb15a Mon Sep 17 00:00:00 2001 From: ausnips Date: Thu, 27 Mar 2025 23:45:37 -0400 Subject: [PATCH 1/2] Check for existence of 'remove_expired_responses' before calling -- attempted patch for downstream (https://tracker.debian.org/pkg/tvnamer) Simple conditional check to verify that the function 'remove_expired_responses' exists before invoking it. This prevents runtime errors when the function is absent, ensuring compatibility with different versions or configurations of the tvdb_api module. --- .gitignore | 2 ++ tvdb_api.py | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 4c0e6e2..294c604 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ dist/*.tar.gz /.mypy_cache /.coverage /htmlcov +*.sublime-project +*.sublime-workspace diff --git a/tvdb_api.py b/tvdb_api.py index 624abd2..c798451 100644 --- a/tvdb_api.py +++ b/tvdb_api.py @@ -700,7 +700,8 @@ def __init__( include_get_headers=True, ) self.session.cache.create_key = types.MethodType(create_key, self.session.cache) - self.session.remove_expired_responses() + if hasattr(self.session, "remove_expired_responses"): + self.session.remove_expired_responses() self.config['cache_enabled'] = True elif cache is False: LOG.debug("Caching disabled") @@ -716,7 +717,8 @@ def __init__( include_get_headers=True, ) self.session.cache.create_key = types.MethodType(create_key, self.session.cache) - self.session.remove_expired_responses() + if hasattr(self.session, "remove_expired_responses"): + self.session.remove_expired_responses() else: LOG.debug("Using specified requests.Session") self.session = cache From f70346a54beb69421cd22e095f4cd298568c1bb5 Mon Sep 17 00:00:00 2001 From: ausnips Date: Fri, 28 Mar 2025 01:12:33 -0400 Subject: [PATCH 2/2] added conditional. patch for use on Debian 12 -- error fixed: -- typeerror: create_key() got an unexpected keyword argument 'timeout' -- added conditionals in lines 703 and 720 -- create_key function updated because ChatGPT said so (this was the actual fix, i think) --- tvdb_api.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tvdb_api.py b/tvdb_api.py index c798451..c67f334 100644 --- a/tvdb_api.py +++ b/tvdb_api.py @@ -528,7 +528,7 @@ def __repr__(self): return "" % self.get("name") -def create_key(self, request): +def create_key(self, request, **kwargs): """A new cache_key algo is required as the authentication token changes with each run. Also there are other header params which also change with each request (e.g. timestamp). Excluding all @@ -544,7 +544,8 @@ def create_key(self, request): cache is to be used thus saving host and network traffic. """ - if self._ignored_parameters: + # Use 'ignored_parameters' if present (instead of _ignored_parameters) #balls + if getattr(self, 'ignored_parameters', None): url, body = self._remove_ignored_parameters(request) else: url, body = request.url, request.body @@ -554,7 +555,7 @@ def create_key(self, request): if request.body: key.update(_to_bytes(body)) else: - if self._include_get_headers and request.headers != _DEFAULT_HEADERS: + if getattr(self, '_include_get_headers', False) and request.headers != _DEFAULT_HEADERS: for name, value in sorted(request.headers.items()): # include only Accept-Language as it is important for context if name in ['Accept-Language']: @@ -700,8 +701,7 @@ def __init__( include_get_headers=True, ) self.session.cache.create_key = types.MethodType(create_key, self.session.cache) - if hasattr(self.session, "remove_expired_responses"): - self.session.remove_expired_responses() + self.session.remove_expired_responses() self.config['cache_enabled'] = True elif cache is False: LOG.debug("Caching disabled") @@ -717,8 +717,7 @@ def __init__( include_get_headers=True, ) self.session.cache.create_key = types.MethodType(create_key, self.session.cache) - if hasattr(self.session, "remove_expired_responses"): - self.session.remove_expired_responses() + self.session.remove_expired_responses() else: LOG.debug("Using specified requests.Session") self.session = cache