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
6159def 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
7367def 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