Skip to content

Commit acb3897

Browse files
glensccodex
andcommitted
Use build_uri in tv module
Co-authored-by: OpenAI Codex <codex@openai.com>
1 parent a1ea71a commit acb3897

1 file changed

Lines changed: 32 additions & 58 deletions

File tree

trakt/tv.py

Lines changed: 32 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
add_to_watchlist, checkin_media, comment,
1414
delete_checkin, rate, remove_from_collection,
1515
remove_from_history, remove_from_watchlist, search)
16-
from trakt.utils import airs_date, slugify
16+
from trakt.utils import airs_date, build_uri, slugify
1717

1818
__author__ = 'Jon Nappi'
1919
__all__ = ['dismiss_recommendation', 'get_recommended_shows', 'genres',
@@ -44,9 +44,7 @@ def get_recommended_shows(page=1, limit=10):
4444
history and your friends. Results are returned with the top recommendation
4545
first.
4646
"""
47-
data = yield 'recommendations/shows?page={page}&limit={limit}'.format(
48-
page=page, limit=limit
49-
)
47+
data = yield build_uri('recommendations/shows', page=page, limit=limit)
5048
yield [TVShow(**show) for show in data]
5149

5250

@@ -59,11 +57,7 @@ def genres():
5957

6058
@get
6159
def popular_shows(page=1, limit=10, extended=None):
62-
uri = 'shows/popular?page={page}&limit={limit}'.format(
63-
page=page, limit=limit
64-
)
65-
if extended:
66-
uri += '&extended={extended}'.format(extended=extended)
60+
uri = build_uri('shows/popular', page=page, limit=limit, extended=extended)
6761

6862
data = yield uri
6963
yield [TVShow(**show) for show in data]
@@ -72,11 +66,7 @@ def popular_shows(page=1, limit=10, extended=None):
7266
@get
7367
def trending_shows(page=1, limit=10, extended=None):
7468
"""All :class:`TVShow`'s being watched right now"""
75-
uri = 'shows/trending?page={page}&limit={limit}'.format(
76-
page=page, limit=limit
77-
)
78-
if extended:
79-
uri += '&extended={extended}'.format(extended=extended)
69+
uri = build_uri('shows/trending', page=page, limit=limit, extended=extended)
8070

8171
data = yield uri
8272
yield [TVShow(**show['show']) for show in data]
@@ -90,11 +80,8 @@ def updated_shows(timestamp=None, page=1, limit=10, extended=None):
9080
"""
9181
y_day = datetime.now() - timedelta(1)
9282
ts = timestamp or int(y_day.strftime('%s')) * 1000
93-
uri = 'shows/updates/{start_date}?page={page}&limit={limit}'.format(
94-
start_date=ts, page=page, limit=limit
95-
)
96-
if extended:
97-
uri += '&extended={extended}'.format(extended=extended)
83+
uri = build_uri('shows/updates/{start_date}', start_date=ts, page=page,
84+
limit=limit, extended=extended)
9885

9986
data = yield uri
10087
yield [TVShow(**show) for show in data]
@@ -111,11 +98,9 @@ def recommended_shows(time_period='weekly', page=1, limit=10, extended=None):
11198
valid_time_period
11299
))
113100

114-
uri = 'shows/recommended/{time_period}?page={page}&limit={limit}'.format(
115-
time_period=time_period, page=page, limit=limit
116-
)
117-
if extended:
118-
uri += '&extended={extended}'.format(extended=extended)
101+
uri = build_uri('shows/recommended/{time_period}',
102+
time_period=time_period, page=page, limit=limit,
103+
extended=extended)
119104

120105
data = yield uri
121106
yield [TVShow(**show['show']) for show in data]
@@ -134,11 +119,8 @@ def played_shows(time_period='weekly', page=1, limit=10, extended=None):
134119
valid_time_period
135120
))
136121

137-
uri = 'shows/played/{time_period}?page={page}&limit={limit}'.format(
138-
time_period=time_period, page=page, limit=limit
139-
)
140-
if extended:
141-
uri += '&extended={extended}'.format(extended=extended)
122+
uri = build_uri('shows/played/{time_period}', time_period=time_period,
123+
page=page, limit=limit, extended=extended)
142124

143125
data = yield uri
144126
yield [TVShow(**show['show']) for show in data]
@@ -156,11 +138,8 @@ def watched_shows(time_period='weekly', page=1, limit=10, extended=None):
156138
valid_time_period
157139
))
158140

159-
uri = 'shows/watched/{time_period}?page={page}&limit={limit}'.format(
160-
time_period=time_period, page=page, limit=limit
161-
)
162-
if extended:
163-
uri += '&extended={extended}'.format(extended=extended)
141+
uri = build_uri('shows/watched/{time_period}', time_period=time_period,
142+
page=page, limit=limit, extended=extended)
164143

165144
data = yield uri
166145
yield [TVShow(**show['show']) for show in data]
@@ -178,11 +157,9 @@ def collected_shows(time_period='weekly', page=1, limit=10, extended=None):
178157
valid_time_period
179158
))
180159

181-
uri = 'shows/collected/{time_period}?page={page}&limit={limit}'.format(
182-
time_period=time_period, page=page, limit=limit
183-
)
184-
if extended:
185-
uri += '&extended={extended}'.format(extended=extended)
160+
uri = build_uri('shows/collected/{time_period}',
161+
time_period=time_period, page=page, limit=limit,
162+
extended=extended)
186163

187164
data = yield uri
188165
yield [TVShow(**show['show']) for show in data]
@@ -194,11 +171,8 @@ def anticipated_shows(page=1, limit=10, extended=None):
194171
Return most anticipated shows based on the number of lists
195172
a show appears on.
196173
"""
197-
uri = 'shows/anticipated?page={page}&limit={limit}'.format(
198-
page=page, limit=limit
199-
)
200-
if extended:
201-
uri += '&extended={extended}'.format(extended=extended)
174+
uri = build_uri('shows/anticipated', page=page, limit=limit,
175+
extended=extended)
202176
data = yield uri
203177
yield [TVShow(**show['show']) for show in data]
204178

@@ -270,16 +244,16 @@ def _build(self, data):
270244

271245
@property
272246
def ext(self):
273-
return 'shows/{slug}'.format(slug=self.trakt or self.slug)
247+
return build_uri('shows/{slug}', slug=self.trakt or self.slug)
274248

275249
@property
276250
def ext_full(self):
277-
return self.ext + '?extended=full'
251+
return build_uri(self.ext, extended='full')
278252

279253
@property
280254
def images_ext(self):
281255
"""Uri to retrieve additional image information."""
282-
return self.ext + '?extended=images'
256+
return build_uri(self.ext, extended='images')
283257

284258
@property
285259
@get
@@ -438,7 +412,7 @@ def seasons(self):
438412
seasons which each contain :class:`TVEpisode` elements
439413
"""
440414
if self._seasons is None:
441-
data = yield self.ext + '/seasons?extended=episodes'
415+
data = yield build_uri(self.ext + '/seasons', extended='episodes')
442416
self._seasons = []
443417
for season in data:
444418
# Prepare episodes
@@ -463,7 +437,7 @@ def last_episode(self):
463437
is found, `None` will be returned.
464438
"""
465439
if self._last_episode is None:
466-
data = yield self.ext + '/last_episode?extended=full'
440+
data = yield build_uri(self.ext + '/last_episode', extended='full')
467441
self._last_episode = data and TVEpisode(show=self.title,
468442
show_id=self.trakt, **data)
469443
yield self._last_episode
@@ -475,7 +449,7 @@ def next_episode(self):
475449
is found, `None` will be returned.
476450
"""
477451
if self._next_episode is None:
478-
data = yield self.ext + '/next_episode?extended=full'
452+
data = yield build_uri(self.ext + '/next_episode', extended='full')
479453
self._next_episode = data and TVEpisode(show=self.title,
480454
show_id=self.trakt, **data)
481455
yield self._next_episode
@@ -579,7 +553,8 @@ def __init__(self, show, season=1, slug=None, episodes=None, show_id=None, **kwa
579553
self.show_id = show_id
580554
self.season = season
581555
self.slug = slug or slugify(show)
582-
self.ext = 'shows/{id}/seasons/{season}'.format(id=self.slug, season=season)
556+
self.ext = build_uri('shows/{id}/seasons/{season}', id=self.slug,
557+
season=season)
583558
self._comments = self._ratings = None
584559
self._episodes = self._build_episodes(episodes) if episodes else None
585560

@@ -662,9 +637,9 @@ def _episode_getter(self, episode):
662637
:param episode: An int corresponding to the number of the episode
663638
we're trying to retrieve
664639
"""
665-
episode_extension = '/episodes/{}?extended=full'.format(episode)
666640
try:
667-
data = yield self.ext + episode_extension
641+
data = yield build_uri(self.ext + '/episodes/{episode}',
642+
episode=episode, extended='full')
668643
yield TVEpisode(show=self.show, **data)
669644
except NotFoundException:
670645
yield None
@@ -777,18 +752,17 @@ def ext(self):
777752
show_id = getattr(self, "show_id", None)
778753
if not show_id:
779754
show_id = slugify(self.show)
780-
return 'shows/{id}/seasons/{season}/episodes/{episode}'.format(
781-
id=show_id, season=self.season, episode=self.number
782-
)
755+
return build_uri('shows/{id}/seasons/{season}/episodes/{episode}',
756+
id=show_id, season=self.season, episode=self.number)
783757

784758
@property
785759
def ext_full(self):
786-
return self.ext + '?extended=full'
760+
return build_uri(self.ext, extended='full')
787761

788762
@property
789763
def images_ext(self):
790764
"""Uri to retrieve additional image information"""
791-
return self.ext + '?extended=images'
765+
return build_uri(self.ext, extended='images')
792766

793767
@staticmethod
794768
def search(title, year=None):

0 commit comments

Comments
 (0)