From 45d447cdb3057923924a79b458a3b848ca436708 Mon Sep 17 00:00:00 2001 From: "itdrui.de" Date: Tue, 24 Feb 2026 14:00:19 +0100 Subject: [PATCH] dev: load full metadata for currently opened genre page --- CHANGELOG-DEV.md | 2 +- addon/default.py | 10 +++------- addon/plugins/serienstream_plugin.py | 13 ++++++++++++- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG-DEV.md b/CHANGELOG-DEV.md index 930c293..241ae23 100644 --- a/CHANGELOG-DEV.md +++ b/CHANGELOG-DEV.md @@ -7,4 +7,4 @@ - 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. -- Detail-Metadaten werden erst beim Oeffnen von Staffel/Episode geholt. +- Metadaten werden fuer die jeweils geoeffnete Seite vollstaendig geladen und angezeigt. diff --git a/addon/default.py b/addon/default.py index 8336eb4..4233519 100644 --- a/addon/default.py +++ b/addon/default.py @@ -2285,13 +2285,9 @@ def _show_category_titles_page(plugin_name: str, category: str, page: int = 1) - titles.sort(key=lambda value: value.casefold()) if titles: - minimal_genre_list = _plugin_has_capability(plugin, "minimal_genre_list") - if minimal_genre_list: - use_source, show_tmdb, prefer_source = True, False, True - else: - use_source, show_tmdb, prefer_source = _metadata_policy( - plugin_name, plugin, allow_tmdb=_tmdb_list_enabled() - ) + use_source, show_tmdb, prefer_source = _metadata_policy( + plugin_name, plugin, allow_tmdb=_tmdb_list_enabled() + ) plugin_meta = _collect_plugin_metadata(plugin, titles) if use_source else {} show_plot = _get_setting_bool("tmdb_show_plot", default=True) show_art = _get_setting_bool("tmdb_show_art", default=True) diff --git a/addon/plugins/serienstream_plugin.py b/addon/plugins/serienstream_plugin.py index a4bd728..04cbdbd 100644 --- a/addon/plugins/serienstream_plugin.py +++ b/addon/plugins/serienstream_plugin.py @@ -1321,7 +1321,7 @@ class SerienstreamPlugin(BasisPlugin): def capabilities(self) -> set[str]: """Meldet unterstützte Features für Router-Menüs.""" - return {"popular_series", "genres", "latest_episodes", "minimal_genre_list"} + return {"popular_series", "genres", "latest_episodes"} def popular_series(self) -> List[str]: """Liefert die Titel der beliebten Serien (Quelle: `/beliebte-serien`).""" @@ -1786,6 +1786,17 @@ class SerienstreamPlugin(BasisPlugin): if series.description: info["plot"] = series.description + # Fuer Listenansichten laden wir pro Seite die Detail-Metadaten vollständig nach. + try: + soup = _get_soup(series.url, session=get_requests_session("serienstream", headers=HEADERS)) + parsed_info, parsed_art = _extract_series_metadata(soup) + if parsed_info: + info.update(parsed_info) + if parsed_art: + art.update(parsed_art) + except Exception: + pass + self._series_metadata_cache[cache_key] = (dict(info), dict(art)) return info, art, None