From 736e22d12827494e66137105c2fe607c63c01505 Mon Sep 17 00:00:00 2001 From: Bas Rieter Date: Sun, 15 Sep 2024 12:06:16 +0200 Subject: [PATCH] Fixed: Show better error on Geo restrictions for Videoland (See #1834). --- .../videolandnl/chn_videolandnl.py | 14 +++++++++++--- .../language/resource.language.en_gb/strings.po | 6 +++++- resources/lib/helpers/languagehelper.py | 2 ++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/channels/channel.videoland/videolandnl/chn_videolandnl.py b/channels/channel.videoland/videolandnl/chn_videolandnl.py index 21e2f3b7..7379017b 100644 --- a/channels/channel.videoland/videolandnl/chn_videolandnl.py +++ b/channels/channel.videoland/videolandnl/chn_videolandnl.py @@ -384,10 +384,18 @@ def filter_premium(self) -> Optional[bool]: def update_video_item(self, item: MediaItem) -> MediaItem: data = JsonHelper(UriHandler.open(item.url, additional_headers=self.httpHeaders)) - from resources.lib.logger import Logger - import json - Logger.debug(json.dumps(data.json, indent=2)) + + # Check for video info and possible locks. video_info = data.get_value("blocks", 0, "content", "items", 0, "itemContent", "video") + if not video_info: + return item + + if len(video_info.get("assets", [])) == 0: + target_info = data.get_value("blocks", 0, "content", "items", 0, "itemContent", "action", "target") + if target_info["type"] == "lock" and target_info["value_lock"]["reason"].lower() == "geoblocked": + XbmcWrapper.show_dialog(LanguageHelper.GeoLockedId, LanguageHelper.GeoLockedMessageId) + item.isGeoLocked = True + return item # Find the first Dash item for DRM info (assuming they are all equally DRM-ed). dash_assets = [v for v in video_info["assets"] if v["format"] == "dashcenc"] diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po index 6231cb7b..3e2e5a9c 100644 --- a/resources/language/resource.language.en_gb/strings.po +++ b/resources/language/resource.language.en_gb/strings.po @@ -1196,7 +1196,11 @@ msgctxt "#30587" msgid "Show streams with accessibility features" msgstr "" -# empty strings from id 30588 to 30589 +msgctxt "#30588" +msgid "This stream cannot be played due to geographical restrictions." +msgstr "" + +# empty strings from id 30589 to 30589 msgctxt "#30590" msgid "Set a new Retrospect PIN" diff --git a/resources/lib/helpers/languagehelper.py b/resources/lib/helpers/languagehelper.py index 4a21bea8..55927a96 100644 --- a/resources/lib/helpers/languagehelper.py +++ b/resources/lib/helpers/languagehelper.py @@ -129,6 +129,8 @@ class LanguageHelper(object): AddonsNotEnabledText = 30568 FetchMultiApi = 30584 PageOfPages = 30585 + # 30586 and 30587 taken by settings. + GeoLockedMessageId = 30588 Active = 30068 InitChannelTitle = 30556