Der kostenlose Beta-Key wechselt ~monatlich und laeuft zum Monatsende ab; bisher
musste er von Hand nachgetragen werden, sonst blockt Blu-ray-Ripping irgendwann
still. Neu: taeglicher Forum-Abgleich (t=1053) -> Key in die Settings
(makemkvAppKey). Der Worker liest ihn VOR jedem Rip (tasks.py) -> wirkt ohne
Rebuild ab dem naechsten Rip.
- docker/api/makemkv_key.py: extract_key (pure, testbar) + fetch_current_key +
refresh_once/refresh_loop; loggt in die App-Logs (add_log).
- docker/api/main.py: refresh_loop als startup-Task.
- docker/api/test_makemkv_key.py: Parser-Tests - fingen den Bug, dass Beta-Keys
laenger als 64 Zeichen sind (Regex {50,} statt {64}).
Betrifft nur die Software-Lizenz (oeffentlicher Gratis-Key), NICHT Disc-Schluessel
- die zieht MakeMKV via LibreDrive selbst. Ruff gruen, 4 Tests gruen, Live-Fetch
gegen das echte Forum verifiziert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
"""Tests fuer den MakeMKV-Beta-Key-Parser (dependency-frei, nur extract_key)."""
|
||||
from makemkv_key import extract_key
|
||||
|
||||
# Beispiel-Key im echten Format (T- + 64 Zeichen [A-Za-z0-9_]).
|
||||
_KEY = "T-BSaJ6gwgMx4eIggWkVYXiVP_6zehm7WAO9dEydvzOHFHoZ6YQ82BL5cGpYDxvyRWnS"
|
||||
|
||||
|
||||
def test_extract_key_findet_key_im_html():
|
||||
html = f'<div class="content"><pre><code>{_KEY}</code></pre></div>'
|
||||
assert extract_key(html) == _KEY
|
||||
|
||||
|
||||
def test_extract_key_ohne_key_gibt_none():
|
||||
assert extract_key("<html>kein Schluessel hier</html>") is None
|
||||
assert extract_key("") is None
|
||||
|
||||
|
||||
def test_extract_key_zu_kurz_kein_treffer():
|
||||
# Format ist streng T- + genau 64 Zeichen — zu kurz faellt raus.
|
||||
assert extract_key("T-zukurz123") is None
|
||||
|
||||
|
||||
def test_extract_key_liefert_ganzen_key():
|
||||
# Regression: die Regex darf den Key NICHT abschneiden (Beta-Keys sind laenger
|
||||
# als die im Forum genannten 64 Zeichen — hier der volle Key zwischen Text).
|
||||
treffer = extract_key(f"Vorher-Text {_KEY} Nachher-Text")
|
||||
assert treffer == _KEY
|
||||
assert treffer.startswith("T-")
|
||||
Reference in New Issue
Block a user