Skip to content

Happ-proxy/defender_bot

Repository files navigation

Defender Bot

Мощный Telegram-бот для защиты твоих чатов

Текущие хотелки:

  1. Управление пользователями в обход квиза или с его повторной инициацией: Администратор может вручную добавлять или удалять пользователей в базе данных:
  • Если администратор процитирует сообщение пользователя и отправит команду /pass, квиз будет засчитан как успешно пройденный, а пользователь будет добавлен в базу.
  • Если процитировать пользователя и отправить команду /quiz-again, его ID будет удалён из базы данных, и пользователю потребуется пройти квиз заново.

Defender Bot
Добро пожаловать в Defender Bot — стильный, гибкий и надежный бот для Telegram, который автоматизирует модерацию, проводит викторины для новых участников и интегрируется с MySQL или PostgreSQL. Если ты хочешь, чтобы твои группы и форумы были под контролем, этот бот — твой лучший друг!


✨ Оглавление


Что тебе понадобится

Перед тем, как начать, убедись, что у тебя есть:

  • Docker — для запуска бота в контейнере.
  • Git — если хочешь клонировать репозиторий (необязательно).
  • Токен от BotFather — чтобы бот ожил.
  • База данных — MySQL или PostgreSQL, на твой вкус.

Если запускаешь без Docker, тебе еще пригодится:

  • Python 3.8+
  • Библиотеки: aiogram, python-dotenv, asyncpg (для PostgreSQL), aiomysql (для MySQL), pydantic.

Установка шаг за шагом

  1. Склонируй репозиторий (если он у тебя есть):

    git clone https://github.com/yourusername/defender_bot.git
    cd defender_bot
  2. Создай файл .env:

  3. Докажи, что ты крутой — запусти установку:

    • Дай права скрипту:
      chmod +x install.sh
    • Запусти его:
      ./install.sh

Настройка файла .env

Файл .env — это сердце твоего бота. Сначала заполни его, а потом запускай install.sh. Вот что нужно указать:

Общие параметры

Параметр Описание Пример
BOT_TOKEN Токен бота от BotFather 111111111:ABCDEFG
DB_TYPE Тип базы данных: mysql или postgres mysql
DB_USER Имя пользователя базы данных 12341234
DB_PASSWORD Пароль базы данных 12341234
DB_NAME Название базы данных defender_test
DB_HOST Адрес хоста базы (для TCP-подключения) localhost
DB_PORT Порт базы (3306 для MySQL, 5432 для PostgreSQL) 3306
DB_SOCKET Путь к Unix-сокету (только для MySQL, если не указан DB_PORT) /var/run/mysqld/mysqld.sock
ALLOWED_CHAT_ID ID чата, где работает бот (например, -1001234567890) -13131231313123
FALLBACK_THREAD_ID ID ветки для форумов (опционально) 2

Важно: Если используешь Unix-сокет для MySQL, не указывай DB_PORT.

Примеры для MySQL и PostgreSQL

1. MySQL с TCP-подключением

BOT_TOKEN=111111111:ABCDEFG
DB_TYPE=mysql
DB_USER=12341234
DB_PASSWORD=12341234
DB_NAME=defender_test
DB_HOST=localhost
DB_PORT=3306
ALLOWED_CHAT_ID=-13131231313123

2. MySQL с Unix-сокетом

BOT_TOKEN=111111111:ABCDEFG
DB_TYPE=mysql
DB_USER=12341234
DB_PASSWORD=12341234
DB_NAME=defender_test
DB_SOCKET=/var/run/mysqld/mysqld.sock
ALLOWED_CHAT_ID=-13131231313123

3. PostgreSQL

BOT_TOKEN=111111111:ABCDEFG
DB_TYPE=postgres
DB_USER=12341234
DB_PASSWORD=12341234
DB_NAME=defender_test
DB_HOST=localhost
DB_PORT=5432
ALLOWED_CHAT_ID=-13131231313123

Запуск бота

  1. Заполни .env — выбери один из примеров выше и настрой под себя.

  2. Запусти install.sh:

    ./install.sh

    Скрипт сам:

    • Соберет Docker-образ.
    • Подключит бота к базе данных.
    • Покажет логи, чтобы ты убедился, что все работает как часы.
  3. Проверь, что бот жив: Напиши ему в Telegram — он готов защищать твои чаты!


Почему этот бот крутой

  • Викторины для новичков — никаких спамеров в твоих группах.
  • Баны под контролем — автоматизация на уровне богов.
  • MySQL или PostgreSQL — выбирай, что тебе по душе.
  • Docker — настрой один раз и забудь про проблемы.

С этим ботом ты будешь выглядеть как настоящий профи!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6