55 lines
2.4 KiB
Markdown
55 lines
2.4 KiB
Markdown
# ViewIT – Hauptlogik (`addon/default.py`)
|
||
|
||
Dieses Dokument beschreibt den Einstiegspunkt des Addons und die zentrale Steuerlogik.
|
||
|
||
## Aufgabe der Datei
|
||
`addon/default.py` ist der Router des Addons. Er:
|
||
- lädt die Plugin‑Module dynamisch,
|
||
- stellt die Kodi‑Navigation bereit,
|
||
- übersetzt UI‑Aktionen in Plugin‑Aufrufe,
|
||
- startet die Wiedergabe und verwaltet Playstate/Resume.
|
||
|
||
## Ablauf (high level)
|
||
1. **Plugin‑Discovery**: Lädt alle `addon/plugins/*.py` (ohne `_`‑Prefix) und instanziiert Klassen, die von `BasisPlugin` erben.
|
||
2. **Navigation**: Baut Kodi‑Listen (Serien/Staffeln/Episoden) auf Basis der Plugin‑Antworten.
|
||
3. **Playback**: Holt Stream‑Links aus dem Plugin und startet die Wiedergabe.
|
||
4. **Playstate**: Speichert Resume‑Daten lokal (`playstate.json`) und setzt `playcount`/Resume‑Infos.
|
||
|
||
## Routing & Aktionen
|
||
Die Datei arbeitet mit URL‑Parametern (Kodi‑Plugin‑Standard). Typische Aktionen:
|
||
- `search` → Suche über ein Plugin
|
||
- `seasons` → Staffeln für einen Titel
|
||
- `episodes` → Episoden für eine Staffel
|
||
- `play` → Stream‑Link auflösen und abspielen
|
||
|
||
Die genaue Aktion wird aus den Query‑Parametern gelesen und an das entsprechende Plugin delegiert.
|
||
|
||
## Playstate (Resume/Watched)
|
||
- **Speicherort**: `playstate.json` im Addon‑Profilordner.
|
||
- **Key**: Kombination aus Plugin‑Name, Titel, Staffel, Episode.
|
||
- **Verwendung**:
|
||
- `playcount` wird gesetzt, wenn „gesehen“ markiert ist.
|
||
- `resume_position`/`resume_total` werden gesetzt, wenn vorhanden.
|
||
|
||
## Wichtige Hilfsfunktionen
|
||
- **Plugin‑Loader**: findet & instanziiert Plugins.
|
||
- **UI‑Helper**: setzt Content‑Type, baut Verzeichnisseinträge.
|
||
- **Playstate‑Helper**: `_load_playstate`, `_save_playstate`, `_apply_playstate_to_info`.
|
||
|
||
## Fehlerbehandlung
|
||
- Plugin‑Importfehler werden isoliert behandelt, damit das Addon nicht komplett ausfällt.
|
||
- Netzwerk‑Fehler werden in Plugins abgefangen, `default.py` sollte nur saubere Fehlermeldungen weitergeben.
|
||
|
||
## Debugging
|
||
- Globale Debug‑Settings werden über `addon/resources/settings.xml` gesteuert.
|
||
- Plugins loggen URLs/HTML optional (siehe jeweilige Plugin‑Doku).
|
||
|
||
## Änderungen & Erweiterungen
|
||
Für neue Aktionen:
|
||
1. Neue Aktion im Router registrieren.
|
||
2. UI‑Einträge passend anlegen.
|
||
3. Entsprechende Plugin‑Methode definieren oder erweitern.
|
||
|
||
## Hinweis zur Erstellung
|
||
Teile dieser Dokumentation wurden KI‑gestützt erstellt und bei Bedarf manuell angepasst.
|