Перейти к содержимому

Бот который удаляет ссылки в телеграм

  • автор:

Как удалять рекламу и спам в телеграм чатах

Краткое руководство по настройке TgDev2 ботов для эффективного удаления рекламы и спама.

0. Как правильно добавлять ботов в чат

Внимание! Всех ботов нужно добавлять с правами администратора. Каждому боту нужно дать права на удаление сообщений и на бан пользователей. Без этих прав боты не будут работать. Недостаточно просто добавить бота в чат, нужно сделать его администратором.

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

Как найти документацию по боту? Откройте ссылку https://tgdev.io — вы увидите список ботов. Перейдите на страницу нужного бота — это и будет документация. Внимательно прочитайте её от начала до конца. Если вы не владеете английским языком, воспользуйтесь сервисом перевода translate.google.com

1. Запрет на приглашение спам-ботов в чат

Перво-наперво нужно запретить спамерам приглашать спам-ботов в чат. Самый простой способ — это сделать группу публичной: «Управление группой / тип группы / публичная группа». Телеграм устроен так, что он запрещает простым пользователям добавлять ботов в группу, если это публичная группа.

Если у вас нет возможности сделать группу публичной, тогда используйте @watchdog_robot и команду /watchdog block bot . Как только простой пользователь добавит нового бота в вашу группу, Watchdog Robot тут же его удалит.

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

2. Запрет новым пользователям публиковать ссылки

Обычно спамеры шлют спам сразу же после входа в группу. Используйте @daysandbox_bot для того чтобы запретить новым пользователям публиковать ссылки и пересылать сообщения из других чатов и каналов. По-умолчанию, Daysandbox Bot настроен на удаление ссылок в течении первых 24 нахождения нового пользователья в группе.

3. Запрет арабского спама

Очень часто в русскоязычные чаты попадает арабский (на самом деле персидский) спам. Для борьбы с этим видом спама просто добавьте бота @noarab_bot в ваш чат. Ему не нужно никаких настроек — он будет удалять все сообщения, содержащие арабский символы, а также банить новых пользователей, в именах которых есть арабские символы.

4. Удаление всех ссылок, стикеров и т.д.

Если вы хотите удалять все ссылки всегда (а не только от новых пользователей, как это делает @daysandbox_bot), если вы хотите удалять все стикеры или GIF-картинки или голосовые сообщения и т.д., то вам поможет в этом @watchdog_robot. Установите его в чат и настройте на удаление нужных типов сообщений. Например, команда для удаления ссылок на сайты /watchdog block link .

5. Удаление сообщений, содержащих запрещённые слова

Если вы часто видите спам с одним и тем же словом и другие боты не удаляют этот спам, воспользуйтесь ботом @grep_robot. Установите бот в чат и добавьте нужные слова в список стоп-слов. Например, для удаления сообщений со словом «снеговик» используйте команду /grep add word снеговик .

6. Удаление файловых вложений

Арабы зачастую рассылают спам в виде apk файлов, прикреплённых к сообщению. Чтобы удалять сообщения с прикреплёнными файлами используйте @watchdog_robot и команду /watchdog block attachment .

7. Удаление ругательств

Для того чтобы удалять сообщения с нецензурными словами, установите в чат бота @nopigrobot. На данный момент бот умеет удалять только ругательства на русском языке.

Телеграм бот для удаления спама

Решил написать эту публикацию т.к. устал объяснять одно и то же людям, которые хотят использовать моего телеграм бота @daysandbox_bot. Итак, несколько месяцев назад я разработал бота для удаления спама по очень простому признаку: если человек зашёл в чат и провёл в нём менее суток, то любые ссылки или forward сообщения от этого человека удаляются. Всё. Никаких нейронных сеток, анализа частотности, модерируемых white- и black-листов и прочих сложных вещей. На удивление бот приобрёл некоторую популярность и работает уже более чем в шестистах чатиках. Далее я попытаюсь развёрнуто описать принцип работы бота, чтобы в дальнейшем давать ссылку на эту статью.

Принцип работы бота

С момента добавления в чат бот отслеживает события захода новых пользователей в группу и тем самым знает, когда кто зашёл в чат и сколько времени он уже провёл в чате. В силу ограничений telegram API я не могу узнать, когда к чату присоединились те пользователи, которые уже были на момент добавления бота в чат. Бот никак не анализирует сообщения от пользователей, существующи на момент добавления бота. Итак, бот знает, когда новые пользователи зашли в чатик. Если бот видит, пользователь провёл в чате меньше суток и запостил сообщение, удовлетворяющее определению спама, то бот удаляет такое сообщение. Он не банит пользователя, не ставит ему read-only права, бот просто удаляет сообщение со спамом. Если пользователь запостит не-спам сообщение, то оно будет опубликовано. Какие сообщения считаются спамом? Во-первых, любые сообщения содержащие ссылку: URL, email или username. Во-вторых, любые forward-сообщения т.е. сообщения пересланные из другого чата. Для правила username есть исключение, если username ссылается на пользователя, то такое сообщение разрешается. Бот удаляет только те сообщения с username, которые ссылаются на группу или канал. Это сделано для того, чтобы не было ложных срабатываний, когда новый пользователь просто пытается обратиться к какому-то участнику чата по его username.

Что бот daysandbox_bot НЕ делает
  • Бот не банит никого и никогда
  • Бот никак не фильтрует сообщения от тех участников чата, что уже были в чате на момент добавления бота
  • Бот фильтрует сообщения только тех пользователей, которые провели в чате менее суток. Если пользователь провёл в чате больше суток, его сообщения никак не обрабатываются ботом
  • Бот никак не анализирует текст сообщения, он просто удаляет сообщения со ссылками. Всё.
Как правильно добавить бота в чат

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

  • Заходим в чатик, кликаем на название чатика сверху
  • В открывшемся окне сверху справа от надписи «Информация о группе» кликаем на иконку из трёх точек
  • В открывшемся меню кликаем на «Управление группой»
  • В открывшемся меню кликаем на «Администраторы»
  • В открывшемся окне снизу кликаем на «Добавить администратора»
  • В открывшемся окне в строке поиска вводим daysandbox_bot
  • В обновившихся результатах поиска кликаем на DaySandBox бота, у него должна быть жёлтая иконка пакмэна.
  • В открывшемя окне выставляем боту права на удаление сообщений, все остальные права отключаем.
  • Жмём «Сохранить»
Настройки бота

У бота есть несколько настроек.

Напишите в чатик /daysandbox_set safe_hours=N для задания времени, в течении которого сообщения новых пользователей анализируются на признаки спама. По-умолчанию, этот период равен суткам. Вы можете указать количество часов от нуля до 8760 (один год). Период равный нулю часам по сути деактивирует бота.

Напишите в чатик /daysandbox_set publog=yes чтобы разрешить боту писать сообщения в чат о том, что сообщение какого-либо пользователя было удалено. По-умолчанию, бот именно это и делает.

Текущие значения этих двух настроек можно получить командой /daysandbox_config .

Немного статистики

Мне лень рисовать красивые графики, скажу лишь, что бот за день бот удаляет от 10 до 15 тысяч сообщений и работает более чем в 600 чатиках.

Open Source

Исходники бота находятся в открытом доступе на github.
UPD (11 февраля, 2019): на данный момент в репозитории находятся исходники устаревшей версии бота. Исходников актуальной версии бота я не предоставляю.

Другие мои боты

Возможно, вас заинтересуют другие боты, которых я разработал. С полным списком ботов вы можете ознакомиться на сайте https://tgdev.io

Контакты для связи

Группы для обсуждения моих ботов:

Антиспам-бот

Как только Ваш телеграм канал становится популярным — в него приходят спамеры и оставляют в комментариях рекламные спам-ссылки. Чем больше Ваша аудитория — тем большее количество плохих комментариев Вы удаляете, расходуя на эту задачу свое время.

К нам обратилась администрация клуба менторов для того, чтобы помочь решить проблему со спам-комментариями в канале @promentoring

На основе решения NJ Bot был разработан чат-бот, который мониторинг спам в комментариях канала и удаляет его, а также формирует претендентов в бан-списки.

Антиспам-бот

  • Находить комментарии со спам-ссылками и удалять их
  • Формировать список кандидатов на бан и предоставлять возможность управления пользователями в Telegram-канале

Логика и программирование

В сердце проекта — наша собственный продукт NJ Bot, который позволяет быстро создавать боты со сложным функционалом одновременно для нескольких мессенджеров — Telegram, WhatsApp, Viber, чат на сайте и других.

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

Результаты работ по проекту:

  • Чат-бот создан и добавлен в Telegram-канал для комментариев @promentoring
  • Если для Вас подходит это решение — добавляйте бота @njsoft_dev_bot к себе в канал с комментариями. По вопросам доработок или разработки нового решения — свяжитесь удобным для Вас способом.

Телеграм бот для удаления спама

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

Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий
Мой бот универсальный, он удаляет спам независимо от тематики спама.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий

Ваш бот ничем по логике не отличатеся от прочих. Ну разве что есть еще такой, что смотрит на содержимое (эвристика там или nlp не знаю). У всех этих ботов есть один жирный минус — они настолько ненавидят спам, что готовы линчевать обычного пользователя. И если пропущенный спам никого не удивит, то забаненный по ошибке пользователь это серьезная проблема.

В своей реализации прошел по тем же граблям. В итоге бот просто зовет админов, чтобы они приняли решение. По пользователям ведется статистика, чтобы реагировать на их первые N сообщений (дальше вероятность, что это спаммер стремится к нулю). Если упоминают человека, то линк ровно такой же как и у канала, но при этом это ложное срабатывание. Но это уже не привинчивал, потому что в тех каналах, где был бот, спаммеры почти перестали появляться и интерес продолжать пропал (после рестарта сервера забыл перезапустить и заметил только через 2 недели случайно, ну а так как проблема ушла то и оживлять не стал).

Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий

Как раз из-за таких людей как вы я и написал статью, хотя я смотрю, статья тоже не помогла. Я в статье два раза написал, что бот никого никогда не банит и вот снова вы опять про бан. Бот всего лишь удаляет сообщения со ссылками от новорегов, в первые 24 часа. Конечно, там может быть false positive, но судя по отзывам админов всех всё устраивает за редким исключением. Некоторые админы вообще высказывают пожелания в боте, который удаляет все ссылки всегда — так всех достал спам.

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

Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий
Спамеры тоже пользуются Bot-API, или используются обычное API (которое для всех пользователей)?
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий

Спамеры используют client API (обычное API), иначе бы им пришлось каждого бота добавлять руками в чат т.к. бот не может сам зайти в чат.

Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий

Прошу прощения, пропустил часть деталей. Из-за рекламного характера читал по диагонали. Но как бы ваши априорные суждения ничуть не лучше. Чаты все были с внешними ссылками, спам был проблемой, по поведению можно было определить количество разных платформ спаммеров. Как минимум одна платформа точно следила за реакцией и пробовала менять поведение. Две разделяли спам по времени в разных каналах. Но тотально решить проблему скорее всего помогли еще действия самого телеграмма. Не знаю что именно помогло, но в то же самое время, в чатах где за порядком следили без автоматики проблема оставалась еще длительное время. Ну и, имхо, спаммерам по-прежнему хватает чатов (поэтому весь спам достаточно тупой в исполнении) где можно не заморачиваясь работать, поэтому из «трудных» каналов проще уйти, чтобы меньше привлекать внимание самого телеграмма.

Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий

Спамеры иногда и хитрее бывают. Я тут на одном форуме стареньком подтираю спам, так там регистрируются, пишут в течении пары недель по одному-два сообщению в день, причем по теме. А потом выдают что-нибудь про увеличение всяких органов.

Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё

А можно ли добавить функцию к боту, например, статистику пользователей: кто кого добавил или сколько на период пользователь пригласил пользователей? Или это идея для отдельного бота?

Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий
Это явно идея для другого бота.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё

Сложно ли будет добавить функционал по удалению всех сообщений от пользователей, которые не прошли «капчу», отправив боту некое ключевое слово из запиненного в правилах чата сообщения?
Пользователю при этом можно напомнить о том что он не прочёл правила или прочёл их невнимательно (-_-)

Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё
Показать предыдущий комментарий
Это прикольная идея, но она определённо для другого бота.
Комментарий пока не оценивали 0
Ответить Добавить в закладки Ещё

Добрый день уважаемые разработчики и члены сообщества habr

Такой вопрос: возможно ли с помощью ваших инструментов удалять сообщение присланных ботом, вида

Приветствую тебя, username
Добро пожаловать.
Рейтинг пользователя: 0, карма: 54.78%

нет? Если нет, посоветуйте пожалуйста годный инструмент

ПС. использую Join Hider Bot & Daysandbox Bot

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *