dev: switch Serienstream genres to strict page-on-demand flow

This commit is contained in:
2026-02-24 13:33:35 +01:00
parent 0d10219ccb
commit 358cfb1967
2 changed files with 8 additions and 6 deletions

View File

@@ -2280,6 +2280,10 @@ def _show_category_titles_page(plugin_name: str, category: str, page: int = 1) -
titles.sort(key=lambda value: value.casefold()) titles.sort(key=lambda value: value.casefold())
if titles: 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( use_source, show_tmdb, prefer_source = _metadata_policy(
plugin_name, plugin, allow_tmdb=_tmdb_list_enabled() plugin_name, plugin, allow_tmdb=_tmdb_list_enabled()
) )

View File

@@ -1110,7 +1110,6 @@ class SerienstreamPlugin(BasisPlugin):
self._episode_label_cache: Dict[Tuple[str, str], Dict[str, EpisodeInfo]] = {} self._episode_label_cache: Dict[Tuple[str, str], Dict[str, EpisodeInfo]] = {}
self._catalog_cache: Optional[Dict[str, List[SeriesResult]]] = None self._catalog_cache: Optional[Dict[str, List[SeriesResult]]] = None
self._genre_group_cache: Dict[str, Dict[str, List[str]]] = {} self._genre_group_cache: Dict[str, Dict[str, List[str]]] = {}
self._genre_page_titles_cache: Dict[Tuple[str, int], List[str]] = {}
self._genre_page_entries_cache: Dict[Tuple[str, int], List[SeriesResult]] = {} self._genre_page_entries_cache: Dict[Tuple[str, int], List[SeriesResult]] = {}
self._genre_page_has_more_cache: Dict[Tuple[str, int], bool] = {} self._genre_page_has_more_cache: Dict[Tuple[str, int], bool] = {}
self._popular_cache: Optional[List[SeriesResult]] = None self._popular_cache: Optional[List[SeriesResult]] = None
@@ -1322,7 +1321,7 @@ class SerienstreamPlugin(BasisPlugin):
def capabilities(self) -> set[str]: def capabilities(self) -> set[str]:
"""Meldet unterstützte Features für Router-Menüs.""" """Meldet unterstützte Features für Router-Menüs."""
return {"popular_series", "genres", "latest_episodes"} return {"popular_series", "genres", "latest_episodes", "minimal_genre_list"}
def popular_series(self) -> List[str]: def popular_series(self) -> List[str]:
"""Liefert die Titel der beliebten Serien (Quelle: `/beliebte-serien`).""" """Liefert die Titel der beliebten Serien (Quelle: `/beliebte-serien`)."""
@@ -1518,7 +1517,6 @@ class SerienstreamPlugin(BasisPlugin):
entries = entries[:GENRE_LIST_PAGE_SIZE] entries = entries[:GENRE_LIST_PAGE_SIZE]
self._genre_page_entries_cache[cache_key] = list(entries) self._genre_page_entries_cache[cache_key] = list(entries)
self._genre_page_titles_cache[cache_key] = [entry.title for entry in entries if entry.title]
self._genre_page_has_more_cache[cache_key] = bool(has_more) self._genre_page_has_more_cache[cache_key] = bool(has_more)
return list(entries), bool(has_more) return list(entries), bool(has_more)