# 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.py` - `addon/plugin_interface.py` - `docs/DEFAULT_ROUTER.md` - `docs/PLUGIN_DEVELOPMENT.md` ## Aktuelle Plugins - `serienstream_plugin.py` - `topstreamfilm_plugin.py` - `einschalten_plugin.py` - `aniworld_plugin.py` - `filmpalast_plugin.py` - `dokustreams_plugin.py` - `_template_plugin.py` (Vorlage) ## Discovery Ablauf In `addon/default.py`: 1. Finde `*.py` in `addon/plugins/` 2. Ueberspringe Dateien mit `_` Prefix 3. Importiere Modul 4. Nutze `Plugin = `, falls vorhanden 5. Sonst instanziiere `BasisPlugin` Subklassen deterministisch 6. Ueberspringe Plugins mit `is_available = False` ## Basis Interface `BasisPlugin` definiert den Kern: - `search_titles` - `seasons_for` - `episodes_for` Weitere Methoden sind optional und werden nur genutzt, wenn vorhanden. ## Capabilities Plugins koennen Features aktiv melden. Typische Werte: - `popular_series` - `genres` - `latest_episodes` - `new_titles` - `alpha` - `series_catalog` 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: ```bash ./scripts/build_kodi_zip.sh ``` Ergebnis: `dist/plugin.video.viewit-.zip`