From 61b5fcb137a3b58c23dad89aaec79e2aca02fa4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=B5=E5=91=B5=E3=81=A7=E3=81=99?= <51957264+shoucandanghehe@users.noreply.github.com> Date: Sat, 19 Oct 2024 18:34:56 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E4=B8=BA=20TETR.IO=20=E5=BC=95?= =?UTF-8?q?=E5=85=A5=E5=85=A8=E5=B1=80=E9=80=9F=E7=8E=87=E9=99=90=E5=88=B6?= =?UTF-8?q?=20(#481)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nonebot_plugin_tetris_stats/games/tetrio/api/cache.py | 5 ++++- nonebot_plugin_tetris_stats/games/tetrio/rank/__init__.py | 5 ++--- 2 files changed, 6 insertions(+), 4 deletions(-) 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