Найти в Дзене
✨CodeWizard✨

Бот на Python для чата

В телеграмме существует куча ботов которые помогают администрировать чаты, удаляя спамеров, ведя статистику, и тд.
Далее мы напишем бота для удаления матов из чата, и ещё несколько фишек.
Начнём с выбора библиотеки, на выбор у нас две библиотеки:
aiogram

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

Начнём с выбора библиотеки, на выбор у нас две библиотеки:

  1. aiogram
  2. pyTelegramBotAPI

У меня были посты со вторым вариантом, и из разнообразия я поработаю с airogram.

AsyncIOteleGram
AsyncIOteleGram

Сразу оставлю документацию: https://docs.aiogram.dev/en/latest/

Установим! Люди которые работали с python уже поняли о чём идёт речь, но я кратко объясню, открываем командную строку, и вводим

pip install aiogram

Основа бота, которую мы возьмём за шаблон.

9 строка гласит токен бота, но где его взять? У отца ботов телеграмм!

@BotFather

Быстро создадим бота написав ему /newbot:

-3

После манипуляций выше вы получите токен, вставьте его в строку вместо <token>.

Теперь запустим наш файл с токеном и кодом бота, если никаких ошибок не выдало, то напишем нашему боту /start, он должен ответить Здравствуйте!, и ничего более, но так скучно, он ничего не делает, и отвечает только на команду старт. Давайте чуть-чуть побалуемся, и подробнее изучим код:

Вот простейшая повторюшка, всё что не команда которая была в обработчике ранее, будет повторятся. content_types в данном случае, определяет тип сообщения, их несколько:

text, audio, document, photo, sticker, video, video_note, voice, location, contact, new_chat_members, left_chat_member, new_chat_title, new_chat_photo, delete_chat_photo, group_chat_created, supergroup_chat_created, channel_chat_created, migrate_to_chat_id, migrate_from_chat_id, pinned_message.

Можно использовать два content_types:

два content_types:
@dp.message_handler(content_types=['sticker', 'photo'])
две команды:
@dp.message_handler(commands=['start', 'help'])

Примеры выше будет обрабатывать стикеры и фотографии, /start и /help отравленные боту.

Давайте начнём подготавливать бота к работе в чате, для начала пусть встречает пользователей!

Теперь для теста понадобится чат, теперь нужно выйти, и войти в чат, увидим:

-4

Из кода может возникнуть вопрос, а зачем reply, а не как раньше send_message? Это для того чтобы пользователя уведомляло о сообщение, так как обычно приветствие должно содержать правила, а теперь сделаем небольшой фильтр от матов, поставим задачу:

  1. Бот должен удалять сообщение с матами
  2. Присылать сообщение, но без мата

Выглядеть будет как-то так:

-5

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

https://github.com/htmlcssphpjs/image/blob/main/mats.txt

Теперь нужно сделать цикл перебирающий слова сообщения, и текстового файла с матами:

Запустим, напишем мат в чат, эм... ничего не произошло? Что-то с кодом не то? Нет, телеграмм сделал так, чтобы бот без прав не мог ничего делать, кроме как отправлять сообщения, поэтому зайдём в настройки чата, и выдадим ему права:

-6

Вот и всё, код может и не идеален, но со своей работой справляется, если вы знаете как улучшить напишите, это лишь мини туториал, таких ботов не мало, и сейчас одного из таких я пишу: @myCensorBot

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