diff --git a/mwclient/client.py b/mwclient/client.py index 2b58ccafff5900b583c31f09efd89603c7205aca..424905ef94eaf726fc90f28dbedcd7b6465a05f1 100644 --- a/mwclient/client.py +++ b/mwclient/client.py @@ -203,8 +203,7 @@ class Site(object): info = self.raw_api(action, **kwargs) if not info: info = {} - res = self.handle_api_result(info, token=token) - if res: + if self.handle_api_result(info, token=token): return info def handle_api_result(self, info, kwargs=None, token=None): @@ -528,22 +527,12 @@ class Site(object): wait_token = self.wait_token() while True: - try: - data = self.raw_call('api', postdata, files) - info = json.loads(data) - if not info: - info = {} - if self.handle_api_result(info, kwargs=predata): - return info.get('upload', {}) - except requests.exceptions.HTTPError as e: - if e.args[0] == 503 and e.args[1].getheader('X-Database-Lag'): - self.wait(wait_token, int(e.args[1].getheader('Retry-After'))) - elif e.args[0] < 500 or e.args[0] > 599: - raise - else: - self.wait(wait_token) - except requests.exceptions.ConnectionError: - self.wait(wait_token) + data = self.raw_call('api', postdata, files) + info = json.loads(data) + if not info: + info = {} + if self.handle_api_result(info, kwargs=predata, token=wait_token): + return info.get('upload', {}) def parse(self, text=None, title=None, page=None): kwargs = {}