diff --git a/nonebot_plugin_tetris_stats/games/tetrio/api/cache.py b/nonebot_plugin_tetris_stats/games/tetrio/api/cache.py index fd91312..31aa173 100644 --- a/nonebot_plugin_tetris_stats/games/tetrio/api/cache.py +++ b/nonebot_plugin_tetris_stats/games/tetrio/api/cache.py @@ -1,5 +1,5 @@ from asyncio import Lock -from datetime import datetime, timezone +from datetime import datetime, timedelta, timezone from typing import ClassVar from weakref import WeakValueDictionary @@ -9,12 +9,15 @@ from nonebot.log import logger from yarl import URL from ....config.config import config +from ....utils.limit import limit from ....utils.request import Request from .schemas.base import FailedModel, SuccessModel UTC = timezone.utc + request = Request(config.tetris.proxy.tetrio or config.tetris.proxy.main) +request.request = limit(timedelta(seconds=1))(request.request) class Cache: diff --git a/nonebot_plugin_tetris_stats/games/tetrio/rank/__init__.py b/nonebot_plugin_tetris_stats/games/tetrio/rank/__init__.py index 18f885e..57fa95e 100644 --- a/nonebot_plugin_tetris_stats/games/tetrio/rank/__init__.py +++ b/nonebot_plugin_tetris_stats/games/tetrio/rank/__init__.py @@ -13,7 +13,6 @@ from nonebot_plugin_orm import get_session from sqlalchemy import select from ....utils.exception import RequestError -from ....utils.limit import limit from ....utils.retry import retry from .. import alc from .. import command as base_command @@ -84,11 +83,11 @@ def find_special_player( @scheduler.scheduled_job('cron', hour='0,6,12,18', minute=0) async def get_tetra_league_data() -> None: x_session_id = uuid4() - limit_by = retry(max_attempts=10, exception_type=RequestError)(limit(timedelta(seconds=1))(by)) + retry_by = retry(max_attempts=10, exception_type=RequestError)(by) prisecter = P(pri=9007199254740991, sec=9007199254740991, ter=9007199254740991) # * from ch.tetr.io results: list[BySuccessModel] = [] while True: - model = await limit_by('league', Parameter(after=prisecter.to_prisecter(), limit=100), x_session_id) + model = await retry_by('league', Parameter(after=prisecter.to_prisecter(), limit=100), x_session_id) prisecter = model.data.entries[-1].p results.append(model) if len(model.data.entries) < 100: # 分页值 # noqa: PLR2004