diff --git a/VERSION b/VERSION index fd6ec9f5..30d36565 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.16.1-develop2 +1.16.1-develop3 diff --git a/modules/meta.py b/modules/meta.py index 9d44b9cf..b5d0c273 100644 --- a/modules/meta.py +++ b/modules/meta.py @@ -284,9 +284,9 @@ class MetadataFile(DataFile): if auto_type in ["genre", "mood", "style", "country", "network", "year", "decade", "content_rating", "subtitle_language", "audio_language", "resolution"]: search_tag = auto_type_translation[auto_type] if auto_type in auto_type_translation else auto_type if auto_type in ["decade", "subtitle_language", "audio_language"]: - auto_list = {i.key: i.title for i in library.get_tags(search_tag) if i.title not in exclude and i.key not in exclude} + auto_list = {str(i.key): i.title for i in library.get_tags(search_tag) if str(i.title) not in exclude and str(i.key) not in exclude} else: - auto_list = {i.title: i.title for i in library.get_tags(search_tag) if i.title not in exclude} + auto_list = {str(i.title): i.title for i in library.get_tags(search_tag) if str(i.title) not in exclude} if library.is_music: default_template = {"smart_filter": {"limit": 50, "sort_by": "plays.desc", "any": {f"artist_{auto_type}": f"<<{auto_type}>>"}}} default_title_format = "Most Played <> <>s" @@ -304,7 +304,7 @@ class MetadataFile(DataFile): tmdb_id, tvdb_id, imdb_id = library.get_ids(item) tmdb_item = config.TMDb.get_item(item, tmdb_id, tvdb_id, imdb_id, is_movie=True) if tmdb_item and tmdb_item.collection and tmdb_item.collection.id not in exclude and tmdb_item.collection.name not in exclude: - auto_list[tmdb_item.collection.id] = tmdb_item.collection.name + auto_list[str(tmdb_item.collection.id)] = tmdb_item.collection.name logger.exorcise() elif auto_type == "original_language": if not all_items: @@ -369,7 +369,7 @@ class MetadataFile(DataFile): try: results = self.config.TMDb.search_people(role["name"]) if results[0].id not in exclude: - auto_list[results[0].id] = results[0].name + auto_list[str(results[0].id)] = results[0].name person_count += 1 except TMDbNotFound: logger.error(f"TMDb Error: Actor {role['name']} Not Found") @@ -399,8 +399,8 @@ class MetadataFile(DataFile): methods["title_override"] = methods.pop("post_format_override") if "pre_format_override" in methods: methods["key_name_override"] = methods.pop("pre_format_override") - title_override = util.parse("Config", "title_override", dynamic, parent=map_name, methods=methods, datatype="dict") if "title_override" in methods else {} - key_name_override = util.parse("Config", "key_name_override", dynamic, parent=map_name, methods=methods, datatype="dict") if "key_name_override" in methods else {} + title_override = util.parse("Config", "title_override", dynamic, parent=map_name, methods=methods, datatype="strdict") if "title_override" in methods else {} + key_name_override = util.parse("Config", "key_name_override", dynamic, parent=map_name, methods=methods, datatype="strdict") if "key_name_override" in methods else {} test = util.parse("Config", "test", dynamic, parent=map_name, methods=methods, default=False, datatype="bool") if "test" in methods else False sync = util.parse("Config", "sync", dynamic, parent=map_name, methods=methods, default=False, datatype="bool") if "sync" in methods else False if "<>" in title_format: diff --git a/modules/tmdb.py b/modules/tmdb.py index d47ac9ff..34e99e43 100644 --- a/modules/tmdb.py +++ b/modules/tmdb.py @@ -139,7 +139,7 @@ class TMDb: except TMDbException as e: raise Failed(f"TMDb Error: No List found for TMDb ID {tmdb_id}: {e}") def get_popular_people(self, limit): - return {p.id: p.name for p in self.TMDb.popular_people().get_results(limit)} + return {str(p.id): p.name for p in self.TMDb.popular_people().get_results(limit)} def search_people(self, name): return self.TMDb.people_search(name) diff --git a/modules/trakt.py b/modules/trakt.py index d290013f..51ecd59c 100644 --- a/modules/trakt.py +++ b/modules/trakt.py @@ -241,7 +241,7 @@ class Trakt: return self._parse(items, typeless=pagenation == "popular", item_type="movie" if is_movie else "show") def get_people(self, data): - return {i[0][0]: i[0][1] for i in self._user_list(data) if i[1] == "tmdb_person"} + return {str(i[0][0]): i[0][1] for i in self._user_list(data) if i[1] == "tmdb_person"} def validate_trakt(self, trakt_lists, is_movie, trakt_type="list"): values = util.get_list(trakt_lists, split=False) diff --git a/modules/util.py b/modules/util.py index f872588e..85e2a83f 100644 --- a/modules/util.py +++ b/modules/util.py @@ -438,12 +438,14 @@ def parse(error, attribute, data, datatype=None, methods=None, parent=None, defa else: raise Failed(f"{error} Error: {display} {dict_data} is not a dictionary") return final_list - elif datatype in ["dict", "dictlist", "dictdict"]: + elif datatype in ["dict", "dictlist", "dictdict", "strdict"]: if isinstance(value, dict): if datatype == "dict": return value elif datatype == "dictlist": return {k: v if isinstance(v, list) else [v] for k, v in value.items()} + elif datatype == "strdict": + return {str(k): str(v) for k, v in value.items()} else: final_dict = {} for dict_key, dict_data in value.items():