Files
ViewIT/docs/PLUGIN_DEVELOPMENT.md
2026-02-01 19:45:51 +01:00

2.6 KiB
Raw Permalink Blame History

ViewIT Entwicklerdoku Plugins (addon/plugins/*_plugin.py)

Diese Doku beschreibt, wie Plugins im ViewITAddon aufgebaut sind und wie neue ProviderIntegrationen entwickelt werden.

Grundlagen

  • Jedes Plugin ist eine einzelne Datei unter addon/plugins/.
  • Dateinamen ohne _Prefix werden automatisch geladen.
  • Jede Datei enthält eine Klasse, die von BasisPlugin erbt.

PflichtMethoden (BasisPlugin)

Jedes Plugin muss diese Methoden implementieren:

  • async search_titles(query: str) -> list[str]
  • seasons_for(title: str) -> list[str]
  • episodes_for(title: str, season: str) -> list[str]

Optionale Features (Capabilities)

Über capabilities() kann das Plugin zusätzliche Funktionen anbieten:

  • popular_seriespopular_series()
  • genresgenres() + titles_for_genre(genre)
  • latest_episodeslatest_episodes(page=1)

Empfohlene Struktur

  • Konstanten für URLs/Endpoints (BASE_URL, Pfade, Templates)
  • requests + bs4 optional (fehlt beides, Plugin sollte sauber deaktivieren)
  • HelperFunktionen für Parsing und Normalisierung
  • Caches für Such, Staffel und EpisodenDaten

Suche (aktuelle Policy)

  • Nur TitelMatches
  • SubstringMatch nach Normalisierung (Lowercase + NichtAlnum → Leerzeichen)
  • Keine Beschreibung/Plot/Meta für Matches

Namensgebung

  • PluginKlassenname: XxxPlugin
  • Anzeigename (Property name): mit Großbuchstaben beginnen (z.B. Serienstream, Einschalten)

Settings pro Plugin

Standard: *_base_url (Domain / BASE_URL)

  • Beispiele:
    • serienstream_base_url
    • aniworld_base_url
    • einschalten_base_url
    • topstream_base_url

Playback

  • Wenn möglich stream_link_for(...) implementieren.
  • Optional available_hosters_for(...)/resolve_stream_link(...) für HosterAuflösung.

Debugging

Global gesteuert über Settings:

  • debug_log_urls
  • debug_dump_html
  • debug_show_url_info

Plugins sollten die Helper aus addon/plugin_helpers.py nutzen:

  • log_url(...)
  • dump_response_html(...)
  • notify_url(...)

Template

addon/plugins/_template_plugin.py dient als Startpunkt für neue Provider.

Build & Test

  • ZIP bauen: ./scripts/build_kodi_zip.sh
  • AddonOrdner: ./scripts/build_install_addon.sh

BeispielCheckliste

  • name korrekt gesetzt
  • *_base_url in Settings vorhanden
  • Suche matcht nur Titel
  • Fehlerbehandlung und Timeouts vorhanden
  • Optional: Caches für Performance

Hinweis zur Erstellung

Teile dieser Dokumentation wurden KIgestützt erstellt und bei Bedarf manuell angepasst.