@@ -24,11 +24,13 @@ class Request(NamedTuple):
2424
2525 @post
2626 def approve (self ):
27- yield 'users/requests/{id}' .format (id = self .id )
27+ uri = build_uri ('users/requests/{id}' , id = self .id )
28+ yield uri
2829
2930 @delete
3031 def deny (self ):
31- yield 'users/requests/{id}' .format (id = self .id )
32+ uri = build_uri ('users/requests/{id}' , id = self .id )
33+ yield uri
3234
3335
3436@post
@@ -37,7 +39,8 @@ def follow(user_name):
3739 follow request will be in a pending state. If they have a public profile,
3840 they will be followed immediately.
3941 """
40- yield 'users/{username}/follow' .format (username = slugify (user_name ))
42+ uri = build_uri ('users/{username}/follow' , username = slugify (user_name ))
43+ yield uri
4144
4245
4346@get
@@ -64,7 +67,8 @@ def get_user_settings():
6467def unfollow (user_name ):
6568 """Unfollow a user you're currently following with a username of *user_name*
6669 """
67- yield 'users/{username}/follow' .format (username = slugify (user_name ))
70+ uri = build_uri ('users/{username}/follow' , username = slugify (user_name ))
71+ yield uri
6872
6973
7074@dataclass (frozen = True )
@@ -226,7 +230,8 @@ def create(cls, name, creator, description=None, privacy='private',
226230 'allow_comments' : allow_comments }
227231 if description is not None :
228232 args ['description' ] = description
229- data = yield 'users/{user}/lists' .format (user = slugify (creator )), args
233+ uri = build_uri ('users/{user}/lists' , user = slugify (creator ))
234+ data = yield uri , args
230235 yield cls (creator = creator , user = creator , ** data )
231236
232237 @classmethod
@@ -236,8 +241,9 @@ def _get(cls, title, creator):
236241
237242 :param title: Name of the list.
238243 """
239- data = yield 'users/{user}/lists/{id}' .format (user = slugify (creator ),
240- id = slugify (title ))
244+ uri = build_uri ('users/{user}/lists/{id}' , user = slugify (creator ),
245+ id = slugify (title ))
246+ data = yield uri
241247 ulist = cls (creator = creator , ** data )
242248 ulist .get_items ()
243249
@@ -250,8 +256,9 @@ def get_items(self):
250256
251257 """
252258
253- data = yield 'users/{user}/lists/{id}/items' .format (
254- user = slugify (self .creator ), id = self .slug )
259+ uri = build_uri ('users/{user}/lists/{id}/items' ,
260+ user = slugify (self .creator ), id = self .slug )
261+ data = yield uri
255262
256263 for item in data :
257264 # match list item type
@@ -290,23 +297,25 @@ def add_items(self, *items):
290297 people = [p .ids for p in items if isinstance (p , Person )]
291298 self ._items = items
292299 args = {'movies' : movies , 'shows' : shows , 'people' : people }
293- uri = 'users/{user}/lists/{id}/items' . format (
294- user = slugify (self .creator ), id = self .trakt )
300+ uri = build_uri ( 'users/{user}/lists/{id}/items' ,
301+ user = slugify (self .creator ), id = self .trakt )
295302 yield uri , args
296303
297304 @delete
298305 def delete_list (self ):
299306 """Delete this :class:`UserList`"""
300- yield 'users/{user}/lists/{id}' .format (user = slugify (self .creator ),
301- id = self .trakt )
307+ uri = build_uri ('users/{user}/lists/{id}' , user = slugify (self .creator ),
308+ id = self .trakt )
309+ yield uri
302310
303311 @post
304312 def like (self ):
305313 """Like this :class:`UserList`. Likes help determine popular lists.
306314 Only one like is allowed per list per user.
307315 """
308- uri = 'users/{user}/lists/{id}/like'
309- yield uri .format (user = slugify (self .creator ), id = self .trakt ), None
316+ uri = build_uri ('users/{user}/lists/{id}/like' ,
317+ user = slugify (self .creator ), id = self .trakt )
318+ yield uri , None
310319
311320 @post
312321 def remove_items (self , * items ):
@@ -317,15 +326,16 @@ def remove_items(self, *items):
317326 people = [p .ids for p in items if isinstance (p , Person )]
318327 self ._items = items
319328 args = {'movies' : movies , 'shows' : shows , 'people' : people }
320- uri = 'users/{user}/lists/{id}/items/remove' . format (
321- user = slugify (self .creator ), id = self .trakt )
329+ uri = build_uri ( 'users/{user}/lists/{id}/items/remove' ,
330+ user = slugify (self .creator ), id = self .trakt )
322331 yield uri , args
323332
324333 @delete
325334 def unlike (self ):
326335 """Remove a like on this :class:`UserList`."""
327- uri = 'users/{username}/lists/{id}/like'
328- yield uri .format (username = slugify (self .creator ), id = self .trakt )
336+ uri = build_uri ('users/{username}/lists/{id}/like' ,
337+ username = slugify (self .creator ), id = self .trakt )
338+ yield uri
329339
330340
331341class User :
@@ -353,7 +363,8 @@ def __init__(self, username, **kwargs):
353363 @get
354364 def _get (self ):
355365 """Get this :class:`User` from the trakt.tv API"""
356- data = yield 'users/{username}' .format (username = slugify (self .username ))
366+ uri = build_uri ('users/{username}' , username = slugify (self .username ))
367+ data = yield uri
357368 self ._build (data )
358369
359370 def _build (self , data ):
@@ -370,8 +381,8 @@ def followers(self):
370381 display data either.
371382 """
372383 if self ._followers is None :
373- data = yield 'users/{user}/followers' . format (
374- user = slugify ( self . username ))
384+ uri = build_uri ( 'users/{user}/followers' , user = slugify ( self . username ))
385+ data = yield uri
375386 self ._followers = []
376387 for user in data :
377388 user_data = user .pop ('user' )
@@ -388,8 +399,8 @@ def following(self):
388399 that are protected won't display data either.
389400 """
390401 if self ._following is None :
391- data = yield 'users/{user}/following' . format (
392- user = slugify ( self . username ))
402+ uri = build_uri ( 'users/{user}/following' , user = slugify ( self . username ))
403+ data = yield uri
393404 self ._following = []
394405 for user in data :
395406 user_data = user .pop ('user' )
@@ -408,8 +419,8 @@ def friends(self):
408419 """
409420 if self ._friends is None :
410421 self ._friends = []
411- data = yield 'users/{user}/friends' . format (
412- user = slugify ( self . username ))
422+ uri = build_uri ( 'users/{user}/friends' , user = slugify ( self . username ))
423+ data = yield uri
413424 for user in data :
414425 user_data = user .pop ('user' )
415426 date = user .pop ('friends_at' )
@@ -424,8 +435,8 @@ def lists(self):
424435 lists, you will need to authenticate as yourself.
425436 """
426437 if self ._lists is None :
427- data = yield 'users/{username}/lists' . format (
428- username = slugify ( self . username ))
438+ uri = build_uri ( 'users/{username}/lists' , username = slugify ( self . username ))
439+ data = yield uri
429440 for ul in data :
430441 if "user" in ul :
431442 # user will be replaced with the self User object
@@ -556,9 +567,8 @@ def watched_shows(self):
556567 collection.
557568 """
558569 if self ._watched_shows is None :
559- data = yield 'users/{user}/watched/shows' .format (
560- user = slugify (self .username )
561- )
570+ uri = build_uri ('users/{user}/watched/shows' , user = slugify (self .username ))
571+ data = yield uri
562572 self ._watched_shows = []
563573 for show in data :
564574 show_data = show .pop ('show' )
@@ -574,8 +584,8 @@ def watching(self):
574584 will be returned. Protected users won't return any data unless you are
575585 friends.
576586 """
577- data = yield 'users/{user}/watching' . format (
578- user = slugify ( self . username ))
587+ uri = build_uri ( 'users/{user}/watching' , user = slugify ( self . username ))
588+ data = yield uri
579589
580590 # if a user isn't watching anything, trakt returns a 204
581591 if data is None or data == '' :
@@ -616,10 +626,13 @@ def get_ratings(self, media_type='movies', rating=None):
616626 'movies', 'shows', 'seasons', 'episodes'
617627 :param rating: Optional rating between 1 and 10
618628 """
619- uri = 'users/{user}/ratings/{type}' .format (user = slugify (self .username ),
620- type = media_type )
621629 if rating is not None :
622- uri += '/{rating}' .format (rating = rating )
630+ uri = build_uri ('users/{user}/ratings/{type}/{rating}' ,
631+ user = slugify (self .username ), type = media_type ,
632+ rating = rating )
633+ else :
634+ uri = build_uri ('users/{user}/ratings/{type}' ,
635+ user = slugify (self .username ), type = media_type )
623636 data = yield uri
624637 # TODO (moogar0880) - return as objects
625638 yield data
@@ -629,7 +642,8 @@ def get_stats(self):
629642 """Returns stats about the movies, shows, and episodes a user has
630643 watched and collected
631644 """
632- data = yield 'users/{user}/stats' .format (user = slugify (self .username ))
645+ uri = build_uri ('users/{user}/stats' , user = slugify (self .username ))
646+ data = yield uri
633647 yield data
634648
635649 @get
0 commit comments