🤖🔞 Пишем Telegram-бота для фильтрации нецензурной лексики в чате
Представляю бесплатного Telegram-бота для фильтрации мата в чате Telegram. Telegram-бот разработан на JavaScript с использованием фреймворка grammY. В основе работы бота лежит база данных нецензурных выражений, состоящая из 5668 слов. Полный код проекта можно посмотреть в моем Github-репозитории.
Суть работы Telegram-бота очень проста: бот сверяет все поступающие сообщения от пользователей в чате с базой нецензурных выражений и в случае обнаружения совпадений удаляет сообщение пользователя и направляет уведомление пользователю об удалении.
Структура проекта
- index.js: Основной файл проекта, содержащий весь код логики бота.
- banword.txt: Файл с базой нецензурных выражений.
Пример файла .env:
Создание Telegram-бота
Создадим экземпляр бота и инициализируем его с API-ключом Telegram:
Далее нам необходимо:
- Считать содержимое файла
banword.txt
с использованием функцииreadFileSync
из модуляfs
(файловая система) в кодировке 'utf-8'. - Разделить прочитанное содержимое на строки по символу новой строки (`\n`), создав массив строк.
- Преобразовать каждую строку в массиве: удалить начальные и конечные пробелы с помощью функции
trim()
и преобразовать все символы строки в нижний регистр с помощью функцииtoLowerCase().
- Отфильтровать массив, удаляя пустые строки (длиной 0).
Далее напишем обработчик событий для входящих текстовых сообщений:
Данный код блокирует сообщения, содержащие запрещённые слова, и предупреждает пользователя о нарушении правил чата.
Запуск Telegram-бота
Чтобы данный Telegram бот работал, необходимо добавить его в чат, который мы хотим администрировать и наделить бота правами администратора на просмотр чата и удаление сообщений. О том, как разместить Telegram-бота на своем сервере, используя менеджер процессов pm2, я рассказал в своем видео на YouTube.
Заключение
В этой статье я рассмотрел основные составляющие моего Telegram-бота, необходимые для его работы. Полный код проекта можно посмотреть в моем GitHub репозитории. У себя на YouTube я сделал подробный обзор на своего Telegram бота и его функциональности. В планах доработать бота, чтобы он мог выдавать предупреждения пользователям и вести статистику запрещенных слов.