Files
ViewIT/docs/DEFAULT_ROUTER.md
2026-02-01 19:45:51 +01:00

2.4 KiB
Raw Blame History

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 PluginModule dynamisch,
  • stellt die KodiNavigation bereit,
  • übersetzt UIAktionen in PluginAufrufe,
  • startet die Wiedergabe und verwaltet Playstate/Resume.

Ablauf (high level)

  1. PluginDiscovery: Lädt alle addon/plugins/*.py (ohne _Prefix) und instanziiert Klassen, die von BasisPlugin erben.
  2. Navigation: Baut KodiListen (Serien/Staffeln/Episoden) auf Basis der PluginAntworten.
  3. Playback: Holt StreamLinks aus dem Plugin und startet die Wiedergabe.
  4. Playstate: Speichert ResumeDaten lokal (playstate.json) und setzt playcount/ResumeInfos.

Routing & Aktionen

Die Datei arbeitet mit URLParametern (KodiPluginStandard). Typische Aktionen:

  • search → Suche über ein Plugin
  • seasons → Staffeln für einen Titel
  • episodes → Episoden für eine Staffel
  • play → StreamLink auflösen und abspielen

Die genaue Aktion wird aus den QueryParametern gelesen und an das entsprechende Plugin delegiert.

Playstate (Resume/Watched)

  • Speicherort: playstate.json im AddonProfilordner.
  • Key: Kombination aus PluginName, Titel, Staffel, Episode.
  • Verwendung:
    • playcount wird gesetzt, wenn „gesehen“ markiert ist.
    • resume_position/resume_total werden gesetzt, wenn vorhanden.

Wichtige Hilfsfunktionen

  • PluginLoader: findet & instanziiert Plugins.
  • UIHelper: setzt ContentType, baut Verzeichnisseinträge.
  • PlaystateHelper: _load_playstate, _save_playstate, _apply_playstate_to_info.

Fehlerbehandlung

  • PluginImportfehler werden isoliert behandelt, damit das Addon nicht komplett ausfällt.
  • NetzwerkFehler werden in Plugins abgefangen, default.py sollte nur saubere Fehlermeldungen weitergeben.

Debugging

  • Globale DebugSettings werden über addon/resources/settings.xml gesteuert.
  • Plugins loggen URLs/HTML optional (siehe jeweilige PluginDoku).

Änderungen & Erweiterungen

Für neue Aktionen:

  1. Neue Aktion im Router registrieren.
  2. UIEinträge passend anlegen.
  3. Entsprechende PluginMethode definieren oder erweitern.

Hinweis zur Erstellung

Teile dieser Dokumentation wurden KIgestützt erstellt und bei Bedarf manuell angepasst.