Telegram бот для удаления ботов в канале

Время от времени владельцы Telegram-групп сталкиваются с тем, что злонамеренные граждане начинают вести себя не особо культурно и наливают в вашу группу тысячи ботов.

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

Так что же делать, если в один «прекрасный» день вы видите, что к вам в группу стали пачками добавляться непонятные пользователи?

Наша тактика защиты будет состоять из трёх вещей:

  1. Добавление в группу бота-администратора, который будет автоматом банить всех новых пользователей
  2. Очистка всех тех, кто уже успел вступить, до момента, когда был добавлен бот-администратор
  3. Создание сложностей для проведения повторных атак

Добавляем бота-администратора

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

Топ ботов для каналов

На рынке существует с десяток решений данной проблемы, лично я выбрал для себя бота ChatKeeper. Бот довольно удобный, масса настроек, имеется веб-интерфейс, короче — рекомендую.

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

Итак, после включения «режима атаки» ваш новоиспечённый админ будет банить всех ботов, которых вам продолжают наливать в группу. Отлично, мы прекратили приток новых ботов, но что делать с теми, которые уже успели к нам вступить?

Чистим вступивших ботов

Перво-наперво засеките время, когда вы перевели бота-администратора в режим атаки. Допустим, это было 12:15. Далее проматываете вашу группу и ищете момент, когда в неё стали добавляться невнятные пользователи. Допустим, это было в 10:42.

Всех новых пользователей, добавившихся в промежутке 10:42 — 12:15 вам необходимо удалить. Как получить список таких пользователей?

Для решения этой задачи Telegram предоставляет нам полный лог действий, произошедших на канале. Называется он « Recent Actions » и доступен в меню группы.

Если зайти в этот лог, то справа вверху будет кнопка, позволяющая отфильтровать лог по различным типам действий. Нас интересует действие « New members «.

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

Еще по теме:  Аккаунт в Телеграмме сидит на другом

Конечно же нет. Специально для этой задачи мне пришлось написать небольшое консольное приложение, работающее как под Windows так и под MacOs. Оно делает ровно то, о чём я написал выше: читает лог действий группы за заданный промежуток времени и удаляет новых пользователей.

ВНИМАНИЕ: Лог группы хранится на серверах Telegram в течение 48 часов, после чего удаляется, поэтому начинайте очистку как можно раньше!

Приложение живёт тут и вот как с ним работать:

  • Скачиваете весь код из GitHub репозитория в виде zip-архива и разархивируете его в какую-нибудь папку
  • Открываете в любом текстовом редакторе файлик Program.cs и редактируете настройки. Вот как выглядит блок настроек

Вам нужно поменять здесь всё-всё-всё. Начнём по порядку:

  1. Ваш номер телефона — тут всё вполне очевидно.
  2. Название вашего чата в телеграме. Без собаки!
  3. Начальная дата, начиная с которой софт будет чистить пользователей. Формат у неё такой: год, месяц, день, часы, минуты, секунды. ВНИМАНИЕ: часовой пояс здесь UTC+0. Поэтому, если у вас, например +3, то вам надо вычесть 3 часа чтобы получить нужную дату.
  4. Конечная дата, формат тот же, что и у начальной
  5. apiId и apiHash — число и хэш для доступа к API Телеграма от вашего лица. Их нужно взять вот отсюда.

После того, как вы всё поменяли и сохранили, необходимо скомпилировать и запустить софт. Для этого:

  • Ставите себе последний .NET SDK с сайта Microsoft
  • Запускаете консоль/терминал и командой cd переходите в папку, в которую разархивировали код
  • Пишете dotnet run и жмёте Enter

После того, как вы запустили программу, она спросит у вас код доступа, который придёт вам в Телеграм. Введите его в консоли.

Далее софт начинает чистить всех пользователей в заданном промежутке времени, выглядит это всё примерно вот так

Скорость очистки равна 300 пользователей за 13 минут, т.е. примерно полторы тысячи в час. К сожалению, быстрее не получится, Telegram ограничивает повторяющиеся API-запросы. Так что просто запустите программу фоном и пусть работает.

Заметка: если вы программист, то вы можете ускорить работу программы, добавив в группу ещё несколько админов, далее получить для них apiId и apiHash, после чего чистить группу многопоточно, используя все аккаунты админов, что есть в наличии.

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

Усложняем возможность проведения последующих атак на вашу группу

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

Проверки могут быть разнообразными: нажатие на кнопку «Войти», решение несложной математической задачки, капча и т.п. Мы с вам остановимся на самой простой: кнопке «Войти».

Для её реализации нам потребуется всё тот же бот-администратор ChatKeeper. Переходим в веб-интерфейс бота, выбираем «Настройки» — «Приветствие» и ставим всё примерно так как на скрине ниже:

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

Еще по теме:  Как открыть Телеграмм без пароля

Поздравляю! Вы только что сделали всё необходимое, чтобы защитить вашу Telegram-группу. Для того, чтобы добавить вместо кнопки, например, математическую задачку — читайте справку ChatKeeper-а, а я же со своей стороны пожелаю вашей группе процветать и здравствовать, успехов!

Источник: yellowweb.top

Ведение публикаций в Telegram-канале с python-telegram-bot

Отправка/редактирование/удаление сообщений в Telegram-канале

Если при помощи python-telegram-bot планируется только вести Telegram-канал (например, публиковать анонсы новых статей сайта или их обновления), то ставить полностью библиотеку со всеми зависимостями не обязательно. Достаточно установить чистый интерфейс Python для Telegram Bot API python-telegram-bot-raw .

Так как TelegramBot нужен для ведения Telegram-канала, следовательно он не будет принимать каких либо сообщений, а будет только отправлять, удалять или редактировать уже отправленные сообщения в Telegram-канал. Для таких задач высокоуровневый интерфейс расширения telegram.ext не нужен. Расширение telegram.ext в основном используется для удобной обработки входящих сообщений, создания вебхука или регулярных обновлений бота и т.д.

Для начала необходимо создать Telegram-канал:

  • Для создания канала со смартфона необходимо нажать на значок с карандашом. Он отображается в окне со списком переписок и каналов. После этого нажмите на кнопку Создать канал .
  • В десктопной версии Telegram необходимо зайти в меню, а затем нажать на кнопку Создать канал .

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

Затем выбираем тип канала: публичный или частный:

  • Публичный канал можно найти через поиск, а подписаться на него может любой пользователь Telegram.
  • Частный канал доступен только по ссылке-приглашению, то есть его нельзя найти через поиск.

Выбираем публичный, придумываем и вводим ссылку, по которой можно будет попасть на канал. Эта ссылка, также служит в качестве chat_id , на нее отправляются новые сообщения.

Осталось только добавить этого бота в качестве администратора канала (для Desktop клиента):

  • Открываем канал, жмем три точки и выбираем «Информация канале»;
  • В открывшемся окне опять три точки и выбираем «Управление каналом»;
  • Здесь выбираем «Администраторы». В списке ботов не будет.
  • В поиске вводим имя созданного бота и жмем «Добавить администратора»;
  • Добавить бота может только создатель канала.
  • Другие администраторы не могут добавлять ботов в каналы.
  • Канал может быть публичным или частным (не имеет значения)

Содержание:

  • Отправляем сообщение в Telegram-канал;
  • Редактируем сообщение в Telegram-канале;
  • Удаляем сообщение в Telegram-канале;
  • Закрепляем/открепляем сообщение в Telegram-канале;
  • Изменение название и описание канала.

Отправляем сообщение в Telegram-канал.

Например, есть сайт. При публикации очередной статьи/материала можно выполнять представленный ниже код, для отправки сообщения в Telegram-канал. Полученный в результате отправки номер сообщения можно хранить в БД сайта, для случаев редактирования или удаления статьи/материала сайта (отправки сообщения в канал об обновлении статьи или ее удаления).

После отправки сообщения, объект send будет содержать номер сообщения send.message_id в контексте этого канала. Этот номер можно использовать для редактирования или удаления отправленного сообщения.

Еще по теме:  Как сделать так чтобы ссылки в Телеграмме открывались в Яндексе а не в

Редактируем сообщение в Telegram-канале.

Для того, чтобы отредактировать отправленное сообщение в Telegram-канале, необходим его порядковый номер message_id в контексте этого канала, полученный при его отправке.

Метод bot.edit_мessage_text() используется для редактирования текстовых и игровых сообщений. В случае успеха, если отредактированное сообщение не является встроенным сообщением, возвращается отредактированное сообщение, в противном случае возвращается True .

Удаляем сообщение в Telegram-канале.

Для того, чтобы удалить сообщение в Telegram-канале, необходим его порядковый номер message_id в контексте этого канала, полученный при его отправке.

Внимание! Сообщение может быть удалено ботом только в том случае, если оно было отправлено менее 48 часов назад. После 48 часов сообщение может удалить только реальный пользователь (администратор канала), вручную.

Метод bot.delete_message() используется для удаления сообщения, в том числе служебного, со следующими ограничениями:

  • Служебные сообщения о создании супергруппы, канала или темы форума не могут быть удалены.
  • Сообщение с кубиками в приватном чате можно удалить только в том случае, если оно было отправлено более 24 часов назад.
  • Боты могут удалять исходящие сообщения в приватных чатах, группах и супергруппах.
  • Боты могут удалять входящие сообщения в приватных чатах.
  • Боты с разрешениями can_post_messages могут удалять исходящие сообщения в каналах.
  • Если бот является администратором группы, он может удалить там любое сообщение.
  • Если у бота есть разрешение can_delete_messages в супергруппе или канале, он может удалить там любое сообщение.

Возвращает True в случае успеха.

Закрепляем/открепляем сообщение в Telegram-канале.

Для того, чтобы закрепить/открепить сообщение в Telegram-канале, необходим его порядковый номер message_id в контексте этого канала, полученный при его отправке.

  • Метод bot.pin_chat_message(chat_id, message_id) — закрепляет сообщение для пользователей канала;
  • Метод bot.unpin_chat_message(chat_id, message_id) — открепляет сообщение для пользователей канала.

Используйте эти методы, чтобы добавить сообщение в список закрепленных сообщений в чате или открепить его. Если чат не является приватным, бот должен быть администратором в чате и должен иметь права администратора ‘canpinmessages’.

Пример закрепления сообщения в канале Telegram:

Изменение название и описание канала.

Используйте метод bot.set_chat_title() , чтобы изменить название чата/канала. Названия не могут быть изменены для приватных чатов/групп. Чтобы это работало, бот должен быть администратором в чате и иметь соответствующие права администратора. Возвращает True в случае успеха.

Используйте метод bot.set_chat_description() , чтобы изменить описание группы, супергруппы или канала. Чтобы это работало, бот должен быть администратором в чате и иметь соответствующие права администратора. Возвращает True в случае успеха.

Пример изменения названия и описания канала Telegram:

Источник: docs-python.ru

Бот для удаления ссылок в чатах telegram

Чтобы автоматически удалять все публикуемые ссылки в ваш telegram-чат – необходимо добавить и настроить нужного бота.

Важно! Он НЕ будет удалять ссылки от администраторов. А только от обычных пользователей. Также, бота лучше всего добавлять после того, как все администраторы уже добавлены и назначены в чате. Чтобы обновить список администраторов – нужно отправить команду: /watchdog reload_admins

Всё. Теперь все ссылки отправляемые в ваш чат будут автоматически удаляться ботом)

Микола Полтавцев Follow Пишу про технічний бік онлайн-бізнесу, особисту та командну ефективність, нову економіку.

Источник: poltavcev.biz

Рейтинг
( Пока оценок нет )
Загрузка ...