Files
ViewIT/docs/PLUGIN_SYSTEM.md

82 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`