from requests import request class API : def __init__(self, endpoint, host="bwapi") : self.__endpoint = endpoint self.__host = host def get_endpoint(self) : return self.__endpoint def get_host(self) : return self.__host def request(self, method, url, data=None, files=None, timeout=(10, 30)) : try : headers = {} headers["User-Agent"] = "bwapi" headers["Host"] = self.__host if type(data) is dict : resp = request(method, self.__endpoint + url, json=data, timeout=timeout, headers=headers) elif type(data) is bytes : resp = request(method, self.__endpoint + url, data=data, timeout=timeout, headers=headers) elif files is not None : resp = request(method, self.__endpoint + url, files=files, timeout=timeout, headers=headers) elif data is None : resp = request(method, self.__endpoint + url, timeout=timeout, headers=headers) else : return False, "unsupported data type", None, None except Exception as e : return False, str(e), None, None return True, "ok", resp.status_code, resp.json()