Skip to content

Add Discord voice notifications and admin setup with non-blocking Telegram chat tracking#19

Open
Anatolt wants to merge 2 commits into
mainfrom
codex/add-discord-to-telegram-notifications-0xq6ar
Open

Add Discord voice notifications and admin setup with non-blocking Telegram chat tracking#19
Anatolt wants to merge 2 commits into
mainfrom
codex/add-discord-to-telegram-notifications-0xq6ar

Conversation

@Anatolt
Copy link
Copy Markdown
Owner

@Anatolt Anatolt commented Dec 23, 2025

Motivation

  • Добавить оповещения в Telegram при подключении пользователей к голосовым каналам Discord и дать админам возможность выбирать, в какой чат слать эти уведомления.
  • Сохранить метаданные о Telegram‑чатах и голосовых каналах Discord для возможности отображения и выбора целевого чата.
  • Ввести набор админских команд для просмотра чатов и настройки потока уведомлений (/setflow, /show_discord_chats, /show_tg_chats, /admin_help).
  • Обеспечить, чтобы отслеживание чатов Telegram не конфликтовало со старой логикой слеш-команд (не блокировало обработчики).

Description

  • Добавлены таблицы и функции в services/memory.py для telegram_chats, discord_voice_channels и notification_settings, а также методы upsert_telegram_chat, get_telegram_chats, upsert_discord_voice_channel, get_discord_voice_channels, set_voice_notification_chat_id и get_voice_notification_chat_id.
  • Реализован хэндлер handlers/chat_tracking.py и зарегистрирован в tbot.py как неблокирующий MessageHandler(filters.ALL, track_chat, block=False) в низком приоритете (group=-1), чтобы лишь записывать метаданные чатов и не перехватывать команды.
  • Добавлены админские команды и вспомогательные функции в handlers/commands.py: admin_help, setflow, show_discord_chats, show_tg_chats, а также форматирование списков чатов и проверка прав через _is_admin_user; в handlers/messages.py добавлены текстовые триггеры покажи чаты дискорд / покажи чаты тг.
  • В discord_bot.py реализована синхронизация метаданных голосовых каналов на on_ready и обработка on_voice_state_update для детекции входов в каналы с отправкой уведомлений в Telegram через telegram.Bot на чат, выбранный через /setflow.
  • Расширен офлайн‑тестер команд utils/console_tester.py для проверки новых админских команд и сценариев (админский контекст, seed данных для чатов/каналов).

Testing

  • Запущен офлайн тест набора слеш-команд: python utils/console_tester.py --run-command-tests и проверены ответы основных и новых админских команд; тесты прошли успешно.
  • Тест охватил: /start, /new, /clear, /admin, /help, /admin_help, /models*, /consilium, /show_discord_chats, /show_tg_chats, /setflow, /routing_* и вернул ожидаемые ответы.
  • Не выполнялись интеграционные тесты с реальными Telegram/Discord API в CI в этой итерации, только офлайн командные тесты.
  • Внесено изменение регистрации трекера чатов (block=False, group=-1), чтобы предотвратить конфликт с существующими обработчиками и восстановить отклик бота на сообщения и слеш‑команды.

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant