From 5dcfb33f88f6fb69d01c89333820d7b32a14a6a5 Mon Sep 17 00:00:00 2001 From: kodi-svtplay-ci Date: Tue, 12 Sep 2023 20:51:27 +0000 Subject: [PATCH] [plugin.video.svtplay] 5.1.20 --- plugin.video.svtplay/addon.xml | 4 +- .../resources/lib/api/graphql.py | 46 +++++++++---------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/plugin.video.svtplay/addon.xml b/plugin.video.svtplay/addon.xml index 6d60c9e92..5360cb59c 100644 --- a/plugin.video.svtplay/addon.xml +++ b/plugin.video.svtplay/addon.xml @@ -1,4 +1,4 @@ - + @@ -19,7 +19,7 @@ https://github.com/nilzen/xbmc-svtplay https://forum.kodi.tv/showthread.php?tid=67110 -- Fixes broken listings due to provider change +- Updates to program listings icon.png diff --git a/plugin.video.svtplay/resources/lib/api/graphql.py b/plugin.video.svtplay/resources/lib/api/graphql.py index 8e61daffa..62042a834 100644 --- a/plugin.video.svtplay/resources/lib/api/graphql.py +++ b/plugin.video.svtplay/resources/lib/api/graphql.py @@ -104,24 +104,24 @@ def getGridPageContents(self, selectionId): if not json_data: return None items = json_data["selectionById"]["items"] - video_items = [] + list_items = [] for teaser in items: - raw_item = teaser["item"] - season_title = "" - if teaser["__typename"] == "season" and teaser["name"]: - season_title = teaser["name"] - title = raw_item["name"] - video_id = raw_item["urls"]["svtplay"] - geo_restricted = raw_item["restrictions"]["onlyAvailableInSweden"] - thumbnail = self.get_thumbnail_url(raw_item["images"]["cleanWide"]["id"], raw_item["images"]["cleanWide"]["changed"]) if "images" in raw_item else "" + item = teaser["item"] + title = item["name"] + if self.__is_video(item["__typename"]) and item["__typename"] != "Single": + title = "{tvshow} - {episode}".format(episode=item["name"], tvshow=item["parent"]["name"]) + item_id = item["urls"]["svtplay"] + geo_restricted = item["restrictions"]["onlyAvailableInSweden"] + thumbnail = self.get_thumbnail_url(item["images"]["cleanWide"]["id"], item["images"]["cleanWide"]["changed"]) if "images" in item else "" fanart = self.get_fanart_url(teaser["images"]["wide"]["id"], teaser["images"]["wide"]["changed"]) if "images" in teaser else "" info = { "plot" : teaser["description"], - "duration" : raw_item.get("duration", 0) + "duration" : item.get("duration", 0), + "episode" : item.get("number", 0), + "tvshowtitle" : item["parent"]["name"] if "parent" in item else "" } - video_item = VideoItem(title, video_id, thumbnail, geo_restricted, info, fanart, season_title) - video_items.append(video_item) - return video_items + list_items.append(self.__create_item(title, item["__typename"], item_id, geo_restricted, thumbnail, info, fanart)) + return list_items def getVideoContent(self, slug): operation_name = "DetailsPageQuery" @@ -136,22 +136,22 @@ def getVideoContent(self, slug): show_data = json_data["detailsPageByPath"] show_image_id = show_data["images"]["wide"]["id"] show_image_changed = show_data["images"]["wide"]["changed"] - for content in json_data["detailsPageByPath"]["associatedContent"]: - if content["id"] == "upcoming": + for selection in json_data["detailsPageByPath"]["associatedContent"]: + if selection["id"] == "upcoming": continue - for content_item in content["items"]: - item = content_item["item"] - season_title = "" - if content["selectionType"] == "season" and content["name"]: - season_title = content["name"] + for teaser in selection["items"]: + item = teaser["item"] + season_title = selection["name"] if selection["selectionType"] == "season" else "" title = item["name"] video_id = item["urls"]["svtplay"] geo_restricted = item["restrictions"]["onlyAvailableInSweden"] - thumbnail = self.get_thumbnail_url(item["image"]["id"], item["image"]["changed"]) if "image" in item else "" + thumbnail = self.get_thumbnail_url(item["images"]["cleanWide"]["id"], item["images"]["cleanWide"]["changed"]) if "images" in item else "" fanart = self.get_fanart_url(show_image_id, show_image_changed) info = { - "plot" : content_item["description"], - "duration" : item.get("duration", 0) + "plot" : teaser["description"], + "duration" : item.get("duration", 0), + "episode" : item.get("number", 0), + "tvshowtitle" : item["parent"]["name"] if "parent" in item else "" } video_item = VideoItem(title, video_id, thumbnail, geo_restricted, info, fanart, season_title) video_items.append(video_item)