Feature: Mega-Debrid-Accounts einzeln (temporaer) deaktivieren — UI-Toggle
Backend war bereits vorhanden (megaDebridDisabledAccountIds + Rotation-Skip + Storage-Normalisierung); es fehlte nur das UI. Spiegelt das Debrid-Link-Muster: im Account-Bearbeiten-Dialog bekommt jeder Mega-Account einen Aktivieren/ Deaktivieren-Toggle (+ "Deaktiviert"-Badge). Der Disabled-Zustand wird im Dialog- Draft gehalten (megaDisabledIds) und beim Speichern via applyAccountDialogToSettings in megaDebridDisabledAccountIds uebernommen (gefiltert auf vorhandene Accounts). Kein Live-Persist mitten im Dialog -> kohaerent mit dem draft-then-Save-Modell. Wirkt OHNE Neustart: DebridService.unrestrictLink liest this.settings live (setSettings propagiert die Liste), unrestrictWithAccounts ueberspringt deaktivierte Accounts (gleicher Mechanismus wie Daily-Limit/Cooldown-Skip). Test: "skips a manually disabled Mega-Debrid account" — acc1 disabled -> acc2 loest auf (beweist den ID-Seam getMegaDebridAccountId). 643 Tests gruen, tsc 9, Build sauber. GUI-Toggle compile-/build-verifiziert, im laufenden Electron noch nicht click-getestet. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
661b1e8c21
commit
66878174e6
@@ -90,3 +90,20 @@ App läuft headless auf Windows-Server → Nutzer sitzt nicht davor. Größte L
|
||||
- Gestashtes Crash-Debris (`stash@{0}`): enthält Revert von 08372f9/18eada9/98dc366 + log.old. Bei Bedarf inspizierbar/recoverbar; sonst irgendwann verwerfbar.
|
||||
- 08372f9 (Passwort-Daemon-Reset) bewusst nicht neu aufgerollt (außerhalb dieses Goals, kein Hinweis auf Defekt).
|
||||
- Untracked `*-postprocess/` + `fix-library-renames.mjs`: alte Experimente (Apr/Mai), unverändert gelassen.
|
||||
|
||||
---
|
||||
|
||||
## E. Mega-Debrid Account temporär deaktivieren (UI) — 2026-05-31
|
||||
|
||||
**Goal:** Einzelne Mega-Debrid-Accounts deaktivieren (statt löschen) → Rotation überspringt sie, nutzt die anderen.
|
||||
|
||||
**Befund:** Backend KOMPLETT vorhanden — `megaDebridDisabledAccountIds` (Typ/Defaults/Storage-Normalisierung) + Rotation-Skip (debrid.ts:1944) + Verfügbarkeits-Checks. Es fehlt NUR das UI-Toggle (Debrid-Link hat es bereits via keyStatsPopup). ID-Seam verifiziert: `getMegaDebridAccountId(login)` (trim+lowercase) ist auf beiden Seiten identisch → Test grün.
|
||||
|
||||
**Ansatz (B-kohärent):** Toggle in die bestehende Mega-Account-Liste im Bearbeiten-Dialog falten (draft-then-Save, KEIN Live-Persist → kohärent, minimal). Schritte:
|
||||
1. [x] TDD: Test „skips a manually disabled Mega-Debrid account" (acc1 disabled → acc2) — grün gegen Backend.
|
||||
2. [ ] `AccountDialogState`: Feld `megaDisabledIds: string[]`.
|
||||
3. [ ] Dialog-Init (createAccountDialogState): aus `settings.megaDebridDisabledAccountIds`.
|
||||
4. [ ] JSX Mega-Account-Liste: Aktivieren/Deaktivieren-Button + disabled-Styling pro Account.
|
||||
5. [ ] Entfernen-Handler: ID auch aus megaDisabledIds entfernen.
|
||||
6. [ ] `buildSettingsFromDialog` (megadebrid-api/web): `megaDebridDisabledAccountIds` aus Draft (gefiltert auf vorhandene Accounts) übernehmen.
|
||||
7. [ ] Verifizieren: tsc unverändert, volle Suite grün, Toggle-Test grün.
|
||||
|
||||
Reference in New Issue
Block a user