@@ -2749,54 +2749,67 @@ def DestroyFriendship(self, user_id=None, screen_name=None):
27492749
27502750 return User .NewFromJsonDict (data )
27512751
2752- def LookupFriendship (self ,
2753- user_id = None ,
2754- screen_name = None ,
2755- users = None ):
2752+ def LookupFriendship (self ,
2753+ user_id = None ,
2754+ screen_name = None ):
27562755 """Lookup friendship status for user to authed user.
2757-
2756+
27582757 Users may be specified either as lists of either user_ids,
27592758 screen_names, or twitter.User objects. The list of users that
27602759 are queried is the union of all specified parameters.
2761-
2760+
27622761 Up to 100 users may be specified.
2763-
2762+
27642763 Args:
2765- user_id:
2766- A list of user_ids to retrieve extended information. [Optional]
2767- screen_name:
2768- A list of screen_names to retrieve extended information. [Optional]
2769- users:
2770- A list of twitter.User objects to retrieve extended information.
2771- [Optional]
2772-
2764+ user_id (int, User, or list of ints or Users, optional):
2765+ A list of user_ids to retrieve extended information.
2766+ screen_name (string, User, or list of strings or Users, optional):
2767+ A list of screen_names to retrieve extended information.
2768+
27732769 Returns:
2774- A twitter.UserStatus instance representing the friendship status
2770+ list: A list of twitter.UserStatus instance representing the
2771+ friendship status between the specified users and the authenticated
2772+ user.
27752773 """
2776- if not user_id and not screen_name and not users :
2777- raise TwitterError ({'message' : "Specify at least one of user_id, screen_name, users." })
2778-
27792774 url = '%s/friendships/lookup.json' % (self .base_url )
2780- data = {}
2781- uids = list ()
2775+ parameters = {}
2776+
27822777 if user_id :
2783- uids .extend (user_id )
2784- if users :
2785- uids .extend ([u .id for u in users ])
2786- if len (uids ):
2787- data ['user_id' ] = ',' .join (["%s" % u for u in uids ])
2778+ if isinstance (user_id , list ) or isinstance (user_id , tuple ):
2779+ uids = list ()
2780+ for user in user_id :
2781+ if isinstance (user , User ):
2782+ uids .append (user .id )
2783+ else :
2784+ uids .append (enf_type ('user_id' , int , user ))
2785+ parameters ['user_id' ] = "," .join ([str (uid ) for uid in uids ])
2786+ else :
2787+ if isinstance (user_id , User ):
2788+ parameters ['user_id' ] = user_id .id
2789+ else :
2790+ parameters ['user_id' ] = enf_type ('user_id' , int , user_id )
27882791 if screen_name :
2789- data ['screen_name' ] = ',' .join (screen_name )
2792+ if isinstance (screen_name , list ) or isinstance (screen_name , tuple ):
2793+ sn_list = list ()
2794+ for user in screen_name :
2795+ if isinstance (user , User ):
2796+ sn_list .append (user .screen_name )
2797+ else :
2798+ sn_list .append (enf_type ('screen_name' , str , user ))
2799+ parameters ['screen_name' ] = ',' .join (sn_list )
2800+ else :
2801+ if isinstance (screen_name , User ):
2802+ parameters ['screen_name' ] = screen_name .screen_name
2803+ else :
2804+ parameters ['screen_name' ] = enf_type ('screen_name' , str , screen_name )
2805+ if not user_id and not screen_name :
2806+ raise TwitterError (
2807+ "Specify at least one of user_id or screen_name." )
27902808
2791- resp = self ._RequestUrl (url , 'GET' , data = data )
2809+ resp = self ._RequestUrl (url , 'GET' , data = parameters )
27922810 data = self ._ParseAndCheckTwitter (resp .content .decode ('utf-8' ))
27932811
2794- if len (data ) > 1 :
2795- return [UserStatus .NewFromJsonDict (x ) for x in data ]
2796- elif len (data ) == 1 :
2797- return UserStatus .NewFromJsonDict (data [0 ])
2798- else :
2799- return None
2812+ return [UserStatus .NewFromJsonDict (x ) for x in data ]
28002813
28012814 def CreateFavorite (self ,
28022815 status = None ,
0 commit comments