diff options
author | Kyomotoi <[email protected]> | 2020-05-05 15:12:35 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2020-05-05 15:12:35 +0800 |
commit | 76bc38277716348f4ecc5d8adbc199d40d9c1064 (patch) | |
tree | e201a8fd4440b7875f7275bb755332f23b2e4604 /AyaBot/plugins/aio | |
parent | 5487ad601dea57c34d8721e4373db57df2fe6f17 (diff) | |
download | ATRI-76bc38277716348f4ecc5d8adbc199d40d9c1064.tar.gz ATRI-76bc38277716348f4ecc5d8adbc199d40d9c1064.tar.bz2 ATRI-76bc38277716348f4ecc5d8adbc199d40d9c1064.zip |
做了些小改动
以话慢慢补全功能 目前能用的
只有other
Diffstat (limited to 'AyaBot/plugins/aio')
-rw-r--r-- | AyaBot/plugins/aio/__init__.py | 8 | ||||
-rw-r--r-- | AyaBot/plugins/aio/__pycache__/__init__.cpython-37.pyc | bin | 0 -> 432 bytes | |||
-rw-r--r-- | AyaBot/plugins/aio/requests.py | 71 |
3 files changed, 79 insertions, 0 deletions
diff --git a/AyaBot/plugins/aio/__init__.py b/AyaBot/plugins/aio/__init__.py new file mode 100644 index 0000000..3cc81f0 --- /dev/null +++ b/AyaBot/plugins/aio/__init__.py @@ -0,0 +1,8 @@ +import asyncio +from functools import partial +from typing import Any + + +async def run_sync_func(func, *args, **kwargs) -> Any: + return await asyncio.get_event_loop().run_in_executor( + None, partial(func, *args, **kwargs)) diff --git a/AyaBot/plugins/aio/__pycache__/__init__.cpython-37.pyc b/AyaBot/plugins/aio/__pycache__/__init__.cpython-37.pyc Binary files differnew file mode 100644 index 0000000..416e999 --- /dev/null +++ b/AyaBot/plugins/aio/__pycache__/__init__.cpython-37.pyc diff --git a/AyaBot/plugins/aio/requests.py b/AyaBot/plugins/aio/requests.py new file mode 100644 index 0000000..4f7b9d3 --- /dev/null +++ b/AyaBot/plugins/aio/requests.py @@ -0,0 +1,71 @@ +from typing import Optional, Any + +import requests +from requests import * + +from . import run_sync_func + + +class AsyncResponse: + def __init__(self, response: requests.Response): + self.raw_response = response + + @property + def ok(self) -> bool: + return self.raw_response.ok + + def __repr__(self): + return '<AsyncResponse [%s]>' % self.raw_response.status_code + + def __bool__(self): + return self.ok + + @property + async def content(self) -> Optional[bytes]: + return await run_sync_func(lambda: self.raw_response.content) + + @property + async def text(self) -> str: + return await run_sync_func(lambda: self.raw_response.text) + + async def json(self, **kwargs) -> Any: + return await run_sync_func(self.raw_response.json, **kwargs) + + +async def request(method, url, **kwargs) -> AsyncResponse: + return AsyncResponse(await run_sync_func(requests.request, + method=method, url=url, **kwargs)) + + +async def get(url, params=None, **kwargs) -> AsyncResponse: + return AsyncResponse( + await run_sync_func(requests.get, url=url, params=params, **kwargs)) + + +async def options(url, **kwargs) -> AsyncResponse: + return AsyncResponse( + await run_sync_func(requests.options, url=url, **kwargs)) + + +async def head(url, **kwargs) -> AsyncResponse: + return AsyncResponse(await run_sync_func(requests.head, url=url, **kwargs)) + + +async def post(url, data=None, json=None, **kwargs) -> AsyncResponse: + return AsyncResponse(await run_sync_func(requests.post, url=url, + data=data, json=json, **kwargs)) + + +async def put(url, data=None, **kwargs) -> AsyncResponse: + return AsyncResponse( + await run_sync_func(requests.put, url=url, data=data, **kwargs)) + + +async def patch(url, data=None, **kwargs) -> AsyncResponse: + return AsyncResponse( + await run_sync_func(requests.patch, url=url, data=data, **kwargs)) + + +async def delete(url, **kwargs) -> AsyncResponse: + return AsyncResponse( + await run_sync_func(requests.delete, url=url, **kwargs)) |