Я разработал бота для борьбы со спамом в Telegram

1

Этот текст написан в Сообществе, в нем сохранены авторский стиль и орфография

Аватар автора

Андрей Кузнецов

Страница автора

Исходные данные

Я давно читаю блог Алексея Макаренкова. Познакомился с ним еще в 2002 году в журнале Игромания. В его блоге я постоянно вижу спам ботов, которые рекламируют ставки и онлифанс. Узнал, что автор добавил антиспам ботов в свой чат, но очевидно они с задачей не справлялись, и как я узнал от него, многое ему приходилось чистить руками.

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

Где-то в середине пути я решил посмотреть как работают другие боты, и быстрый поиск в ру сегменте показал — они либо очень сложны в настройке, либо примитивны (ищут спам по ключевым словами), либо у них непредсказуемая модель монетизации — видел один с оплатой за каждое отработанное сообщение.

Создание

Начал разработку еще в сентябре 2025, когда уволился с прежнего места работы. Тогда я думал, что напишу его максимум за пару месяцев, но я быстро впал в режим перфекционизма и переоптимизации — когда ты выдумываешь функции, которые либо понадобятся на поздних этапах работы, либо могут не понадобиться вообще. В стеке у меня PostgreSQL, Telethon (Python), Raspberry Pi, Cron, Docker.

На пятом месяце я наконец это осознал и написал чёткий план простого, но рабочего продукта. Я купил себе лист феррошита и несколько магнитов, повесил его на стену, а на магниты вешал бумажные неклейкие заметки с тем, какие шаги надо сделать в данный момент. Никогда не любил структурировать задачи где-либо кроме головы, но этот способ оказался крайне эффективным: неделю после его введения я ходил в эйфории от того, что ничего не нужно запоминать. Еще через месяц я запустил бота в чат Алексея.

Он уже отслеживает то, что не в состоянии задетектить другие боты, но всё еще иногда "падает" в первую очередь из-за особенностей отправки сообщений телеграмом в реальном времени. Но я оперативно чиню все баги.

Итоги и планы

В планах у меня провести глобальное упорядочивание вспомогательных файлов бота, затем запланированные улучшения логики работы.

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