aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mastodon/Mastodon.py36
1 files changed, 24 insertions, 12 deletions
diff --git a/mastodon/Mastodon.py b/mastodon/Mastodon.py
index b9ab05b..a5cf428 100644
--- a/mastodon/Mastodon.py
+++ b/mastodon/Mastodon.py
@@ -56,8 +56,10 @@ class Mastodon:
56 request_data['redirect_uris'] = 'urn:ietf:wg:oauth:2.0:oob'; 56 request_data['redirect_uris'] = 'urn:ietf:wg:oauth:2.0:oob';
57 57
58 response = requests.post(api_base_url + '/api/v1/apps', data = request_data, timeout = request_timeout).json() 58 response = requests.post(api_base_url + '/api/v1/apps', data = request_data, timeout = request_timeout).json()
59 except: 59 except Exception as e:
60 raise MastodonNetworkError("Could not complete request.") 60 import traceback
61 traceback.print_exc()
62 raise MastodonNetworkError("Could not complete request: %s" % e)
61 63
62 if to_file != None: 64 if to_file != None:
63 with open(to_file, 'w') as secret_file: 65 with open(to_file, 'w') as secret_file:
@@ -142,8 +144,10 @@ class Mastodon:
142 try: 144 try:
143 response = self.__api_request('POST', '/oauth/token', params, do_ratelimiting = False) 145 response = self.__api_request('POST', '/oauth/token', params, do_ratelimiting = False)
144 self.access_token = response['access_token'] 146 self.access_token = response['access_token']
145 except: 147 except Exception as e:
146 raise MastodonIllegalArgumentError('Invalid user name, password or scopes.') 148 import traceback
149 traceback.print_exc()
150 raise MastodonIllegalArgumentError('Invalid user name, password or scopes: %s' % e)
147 151
148 requested_scopes = " ".join(sorted(scopes)) 152 requested_scopes = " ".join(sorted(scopes))
149 received_scopes = " ".join(sorted(response["scope"].split(" "))) 153 received_scopes = " ".join(sorted(response["scope"].split(" ")))
@@ -355,8 +359,10 @@ class Mastodon:
355 media_ids_proper.append(media_id["id"]) 359 media_ids_proper.append(media_id["id"])
356 else: 360 else:
357 media_ids_proper.append(media_id) 361 media_ids_proper.append(media_id)
358 except: 362 except Exception as e:
359 raise MastodonIllegalArgumentError("Invalid media dict.") 363 import traceback
364 traceback.print_exc()
365 raise MastodonIllegalArgumentError("Invalid media dict: %s" % e)
360 366
361 params_initial["media_ids"] = media_ids_proper 367 params_initial["media_ids"] = media_ids_proper
362 368
@@ -544,8 +550,10 @@ class Mastodon:
544 550
545 if method == 'DELETE': 551 if method == 'DELETE':
546 response_object = requests.delete(self.api_base_url + endpoint, data = params, headers = headers, files = files, timeout = self.request_timeout) 552 response_object = requests.delete(self.api_base_url + endpoint, data = params, headers = headers, files = files, timeout = self.request_timeout)
547 except: 553 except Exception as e:
548 raise MastodonNetworkError("Could not complete request.") 554 import traceback
555 traceback.print_exc()
556 raise MastodonNetworkError("Could not complete request: %s" % e)
549 557
550 if response_object == None: 558 if response_object == None:
551 raise MastodonIllegalArgumentError("Illegal request.") 559 raise MastodonIllegalArgumentError("Illegal request.")
@@ -553,7 +561,7 @@ class Mastodon:
553 # Handle response 561 # Handle response
554 if self.debug_requests == True: 562 if self.debug_requests == True:
555 print('Mastodon: Response received with code ' + str(response_object.status_code) + '.') 563 print('Mastodon: Response received with code ' + str(response_object.status_code) + '.')
556 print('Respose headers: ' + str(response_object.headers)) 564 print('response headers: ' + str(response_object.headers))
557 print('Response text content: ' + str(response_object.text)) 565 print('Response text content: ' + str(response_object.text))
558 566
559 if response_object.status_code == 404: 567 if response_object.status_code == 404:
@@ -565,7 +573,9 @@ class Mastodon:
565 try: 573 try:
566 response = response_object.json() 574 response = response_object.json()
567 except: 575 except:
568 raise MastodonAPIError("Could not parse response as JSON, respose code was " + str(response_object.status_code)) 576 import traceback
577 traceback.print_exc()
578 raise MastodonAPIError("Could not parse response as JSON, response code was %s, bad json content was '%s'" % (response_object.status_code, response_object.content))
569 579
570 # Handle rate limiting 580 # Handle rate limiting
571 if 'X-RateLimit-Remaining' in response_object.headers and do_ratelimiting: 581 if 'X-RateLimit-Remaining' in response_object.headers and do_ratelimiting:
@@ -582,8 +592,10 @@ class Mastodon:
582 server_time_diff = time.time() - server_time 592 server_time_diff = time.time() - server_time
583 self.ratelimit_reset += server_time_diff 593 self.ratelimit_reset += server_time_diff
584 self.ratelimit_lastcall = time.time() 594 self.ratelimit_lastcall = time.time()
585 except: 595 except Exception as e:
586 raise MastodonRatelimitError("Rate limit time calculations failed.") 596 import traceback
597 traceback.print_exc()
598 raise MastodonRatelimitError("Rate limit time calculations failed: %s" % e)
587 599
588 if "error" in response and response["error"] == "Throttled": 600 if "error" in response and response["error"] == "Throttled":
589 if self.ratelimit_method == "throw": 601 if self.ratelimit_method == "throw":
Powered by cgit v1.2.3 (git 2.41.0)