11# -*- coding: utf-8 -*-
2+ from __future__ import unicode_literals
23import contextlib
34import hashlib
45import random
5- import urllib
6+
7+ try :
8+ from urllib .parse import quote , quote_plus
9+ except ImportError :
10+ from urllib import quote , quote_plus
611
712import requests
813from requests_oauthlib import OAuth1
@@ -93,7 +98,7 @@ def authorization_url(self):
9398 'redirect_uri' : self .redirect_uri }
9499 # urlencode uses quote_plus when encoding the query string so,
95100 # we ought to be encoding the qs by on our own.
96- qsl = ['%s=%s' % (urllib . quote (k ), urllib . quote (v )) for k , v in qd .items ()]
101+ qsl = ['%s=%s' % (quote (k ), quote (v )) for k , v in qd .items ()]
97102 return '%s?%s' % (self .AUTHORIZATION_URL , '&' .join (qsl ))
98103
99104 @property
@@ -102,7 +107,8 @@ def last_error(self):
102107
103108 def _make_new_state (self ):
104109 return hashlib .md5 (
105- '%s%s' % (random .randrange (0 , 2 ** 63 ), self .secret )).hexdigest ()
110+ '{}{}' .format (random .randrange (0 , 2 ** 63 ), self .secret ).encode ("utf8" )
111+ ).hexdigest ()
106112
107113 def get_access_token (self , timeout = 60 ):
108114 assert self .authorization_code , 'You must first get the authorization code'
@@ -174,7 +180,7 @@ def get_profile(self, member_id=None, member_url=None, selectors=None,
174180 else :
175181 url = '%s/id=%s' % (ENDPOINTS .PEOPLE , str (member_id ))
176182 elif member_url :
177- url = '%s/url=%s' % (ENDPOINTS .PEOPLE , urllib . quote_plus (member_url ))
183+ url = '%s/url=%s' % (ENDPOINTS .PEOPLE , quote_plus (member_url ))
178184 else :
179185 url = '%s/~' % ENDPOINTS .PEOPLE
180186 if selectors :
@@ -200,7 +206,7 @@ def get_picture_urls(self, member_id=None, member_url=None,
200206 url = '%s/id=%s/picture-urls::(original)' % (ENDPOINTS .PEOPLE , str (member_id ))
201207 elif member_url :
202208 url = '%s/url=%s/picture-urls::(original)' % (ENDPOINTS .PEOPLE ,
203- urllib . quote_plus (member_url ))
209+ quote_plus (member_url ))
204210 else :
205211 url = '%s/~/picture-urls::(original)' % ENDPOINTS .PEOPLE
206212
@@ -214,7 +220,7 @@ def get_connections(self, member_id=None, member_url=None, selectors=None,
214220 url = '%s/id=%s/connections' % (ENDPOINTS .PEOPLE , str (member_id ))
215221 elif member_url :
216222 url = '%s/url=%s/connections' % (ENDPOINTS .PEOPLE ,
217- urllib . quote_plus (member_url ))
223+ quote_plus (member_url ))
218224 else :
219225 url = '%s/~/connections' % ENDPOINTS .PEOPLE
220226 if selectors :
@@ -230,7 +236,7 @@ def get_memberships(self, member_id=None, member_url=None, group_id=None,
230236 url = '%s/id=%s/group-memberships' % (ENDPOINTS .PEOPLE , str (member_id ))
231237 elif member_url :
232238 url = '%s/url=%s/group-memberships' % (ENDPOINTS .PEOPLE ,
233- urllib . quote_plus (member_url ))
239+ quote_plus (member_url ))
234240 else :
235241 url = '%s/~/group-memberships' % ENDPOINTS .PEOPLE
236242
@@ -307,7 +313,7 @@ def like_post(self, post_id, action):
307313 url = '%s/%s/relation-to-viewer/is-liked' % (ENDPOINTS .POSTS , str (post_id ))
308314 try :
309315 self .make_request ('PUT' , url , data = json .dumps (action ))
310- except (requests .ConnectionError , requests .HTTPError ), error :
316+ except (requests .ConnectionError , requests .HTTPError ) as error :
311317 raise LinkedInError (error .message )
312318 else :
313319 return True
@@ -319,7 +325,7 @@ def comment_post(self, post_id, comment):
319325 url = '%s/%s/comments' % (ENDPOINTS .POSTS , str (post_id ))
320326 try :
321327 self .make_request ('POST' , url , data = json .dumps (post ))
322- except (requests .ConnectionError , requests .HTTPError ), error :
328+ except (requests .ConnectionError , requests .HTTPError ) as error :
323329 raise LinkedInError (error .message )
324330 else :
325331 return True
0 commit comments