Compare commits
1 Commits
codex/anal
...
codex/anal
| Author | SHA1 | Date | |
|---|---|---|---|
| 9376fae60b |
@@ -204,10 +204,36 @@ def md5_file(path: str) -> str:
|
|||||||
h.update(chunk)
|
h.update(chunk)
|
||||||
return h.hexdigest()
|
return h.hexdigest()
|
||||||
|
|
||||||
|
_md5_dir_cache: Optional[str] = None
|
||||||
|
|
||||||
|
def pick_md5_dir() -> str:
|
||||||
|
global _md5_dir_cache
|
||||||
|
if _md5_dir_cache:
|
||||||
|
return _md5_dir_cache
|
||||||
|
|
||||||
|
candidates = [
|
||||||
|
MD5_DIR,
|
||||||
|
os.path.join(JD_OUTPUT_PATH, ".md5"),
|
||||||
|
"/tmp/jd-md5",
|
||||||
|
]
|
||||||
|
|
||||||
|
for candidate in candidates:
|
||||||
|
try:
|
||||||
|
os.makedirs(candidate, exist_ok=True)
|
||||||
|
except Exception:
|
||||||
|
continue
|
||||||
|
if os.access(candidate, os.W_OK):
|
||||||
|
_md5_dir_cache = candidate
|
||||||
|
return candidate
|
||||||
|
|
||||||
|
raise RuntimeError(
|
||||||
|
"Kein beschreibbares MD5-Verzeichnis gefunden (MD5_DIR, /output/.md5, /tmp/jd-md5)."
|
||||||
|
)
|
||||||
|
|
||||||
def write_md5_sidecar(file_path: str, md5_hex: str) -> str:
|
def write_md5_sidecar(file_path: str, md5_hex: str) -> str:
|
||||||
os.makedirs(MD5_DIR, exist_ok=True)
|
md5_dir = pick_md5_dir()
|
||||||
base = os.path.basename(file_path)
|
base = os.path.basename(file_path)
|
||||||
md5_path = os.path.join(MD5_DIR, base + ".md5")
|
md5_path = os.path.join(md5_dir, base + ".md5")
|
||||||
with open(md5_path, "w", encoding="utf-8") as f:
|
with open(md5_path, "w", encoding="utf-8") as f:
|
||||||
f.write(f"{md5_hex} {base}\n")
|
f.write(f"{md5_hex} {base}\n")
|
||||||
return md5_path
|
return md5_path
|
||||||
@@ -283,10 +309,7 @@ def tmdb_search_movie(query: str) -> Optional[Dict[str, Any]]:
|
|||||||
return None
|
return None
|
||||||
q = urllib.parse.quote(query.strip())
|
q = urllib.parse.quote(query.strip())
|
||||||
url = f"https://api.themoviedb.org/3/search/movie?api_key={TMDB_API_KEY}&language={urllib.parse.quote(TMDB_LANGUAGE)}&query={q}"
|
url = f"https://api.themoviedb.org/3/search/movie?api_key={TMDB_API_KEY}&language={urllib.parse.quote(TMDB_LANGUAGE)}&query={q}"
|
||||||
try:
|
|
||||||
data = _http_get_json(url)
|
data = _http_get_json(url)
|
||||||
except Exception:
|
|
||||||
return None
|
|
||||||
results = data.get("results") or []
|
results = data.get("results") or []
|
||||||
return results[0] if results else None
|
return results[0] if results else None
|
||||||
|
|
||||||
@@ -295,10 +318,7 @@ def tmdb_search_tv(query: str) -> Optional[Dict[str, Any]]:
|
|||||||
return None
|
return None
|
||||||
q = urllib.parse.quote(query.strip())
|
q = urllib.parse.quote(query.strip())
|
||||||
url = f"https://api.themoviedb.org/3/search/tv?api_key={TMDB_API_KEY}&language={urllib.parse.quote(TMDB_LANGUAGE)}&query={q}"
|
url = f"https://api.themoviedb.org/3/search/tv?api_key={TMDB_API_KEY}&language={urllib.parse.quote(TMDB_LANGUAGE)}&query={q}"
|
||||||
try:
|
|
||||||
data = _http_get_json(url)
|
data = _http_get_json(url)
|
||||||
except Exception:
|
|
||||||
return None
|
|
||||||
results = data.get("results") or []
|
results = data.get("results") or []
|
||||||
return results[0] if results else None
|
return results[0] if results else None
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user