5528e0f652
- clients/omdb.py: OMDb als zweite Quelle (Fallback-Kette: TMDB exakt ->
OMDb -> bester TMDB-Vorschlag mit niedriger Confidence -> unknown)
- Pre-Scan-Reparatur: Titel kam nie an — makemkvcon existiert nur im
Worker, isosize war nirgends installiert (fiel still auf "DVD" zurueck).
Jetzt: ISO-9660-Volume-Label direkt vom Medium + Label-Normalisierung
(PULP_FICTION -> Pulp Fiction), Disc-Typ ueber zentrale detection.py
- POST /devices/{name}/eject (CDROMEJECT-ioctl) mit Job-Schutz (409 wenn
auf dem Laufwerk gerade gerippt wird)
- OMDB_API_KEY in compose/.env.example; .env.example komplett ehrlich
dokumentiert (JWT-Pflicht, MakeMKV-Beta-Key-Rhythmus)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
"""Tests für die puren Pre-Scan-/OMDb-Helfer (Label-Normalisierung, Parsing)."""
|
||
|
||
from clients.omdb import parse_runtime_minutes, parse_year
|
||
from prescan.prescan import normalize_disc_label
|
||
|
||
|
||
def test_label_normalisierung():
|
||
# Disc-Labels sind fast immer GROSS_MIT_UNTERSTRICHEN
|
||
assert normalize_disc_label("PULP_FICTION") == "Pulp Fiction"
|
||
assert normalize_disc_label("DIE_HARD_4.0_DE") == "Die Hard 4 0 De"
|
||
assert normalize_disc_label(" doppel raum ") == "doppel raum"
|
||
assert normalize_disc_label("") == ""
|
||
|
||
|
||
def test_label_mit_gemischter_schreibung_bleibt():
|
||
# Wer schon sauber benannt hat, wird nicht plattgewalzt
|
||
assert normalize_disc_label("Inception") == "Inception"
|
||
|
||
|
||
def test_omdb_runtime_parsing():
|
||
assert parse_runtime_minutes("142 min") == 142
|
||
assert parse_runtime_minutes("N/A") == 0
|
||
assert parse_runtime_minutes("") == 0
|
||
|
||
|
||
def test_omdb_jahr_parsing():
|
||
assert parse_year("1999") == 1999
|
||
assert parse_year("2005–2012") == 2005 # Serien-Zeitspanne
|
||
assert parse_year("N/A") is None
|
||
assert parse_year("") is None
|