Мощный Telegram-бот для защиты твоих чатов
- Управление пользователями в обход квиза или с его повторной инициацией: Администратор может вручную добавлять или удалять пользователей в базе данных:
- Если администратор процитирует сообщение пользователя и отправит команду /pass, квиз будет засчитан как успешно пройденный, а пользователь будет добавлен в базу.
- Если процитировать пользователя и отправить команду /quiz-again, его ID будет удалён из базы данных, и пользователю потребуется пройти квиз заново.
Добро пожаловать в Defender Bot — стильный, гибкий и надежный бот для Telegram, который автоматизирует модерацию, проводит викторины для новых участников и интегрируется с MySQL или PostgreSQL. Если ты хочешь, чтобы твои группы и форумы были под контролем, этот бот — твой лучший друг!
Перед тем, как начать, убедись, что у тебя есть:
- Docker — для запуска бота в контейнере.
- Git — если хочешь клонировать репозиторий (необязательно).
- Токен от BotFather — чтобы бот ожил.
- База данных — MySQL или PostgreSQL, на твой вкус.
Если запускаешь без Docker, тебе еще пригодится:
- Python 3.8+
- Библиотеки:
aiogram,python-dotenv,asyncpg(для PostgreSQL),aiomysql(для MySQL),pydantic.
-
Склонируй репозиторий (если он у тебя есть):
git clone https://github.com/yourusername/defender_bot.git cd defender_bot -
Создай файл
.env:- Скопируй пример:
cp .env.example .env
- Открой
.envв редакторе и заполни его (смотри Настройка файла.env).
- Скопируй пример:
-
Докажи, что ты крутой — запусти установку:
- Дай права скрипту:
chmod +x install.sh
- Запусти его:
./install.sh
- Дай права скрипту:
Файл .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.
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=-13131231313123BOT_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=-13131231313123BOT_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-
Заполни
.env— выбери один из примеров выше и настрой под себя. -
Запусти
install.sh:./install.sh
Скрипт сам:
- Соберет Docker-образ.
- Подключит бота к базе данных.
- Покажет логи, чтобы ты убедился, что все работает как часы.
-
Проверь, что бот жив: Напиши ему в Telegram — он готов защищать твои чаты!
- Викторины для новичков — никаких спамеров в твоих группах.
- Баны под контролем — автоматизация на уровне богов.
- MySQL или PostgreSQL — выбирай, что тебе по душе.
- Docker — настрой один раз и забудь про проблемы.
С этим ботом ты будешь выглядеть как настоящий профи!