Ерем Шахбазян › Erem01 Сбер ID
Делаю сложные задачи простыми решениями
Рейтинг
9 619
№ 113 в каталоге
Отзывы
Профессионализм
9/10
Коммуникация
9 /10
Город
Москва
Опыт работы
5 лет
На сайте с
2025 года
Юридический статус
Самозанятый

Возрождение заброшенного RSS-бота для Telegram: перенос с Python 2 на Python 3 и aiogram 3, исправление ошибок, фильтры по словам

Используемые навыки Bot Development Docker Python SQLite Telegram API

Описание

RobotRSS — популярный открытый Telegram-бот (191 звезда на GitHub), который присылает новые записи из RSS-лент: новости, блоги, релизы, вакансии. Автор забросил его в 2021 году и отправил в архив. Код был написан на Python 2.7 и библиотеке для Telegram образца 2017 года — на современном Python он не запускается вообще.

Задача — вернуть проект к жизни: сохранить команды и идею, перенести на актуальный стек, исправить накопившиеся ошибки и довести до состояния, когда бота можно запустить одной командой.

Решение

Переписал бота на Python 3 и aiogram 3 с асинхронной загрузкой лент через httpx и разбором через feedparser. Команды оригинала сохранил: подписка, отписка, последние записи, список, пауза рассылки.

Нашёл и исправил ошибки оригинала. Лента скачивалась заново для каждого подписчика — теперь один раз на всех. Новые записи определялись по датам, и ленты без нужного поля отвергались целиком — теперь бот запоминает уже отправленные записи. При сбое ленты бот каждые пять минут слал всем одно и то же сообщение об ошибке — теперь предупреждает один раз. Символ «<» в заголовке ломал отправку. Адрес ленты переводился в нижний регистр и ломал часть ссылок.

Добавил фильтр по словам для каждой подписки, условные запросы (если лента не менялась, ничего не скачивается), защиту от наводнения после простоя, кнопки удаления в списке, Docker и 25 автотестов на настоящих лентах Хабра и GitHub.

Пока снимал скриншоты, поймал ещё одну ошибку уже в своём фильтре: слово «бот» находилось внутри «работает». Теперь поиск идёт с начала слова — «бот» находит «бота» и «ботов», но не «работу».

Результат

Бот снова работает: проверен на настоящих лентах Хабра и релизах aiogram на GitHub — подписка, последние записи, фильтр и рассылка только нового. Если лента не менялась, сервер отвечает «без изменений» и бот ничего не качает.

Проект — открытый форк с сохранением лицензии и указанием автора оригинала; в README подробно расписано, что изменено.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Мобильное приложение для геолокации и контроля выездных сотрудников (Android + Spring backend)
Мобильное приложение для геолокации и контроля выездных сотрудников (Android + Spring backend)
274
Веб-разработка и IT Мини-CRM для отдела продаж: клиенты, воронка сделок с историей, задачи, отчёты для руководителя, роли сотрудников и выгрузка в Excel
Мини-CRM для отдела продаж: клиенты, воронка сделок с историей, задачи, отчёты для руководителя, роли сотрудников и выгрузка в Excel
5
Дизайн и Брендинг Внедрение ИИ-ассистента для автоматизации обработки заявок и поддержки клиентов
Внедрение ИИ-ассистента для автоматизации обработки заявок и поддержки клиентов
357
Веб-разработка и IT Разработка корпоративного сайта и внутреннего каталога для компании, модернизирующей инженерные системы зданий.
Разработка корпоративного сайта и внутреннего каталога для компании, модернизирующей инженерные системы зданий.
225