From 961e797ac5d472a6dc17cec6dbe2faff2e6d67dc Mon Sep 17 00:00:00 2001 From: R4wd0G <29448208+R4wd0g@users.noreply.github.com> Date: Tue, 25 Nov 2025 21:56:18 -0300 Subject: [PATCH] update request handling in send_request method --- nanobot.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/nanobot.py b/nanobot.py index 9aa871b..a5a01c8 100644 --- a/nanobot.py +++ b/nanobot.py @@ -3,6 +3,7 @@ import http.client import json from urllib.parse import urlsplit +from urllib.request import Request, urlopen import sublime @@ -106,14 +107,15 @@ def send_request( retries=0 ): try: - conn = NanoBot.create_connection( - config['NANO_BOTS_API_ADDRESS'], timeout) + api_address = config['NANO_BOTS_API_ADDRESS'] headers = NanoBot.create_headers(config) json_str = NanoBot.create_json(params) + url = api_address + path - conn.request(method, path, json_str, headers) - response = NanoBot.get_response(conn) - conn.close() + req = Request(url, data=json_str.encode('utf-8') if json_str else None, + headers=headers, method=method) + response_obj = urlopen(req, timeout=timeout) + response = NanoBot.get_response(response_obj) if thread_callback is not None and thread_event is not None: if not thread_event.is_set(): @@ -171,16 +173,15 @@ def create_json(params): return json.dumps(params) @staticmethod - def get_response(conn): - response = conn.getresponse() + def get_response(response_obj): output = {} - if response.status == 200: + if response_obj.status == 200: try: - output = json.loads(response.read().decode()) - except json.JSONDecodeError: + output = json.loads(response_obj.read().decode()) + except (ValueError, TypeError): output = {'output': 'Invalid JSON response.'} else: output = { 'output': 'Request failed with status code: {}'.format( - response.status)} + response_obj.status)} return output