Пробный период Бот
Пробный период Бот
Telegram-бот для управления пробным периодом (8 дней) в рабочем чате и учебной группе.
Возможности
• Отслеживание пробного периода с момента вступления
• Контроль двух чатов одновременно
• Уведомления админам об истечении триала и выходе пользователей
• Проверка присутствия в обоих чатах
• Админ-панель в Telegram
• База данных SQLite
• Планировщик регулярных проверок
Установка
git clone https://github.com/yourusername/trial-period-bot.git
cd trial-period-bot
pip install -r requirements.txt
Создайте .env:
BOT_TOKEN=your_bot_token
WORK_CHAT_ID=-100xxxxxxxxxx
STUDY_GROUP_ID=-100yyyyyyyyyy
TRIAL_MINUTES=11520
Добавьте первого админа:
python add_admin.py YOUR_TELEGRAM_ID
Запуск
python main.py
Как получить данные
• Токен: @BotFather → /newbot
• ID чатов: добавьте @userinfobot в чат, перешлите сообщение
• Ваш ID: напишите @userinfobot → /start
Админ-панель
Пользователи:
• Экспорт списка
• Список на триале
• Проверка присутствия
• Удалить участника
• Пропустить триал (досрочное одобрение)
Администраторы:
• Добавить / убрать
• Список админов
Автоматические функции
При вступлении:
• Автоодобрение заявки
• Добавление в БД
• Запуск 8-дневного триала
Мониторинг:
• За 24 ч — предупреждение админам
• По окончании — уведомление с кнопками «Оставить / Кикнуть»
При выходе:
• Обновление статуса
• Уведомление админам
• Автоудаление из учебной группы при выходе из рабочего чата
Структура проекта
trial-period-bot/
├── main.py # Точка входа
├── config.py # Конфигурация
├── database.py # Работа с базой данных
├── scheduler.py # Планировщик задач
├── keyboards.py # Клавиатуры бота
├── utils.py # Вспомогательные функции
├── add_admin.py # Скрипт добавления админа
├── handlers/
│ ├── chat_events.py # Обработка событий чата
│ ├── menu_handlers.py # Обработка кнопок меню
│ ├── admin_handlers.py # Админ операции
│ └── callback_handlers.py # Inline кнопки
├── .env # Переменные окружения
├── bot.db # База данных (создается автоматически)
└── requirements.txt # Зависимости
База данных
users: telegram_id, name, username, join_date, trial_end_date, status (trial/approved), in_work_chat, in_study_group, notified_one_day
admins: telegram_id
Требования к боту
Бот — администратор в обоих чатах с правами:
• приглашать пользователей
• банить/кикать
• просматривать участников
Развертывание
Systemd:
Создайте /etc/systemd/system/trial-bot.service с ExecStart на main.py, Restart=always
sudo systemctl enable --now trial-bot
Docker:
docker-compose up -d
Устранение неполадок
• Бот не отвечает → токен, блокировка, интернет
• Заявки не одобряются → права бота, включены ли заявки в чате
• Нет уведомлений → проверьте список админов и логи
Технологии
Python 3.8+, aiogram 3.15.0, APScheduler 3.10.4, SQLite
Лицензия
GNU GPL v3.0
GitHub: https://github.com/yourusername/trial-period-bot
Если полезно — звезда приветствуется.
Telegram-бот для управления пробным периодом (8 дней) в рабочем чате и учебной группе.
Возможности
• Отслеживание пробного периода с момента вступления
• Контроль двух чатов одновременно
• Уведомления админам об истечении триала и выходе пользователей
• Проверка присутствия в обоих чатах
• Админ-панель в Telegram
• База данных SQLite
• Планировщик регулярных проверок
Установка
git clone https://github.com/yourusername/trial-period-bot.git
cd trial-period-bot
pip install -r requirements.txt
Создайте .env:
BOT_TOKEN=your_bot_token
WORK_CHAT_ID=-100xxxxxxxxxx
STUDY_GROUP_ID=-100yyyyyyyyyy
TRIAL_MINUTES=11520
Добавьте первого админа:
python add_admin.py YOUR_TELEGRAM_ID
Запуск
python main.py
Как получить данные
• Токен: @BotFather → /newbot
• ID чатов: добавьте @userinfobot в чат, перешлите сообщение
• Ваш ID: напишите @userinfobot → /start
Админ-панель
Пользователи:
• Экспорт списка
• Список на триале
• Проверка присутствия
• Удалить участника
• Пропустить триал (досрочное одобрение)
Администраторы:
• Добавить / убрать
• Список админов
Автоматические функции
При вступлении:
• Автоодобрение заявки
• Добавление в БД
• Запуск 8-дневного триала
Мониторинг:
• За 24 ч — предупреждение админам
• По окончании — уведомление с кнопками «Оставить / Кикнуть»
При выходе:
• Обновление статуса
• Уведомление админам
• Автоудаление из учебной группы при выходе из рабочего чата
Структура проекта
trial-period-bot/
├── main.py # Точка входа
├── config.py # Конфигурация
├── database.py # Работа с базой данных
├── scheduler.py # Планировщик задач
├── keyboards.py # Клавиатуры бота
├── utils.py # Вспомогательные функции
├── add_admin.py # Скрипт добавления админа
├── handlers/
│ ├── chat_events.py # Обработка событий чата
│ ├── menu_handlers.py # Обработка кнопок меню
│ ├── admin_handlers.py # Админ операции
│ └── callback_handlers.py # Inline кнопки
├── .env # Переменные окружения
├── bot.db # База данных (создается автоматически)
└── requirements.txt # Зависимости
База данных
users: telegram_id, name, username, join_date, trial_end_date, status (trial/approved), in_work_chat, in_study_group, notified_one_day
admins: telegram_id
Требования к боту
Бот — администратор в обоих чатах с правами:
• приглашать пользователей
• банить/кикать
• просматривать участников
Развертывание
Systemd:
Создайте /etc/systemd/system/trial-bot.service с ExecStart на main.py, Restart=always
sudo systemctl enable --now trial-bot
Docker:
docker-compose up -d
Устранение неполадок
• Бот не отвечает → токен, блокировка, интернет
• Заявки не одобряются → права бота, включены ли заявки в чате
• Нет уведомлений → проверьте список админов и логи
Технологии
Python 3.8+, aiogram 3.15.0, APScheduler 3.10.4, SQLite
Лицензия
GNU GPL v3.0
GitHub: https://github.com/yourusername/trial-period-bot
Если полезно — звезда приветствуется.