2.2 KiB
2.2 KiB
ViewIT Plugin System
Dieses Dokument beschreibt Laden, Vertrag und Betrieb der Plugins.
Ueberblick
Der Router laedt Provider Integrationen aus addon/plugins/*.py.
Aktive Plugins werden instanziiert und im UI genutzt.
Relevante Dateien:
addon/default.pyaddon/plugin_interface.pydocs/DEFAULT_ROUTER.mddocs/PLUGIN_DEVELOPMENT.md
Aktuelle Plugins
serienstream_plugin.pytopstreamfilm_plugin.pyeinschalten_plugin.pyaniworld_plugin.pyfilmpalast_plugin.pydokustreams_plugin.pyhdfilme_plugin.pykkiste_plugin.pymoflix_plugin.pynetzkino_plugin.pyyoutube_plugin.py_template_plugin.py(Vorlage)
Discovery Ablauf
In addon/default.py:
- Finde
*.pyinaddon/plugins/ - Ueberspringe Dateien mit
_Prefix - Importiere Modul
- Nutze
Plugin = <Klasse>, falls vorhanden - Sonst instanziiere
BasisPluginSubklassen deterministisch - Ueberspringe Plugins mit
is_available = False
Basis Interface
BasisPlugin definiert den Kern:
search_titlesseasons_forepisodes_for
Weitere Methoden sind optional und werden nur genutzt, wenn vorhanden.
Capabilities
Plugins koennen Features aktiv melden. Typische Werte:
popular_series– beliebte Serien/Filmegenres– Genre-Navigationlatest_episodes– neu erschienene Episodennew_titles– neu hinzugefügte Titel (einfache Stringliste)alpha– alphabetische Navigationseries_catalog– vollständiger Serienindexyear_filter– Filter nach Erscheinungsjahrcountry_filter– Filter nach Produktionslandcollections– Sammlungen/Filmreihentags– Schlagwort-Sucherandom– zufälliger Titel
Das UI zeigt nur Menues fuer aktiv gemeldete Features.
Metadaten Quelle
prefer_source_metadata = True bedeutet:
- Quelle zuerst
- TMDB nur Fallback
Stabilitaet
- Keine Netz Calls im Import Block.
- Fehler im Plugin muessen lokal behandelt werden.
- Ein defektes Plugin darf andere Plugins nicht blockieren.
Build
Kodi ZIP bauen:
./scripts/build_kodi_zip.sh
Ergebnis:
dist/plugin.video.viewit-<version>.zip