Telegram-Бот с админ-панелью на Next.js
Этот проект представляет собой Telegram-бот, разработанный с использованием современных технологий, таких как Next.js, TypeScript, Prisma, Telegram API и авторизация через MetaMask.
Основной функционал проекта
Проект ориентирован на автоматизацию взаимодействий в Telegram-чате, включая отправку сообщений с кнопками, приветствие новых участников и блокировку пользователей, использующих запрещенные слова.
Функционал бота в чате Telegram
-
Ответ на ключевые слова:
- Когда участник чата вводит ключевое слово, бот автоматически отправляет сообщение с соответствующим текстом и интерактивными кнопками.
-
Приветствие новых участников:
- При вступлении нового пользователя в чат бот отправляет приветственное сообщение с кнопками, предоставляя полезную информацию или ссылки для взаимодействия.
-
Блокировка за запрещенные слова:
- Если участник чата использует запрещенное слово, бот выполняет следующие действия:
- Удаляет сообщение с запрещенным словом.
- Блокирует пользователя, нарушившего правила чата.
- Если участник чата использует запрещенное слово, бот выполняет следующие действия:
Админка для управления ботом
Для управления настройками и поведением бота разработана админка на базе внутреннего API Next.js. Админка предоставляет следующие возможности:
-
Редактирование ключевых слов:
- Возможность добавлять и изменять ключевые слова, на которые бот должен реагировать.
-
Управление запрещенными словами:
- Добавление и удаление запрещенных слов для автоматической модерации.
-
Настройка кнопок:
- Добавление новых кнопок и изменение их расположения в сообщениях бота.
-
Исключения для пользователей:
- Добавление никнеймов участников, которые не будут блокироваться и которым бот не будет отправлять сообщения по ключевым словам.
Авторизация в админке
- Авторизация через MetaMask:
- Для входа в админку используется MetaMask с авторизацией определенного кошелька, обеспечивая безопасность и доступ только для доверенных пользователей.
Работа с базой данных
- Prisma и SQLite:
- Все данные, редактируемые через админку, сохраняются в базу данных SQLite с использованием Prisma, что обеспечивает удобное и типобезопасное взаимодействие с данными внутри Next.js.
Дополнительный функционал: Юзербот
Проект также включает в себя юзербот, предназначенный для выполнения специальных задач:
- Реакции на публикации в канале:
- Юзербот, авторизованный через клиент, автоматически ставит реакции на все публикации в определенном Telegram-канале от имени пользователя. Это может быть полезно для поддержания активности и взаимодействия с контентом канала.
Технические детали
Используемые технологии
- Next.js (последняя версия): Фреймворк для серверного и клиентского рендеринга с высокой производительностью.
- TypeScript: Использование TypeScript позволяет создавать безопасный и типизированный код.
- Prisma: ORM для взаимодействия с базой данных, что делает работу с SQLite простой и эффективной.
- Telegram API: Для автоматизации работы в чате и взаимодействия с участниками.
- MetaMask авторизация: Обеспечивает безопасный вход в админку с проверкой кошелька.
Преимущества проекта
-
Удобство для администраторов:
- Полный контроль над ключевыми словами, запрещенными словами и настройками взаимодействия через интуитивно понятную админку.
-
Автоматизация работы чата:
- Бот выполняет рутинные задачи, такие как приветствие участников, ответы на запросы и блокировка нарушителей, что значительно снижает нагрузку на модераторов.
-
Гибкость настройки:
- Возможность изменения кнопок и исключений для пользователей позволяет быстро адаптировать функционал бота под текущие нужды чата.
-
Безопасность:
- Доступ к админке только через MetaMask обеспечивает высокий уровень безопасности и защиты от несанкционированного доступа.
Что имеем на выходе
Проект является мощным инструментом для управления и модерирования Telegram-чата, предоставляя администраторам гибкость и удобство, а пользователям — комфортное взаимодействие через автоматически генерируемые сообщения и реакции. Использование современных технологий делает решение производительным, надежным и безопасным, удовлетворяя как технические, так и бизнес-требования.