Add extra error checking for JSON-decoding
melvio opened this issue · 1 comments
melvio commented
After running hopla buy enchanged-armoire
approx. 3000 times, I ran into the following error:
Traceback (most recent call last):
File "/home/m/.local/bin/hopla", line 8, in <module>
sys.exit(setup_hopla_application())
File "/home/m/.local/lib/python3.8/site-packages/hopla/__init__.py", line 29, in setup_hopla_application
kickstart_hopla()
File "/home/m/.local/lib/python3.8/site-packages/hopla/kickstart.py", line 160, in kickstart_hopla
hopla()
File "/home/m/.local/lib/python3.8/site-packages/click/core.py", line 1137, in __call__
return self.main(*args, **kwargs)
File "/home/m/.local/lib/python3.8/site-packages/click/core.py", line 1062, in main
rv = self.invoke(ctx)
File "/home/m/.local/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/m/.local/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/m/.local/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/m/.local/lib/python3.8/site-packages/click/core.py", line 763, in invoke
return __callback(*args, **kwargs)
File "/home/m/.local/lib/python3.8/site-packages/hopla/cli/buy/enchanted_armoire.py", line 111, in enchanted_armoire
dispatcher.execute_all_requests()
File "/home/m/.local/lib/python3.8/site-packages/hopla/hoplalib/throttling.py", line 48, in execute_all_requests
_ = api_request()
File "/home/m/.local/lib/python3.8/site-packages/hopla/cli/buy/enchanted_armoire.py", line 48, in buy_from_enchanted_armoire_once
buy_data: dict = buy_request.post_buy_request_get_data_or_exit()
File "/home/m/.local/lib/python3.8/site-packages/hopla/cli/buy/enchanted_armoire.py", line 41, in post_buy_request_get_data_or_exit
return get_data_or_exit(response)["armoire"]
File "/home/m/.local/lib/python3.8/site-packages/hopla/hoplalib/requests_helper.py", line 23, in get_data_or_exit
response_json = api_response.json()
File "/usr/lib/python3/dist-packages/requests/models.py", line 897, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/lib/python3/dist-packages/simplejson/__init__.py", line 518, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 2 column 1 (char 1)