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

This commit is contained in:
2026-03-31 20:57:51 +02:00
parent 938f6c0e3d
commit e5d93e3af6
4 changed files with 86 additions and 8 deletions

View File

@@ -4765,13 +4765,33 @@ def _show_collection_titles_page(plugin_name: str, collection: str, page: int =
xbmcplugin.endOfDirectory(handle)
return
titles = [str(t).strip() for t in titles if t and str(t).strip()]
direct_play = bool(plugin_name.casefold() == "einschalten"
and _get_setting_bool("einschalten_enable_playback", default=False))
for title in titles:
_add_directory_item(handle, title, "play_movie" if direct_play else "seasons",
{"plugin": plugin_name, "title": title, **_series_url_params(plugin, title)},
is_folder=not direct_play)
if titles:
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)
tmdb_prefetched: dict[str, tuple[dict[str, str], dict[str, str], list[TmdbCastMember]]] = {}
tmdb_titles = list(titles) if show_tmdb else []
if show_tmdb and prefer_source and use_source:
tmdb_titles = [
t for t in titles
if _needs_tmdb((plugin_meta.get(t) or ({},))[0], (plugin_meta.get(t) or ({}, {}))[1],
want_plot=show_plot, want_art=show_art)
]
if show_tmdb and tmdb_titles:
with _busy_dialog(f"{collection} wird geladen..."):
tmdb_prefetched = _tmdb_labels_and_art_bulk(tmdb_titles)
for title in titles:
tmdb_info, tmdb_art, tmdb_cast = tmdb_prefetched.get(title, ({}, {}, [])) if show_tmdb else ({}, {}, [])
meta = plugin_meta.get(title)
info_labels, art, cast = _merge_metadata(title, tmdb_info, tmdb_art, tmdb_cast, meta)
info_labels = dict(info_labels or {})
info_labels.setdefault("mediatype", "tvshow")
_add_directory_item(handle, title, "seasons",
{"plugin": plugin_name, "title": title, **_series_url_params(plugin, title)},
is_folder=True, info_labels=info_labels, art=art, cast=cast)
_add_directory_item(handle, "Naechste Seite", "collection_titles_page",
{"plugin": plugin_name, "collection": collection, "page": str(page + 1)}, is_folder=True)
xbmcplugin.endOfDirectory(handle)