feat(windows): Arbeitsordner im Setup, Beta-Key auf Knopfdruck
Ampel / ampel (push) Successful in 1m18s
Ampel / ampel (push) Successful in 1m18s
Zwei Wuensche des Commanders vom 28.08.2026.
## 1. „kannst du noch einbauen das man den arbeitsordner usw. in den
## Einstellungen setzen kann und direkt im setup?"
In den Einstellungen ging es seit 35370fd (freies Pfadfeld plus die Laufwerke
als Ein-Klick-Wahl). Im SETUP wurde bisher nur nach Programmordner und Ablage
gefragt — der Arbeitsordner tauchte erst auf, wenn schon installiert war.
Das ist die falsche Reihenfolge: Der Roh-Rip einer 4K-UHD ist bis zu 100 GB
gross. Wer erst NACH der ersten vollen Platte erfaehrt, wo die liegen, hat es
zu spaet erfahren — genau so lief am 25.07.2026 die VM-Platte voll.
Neu ist auch ein Waechter, der alle drei Arten von halb angeschlossenem Feld
faengt (kein Eingabefeld, keine Vorbelegung, wird beim Installieren nicht
mitgeschickt). Der dritte Fall ist der gemeinste: Man waehlt etwas, es
passiert nichts, und niemand sagt warum.
## 2. „der könnte theoretisch auch automatisch ausgelesen werden, ich glaube
## das web rippy kann das"
Er hatte recht. `makemkv_key.refresh_loop()` laeuft seit jeher taeglich mit
(main.py, Startereignis). GEMESSEN am 28.08.2026: Forum antwortet in 3,3 s,
gueltiger Key mit 62 Zeichen, und in seinen Einstellungen lag bereits einer.
Es war nur nichts davon zu sehen. Kein Knopf, keine Meldung, keine Zeitangabe
— im Feld stand ein Key, und ob der von Hand kam oder von selbst, wusste
niemand. Eine Automatik, die man nicht sehen kann, ist fuer den Benutzer
keine.
Dazu kam eine echte Luecke: Die Schleife startet 60 Sekunden nach dem Server.
Wer gleich nach dem Einrichten eine Blu-ray einlegt, rippt ohne Key — MakeMKV
faellt in den 30-Tage-Testmodus. Das Setup holt ihn jetzt selbst.
Der geholte Key wandert NICHT ueber die Leitung zurueck: Er steht in den
Einstellungen, und ein zweiter Weg zu demselben Wert ist ein zweiter Weg, ihn
zu verlieren.
Rechtlich unveraendert: oeffentliche Beta-LIZENZ der Software, KEIN
Disc-Schluessel. Rippy liefert und verteilt keine Disc-Schluessel.
803 Tests gruen, ruff sauber.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
d0281f7a1b
commit
678fe276f9
@@ -2406,6 +2406,55 @@ async def get_keydb_status():
|
||||
return await asyncio.to_thread(sammle)
|
||||
|
||||
|
||||
@app.post("/system/makemkv-key/holen")
|
||||
async def makemkv_key_holen():
|
||||
"""Holt den kostenlosen MakeMKV-Beta-Key JETZT aus dem Forum.
|
||||
|
||||
## Warum es diesen Knopf gibt (Commander 28.08.2026)
|
||||
|
||||
> „Bezüglich des MKV Beta Keys — der könnte theoretisch auch automatisch
|
||||
> ausgelesen werden, ich glaube das web rippy kann das"
|
||||
|
||||
Er hatte recht: `makemkv_key.refresh_loop()` läuft seit jeher täglich mit
|
||||
(main.py, Startereignis). Nachgemessen: Forum antwortet in 3,3 Sekunden,
|
||||
Key mit 62 Zeichen.
|
||||
|
||||
Nur war davon **nichts zu sehen**. Kein Knopf, keine Zeitangabe, kein
|
||||
Hinweis — im Einstellungsfeld stand ein Key, und ob der von Hand kam oder
|
||||
von selbst, wusste niemand. Eine Automatik, die man nicht sehen kann, ist
|
||||
für den Benutzer keine.
|
||||
|
||||
Der Key wechselt etwa monatlich. Wer nicht warten will, bis die Schleife
|
||||
das nächste Mal nachsieht, drückt hier.
|
||||
|
||||
Rechtlich unverändert: öffentliche Beta-LIZENZ der Software, KEIN
|
||||
Disc-Schlüssel.
|
||||
"""
|
||||
import makemkv_key as key_modul
|
||||
|
||||
try:
|
||||
key = await asyncio.to_thread(key_modul.fetch_current_key)
|
||||
except Exception as e: # noqa: BLE001
|
||||
raise HTTPException(
|
||||
status_code=502,
|
||||
detail=f"Das MakeMKV-Forum antwortet nicht ({type(e).__name__}). "
|
||||
"Der Key lässt sich weiter von Hand eintragen.")
|
||||
if not key:
|
||||
raise HTTPException(
|
||||
status_code=502,
|
||||
detail="Im Forum-Beitrag stand kein Key im erwarteten Format. "
|
||||
"Vermutlich hat sich die Seite geändert.")
|
||||
geaendert = await asyncio.to_thread(key_modul._apply_key, key)
|
||||
await asyncio.to_thread(
|
||||
db.add_log, "success", "makemkv-key",
|
||||
"Beta-Key aus dem Forum geholt (…%s)%s"
|
||||
% (key[-6:], "" if geaendert else " — war schon der aktuelle"))
|
||||
# Der Key selbst wird NICHT zurueckgegeben: Er steht in den Einstellungen,
|
||||
# und ein zweiter Weg zu demselben Wert ist ein zweiter Weg, ihn zu
|
||||
# verlieren.
|
||||
return {"geholt": True, "geaendert": geaendert, "endet_auf": key[-6:]}
|
||||
|
||||
|
||||
@app.post("/system/keydb")
|
||||
async def set_keydb(request: KeydbRequest):
|
||||
"""Legt die vom Nutzer mitgebrachte KEYDB.cfg ab (atomar, ersetzt die alte).
|
||||
|
||||
Reference in New Issue
Block a user