summaryrefslogtreecommitdiff
path: root/ATRI/utils/request.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/utils/request.py')
-rw-r--r--ATRI/utils/request.py86
1 files changed, 54 insertions, 32 deletions
diff --git a/ATRI/utils/request.py b/ATRI/utils/request.py
index d16c17b..c638d63 100644
--- a/ATRI/utils/request.py
+++ b/ATRI/utils/request.py
@@ -1,32 +1,54 @@
-from typing import Optional
-from aiohttp import ClientSession
-
-
-async def get_text(url: str, headers: Optional[dict] = None) -> str:
- async with ClientSession() as session:
- async with session.get(url, headers=headers) as r:
- result = await r.text()
- return result
-
-
-async def get_bytes(url: str, headers: Optional[dict] = None) -> bytes:
- async with ClientSession() as session:
- async with session.get(url, headers=headers) as r:
- result = await r.read()
- return result
-
-
-async def get_content(url: str, headers: Optional[dict] = None):
- async with ClientSession() as session:
- async with session.get(url, headers=headers) as r:
- result = await r.content.read()
- return result
-
-
-async def post_bytes(
- url: str, params: Optional[dict] = None, json: Optional[dict] = None
-) -> bytes:
- async with ClientSession() as session:
- async with session.post(url, params=params, json=json) as r:
- result = await r.read()
- return result
+from aiohttp import ClientSession, ClientResponse
+
+
+class Response:
+
+ def __init__(self, response: ClientResponse) -> None:
+ self.raw_response = response
+
+ @property
+ def status(self) -> int:
+ return self.raw_response.status
+
+ @property
+ def url(self):
+ return self.raw_response.url
+
+ @property
+ def real_url(self):
+ return self.raw_response.real_url
+
+ @property
+ def host(self):
+ return self.raw_response.host
+
+ @property
+ def headers(self):
+ return self.raw_response.headers
+
+ @property
+ def raw_headers(self):
+ return self.raw_response.raw_headers
+
+ @property
+ def request_info(self):
+ return self.raw_response.request_info
+
+ @property
+ async def read(self):
+ return await self.raw_response.read()
+
+ @property
+ async def text(self):
+ return await self.raw_response.text()
+
+ async def json(self):
+ return await self.raw_response.json()
+
+
+async def get(url, params: dict = None, **kwargs) -> Response:
+ return Response(await ClientSession().get(url=url, params=params, **kwargs))
+
+
+async def post(url, data: dict = None, **kwargs) -> Response:
+ return Response(await ClientSession().post(url=url, data=data, **kwargs))