Files
ViewIT/CHANGELOG-DEV.md

11 KiB
Raw Permalink Blame History

0.1.84.5-dev - 2026-03-31

  • dev: bump to 0.1.84.0-dev SerienStream Sammlungen mit Poster/Plot, Session-Cache für Sammlungs-URLs

0.1.84.0-dev - 2026-03-16

  • dev: bump to 0.1.83.5-dev Trakt Weiterschauen via watched/shows, Specials überspringen

0.1.83.5-dev - 2026-03-15

  • dev: SerienStream Suche via /suche?term=, Staffel 0 als Filme, Katalog-Suche entfernt

0.1.83.0-dev - 2026-03-15

  • dev: Trakt Performance, Suchfilter Phrase-Match, Debug-Settings Expert-Level

0.1.82.5-dev - 2026-03-15

  • dev: Update-Versionsvergleich numerisch korrigiert

0.1.82.0-dev - 2026-03-14

  • dev: HDFilme Plot in Rubrik Neuste anzeigen

0.1.81.5-dev - 2026-03-14

  • dev: YouTube HD via inputstream.adaptive, DokuStreams Suche fix

0.1.81.0-dev - 2026-03-14

  • dev: YouTube Fixes, Trakt Credentials fest, Upcoming Ansicht, Watchlist Kontextmenue

0.1.80.5-dev - 2026-03-13

  • dev: YouTube: yt-dlp ZIP-Installation von GitHub, kein yesno-Dialog

0.1.80.0-dev - 2026-03-13

  • dev: YouTube-Plugin: yt-dlp Suche, Bug-Fix Any-Import

0.1.79.5-dev - 2026-03-11

  • dev: Changelog-Hook auf prepare-commit-msg umgestellt

0.1.79.0-dev - 2026-03-11

  • dev: TMDB API-Key automatisch aus Kodi-Scraper ermitteln

0.1.78.5-dev - 2026-03-11

  • dev: Uhrzeit aus Episodentitel entfernen, tvshow-Mediatype fix

0.1.78.0-dev - 2026-03-11

  • dev: Trakt-Scrobbling fuer alle Wiedergabe-Pfade

0.1.77.5-dev - 2026-03-10

  • dev: Max. Eintraege pro Seite Setting pro Plugin

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_source und Funktion _show_choose_source().
  • Fix: SyntaxError global _TRAKT_PLUGIN_MATCH_CACHE_TS war 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: Neuer TraktCalendarItem-Dataclass und get_calendar()-Methode (Trakt Calendar API: /calendars/my/shows/{start}/{days}).

Python 3.8 Kompatibilität (Windows/Kodi)

  • from __future__ import annotations in 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). Behebt TypeError: 'type' object is not subscriptable auf Kodi-Installationen mit Python 3.8 (Windows).

Bugfixes

  • dokustreams_plugin.py: Regex r"(\\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 mit aniworld_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 mit continue).
  • Silent-Failure-Fix (metadata.py): Neues _initialized-Flag und _require_init()-Guard wenn init() nicht aufgerufen wurde, erscheint jetzt eine Warnung im Log statt lautlosem No-Op.
  • Thread-Safety (default.py): Neue Locks _PLUGIN_CACHE_LOCK und _GENRE_TITLES_CACHE_LOCK schü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/top
  • latest_titles(page) scrapt Neuerscheinungen von /movies/new mit 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 Startseite
  • titles_for_tag(tag, page) Titelliste pro Schlagwort mit Pagination
  • random_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 extrahiert
  • latest_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-Paginierung
  • genre_page_count(genre) Gesamtanzahl der Genre-Seiten aus Pagination-Links extrahiert
  • alpha_index() gibt A-Z-Buchstaben + 0-9 zurück
  • titles_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 1980
  • titles_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 nach voteAverage (absteigend)
  • latest_titles(page) neue Filme (Alias zu new_titles_page(page))
  • Neue Capabilities: popular_series, latest_titles
  • Hinweis: Ratings (voteAverage, voteCount) waren bereits in metadata_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.resolveurl als Addon-Abhaengigkeit in addon.xml eingetragen.

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: Dev ist jetzt ein eigener Kanal.
  • Neue Setting-URL update_repo_url_dev fuer direkte Dev-Repo-Auswahl.
  • Repository-Addon auf 1.0.1 erhoeht.
  • repository.viewit enthaelt jetzt zusaetzlich den smrzips-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 Seite geladen.
  • 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.