@@ -24,9 +24,8 @@ class JokeTypeError(Exception):
2424class Jokes :
2525 def __init__ (self ):
2626 self .http = urllib3 .PoolManager ()
27- self .info = self .http .request (
28- 'GET' , "https://sv443.net/jokeapi/v2/info" )
29- self .info = data = json .loads (self .info .data .decode ('utf-8' ))["jokes" ]
27+ self .info = self .http .request ("GET" , "https://sv443.net/jokeapi/v2/info" )
28+ self .info = data = json .loads (self .info .data .decode ("utf-8" ))["jokes" ]
3029
3130 def build_request (
3231 self ,
@@ -37,7 +36,7 @@ def build_request(
3736 search_string = "" ,
3837 id_range = [],
3938 amount = 1 ,
40- lang = "en"
39+ lang = "en" ,
4140 ):
4241 r = "https://sv443.net/jokeapi/v2/joke/"
4342
@@ -76,7 +75,7 @@ def build_request(
7675 else :
7776 blacklistFlags = None
7877 else :
79- raise BlacklistError (f''' blacklist must be a list or tuple.''' )
78+ raise BlacklistError (f""" blacklist must be a list or tuple.""" )
8079
8180 if response_format not in ["json" , "xml" , "yaml" , "txt" ]:
8281 raise ResponseTypeError (
@@ -85,8 +84,8 @@ def build_request(
8584 if joke_type :
8685 if joke_type not in ["single" , "twopart" , "Any" ]:
8786 raise JokeTypeError (
88- ''' Invalid joke type.
89- Available options are "single" or "twopart".'''
87+ """ Invalid joke type.
88+ Available options are "single" or "twopart"."""
9089 )
9190 return
9291 else :
@@ -104,7 +103,8 @@ def build_request(
104103 raise ValueError (
105104 "id_range must be no longer than 2 items, \
106105 id_range[0] must be greater than or equal to 0 and \
107- id_range[1] must be less than or equal to {range_limit-1}." )
106+ id_range[1] must be less than or equal to {range_limit-1}."
107+ )
108108
109109 if amount > 10 :
110110 raise ValueError (
@@ -135,29 +135,29 @@ def build_request(
135135
136136 return r
137137
138- def send_request (self ,
139- request ,
140- response_format ,
141- return_headers ,
142- auth_token ,
143- user_agent
144- ):
138+ def send_request (
139+ self , request , response_format , return_headers , auth_token , user_agent
140+ ):
145141 returns = []
146142
147143 if auth_token :
148- r = self .http .request ('GET' ,
149- request ,
150- headers = {'Authorization' : str (auth_token ),
151- 'user-agent' : str (user_agent ),
152- 'accept-encoding' : 'gzip'
153- }
154- )
144+ r = self .http .request (
145+ "GET" ,
146+ request ,
147+ headers = {
148+ "Authorization" : str (auth_token ),
149+ "user-agent" : str (user_agent ),
150+ "accept-encoding" : "gzip" ,
151+ },
152+ )
155153 else :
156- r = self .http .request ('GET' , request , headers = {
157- 'user-agent' : str (user_agent ),
158- 'accept-encoding' : 'gzip' })
154+ r = self .http .request (
155+ "GET" ,
156+ request ,
157+ headers = {"user-agent" : str (user_agent ), "accept-encoding" : "gzip" },
158+ )
159159
160- data = r .data .decode (' utf-8' )
160+ data = r .data .decode (" utf-8" )
161161
162162 if response_format == "json" :
163163 try :
@@ -166,22 +166,38 @@ def send_request(self,
166166 print (data )
167167 raise
168168 else :
169- if len (' ' .join (re .split ("error" , data .lower ())[0 :][1 :]).replace (
170- '<' , '' ).replace ('/' , '' ).replace (' ' , '' ).replace (':' , '' )
171- .replace ('>' , '' )) == 4 :
172- raise Exception (f"API returned an error. \
173- Full response: \n \n { data } " )
169+ if (
170+ len (
171+ " " .join (re .split ("error" , data .lower ())[0 :][1 :])
172+ .replace ("<" , "" )
173+ .replace ("/" , "" )
174+ .replace (" " , "" )
175+ .replace (":" , "" )
176+ .replace (">" , "" )
177+ )
178+ == 4
179+ ):
180+ raise Exception (
181+ f"API returned an error. \
182+ Full response: \n \n { data } "
183+ )
174184
175- headers = str (r .headers ).replace (r'\n' , '' ).replace (
176- '\n ' , '' ).replace (r'\\' , '' ).replace (r"\'" , '' )[15 :- 1 ]
185+ headers = (
186+ str (r .headers )
187+ .replace (r"\n" , "" )
188+ .replace ("\n " , "" )
189+ .replace (r"\\" , "" )
190+ .replace (r"\'" , "" )[15 :- 1 ]
191+ )
177192
178193 returns .append (data )
179194 if return_headers :
180195 returns .append (headers )
181196
182197 if auth_token :
183198 returns .append (
184- {"Token-Valid" : bool (int (re .split (r"Token-Valid" , headers )[1 ][4 ]))})
199+ {"Token-Valid" : bool (int (re .split (r"Token-Valid" , headers )[1 ][4 ]))}
200+ )
185201
186202 if len (returns ) > 1 :
187203 return returns
@@ -200,7 +216,7 @@ def get_joke(
200216 auth_token = None ,
201217 user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) \
202218 Gecko/20100101 Firefox/77.0" ,
203- return_headers = False
219+ return_headers = False ,
204220 ):
205221 r = self .build_request (
206222 category ,
@@ -210,11 +226,12 @@ def get_joke(
210226 search_string ,
211227 id_range ,
212228 amount ,
213- lang
229+ lang ,
214230 )
215231
216232 response = self .send_request (
217- r , response_format , return_headers , auth_token , user_agent )
233+ r , response_format , return_headers , auth_token , user_agent
234+ )
218235 return response
219236
220237 def submit_joke (self , category , joke , flags , lang = "en" ):
@@ -226,7 +243,8 @@ def submit_joke(self, category, joke, flags, lang="en"):
226243 You selected { category } .
227244 Available categories are:
228245 { """
229- """ .join (self .info ["categories" ])} ''' )
246+ """ .join (self .info ["categories" ])} '''
247+ )
230248 request ["category" ] = category
231249
232250 if type (joke ) in [list , tuple ]:
@@ -249,13 +267,14 @@ def submit_joke(self, category, joke, flags, lang="en"):
249267 Available flags are:
250268 { """
251269 """ .join (self .info ["flags" ])}
252- ''' )
270+ '''
271+ )
253272 request ["flags" ] = flags
254273 request ["lang" ] = lang
255274
256275 data = str (request ).replace ("'" , '"' )
257276 data = data .replace (": True" , ": true" ).replace (": False" , ": false" )
258- data = data .encode (' ascii' )
277+ data = data .encode (" ascii" )
259278 url = "https://sv443.net/jokeapi/v2/submit"
260279
261280 try :
0 commit comments