Skip to content

KiraArensky/amiti_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

Описание проекта

Этот проект представляет собой Telegram-бота для управления подписками, автоматизации взаимодействия с пользователями и администрирования канала сообщества. Бот предоставляет функционал для обработки платежей, работы с программами участия и управления доступом в канал.


Функциональные возможности

  1. Работа с пользователями:

    • Обработка команды /start для приветствия и выбора программ участия.
    • Выбор подписки на 1 или 2 месяца.
    • Отправка чека для подтверждения оплаты.
  2. Администрирование:

    • Добавление администраторов через команду /im_admin с использованием пароля.
    • Просмотр подписок пользователей с помощью команды /check_users_subscription.
    • Обновление текстов и изображений программ через команду /update_program.
  3. Управление подписками:

    • Сохранение и обновление данных о подписке в базе данных SQLite (subscriptions.db).
    • Автоматическое открытие и закрытие доступа к каналу на основе дат начала и окончания подписки.
  4. Уведомления:

    • Напоминания пользователям о статусе подписки.
    • Информирование администраторов о действиях пользователей (например, отправка чеков).
  5. Обработка ошибок:

    • Логирование ошибок в файл Error.Log.
    • Автоматический перезапуск бота в случае возникновения ошибок.

Структура проекта

  • main.py: Основной файл проекта с реализацией логики работы бота.
  • config.py: Файл конфигурации, содержащий ключи API и другие важные параметры.
  • jsons/admins.json: Файл для хранения списка администраторов.
  • jsons/program_data.json: Файл для хранения текстов и изображений программ участия.
  • subscriptions.db: База данных SQLite для управления подписками.
  • Error.Log: Файл для записи ошибок.

Установка и настройка

  1. Установите зависимости:

    pip install pyTelegramBotAPI
  2. Настройте конфигурацию: Создайте файл config.py и добавьте в него:

    API_TOKEN = "<Ваш API токен Telegram>"
    CHANNEL_ID = <ID вашего канала>
    CHANNEL_INVITE_LINK = "<Ссылка-приглашение в канал>"
    ADMIN_PASSWORD = "<Пароль для администраторов>"
  3. Создайте базу данных:

    CREATE TABLE users (
        user_id INTEGER PRIMARY KEY,
        subscription_type TEXT,
        payment_status TEXT,
        subscription_start TEXT,
        subscription_end TEXT
    );
  4. Запустите бота:

    python main.py

Основные команды

Для пользователей

  • /start — Начало работы с ботом.
  • Выбор программы участия через интерактивные кнопки.

Для администраторов

  • /admin_commands — Список доступных команд для администраторов.
  • /check_users_subscription — Проверить подписки пользователей.
  • /im_admin <пароль> — Добавить себя в список администраторов.
  • /update_program — Обновить программу участия.

Логика работы

  1. Пользовательский поток:

    • Пользователь отправляет команду /start.
    • Выбирает программу участия.
    • Отправляет чек, подтверждающий оплату.
    • Получает уведомления об открытии или завершении доступа.
  2. Административный поток:

    • Администратор добавляет себя в список администраторов.
    • Проверяет подписки через соответствующую команду.
    • Обновляет текст и изображения программ.
  3. Автоматизация:

    • Проверка и управление доступом пользователей в канал выполняется в фоновом потоке каждые 24 часа.

Обработка ошибок

Все ошибки логируются в файл Error.Log. В случае критической ошибки бот автоматически перезапускается с задержкой в несколько секунд.


Дополнительные заметки

  • Безопасность:

    • Убедитесь, что файл config.py хранится в безопасном месте и не доступен посторонним.
    • Используйте сложный пароль для администраторов.
  • Производительность:

    • Рекомендуется запускать бота на сервере с постоянным подключением к интернету.

Контакты

Для вопросов и предложений: @kshi_rar.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages