refactor(asf): use ASF_URL directly, poll restart

This commit is contained in:
2026-07-22 22:10:24 +05:00
parent 2fb37d1ee8
commit b1c8f6d9f8
6 changed files with 70 additions and 32 deletions
+22 -3
View File
@@ -14,7 +14,7 @@ from bot.state import (
redeem_messages,
redeem_users,
)
from bot.ui.formatters import get_asf_status_text
from bot.ui.formatters import get_asf_status_text, get_asf_status
from bot.ui.keyboards import back_keyboard, confirm_action_keyboard, main_keyboard
router = Router()
@@ -88,6 +88,7 @@ async def restart_asf(callback: CallbackQuery) -> None:
await callback.answer()
try:
await callback.message.edit_text("♻ ASF перезапускается...") # type: ignore[union-attr]
response = restart_asf_request()
if response.status_code != 200:
logger.warning(
@@ -100,14 +101,28 @@ async def restart_asf(callback: CallbackQuery) -> None:
reply_markup=main_keyboard(),
)
return
await asyncio.sleep(6)
# ! Меняется подход к перезапуску ASF: вместо того чтобы ждать
# ! 6 секунд, лучше проверять статус ASF до тех пор он не запустится
# await asyncio.sleep(6)
status = get_asf_status()
await asyncio.sleep(1)
while status.status_code != 200:
status = get_asf_status()
await asyncio.sleep(1)
await callback.message.edit_text( # type: ignore[union-attr]
f"ASF успешно перезапущен\n\n{get_asf_status_text()}",
reply_markup=main_keyboard(),
)
logger.info("ASF успешно перезапущен: %s", user)
except Exception as error:
logger.exception("Не удалось перезапустить ASF: %s", user)
await callback.message.edit_text( # type: ignore[union-attr]
f"Ошибка: {error}",
reply_markup=main_keyboard(),
@@ -123,7 +138,11 @@ async def plugins_handler(callback: CallbackQuery) -> None:
try:
response = get_plugins()
if response.status_code != 200:
logger.warning("Не удалось получить список плагинов: %s status=%s", user, response.status_code)
logger.warning(
"Не удалось получить список плагинов: %s status=%s",
user,
response.status_code,
)
await callback.message.edit_text("Ошибка API") # type: ignore[union-attr]
return
data = response.json()