From fe88e2d8fa8d35469f9f8f5893a551ff9dbf9502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Wed, 30 Nov 2022 01:35:23 +0200 Subject: [PATCH 1/4] Extract ids for show search results --- trakt/sync.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/trakt/sync.py b/trakt/sync.py index 8881c42..cc7acb2 100644 --- a/trakt/sync.py +++ b/trakt/sync.py @@ -288,19 +288,26 @@ def search_by_id(query, id_type='imdb', media_type=None, slugify_query=False): if 'episode' in d: from trakt.tv import TVEpisode show = d.pop('show') - extract_ids(d['episode']) + episode = d.pop('episode') + extract_ids(episode) results.append(TVEpisode(show.get('title', None), show_id=show['ids'].get('trakt'), - **d.pop('episode'))) + **episode)) elif 'movie' in d: from trakt.movies import Movie - results.append(Movie(**d.pop('movie'))) + movie = d.pop('movie') + extract_ids(movie) + results.append(Movie(**movie)) elif 'show' in d: from trakt.tv import TVShow - results.append(TVShow(**d.pop('show'))) + show = d.pop('show') + extract_ids(show) + results.append(TVShow(**show)) elif 'person' in d: from trakt.people import Person - results.append(Person(**d.pop('person'))) + person = d.pop('person') + extract_ids(person) + results.append(Person(**person)) yield results From 13f78d8722bfd6500b8598f4faff67278c383c9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Wed, 30 Nov 2022 01:52:24 +0200 Subject: [PATCH 2/4] Fix TVShow construct in UserList.get_items Construct in a way that ids are filled properly --- trakt/users.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/trakt/users.py b/trakt/users.py index 60a4b86..aa75a41 100644 --- a/trakt/users.py +++ b/trakt/users.py @@ -132,27 +132,24 @@ def get_items(self): item_data = item.pop(item_type) extract_ids(item_data) if item_type == 'movie': - self._items.append(Movie(item_data['title'], item_data['year'], - item_data['slug'])) + movie = Movie(**item_data) + self._items.append(movie) elif item_type == 'show': - self._items.append(TVShow(item_data['title'], - item_data['slug'])) + show = TVShow(**item_data) + self._items.append(show) elif item_type == 'season': show_data = item.pop('show') extract_ids(show_data) - season = TVSeason(show_data['title'], item_data['number'], - show_data['slug']) + title = show_data.pop('title') + season = TVSeason(title, item_data['number'], **show_data) self._items.append(season) elif item_type == 'episode': show_data = item.pop('show') extract_ids(show_data) - episode = TVEpisode(show_data['title'], item_data['season'], - item_data['number'], - show_id=show_data['trakt']) + episode = TVEpisode(show_data['title'], **item_data, show_id=show_data['trakt']) self._items.append(episode) elif item_type == 'person': - self._items.append(Person(item_data['name'], - item_data['slug'])) + self._items.append(Person(**item_data)) yield self._items From 6efa3971cd449fb543db817ff816226a1e6cae75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Wed, 30 Nov 2022 23:55:54 +0200 Subject: [PATCH 3/4] Use extract_ids consistenly in UserList.get_items --- trakt/users.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/trakt/users.py b/trakt/users.py index aa75a41..600b768 100644 --- a/trakt/users.py +++ b/trakt/users.py @@ -132,9 +132,11 @@ def get_items(self): item_data = item.pop(item_type) extract_ids(item_data) if item_type == 'movie': + extract_ids(item_data) movie = Movie(**item_data) self._items.append(movie) elif item_type == 'show': + extract_ids(item_data) show = TVShow(**item_data) self._items.append(show) elif item_type == 'season': @@ -146,9 +148,11 @@ def get_items(self): elif item_type == 'episode': show_data = item.pop('show') extract_ids(show_data) + extract_ids(item_data) episode = TVEpisode(show_data['title'], **item_data, show_id=show_data['trakt']) self._items.append(episode) elif item_type == 'person': + extract_ids(item_data) self._items.append(Person(**item_data)) yield self._items From ea690b64ecfed63354a225840d097a9a591635ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Thu, 1 Dec 2022 14:48:05 +0200 Subject: [PATCH 4/4] Extract TVEpisode in sync same way as in users --- trakt/sync.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/trakt/sync.py b/trakt/sync.py index cc7acb2..3eaa74c 100644 --- a/trakt/sync.py +++ b/trakt/sync.py @@ -288,11 +288,11 @@ def search_by_id(query, id_type='imdb', media_type=None, slugify_query=False): if 'episode' in d: from trakt.tv import TVEpisode show = d.pop('show') + extract_ids(show) episode = d.pop('episode') extract_ids(episode) - results.append(TVEpisode(show.get('title', None), - show_id=show['ids'].get('trakt'), - **episode)) + episode = TVEpisode(show['title'], **episode, show_id=show['trakt']) + results.append(episode) elif 'movie' in d: from trakt.movies import Movie movie = d.pop('movie')