2.5 KiB
2.5 KiB
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)
- Plugin‑Discovery: Lädt alle
addon/plugins/*.py(ohne_‑Prefix). BevorzugtPlugin = <Klasse>, sonst werdenBasisPlugin‑Subklassen deterministisch instanziiert. - Navigation: Baut Kodi‑Listen (Serien/Staffeln/Episoden) auf Basis der Plugin‑Antworten.
- Playback: Holt Stream‑Links aus dem Plugin und startet die Wiedergabe.
- Playstate: Speichert Resume‑Daten lokal (
playstate.json) und setztplaycount/Resume‑Infos.
Routing & Aktionen
Die Datei arbeitet mit URL‑Parametern (Kodi‑Plugin‑Standard). Typische Aktionen:
search→ Suche über ein Pluginseasons→ Staffeln für einen Titelepisodes→ Episoden für eine Staffelplay→ 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.jsonim Addon‑Profilordner. - Key: Kombination aus Plugin‑Name, Titel, Staffel, Episode.
- Verwendung:
playcountwird gesetzt, wenn „gesehen“ markiert ist.resume_position/resume_totalwerden 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. - Metadata‑Merge: Plugin‑Metadaten können TMDB übersteuern, TMDB dient als Fallback.
Fehlerbehandlung
- Plugin‑Importfehler werden isoliert behandelt, damit das Addon nicht komplett ausfällt.
- Netzwerk‑Fehler werden in Plugins abgefangen,
default.pysollte nur saubere Fehlermeldungen weitergeben.
Debugging
- Globale Debug‑Settings werden über
addon/resources/settings.xmlgesteuert. - Plugins loggen URLs/HTML optional (siehe jeweilige Plugin‑Doku).
Änderungen & Erweiterungen
Für neue Aktionen:
- Neue Aktion im Router registrieren.
- UI‑Einträge passend anlegen.
- Entsprechende Plugin‑Methode definieren oder erweitern.
Hinweis zur Erstellung
Teile dieser Dokumentation wurden KI‑gestützt erstellt und bei Bedarf manuell angepasst.