Ерем Шахбазян › Erem01 Сбер ID
Боты и сайты под ключ | Автоматизация| Интеграции с CRM
Рейтинг
12 731
№ 83 в каталоге
Отзывы
Профессионализм
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 Парсер и агрегатор данных конкурентов с выгрузкой в Excel и обновлением по расписанию
Парсер и агрегатор данных конкурентов с выгрузкой в Excel и обновлением по расписанию
271
Веб-разработка и IT Платформа управления товарами и продажами для онлайн-бизнеса (интеграции, автоматизация, аналитика)
Платформа управления товарами и продажами для онлайн-бизнеса (интеграции, автоматизация, аналитика)
266
Веб-разработка и IT Система онлайн-продажи и проверки электронных билетов для музея
Система онлайн-продажи и проверки электронных билетов для музея
216
Веб-разработка и IT Восстановление сайта сервисного центра Remzzzona из веб-архива и перенос с 1С-Битрикс на WordPress: 71 страница, услуги, прайсы, заявка
Восстановление сайта сервисного центра Remzzzona из веб-архива и перенос с 1С-Битрикс на WordPress: 71 страница, услуги, прайсы, заявка
531