mirror of
https://github.com/bunkerity/bunkerweb
synced 2026-05-24 09:28:37 +00:00
52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
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,
|
|
f"{self.__endpoint}{url}",
|
|
json=data,
|
|
timeout=timeout,
|
|
headers=headers,
|
|
)
|
|
elif type(data) is bytes:
|
|
resp = request(
|
|
method,
|
|
f"{self.__endpoint}{url}",
|
|
data=data,
|
|
timeout=timeout,
|
|
headers=headers,
|
|
)
|
|
elif files is not None:
|
|
resp = request(
|
|
method,
|
|
f"{self.__endpoint}{url}",
|
|
files=files,
|
|
timeout=timeout,
|
|
headers=headers,
|
|
)
|
|
elif data is None:
|
|
resp = request(
|
|
method, f"{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()
|