
Как мы проектировали мониторинг Telegram-групп на Telethon: архитектура, правила пользователей и масштабирование
SergeyCs 37 минут назад Как мы проектировали мониторинг Telegram-групп на Telethon: архитектура, правила пользователей и масштабирование Простой 17 мин 1.2K Python * PostgreSQL * Ретроспектива Из песочницы Telegram...
Значимый прорыв формирует отрасль ИИ: SergeyCs 37 минут назад Как мы проектировали мониторинг Telegram-групп на Telethon: архитектура, правила пользователей и масштабирование Простой 17 мин 1. 2K Python * PostgreSQL * Ретроспектива Из песочницы Telegram давно стал не только мессенджером, но и большой средой для сообществ: локальные чаты, профессиональные группы, каналы с комментариями, чаты по аренде, работе, продаже вещей, услугам и так далее. В какой-то момент у нас появилась техническая задача: сделать систему, которая умеет читать сообщения из Telegram-групп, проверять их по пользовательским правилам и отправлять уведомления, если найдено совпадение.
Например, один пользователь хочет получать сообщения, где есть слова:аренда байка снять квартиру обмен валютыДругой пользователь следит за теми же группами, но ищет совсем другие фразы:ищу разработчика python удаленная работаПри этом группы у пользователей могут пересекаться. Одну и ту же группу могут добавить 10, 100 или 1000 пользователей, но у каждого будут свои ключевые слова, минус-слова и настройки. В этой статье расскажем, как мы подошли к проектированию такой системы на Python и Telethon, какие сущности заложили в базу, почему важно группировать правила по chat_id, какие компромиссы появились уже на этапе MVP и как мы планируем развивать систему дальше.
Технические детали
Почему не Bot APIПервый очевидный вариант — обычный Telegram-бот через BotFather. У него есть плюсы:простая авторизация;хорошая документация;удобно отправлять сообщения пользователям;легко строить интерфейс через кнопки;не нужно хранить пользовательскую сессию Telegram. Но для задачи мониторинга групп у Bot API есть ограничения.
Обычный бот не может просто так читать произвольные публичные или приватные группы. Его нужно добавить в чат. В некоторых случаях ему нужно выдать права.
Кроме того, поведение бота зависит от privacy mode, типа чата и настроек группы. Мы рассматривали два варианта:Вариант 1: Bot API - проще - безопаснее с точки зрения авторизации - удобно для интерфейса - но ограничен при чтении чужих групп Вариант 2: userbot через Telethon - сложнее в эксплуатации - требует аккуратной работы с аккаунтом - но позволяет читать те чаты, к которым аккаунт уже имеет доступ Что выбрали мыДля чтения сообщений мы выбрали Telethon и userbot-подход, потому что для нашей задачи важно было работать с группами, где обычный BotFather-бот не всегда может получать все сообщения. При этом для пользовательского интерфейса мы оставили обычного Telegram-бота: через него удобнее настраивать группы, ключевые слова, минус-слова и подписку.
То есть архитектурно мы разделили роли:Userbot / Telethon — читает сообщения BotFather-бот — дает пользователю интерфейс управления Отдельный бот или чат — получает результаты Важно: такой подход не должен использоваться для обхода приватности, спама или действий, нарушающих правила площадки. Система должна работать только с теми чатами, к которым у аккаунта есть легитимный доступ.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





