Archived
refactor(logging): logging and rename token env
This commit is contained in:
+52
-3
@@ -1,27 +1,53 @@
|
||||
import asyncio
|
||||
|
||||
from bot.api.asf import get_all_bots, get_bot, save_bot_config, send_command
|
||||
from bot.logging_utils import get_logger
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
def is_bot_playing(bot_name: str) -> bool:
|
||||
logger.info("Проверка, играет ли бот: bot=%s", bot_name)
|
||||
response = get_all_bots()
|
||||
if response.status_code != 200:
|
||||
logger.warning(
|
||||
"Не удалось проверить состояние игры бота: bot=%s status=%s",
|
||||
bot_name,
|
||||
response.status_code,
|
||||
)
|
||||
return False
|
||||
|
||||
data = response.json()
|
||||
bot = data.get("Result", {}).get(bot_name, {})
|
||||
return bool(bot.get("PlayingBlocked", False)) or bool(
|
||||
playing = bool(bot.get("PlayingBlocked", False)) or bool(
|
||||
bot.get("CurrentGamesPlayed", [])
|
||||
)
|
||||
logger.info("Состояние игры бота определено: bot=%s playing=%s", bot_name, playing)
|
||||
return playing
|
||||
|
||||
|
||||
def is_idle_enabled(bot_name: str, app_id: int) -> bool:
|
||||
logger.info("Проверка статуса idle-игры: bot=%s app_id=%s", bot_name, app_id)
|
||||
response = get_bot(bot_name)
|
||||
if response.status_code != 200:
|
||||
logger.warning(
|
||||
"Не удалось получить конфиг бота для проверки idle: bot=%s status=%s",
|
||||
bot_name,
|
||||
response.status_code,
|
||||
)
|
||||
return False
|
||||
|
||||
data = response.json()
|
||||
bot = data.get("Result", {}).get(bot_name, {})
|
||||
config = bot.get("BotConfig", {})
|
||||
return app_id in config.get("GamesPlayedWhileIdle", [])
|
||||
enabled = app_id in config.get("GamesPlayedWhileIdle", [])
|
||||
logger.info(
|
||||
"Статус idle-игры определен: bot=%s app_id=%s enabled=%s",
|
||||
bot_name,
|
||||
app_id,
|
||||
enabled,
|
||||
)
|
||||
return enabled
|
||||
|
||||
|
||||
def toggle_idle_game(config: dict, app_id: int) -> tuple[dict, bool]:
|
||||
@@ -38,22 +64,45 @@ def toggle_idle_game(config: dict, app_id: int) -> tuple[dict, bool]:
|
||||
|
||||
async def reload_bot(bot_name: str) -> None:
|
||||
try:
|
||||
logger.info("Отправка команды перезагрузки бота: bot=%s", bot_name)
|
||||
send_command(f"!reload {bot_name}")
|
||||
except Exception:
|
||||
pass
|
||||
logger.exception(
|
||||
"Не удалось отправить команду перезагрузки бота: bot=%s", bot_name
|
||||
)
|
||||
|
||||
|
||||
async def update_idle_game(bot_name: str, app_id: int) -> tuple[bool, str, bool]:
|
||||
logger.info("Изменение настройки idle-игры: bot=%s app_id=%s", bot_name, app_id)
|
||||
response = get_bot(bot_name)
|
||||
if response.status_code != 200:
|
||||
logger.warning(
|
||||
"Не удалось загрузить конфиг бота для idle: bot=%s status=%s",
|
||||
bot_name,
|
||||
response.status_code,
|
||||
)
|
||||
return False, "Ошибка API", False
|
||||
|
||||
data = response.json()
|
||||
bot_data = data.get("Result", {}).get(bot_name, {})
|
||||
config = bot_data.get("BotConfig", {})
|
||||
config, enabled = toggle_idle_game(config, app_id)
|
||||
save = save_bot_config(bot_name, config)
|
||||
if save.status_code != 200:
|
||||
logger.warning(
|
||||
"Не удалось сохранить конфиг idle-игры: bot=%s app_id=%s status=%s",
|
||||
bot_name,
|
||||
app_id,
|
||||
save.status_code,
|
||||
)
|
||||
return False, "Ошибка сохранения", enabled
|
||||
|
||||
asyncio.create_task(reload_bot(bot_name))
|
||||
action = "Idle включен" if enabled else "Idle выключен"
|
||||
logger.info(
|
||||
"Настройка idle-игры изменена: bot=%s app_id=%s enabled=%s",
|
||||
bot_name,
|
||||
app_id,
|
||||
enabled,
|
||||
)
|
||||
return True, action, enabled
|
||||
|
||||
Reference in New Issue
Block a user