prefetcher
Build and Push Docker Images / build-and-push (push) Successful in 24s

This commit is contained in:
2026-02-11 21:52:16 +01:00
parent fecd8389e9
commit df941720e3
5 changed files with 197 additions and 3 deletions
@@ -266,6 +266,43 @@ class TMDBClient:
self._write_disk_cache("episode_credits", key, cred)
return cred
def has_episode_metadata_cached(
self,
programme_name: str,
path: Path,
*,
tmdb_search: str | None = None,
tmdb_id: int | None = None,
series_root: Path,
) -> bool:
"""
Check if episode metadata is already on disk (no API calls).
Used by prefetcher to skip episodes that don't need fetching.
"""
if series_root not in path.parents:
return True
se = parse_season_episode(path.stem)
if not se:
return True
_, episode_num = se
if tmdb_id is not None:
series_id = tmdb_id
else:
search_term = (tmdb_search or programme_name).strip() or programme_name
key = _sanitize_key(search_term)
cached = self._read_disk_cache("series_search", key)
if cached is None:
return False
sid = cached.get("series_id")
if sid is None:
return False
series_id = int(sid)
ep_key = f"{series_id}_{se[0]}_{episode_num}"
ep_path = self._cache_path("episode", ep_key)
return ep_path.exists()
def get_episode_metadata(
self,
programme_name: str,