summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuoqi Yang <[email protected]>2022-09-18 14:08:14 +0800
committerRuoqi Yang <[email protected]>2022-09-18 14:08:14 +0800
commit6294c3265630542221e870f9691e429500b02425 (patch)
tree7b11f9609b34df04288bea06ddb6f88ba992822f
parentd43c5423add954db12a8b31ab528afd9b2e60974 (diff)
downloadATRI-6294c3265630542221e870f9691e429500b02425.tar.gz
ATRI-6294c3265630542221e870f9691e429500b02425.tar.bz2
ATRI-6294c3265630542221e870f9691e429500b02425.zip
- config httpx timeout
- trace.moe api call upload image
-rw-r--r--ATRI/config.py1
-rw-r--r--ATRI/plugins/anime_search.py7
-rw-r--r--ATRI/utils/request.py7
3 files changed, 10 insertions, 5 deletions
diff --git a/ATRI/config.py b/ATRI/config.py
index be37af3..85fd8be 100644
--- a/ATRI/config.py
+++ b/ATRI/config.py
@@ -28,6 +28,7 @@ class BotSelfConfig:
seconds=config.get("session_expire_timeout", 60)
)
proxy: str = config.get("proxy", None)
+ request_timeout = config.get("timeout", None)
class InlineGoCQHTTP:
diff --git a/ATRI/plugins/anime_search.py b/ATRI/plugins/anime_search.py
index 670c766..bf06ece 100644
--- a/ATRI/plugins/anime_search.py
+++ b/ATRI/plugins/anime_search.py
@@ -9,7 +9,7 @@ from ATRI.utils import request, Translate
from ATRI.exceptions import RequestError
-URL = "https://api.trace.moe/search?anilistInfo=true&url="
+URL = "https://api.trace.moe/search?anilistInfo=true"
_anime_flmt_notice = choice(["慢...慢一..点❤", "冷静1下", "歇会歇会~~"])
@@ -21,9 +21,10 @@ class Anime(Service):
@staticmethod
async def _request(url: str) -> dict:
- aim = URL + url
try:
- res = await request.get(aim)
+ resp = await request.get(url)
+ image_bytes = resp.read()
+ res = await request.post(URL, data=image_bytes, headers={"Content-Type": "image/jpeg"})
except Exception:
raise RequestError("Request failed!")
result = res.json()
diff --git a/ATRI/utils/request.py b/ATRI/utils/request.py
index 04d7093..d8f7be5 100644
--- a/ATRI/utils/request.py
+++ b/ATRI/utils/request.py
@@ -3,6 +3,9 @@ import httpx
from ATRI.config import BotSelfConfig
from ATRI.log import logger as log
+timeout = BotSelfConfig.request_timeout
+if timeout:
+ timeout = httpx.Timeout(timeout)
if not BotSelfConfig.proxy:
proxy = dict()
@@ -12,11 +15,11 @@ else:
async def get(url: str, **kwargs):
log.debug(f"GET {url} by {proxy if proxy else 'No proxy'} | MORE: \n {kwargs}")
- async with httpx.AsyncClient(proxies=proxy) as client: # type: ignore
+ async with httpx.AsyncClient(proxies=proxy, timeout=timeout) as client: # type: ignore
return await client.get(url, **kwargs)
async def post(url: str, **kwargs):
log.debug(f"POST {url} by {proxy if proxy else 'No proxy'} | MORE: \n {kwargs}")
- async with httpx.AsyncClient(proxies=proxy) as client: # type: ignore
+ async with httpx.AsyncClient(proxies=proxy, timeout=timeout) as client: # type: ignore
return await client.post(url, **kwargs)