Files
ViewIT/docs/PLUGIN_SYSTEM.md

72 lines
1.6 KiB
Markdown

# 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 = <Klasse>`, 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-<version>.zip`