Archived
refactor(asf): use ASF_URL directly, poll restart
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user