Современный Telegram бот для раздачи файлов и скриптов после проверки подписки на каналы. Использует личный аккаунт для проверки подписок, что позволяет проверять каналы даже если бот в них не состоит.
- Админ-панель с контролем доступа (только для указанного Telegram ID)
- Добавление скриптов и файлов через интерактивный интерфейс
- Управление каналами для проверки подписки
- 🔥 Проверка подписок через личный аккаунт - бот может проверять каналы без необходимости быть их участником
- Автоматическая проверка подписки перед выдачей контента
- Генерация уникальных ссылок для каждого ресурса
- Современная архитектура с использованием ConversationHandler
- Хранение данных в pickle файле
- Python 3.8+
- Библиотека
python-telegram-botv20.0+ - Библиотека
telethonv1.24.0+ - Токен Telegram бота от @BotFather
- API ID и API Hash от вашего личного Telegram аккаунта
- Ваш личный аккаунт должен состоять в проверяемых каналах
pip install -r requirements.txt- Перейдите на https://my.telegram.org/auth
- Войдите в свой аккаунт
- Перейдите в "API development tools"
- Создайте новое приложение
- Скопируйте API ID и API Hash
config.py:
# Токен вашего бота
BOT_TOKEN = "ВАШ_ТОКЕН_БОТА"
# API данные вашего личного аккаунта
USERBOT_API_ID = ВАШ_API_ID
USERBOT_API_HASH = "ВАШ_API_HASH"
USERBOT_PHONE = "ВАШ_НОМЕР_ТЕЛЕФОНА"
# ID администратора бота
ADMIN_ID = ВАШ_TELEGRAM_IDpython test_userbot.pypython bot.py- В Telegram отправьте команду
/admin(доступна только администратору) - Используйте Inline-кнопки для управления ботом:
- ➕ Добавить скрипт - добавление Lua/Python скриптов
- 📁 Добавить файл - загрузка APK, EXE, ZIP и других файлов
- 📢 Управление каналами - добавление/удаление каналов для проверки
- 📋 Список ресурсов - просмотр всех добавленных ресурсов
- Выберите "➕ Добавить скрипт"
- Отправьте текст скрипта
- Получите уникальную ссылку для распространения
- Выберите "📁 Добавить файл"
- Загрузите файл в чат с ботом
- Укажите название файла (или используйте оригинальное)
- Получите уникальную ссылку
- Выберите "📢 Управление каналы"
- Добавляйте каналы пересылая сообщения или указывая ID
- Удаляйте ненужные каналы из списка
Способы добавления каналов:
- По username:
@mychannel - По ID:
1001234567890(без минуса!) - Через пересылку: Перешлите любое сообщение из канала
- Пользователь переходит по уникальной ссылке:
https://t.me/YourBotUsername?start=abc123def4 - Бот проверяет подписку на все указанные каналы через ваш личный аккаунт
- Если пользователь не подписан:
- Показываются кнопки с ссылками на каналы
- Кнопка "✅ Проверить подписку" для повторной проверки
- Если подписан - контент выдается автоматически
НОВАЯ ФИЧА v3.0: Бот использует ваш личный аккаунт для проверки подписок:
- Userbot (ваш личный аккаунт) подключается к Telegram
- При проверке подписки бот отправляет запрос через ваш аккаунт
- Ваш аккаунт проверяет, состоит ли пользователь в указанных каналах
- Результат возвращается боту для принятия решения
Преимущества:
- ✅ Бот НЕ должен быть участником каналов
- ✅ Проверка работает для приватных каналов
- ✅ Ваш личный аккаунт должен быть в каналах
- ✅ Работает даже если каналы скрытые или приватные
├── bot.py # Основной файл бота
├── config.py # Конфигурация бота и userbot
├── userbot.py # Модуль для работы с личным аккаунтом
├── test_userbot.py # Тестовый скрипт для проверки настройки
├── bot_data.pkl # Хранение данных (pickle формат)
├── requirements.txt # Зависимости проекта
└── README.md # Документация
{
"admin_id": 7289857067, # ID администратора
"channels": [1001234567890], # Список ID каналов для проверки
"resources": {
"abc123def4": { # Уникальный ID ресурса
"type": "script", # "script" или "file"
"content": "loadstring(...)", # Текст скрипта ИЛИ file_id файла
"name": "Fly Script V2" # Название ресурса
}
}
}- Безопасность: Бот проверяет Telegram ID при доступе к админ-панели
- ID каналов: Всегда используйте положительные числовые ID каналов (например,
100123456789) без минуса! - Личный аккаунт: Ваш личный аккаунт должен состоять во всех проверяемых каналах
- Файлы: Используются file_id для эффективной отправки файлов
- Ограничения: Максимальный размер файла - 50 MB (настраивается в config.py)
- python-telegram-bot v20.x+ - современная асинхронная библиотека
- Telethon v1.24.0+ - библиотека для работы с личным аккаунтом
- ConversationHandler - машина состояний для админ-панели
- pickle - сериализация данных Python
- logging - встроенное логирование
bot.py- основной файл бота с обработчикамиuserbot.py- модуль для подключения к личному аккаунтуtest_userbot.py- тестирование подключения userbot- Различные обработчики для состояний ConversationHandler
Перед запуском бота обязательно протестируйте подключение userbot:
python test_userbot.pyТест проверит:
- ✅ Корректность API данных
- ✅ Подключение к Telegram
- ✅ Доступ к каналам (если они есть)
При возникновении проблем:
- Проверьте настройки в config.py (API ID, API Hash, телефон)
- Убедитесь в правильности ID каналов
- Проверьте, что ваш личный аккаунт состоит в проверяемых каналах
- Запустите тест:
python test_userbot.py - Просмотрите логи в консоли и файл userbot_test.log
Этот проект распространяется под лицензией MIT.