82 lines
2.2 KiB
Markdown
82 lines
2.2 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`
|
||
- `hdfilme_plugin.py`
|
||
- `kkiste_plugin.py`
|
||
- `moflix_plugin.py`
|
||
- `netzkino_plugin.py`
|
||
- `youtube_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` – beliebte Serien/Filme
|
||
- `genres` – Genre-Navigation
|
||
- `latest_episodes` – neu erschienene Episoden
|
||
- `new_titles` – neu hinzugefügte Titel (einfache Stringliste)
|
||
- `alpha` – alphabetische Navigation
|
||
- `series_catalog` – vollständiger Serienindex
|
||
- `year_filter` – Filter nach Erscheinungsjahr
|
||
- `country_filter` – Filter nach Produktionsland
|
||
- `collections` – Sammlungen/Filmreihen
|
||
- `tags` – Schlagwort-Suche
|
||
- `random` – 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:
|
||
|
||
```bash
|
||
./scripts/build_kodi_zip.sh
|
||
```
|
||
|
||
Ergebnis:
|
||
`dist/plugin.video.viewit-<version>.zip`
|