Этот проект представляет собой Telegram-бота для управления подписками, автоматизации взаимодействия с пользователями и администрирования канала сообщества. Бот предоставляет функционал для обработки платежей, работы с программами участия и управления доступом в канал.
-
Работа с пользователями:
- Обработка команды
/start
для приветствия и выбора программ участия. - Выбор подписки на 1 или 2 месяца.
- Отправка чека для подтверждения оплаты.
- Обработка команды
-
Администрирование:
- Добавление администраторов через команду
/im_admin
с использованием пароля. - Просмотр подписок пользователей с помощью команды
/check_users_subscription
. - Обновление текстов и изображений программ через команду
/update_program
.
- Добавление администраторов через команду
-
Управление подписками:
- Сохранение и обновление данных о подписке в базе данных SQLite (
subscriptions.db
). - Автоматическое открытие и закрытие доступа к каналу на основе дат начала и окончания подписки.
- Сохранение и обновление данных о подписке в базе данных SQLite (
-
Уведомления:
- Напоминания пользователям о статусе подписки.
- Информирование администраторов о действиях пользователей (например, отправка чеков).
-
Обработка ошибок:
- Логирование ошибок в файл
Error.Log
. - Автоматический перезапуск бота в случае возникновения ошибок.
- Логирование ошибок в файл
main.py
: Основной файл проекта с реализацией логики работы бота.config.py
: Файл конфигурации, содержащий ключи API и другие важные параметры.jsons/admins.json
: Файл для хранения списка администраторов.jsons/program_data.json
: Файл для хранения текстов и изображений программ участия.subscriptions.db
: База данных SQLite для управления подписками.Error.Log
: Файл для записи ошибок.
-
Установите зависимости:
pip install pyTelegramBotAPI
-
Настройте конфигурацию: Создайте файл
config.py
и добавьте в него:API_TOKEN = "<Ваш API токен Telegram>" CHANNEL_ID = <ID вашего канала> CHANNEL_INVITE_LINK = "<Ссылка-приглашение в канал>" ADMIN_PASSWORD = "<Пароль для администраторов>"
-
Создайте базу данных:
CREATE TABLE users ( user_id INTEGER PRIMARY KEY, subscription_type TEXT, payment_status TEXT, subscription_start TEXT, subscription_end TEXT );
-
Запустите бота:
python main.py
/start
— Начало работы с ботом.- Выбор программы участия через интерактивные кнопки.
/admin_commands
— Список доступных команд для администраторов./check_users_subscription
— Проверить подписки пользователей./im_admin <пароль>
— Добавить себя в список администраторов./update_program
— Обновить программу участия.
-
Пользовательский поток:
- Пользователь отправляет команду
/start
. - Выбирает программу участия.
- Отправляет чек, подтверждающий оплату.
- Получает уведомления об открытии или завершении доступа.
- Пользователь отправляет команду
-
Административный поток:
- Администратор добавляет себя в список администраторов.
- Проверяет подписки через соответствующую команду.
- Обновляет текст и изображения программ.
-
Автоматизация:
- Проверка и управление доступом пользователей в канал выполняется в фоновом потоке каждые 24 часа.
Все ошибки логируются в файл Error.Log
. В случае критической ошибки бот автоматически перезапускается с задержкой в несколько секунд.
-
Безопасность:
- Убедитесь, что файл
config.py
хранится в безопасном месте и не доступен посторонним. - Используйте сложный пароль для администраторов.
- Убедитесь, что файл
-
Производительность:
- Рекомендуется запускать бота на сервере с постоянным подключением к интернету.
Для вопросов и предложений: @kshi_rar.