Мой Telegram-бот для агрегирования новостей: опыт создания и использования
Привет, сообщество vc.ru!
Хочу поделиться своим проектом — Telegram-ботом, который значительно упрощает процесс чтения новостей в любимых Telegram-каналах. Если вас тоже утомляют сотни сообщений ежедневно, этот бот может вам помочь.
Ссылка на бота:
Два года назад я столкнулся с проблемой: хотел быть в курсе мировых событий, но топовые Telegram-каналы публикуют более 50 постов ежедневно. Просматривать все стало слишком утомительно, и я решил автоматизировать этот процесс.
Как работает бот?
- Добавляете каналы: Отправляете боту ссылки на интересующие вас публичные Telegram-каналы.
- Анализ контента: Бот регулярно сканирует их, оценивая популярность постов (по комментариям, перепостам и реакциям).
- Отбор лучших: Вы получаете только самые популярные публикации, а настройки позволяют задать процент пересылаемых постов.
Чтобы избегать постов, которые намеренно выделяются из-за прямых запросов авторов на лайки или комментарии, бот также делает OpenAI запросы для анализа сообщений. Это позволяет избегать сообщений, которые не несут информационной ценности.
Чтобы сделать начало работы с ботом проще и удобнее, я добавил команду /add_popular. С её помощью пользователь может быстро добавить канал из списка самых популярных Telegram-каналов, которые сгруппированы по категориям. Это особенно полезно для тех, кто хочет сразу протестировать бота, но не знает, с каких каналов начать.
Почему это полезно?
Этот бот стал моим основным инструментом для чтения новостей в Telegram. Он позволяет:
- Экономить время.
- Сосредотачиваться только на главных событиях, избегая информационного шума.
- Настроить информационную ленту под себя, добавляя только нужные каналы и регулируя процент пересылаемых сообщений.
Техническая информация
Основной код написан на Python с использованием Telegram API. Бот работает на виртуальном сервере Amazon Lightsail, что обеспечивает стабильность и низкую стоимость. Для хранения данных о подписках пользователей и их настройках используется PostgreSQL. Алгоритм отбора популярных публикаций основывается на реакции аудитории — учитываются как количество комментариев, так и реакции в Telegram.
Чему я научился
Работа над этим проектом дала мне несколько ценных уроков.
Во-первых, я стал писать скрипты практически на всё, что можно автоматизировать, что существенно улучшило мой подход к рутинным задачам.
Во-вторых, я понял важность компромиссных решений. Как pet-проект, бот не всегда получал достаточно времени и сил для реализации идеального решения. Например, изначально я выбрал одну библиотеку для работы с Telegram API, но она перестала обновляться и не поддерживала сообщения с цитатами. Вместо полной замены я решил сэкономить время и переписал только нужную часть функционала, используя другую библиотеку. Этот подход позволил сохранить баланс между эффективностью и затраченными усилиями.
Обратная связь
Буду рад, если кто-то из вас попробует бот и поделится своими впечатлениями. Также мне интересно, какие дополнительные функции или возможности вы хотели бы видеть в подобном инструменте?
Жду ваших комментариев и идей! 🚀