268 lines
12 KiB
Markdown
268 lines
12 KiB
Markdown
## 0.1.85.5-dev - 2026-04-02
|
||
|
||
- dev: bump to 0.1.85.0-dev settings.xml und default.py auf 0.1.84.5-Stand zurueckgesetzt, serienstream_plugin.py aktuell behalten
|
||
|
||
## 0.1.85.0-dev - 2026-04-01
|
||
|
||
- dev: bump to 0.1.84.5-dev settings.xml auf Kodi 19+ Format (version=1) migriert, Level-Filter fuer Expert/Advanced korrigiert
|
||
|
||
## 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.
|