From da7ce0de5b0d605cb6e3c26be14f2aaa9d24abd4 Mon Sep 17 00:00:00 2001 From: Nirvana Date: Wed, 18 Mar 2026 20:15:24 +0100 Subject: [PATCH] Add discovery --- lib/streaming_providers/providers/discovery/vod_manager.py | 4 ++++ lib/streaming_providers/providers/rtlplus/vod_manager.py | 6 ++++++ routes/vod.py | 1 + 3 files changed, 11 insertions(+) diff --git a/lib/streaming_providers/providers/discovery/vod_manager.py b/lib/streaming_providers/providers/discovery/vod_manager.py index 323683c..d111384 100644 --- a/lib/streaming_providers/providers/discovery/vod_manager.py +++ b/lib/streaming_providers/providers/discovery/vod_manager.py @@ -93,6 +93,10 @@ class DiscoveryVodManager: if not content_id: return self._root() + # Restore leading slash stripped by Bottle's :path wildcard. + if "/" in content_id and not content_id.startswith("/") and ":" not in content_id: + content_id = "/" + content_id + logger.debug(f"DiscoveryVodManager: get_vod_category({content_id!r})") return self._fetch_children(content_id) diff --git a/lib/streaming_providers/providers/rtlplus/vod_manager.py b/lib/streaming_providers/providers/rtlplus/vod_manager.py index 543c0df..8017480 100644 --- a/lib/streaming_providers/providers/rtlplus/vod_manager.py +++ b/lib/streaming_providers/providers/rtlplus/vod_manager.py @@ -111,6 +111,12 @@ class RTLPlusVodManager: if not content_id: return self._list_root() + # Restore leading slash stripped by Bottle's :path wildcard for + # watch-path style IDs (e.g. "video-tv/filme" → "/video-tv/filme"). + # Opaque IDs (rrn:, lane:, season: …) never start with "/" anyway. + if "/" in content_id and not content_id.startswith("/") and ":" not in content_id: + content_id = "/" + content_id + if content_id.startswith(RTLPlusDefaults.VOD_MOVIES_ROOT_WATCH_PATH): return self._dispatch_movies([content_id]) diff --git a/routes/vod.py b/routes/vod.py index 81ce04c..9e1b1e0 100644 --- a/routes/vod.py +++ b/routes/vod.py @@ -72,6 +72,7 @@ def setup_vod_routes(app, manager): """ if not content_id: return get_vod_root(provider) + try: entries = manager.get_vod_node( provider_name=provider,