2.3 KiB
2.3 KiB
ViewIT Plugin Entwicklung (addon/plugins/*_plugin.py)
Diese Datei zeigt, wie Plugins im Projekt aufgebaut sind und wie sie mit dem Router zusammenarbeiten.
Grundlagen
- Ein Plugin ist eine Python Datei in
addon/plugins/. - Dateien mit
_Prefix werden nicht geladen. - Plugin Klasse erbt von
BasisPlugin. - Optional:
Plugin = <Klasse>als klarer Einstiegspunkt.
Pflichtmethoden
Jedes Plugin implementiert:
async search_titles(query: str) -> list[str]seasons_for(title: str) -> list[str]episodes_for(title: str, season: str) -> list[str]
Wichtige optionale Methoden
stream_link_for(...)resolve_stream_link(...)metadata_for(...)available_hosters_for(...)series_url_for_title(...)remember_series_url(...)episode_url_for(...)available_hosters_for_url(...)stream_link_for_url(...)
Film Provider Standard
Wenn keine echten Staffeln existieren:
seasons_for(title)gibt['Film']episodes_for(title, 'Film')gibt['Stream']
Capabilities
Ein Plugin kann Features melden ueber capabilities().
Bekannte Werte:
popular_seriesgenreslatest_episodesnew_titlesalphaseries_catalog
Suche
Aktuelle Regeln fuer Suchtreffer:
- Match auf Titel
- Wortbasiert
- Keine Teilwort Treffer im selben Wort
- Beschreibungen nicht fuer Match nutzen
Settings
Pro Plugin meist *_base_url.
Beispiele:
serienstream_base_urlaniworld_base_urleinschalten_base_urltopstream_base_urlfilmpalast_base_urldoku_streams_base_url
Playback Flow
- Episode oder Film auswaehlen.
- Optional Hosterliste anzeigen.
stream_link_foroderstream_link_for_urlaufrufen.resolve_stream_linkaufrufen.- Finale URL an Kodi geben.
Logging
Nutze Helper aus addon/plugin_helpers.py:
log_url(...)dump_response_html(...)notify_url(...)
Build und Checks
- ZIP:
./scripts/build_kodi_zip.sh - Addon Ordner:
./scripts/build_install_addon.sh - Manifest:
python3 scripts/generate_plugin_manifest.py - Snapshot Checks:
python3 qa/run_plugin_snapshots.py
Kurze Checkliste
namegesetzt und korrekt*_base_urlin Settings vorhanden- Suche liefert nur passende Titel
- Playback Methoden vorhanden
- Fehler und Timeouts behandelt
- Cache nur da, wo er Zeit spart