Files
ViewIT/docs/DEFAULT_ROUTER.md

51 lines
1.5 KiB
Markdown

# ViewIT Hauptlogik (`addon/default.py`)
Diese Datei ist der Router des Addons.
Sie verbindet Kodi UI, Plugin Calls und Playback.
## Kernaufgabe
- Plugins laden
- Menues bauen
- Aktionen auf Plugin Methoden mappen
- Playback starten
- Playstate speichern
## Ablauf
1. Plugin Discovery fuer `addon/plugins/*.py` ohne `_` Prefix.
2. Navigation fuer Titel, Staffeln und Episoden.
3. Playback: Link holen, optional aufloesen, abspielen.
4. Playstate: watched und resume in `playstate.json` schreiben.
## Routing
Der Router liest Query Parameter aus `sys.argv[2]`.
Typische Aktionen:
- `search`
- `seasons`
- `episodes`
- `play_episode`
- `play_movie`
- `play_episode_url`
## Playstate
Eigenes Resume/Watched-Tracking ist deaktiviert (`addon/core/playstate.py`).
Kodi verwaltet den Playstate vollständig selbst (Watched-Status, Resume-Position).
Die Helfer-Funktionen in `playstate.py` (Schlüsselberechnung, Zustandsabfrage) sind
noch vorhanden, aber `track_playback_and_update_state_async()` ist ein No-op.
## Wichtige Helper
- Plugin Loader und Discovery
- UI Builder fuer ListItems
- Playstate Load/Save/Merge
- TMDB Merge mit Source Fallback
## Fehlerverhalten
- Importfehler pro Plugin werden isoliert behandelt.
- Fehler in einem Plugin sollen das Addon nicht stoppen.
- User bekommt kurze Fehlermeldungen in Kodi.
## Erweiterung
Fuer neue Aktion im Router:
1. Action im `run()` Handler registrieren.
2. ListItem mit passenden Parametern bauen.
3. Zielmethode im Plugin bereitstellen.