- console_commands/logs.py — чтение последних строк лога (tail -20) - console_commands/reload.py — горячая перезагрузка всех cogs - console_commands/trigger_morning.py — ручной запуск morning-дайджеста - logs доступна через admin.py (docker exec) и интерактивный терминал - reload и trigger morning доступны через интерактивный терминал - сохранён bot._scheduler для доступа к планировщику - обновлены __init__.py, admin.py, README.md, ISSUES.md - добавлены тесты: test_console_logs.py (4), test_console_reload.py (2), test_console_trigger_morning.py (3) - итого 243 теста
24 lines
697 B
Python
24 lines
697 B
Python
"""Горячая перезагрузка cogs без остановки бота."""
|
|
|
|
from commands import ALL_COMMANDS
|
|
|
|
|
|
def reload(stop_event, bot):
|
|
"""Перезагрузить все cogs бота."""
|
|
if stop_event.is_set():
|
|
return None
|
|
|
|
# Удалить все текущие cogs
|
|
cog_names = list(bot.cogs.keys())
|
|
for cog_name in cog_names:
|
|
bot.remove_cog(cog_name)
|
|
|
|
# Пересоздать и добавить все cogs
|
|
reloaded = []
|
|
for cog_class in ALL_COMMANDS:
|
|
cog = cog_class()
|
|
bot.add_cog(cog)
|
|
reloaded.append(cog.__class__.__name__)
|
|
|
|
print(f"\nПерезагружено cogs: {', '.join(reloaded)}")
|