Update docs
This commit is contained in:
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Local-only notes
|
||||||
|
/docs/PROJECT_NOTES.md
|
||||||
|
|
||||||
|
# Local install output
|
||||||
|
/install/
|
||||||
@@ -4,7 +4,7 @@ Dieses Dokument beschreibt, wie das Plugin-System von **ViewIt** funktioniert un
|
|||||||
|
|
||||||
### Überblick
|
### Überblick
|
||||||
|
|
||||||
ViewIt lädt Provider-Integrationen dynamisch aus `source/kodi_addon/plugins/*.py`. Jede Datei enthält eine Klasse, die von `BasisPlugin` erbt. Beim Start werden alle Plugins instanziiert und nur aktiv genutzt, wenn sie verfügbar sind.
|
ViewIt lädt Provider-Integrationen dynamisch aus `addon/plugins/*.py`. Jede Datei enthält eine Klasse, die von `BasisPlugin` erbt. Beim Start werden alle Plugins instanziiert und nur aktiv genutzt, wenn sie verfügbar sind.
|
||||||
|
|
||||||
### Aktuelle Plugins
|
### Aktuelle Plugins
|
||||||
|
|
||||||
@@ -16,9 +16,9 @@ ViewIt lädt Provider-Integrationen dynamisch aus `source/kodi_addon/plugins/*.p
|
|||||||
|
|
||||||
### Plugin-Discovery (Ladeprozess)
|
### Plugin-Discovery (Ladeprozess)
|
||||||
|
|
||||||
Der Loader in `source/kodi_addon/default.py`:
|
Der Loader in `addon/default.py`:
|
||||||
|
|
||||||
1. Sucht alle `*.py` in `source/kodi_addon/plugins/`
|
1. Sucht alle `*.py` in `addon/plugins/`
|
||||||
2. Überspringt Dateien, die mit `_` beginnen
|
2. Überspringt Dateien, die mit `_` beginnen
|
||||||
3. Lädt Module dynamisch
|
3. Lädt Module dynamisch
|
||||||
4. Instanziert Klassen, die von `BasisPlugin` erben
|
4. Instanziert Klassen, die von `BasisPlugin` erben
|
||||||
@@ -28,7 +28,7 @@ Damit bleiben fehlerhafte Plugins isoliert und blockieren nicht das gesamte Add-
|
|||||||
|
|
||||||
### BasisPlugin – verpflichtende Methoden
|
### BasisPlugin – verpflichtende Methoden
|
||||||
|
|
||||||
Definiert in `source/kodi_addon/plugin_interface.py`:
|
Definiert in `addon/plugin_interface.py`:
|
||||||
|
|
||||||
- `async search_titles(query: str) -> list[str]`
|
- `async search_titles(query: str) -> list[str]`
|
||||||
- `seasons_for(title: str) -> list[str]`
|
- `seasons_for(title: str) -> list[str]`
|
||||||
@@ -59,12 +59,12 @@ Eine Integration sollte typischerweise bieten:
|
|||||||
- `stream_link_for()` optional für direkte Playback-Links
|
- `stream_link_for()` optional für direkte Playback-Links
|
||||||
- Optional: `available_hosters_for()` oder Provider-spezifische Helfer
|
- Optional: `available_hosters_for()` oder Provider-spezifische Helfer
|
||||||
|
|
||||||
Als Startpunkt dient `source/kodi_addon/plugins/_template_plugin.py`.
|
Als Startpunkt dient `addon/plugins/_template_plugin.py`.
|
||||||
|
|
||||||
### Community-Erweiterungen (Workflow)
|
### Community-Erweiterungen (Workflow)
|
||||||
|
|
||||||
1. Fork/Branch erstellen
|
1. Fork/Branch erstellen
|
||||||
2. Neue Datei unter `source/kodi_addon/plugins/` hinzufügen (z. B. `meinprovider_plugin.py`)
|
2. Neue Datei unter `addon/plugins/` hinzufügen (z. B. `meinprovider_plugin.py`)
|
||||||
3. Klasse erstellen, die `BasisPlugin` implementiert
|
3. Klasse erstellen, die `BasisPlugin` implementiert
|
||||||
4. In Kodi testen (ZIP bauen, installieren)
|
4. In Kodi testen (ZIP bauen, installieren)
|
||||||
5. PR öffnen
|
5. PR öffnen
|
||||||
@@ -88,4 +88,4 @@ Provider sollten URL-Logging optional halten (Settings).
|
|||||||
./scripts/build_kodi_zip.sh
|
./scripts/build_kodi_zip.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Das ZIP liegt anschließend unter `install/plugin.video.viewit-<version>.zip`.
|
Das ZIP liegt anschließend unter `dist/plugin.video.viewit-<version>.zip`.
|
||||||
|
|||||||
Reference in New Issue
Block a user