Исправил api_delay

This commit is contained in:
Тупой
2025-07-02 13:49:58 +03:00
committed by GitHub
parent 83ec3837d3
commit 3c7f55fe84
+13 -7
View File
@@ -87,13 +87,13 @@ class Config:
"phone_number": input("Введите ваш номер телефона (в международном формате, +...): "), "phone_number": input("Введите ваш номер телефона (в международном формате, +...): "),
"lolz_token": input("Введите ваш Lolzteam API токен: "), "lolz_token": input("Введите ваш Lolzteam API токен: "),
"forum_thread_id": input("Введите ID темы на форуме для отслеживания: "), "forum_thread_id": input("Введите ID темы на форуме для отслеживания: "),
"stars_count": 1, "stars_count": 3,
"check_interval": 60, "check_interval": 30,
"api_delay": 0.5, "api_delay": 5,
"max_retries": 1, "max_retries": 3,
"processed_posts_file": "processed_posts.json", "processed_posts_file": "processed_posts.json",
"enable_reply": True, "enable_reply": True,
"reply_templates": ["Готово", "Отправил"], "reply_templates": ["Готово! Отправил звезды. ⭐", "Выполнено.", "Сделал.", "+rep"],
} }
with open(self.config_file, 'w', encoding='utf-8') as f: with open(self.config_file, 'w', encoding='utf-8') as f:
json.dump(config, f, indent=4, ensure_ascii=False) json.dump(config, f, indent=4, ensure_ascii=False)
@@ -135,7 +135,7 @@ class LolzAPI:
self.base_url = "https://prod-api.lolz.live" self.base_url = "https://prod-api.lolz.live"
self.headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"} self.headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
async def _request(self, method: str, endpoint: str, **kwargs) -> Optional[Dict[str, Any]]: async def _request(self, method: str, endpoint: str, is_retry: bool = False, **kwargs) -> Optional[Dict[str, Any]]:
url = f"{self.base_url}{endpoint}" url = f"{self.base_url}{endpoint}"
try: try:
async with aiohttp.ClientSession() as session: async with aiohttp.ClientSession() as session:
@@ -144,6 +144,12 @@ class LolzAPI:
return await response.json() return await response.json()
error_text = await response.text() error_text = await response.text()
if response.status == 403 and "Необходимо подождать" in error_text and not is_retry:
logger.warning("Обнаружен флуд-контроль API. Ожидание 3 секунды перед повторной попыткой...")
await asyncio.sleep(3)
return await self._request(method, endpoint, is_retry=True, **kwargs)
if response.status == 429: if response.status == 429:
logger.warning("Превышен лимит запросов к API, ожидание 10 секунд...") logger.warning("Превышен лимит запросов к API, ожидание 10 секунд...")
await asyncio.sleep(10) await asyncio.sleep(10)
@@ -311,7 +317,7 @@ class TelegramStarsBot:
logger.info("Бот остановлен.") logger.info("Бот остановлен.")
def main(): def main():
parser = argparse.ArgumentParser(description='Telegram Stars UserBot LZT') parser = argparse.ArgumentParser(description='Telegram Stars Bot для Lolzteam')
parser.add_argument('--thread-id', type=str, help='ID темы форума (переопределяет config.json)') parser.add_argument('--thread-id', type=str, help='ID темы форума (переопределяет config.json)')
parser.add_argument('--reset-config', action='store_true', help='Запустить мастер настройки заново') parser.add_argument('--reset-config', action='store_true', help='Запустить мастер настройки заново')
args = parser.parse_args() args = parser.parse_args()