From 42e69f9c5eb1cc85bf952be0164d340bff46460c Mon Sep 17 00:00:00 2001 From: Shaun Date: Sat, 15 Dec 2018 09:28:34 +1100 Subject: [PATCH] add status for series, add season and episode details for series and seasons --- addon.xml | 2 +- resources/lib/functions.py | 2 ++ resources/lib/item_functions.py | 46 ++++++++++++++++++++------------- 3 files changed, 31 insertions(+), 19 deletions(-) diff --git a/addon.xml b/addon.xml index 24d32ac..68fd6fb 100644 --- a/addon.xml +++ b/addon.xml @@ -1,7 +1,7 @@ diff --git a/resources/lib/functions.py b/resources/lib/functions.py index 93543f6..5769b13 100644 --- a/resources/lib/functions.py +++ b/resources/lib/functions.py @@ -546,6 +546,8 @@ def processDirectory(url, progress, params, use_cache_data=False): for item_details in item_list: + item_details.total_items = item_count + if progress is not None: percent_done = (float(current_item) / float(item_count)) * 100 progress.update(int(percent_done), string_load(30126) + str(current_item)) diff --git a/resources/lib/item_functions.py b/resources/lib/item_functions.py index c09b981..85856f6 100644 --- a/resources/lib/item_functions.py +++ b/resources/lib/item_functions.py @@ -65,6 +65,7 @@ class ItemDetails(): width = 0 cast = None tagline = "" + status = None resume_time = 0 duration = 0 @@ -79,6 +80,7 @@ class ItemDetails(): item_type = None subtitle_lang = "" subtitle_available = False + total_items = 0 song_artist = "" album_artist = "" @@ -110,13 +112,26 @@ def extract_item_info(item, gui_options): if item_details.item_type == "Episode": item_details.episode_number = item["IndexNumber"] - - if item_details.item_type == "Episode": item_details.season_number = item["ParentIndexNumber"] + elif item_details.item_type == "Season": item_details.season_number = item["IndexNumber"] item_details.series_id = item["SeriesId"] + elif item_details.item_type == "Series": + item_details.status = item["Status"] + + elif item_details.item_type == "Audio": + item_details.track_number = item["IndexNumber"] + item_details.album_name = item["Album"] + artists = item["Artists"] + if artists is not None and len(artists) > 0: + item_details.song_artist = artists[0] # get first artist + + elif item_details.item_type == "MusicAlbum": + item_details.album_artist = item["AlbumArtist"] + item_details.album_name = item_details.name + if item_details.season_number is None: item_details.season_number = 0 if item_details.episode_number is None: @@ -125,18 +140,7 @@ def extract_item_info(item, gui_options): if item["Taglines"] is not None and len(item["Taglines"]) > 0: item_details.tagline = item["Taglines"][0] - if item_details.item_type == "Audio": - item_details.track_number = item["IndexNumber"] - item_details.album_name = item["Album"] - artists = item["Artists"] - if artists is not None and len(artists) > 0: - item_details.song_artist = artists[0] # get first artist - - if item_details.item_type == "MusicAlbum": - item_details.album_artist = item["AlbumArtist"] - item_details.album_name = item_details.name - - # set the item name + # set the item name # override with name format string from request name_format = gui_options["name_format"] name_format_type = gui_options["name_format_type"] @@ -416,7 +420,7 @@ def add_gui_item(url, item_details, display_options, folder=True): item_properties["IsPlayable"] = 'false' - if folder == False and is_video: + if not folder and is_video: item_properties["TotalTime"] = str(item_details.duration) item_properties["ResumeTime"] = str(item_details.resume_time) @@ -474,12 +478,18 @@ def add_gui_item(url, item_details, display_options, folder=True): info_labels["mediatype"] = mediatype - if mediatype == 'episode': + if item_type == 'episode': info_labels["episode"] = item_details.episode_number - - if (mediatype == 'season') or (mediatype == 'episode'): info_labels["season"] = item_details.season_number + elif item_type == 'season': + info_labels["season"] = item_details.total_items + + elif item_type == "series": + info_labels["episode"] = item_details.total_episodes + info_labels["season"] = item_details.total_seasons + info_labels["Status"] = item_details.status + if is_video: info_labels["Overlay"] = item_details.overlay