Бот который удаляет сообщения telegram
Перейти к содержимому

Бот который удаляет сообщения telegram

  • автор:

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

Решил написать эту публикацию т.к. устал объяснять одно и то же людям, которые хотят использовать моего телеграм бота @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): на данный момент в репозитории находятся исходники устаревшей версии бота. Исходников актуальной версии бота я не предоставляю.

Может ли бот удалить все свои сообщения с пользователем?

К примеру я забанил пользователя с id 1111 Есть у телеграм бота функция что бы он удалил все уже существующие сообщения с пользователем 11111 ? Именно сообщения самого бота.

Думаю основная идея понятна. На каждое сообщение юзера сохранять message_id этого сообщения и при необходимости удаления истории, использовать этот список. Так же не забывать после удаления истории очищать список с message_id .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками telegram-bot telegram-api pytelegrambotapi python-telegram-bot или задайте свой вопрос.

Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2022.8.30.42948

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Телеграм бот для удаления системных уведомлений

Интервал удаления 1-2 секунды после вступления нового участника в группу.

Популярные боты:
@joinhider_bot
@AntiServiceMessage_Bot
@RemoveJoinGroupMsgBot

Установите любого бота в требуемую группу и назначьте Администратором с правами «Удаление сообщений»

Как установить:
1. Откройте вашу группу и кликните на ее название
2. Далее в правом верхнем углу кликните на кнопку Изм.
3. Далее кликните на Администраторы и нажмите на Добавить администратора
4. В поиске найдите нужного бота и кликните на него.
5. У бота оставьте активной опцию Удаление сообщений и нажмите в правом верхнем углу Готово.

Telegram бот для удаления смс системных уведомлений о вступлении в группу или покинул группу

Telegram бот для удаления смс системных уведомлений о вступлении в группу(чат) или покинул группу (чат)Бот для автоматического удаления уведомлений о вступлении в группу «name вступил(а) в группу..» @Toptgcmc_bot

+Интервал удаления меньше 1 секунды после вступления нового участника в группу.

Очень простой в использование Добавьте бота в группу и назначьте Администратором с правами «Удалять сообщения» и все готово бот будет удалять смс о вступлении в группу или о том что человек покинул группу

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

Ваш адрес email не будет опубликован.