9.8 KiB
9.8 KiB
0.1.77.0-dev - 2026-03-10
- dev: Changelog-Dialog nur anzeigen wenn Eintrag vorhanden
0.1.76.5-dev - 2026-03-10
- dev: Versionsfilter fuer 4-teilige Versionsnummern korrigiert
0.1.76.0-dev - 2026-03-10
- dev: bump to 0.1.76.0-dev – aeltere Versionen im Update-Dialog, Release-Branch-Zuordnung, README ueberarbeitet
0.1.74-dev - 2026-03-10
- dev: bump to 0.1.74-dev – BurningSeries entfernt, Paging-Fix Neuste Titel
0.1.73-dev - 2026-03-07
- dev: bump to 0.1.73-dev – Autoplay-Setting, Moflix Hoster-Dialog, Update-Hinweis im Hauptmenue
Changelog (Dev)
0.1.71-dev - 2026-03-01
- Trakt Scrobble vollständig: scrobble/stop wird nach Wiedergabe-Ende mit berechnetem Fortschritt gesendet.
- Neue Funktion
_trakt_scrobble_stop_async()und_trakt_monitor_playback(). - Monitor blockiert den Plugin-Prozess bis Wiedergabe endet → Fortschritt wird korrekt berechnet.
- Damit wird Trakt "als gesehen" erst ab ≥ 80% Fortschritt markiert.
0.1.70-dev - 2026-03-01
- Suchergebnisse werden über alle Plugins hinweg nach Titel gruppiert.
- Titel in einem Plugin: direkt zur Staffel-Ansicht (kein Plugin-Suffix).
- Titel in mehreren Plugins: Zwischenstufe "Quelle wählen" mit Plugin-Liste.
- Neue Route
choose_sourceund Funktion_show_choose_source(). - Fix: SyntaxError
global _TRAKT_PLUGIN_MATCH_CACHE_TSwar nach erster Verwendung deklariert.
0.1.69-dev - 2026-03-01
Trakt: Neue Features
- Weiterschauen: Neuer Hauptmenüpunkt – zeigt die nächste ungesehene Folge je Serie basierend auf der Trakt-History. Auto-Matching sucht den Titel automatisch in allen aktiven Plugins und verlinkt direkt zur richtigen Staffel.
- Trakt Upcoming: Neuer Hauptmenüpunkt – zeigt anstehende Episoden der Watchlist-Serien (Trakt-Kalender, 14 Tage voraus) mit Ausstrahlungsdatum und TMDB-Poster. Auto-Matching wie bei „Weiterschauen".
- Watched-Status in Episodenlisten: Bereits bei Trakt als gesehen markierte Episoden
werden in Staffelansichten mit Häkchen (Kodi
playcount=1) markiert. Ergebnis wird 5 Minuten gecacht um API-Aufrufe zu minimieren. core/trakt.py: NeuerTraktCalendarItem-Dataclass undget_calendar()-Methode (Trakt Calendar API:/calendars/my/shows/{start}/{days}).
Python 3.8 Kompatibilität (Windows/Kodi)
from __future__ import annotationsin allen Modulen ergänzt, die noch kein deferred-evaluation hatten (core/router.py,core/metadata.py,core/playstate.py,core/gui.py,regex_patterns.py). BehebtTypeError: 'type' object is not subscriptableauf Kodi-Installationen mit Python 3.8 (Windows).
Bugfixes
dokustreams_plugin.py: Regexr"(\\d+)"→r"(\d+)"– Seitennavigation hat nie Seitenzahlen gefunden (falsch-escaped in Raw-String).serienstream_plugin.py: Dedup-Key verwendete\\t(Backslash+t) statt echtem Tab-Zeichen – inkonsistent mitaniworld_plugin.py.- Menübereinigung: Doppelter Menüpunkt „Neue Titel" (
new_plugin_titles) entfernt – identisch mit „Neuste Titel" (latest_titles).
0.1.67-dev - 2026-02-27
Stabilitäts- und Sicherheits-Fixes
- Sicherheit (updater.py): ZIP-Extraktion prüft jetzt jeden Eintrag auf Path-Traversal.
Bösartige Pfade (z. B.
../../) werden abgelehnt und der Update-Vorgang abgebrochen (war: still ignoriert mitcontinue). - Silent-Failure-Fix (metadata.py): Neues
_initialized-Flag und_require_init()-Guard – wenninit()nicht aufgerufen wurde, erscheint jetzt eine Warnung im Log statt lautlosem No-Op. - Thread-Safety (default.py): Neue Locks
_PLUGIN_CACHE_LOCKund_GENRE_TITLES_CACHE_LOCKschützen alle Cache-Zugriffe auf Plugin-Instanzen und Genre-Titel-Caches. - Memory-Leak-Fix (default.py): Alle internen Caches haben jetzt ein Größenlimit
(
_CACHE_MAXSIZE = 500) mit LRU-artigem Eviction-Mechanismus. - Code-Qualität (default.py): ~300 Zeilen Duplicate-Code durch
_show_paged_title_list()Hilfsfunktion ersetzt – alle paginierten Titellisten (Genres, Kategorien, A-Z) nutzen jetzt dieselbe Logik. - Syntax-Fix (default.py): Fremd-Text in Zeile 3517 entfernt, der einen latenten Syntax- Fehler verursachte.
Neues Plugin-Interface
Neue optionale Methoden in BasisPlugin (plugin_interface.py):
| Methode | Beschreibung |
|---|---|
latest_titles(page) |
Neuerscheinungen / neu hinzugefügte Titel |
years_available() |
Verfügbare Erscheinungsjahre für Filter |
titles_for_year(year, page) |
Titel nach Jahr gefiltert |
countries_available() |
Verfügbare Länder für Filter |
titles_for_country(country, page) |
Titel nach Herkunftsland gefiltert |
collections() |
Filmreihen / Sammlungen |
titles_for_collection(collection, page) |
Titel einer Sammlung |
tags() |
Schlagworte / Tags |
titles_for_tag(tag, page) |
Titel nach Schlagwort |
random_title() |
Zufälliger Titel |
Neue Capability-Strings: latest_titles, year_filter, country_filter, collections, tags, random
Neue Menüeinträge in default.py
Plugins die die neuen Capabilities melden, erhalten automatisch folgende Menüpunkte:
- "Neue Titel" – für Plugins mit
latest_titles - "Nach Jahr" – für Plugins mit
year_filter - "Nach Land" – für Plugins mit
country_filter - "Sammlungen" – für Plugins mit
collections - "Schlagworte" – für Plugins mit
tags - "Zufälliger Titel" – für Plugins mit
random
Plugin-Erweiterungen
Filmpalast (filmpalast_plugin.py):
popular_series()– scrapt Top-Filme von/movies/toplatest_titles(page)– scrapt Neuerscheinungen von/movies/newmit Pagination- IMDb-Rating in
metadata_for()integriert (info_labels["rating"]) - Neue Capabilities:
popular_series,latest_titles
Doku-Streams (dokustreams_plugin.py):
tags()– scrapt alle Schlagworte von der Startseitetitles_for_tag(tag, page)– Titelliste pro Schlagwort mit Paginationrandom_title()– folgt dem Redirect von/zufaellige-doku/resolve_stream_link(link)– ResolveURL + HTTP-Redirect-Fallback- Neue Capabilities:
tags,random
AniWorld (aniworld_plugin.py):
titles_for_genre_page(genre, page)– paginierte Genre-Titellisten via/genre/[slug]?page=[n]genre_page_count(genre)– letzte Seitennummer aus Pagination extrahiertlatest_titles(page)– neue Anime-Releases via/animekalender- Neue Capability:
latest_titles
SerienStream (serienstream_plugin.py):
latest_titles(page)– neue Serien via JSON-Kalender-API (/api/calendar) mit wochenweiser Rückwärts-Paginierunggenre_page_count(genre)– Gesamtanzahl der Genre-Seiten aus Pagination-Links extrahiertalpha_index()– gibt A-Z-Buchstaben +0-9zurücktitles_for_alpha_page(letter, page)– Serien alphabetisch abrufen via/serien/alle?buchstabe={letter}- Neue Capabilities:
latest_titles,alpha
TopStreamFilm (topstreamfilm_plugin.py):
years_available()– statische Liste vom aktuellen Jahr bis 1980titles_for_year(year, page)– Titel nach Erscheinungsjahr via/xfsearch/{year}/page/{n}/latest_titles(page)– neue Filme via/neueste-filme/page/{n}/- Neue Capabilities:
year_filter,latest_titles
Einschalten (einschalten_plugin.py):
popular_series()– Top-50 Filme sortiert nachvoteAverage(absteigend)latest_titles(page)– neue Filme (Alias zunew_titles_page(page))- Neue Capabilities:
popular_series,latest_titles - Hinweis: Ratings (
voteAverage,voteCount) waren bereits inmetadata_for()enthalten
0.1.66-dev - 2026-02-25
- Serienstream HTTP-Fetches robuster gemacht: Retry bei kurzzeitigen Verbindungsabbruechen inkl. Session-Reset.
- ResolveURL-Import im Kodi-Addon gehaertet: Fallback ueber Addon-
lib-Pfade (resolveurl,kodi-six,six). - Resolver-Debug erweitert: Input/Output im Kodi-Log fuer jeden ResolveURL-Aufruf sichtbar.
- Playback-Guard fuer unaufgeloeste Hoster-Links (z. B.
voe.sx/e/...) bleibt aktiv und liefert klare Fehlermeldungen. script.module.resolveurlals Addon-Abhaengigkeit inaddon.xmleingetragen.
0.1.65-dev - 2026-02-24
- Resolver-Diagnosepfad wieder vereinfacht (Fallback/Embed-Block aus dem Router entfernt).
- Serienstream und AniWorld wieder mit VOE als bevorzugtem Hoster in der Default-Prioritaet.
0.1.64-dev - 2026-02-24
- Update-Kanaele in den Settings erweitert:
Devist jetzt ein eigener Kanal. - Neue Setting-URL
update_repo_url_devfuer direkte Dev-Repo-Auswahl. - Repository-Addon auf
1.0.1erhoeht. repository.viewitenthaelt jetzt zusaetzlich densmrzips-Feed, damit ResolveURL-Updates direkt verfuegbar sind.
0.1.63-dev - 2026-02-24
- ResolveURL ist jetzt eine weiche Abhaengigkeit: ViewIt installiert auch ohne vorinstalliertes ResolveURL.
- Neuer Settings-Action:
ResolveURL installieren/reparieren. - Optionales Auto-Bootstrap: ResolveURL kann beim Start automatisch nachinstalliert werden.
- Wiedergabe versucht bei fehlendem ResolveURL einmalig eine stille Nachinstallation und loest dann erneut auf.
- Update-Settings aufgeraeumt: Fokus auf installierte Version, Kanalstatus und verfuegbare Version im gewaehlten Kanal.
- Repo-Validierung als Script hinzugefuegt (
scripts/verify_repo_artifacts.py) und in den lokalen Repo-Build eingebunden.
0.1.62-dev - 2026-02-24
- Neuer Dev-Stand fuer Genre-Performance (Serienstream).
- Genre-Listen laden strikt nur die angeforderte Seite (on-demand, max. 20 Titel).
- Weitere Seiten werden erst bei
Naechste Seitegeladen. - Listen-Parser reduziert auf Titel, Serien-URL und Cover.
- Plot wird aus den Karten mit uebernommen und in der Liste angezeigt, falls vorhanden.
- Metadaten werden fuer die jeweils geoeffnete Seite vollstaendig geladen und angezeigt.
- Serien-Infos (inkl. Plot/Art) sind bereits in der Titelauswahl sichtbar, nicht erst in der Staffelansicht.