2.6 KiB
2.6 KiB
ViewIT – Entwicklerdoku Plugins (addon/plugins/*_plugin.py)
Diese Doku beschreibt, wie Plugins im ViewIT‑Addon aufgebaut sind und wie neue Provider‑Integrationen entwickelt werden.
Grundlagen
- Jedes Plugin ist eine einzelne Datei unter
addon/plugins/. - Dateinamen ohne
_‑Prefix werden automatisch geladen. - Jede Datei enthält eine Klasse, die von
BasisPluginerbt.
Pflicht‑Methoden (BasisPlugin)
Jedes Plugin muss diese Methoden implementieren:
async search_titles(query: str) -> list[str]seasons_for(title: str) -> list[str]episodes_for(title: str, season: str) -> list[str]
Optionale Features (Capabilities)
Über capabilities() kann das Plugin zusätzliche Funktionen anbieten:
popular_series→popular_series()genres→genres()+titles_for_genre(genre)latest_episodes→latest_episodes(page=1)
Empfohlene Struktur
- Konstanten für URLs/Endpoints (BASE_URL, Pfade, Templates)
requests+bs4optional (fehlt beides, Plugin sollte sauber deaktivieren)- Helper‑Funktionen für Parsing und Normalisierung
- Caches für Such‑, Staffel‑ und Episoden‑Daten
Suche (aktuelle Policy)
- Nur Titel‑Matches
- Substring‑Match nach Normalisierung (Lowercase + Nicht‑Alnum → Leerzeichen)
- Keine Beschreibung/Plot/Meta für Matches
Namensgebung
- Plugin‑Klassenname:
XxxPlugin - Anzeigename (Property
name): mit Großbuchstaben beginnen (z. B.Serienstream,Einschalten)
Settings pro Plugin
Standard: *_base_url (Domain / BASE_URL)
- Beispiele:
serienstream_base_urlaniworld_base_urleinschalten_base_urltopstream_base_url
Playback
- Wenn möglich
stream_link_for(...)implementieren. - Optional
available_hosters_for(...)/resolve_stream_link(...)für Hoster‑Auflösung.
Debugging
Global gesteuert über Settings:
debug_log_urlsdebug_dump_htmldebug_show_url_info
Plugins sollten die Helper aus addon/plugin_helpers.py nutzen:
log_url(...)dump_response_html(...)notify_url(...)
Template
addon/plugins/_template_plugin.py dient als Startpunkt für neue Provider.
Build & Test
- ZIP bauen:
./scripts/build_kodi_zip.sh - Addon‑Ordner:
./scripts/build_install_addon.sh
Beispiel‑Checkliste
namekorrekt gesetzt*_base_urlin Settings vorhanden- Suche matcht nur Titel
- Fehlerbehandlung und Timeouts vorhanden
- Optional: Caches für Performance
Hinweis zur Erstellung
Teile dieser Dokumentation wurden KI‑gestützt erstellt und bei Bedarf manuell angepasst.