⭐ Auto-Stars
Бот автоматически отправляет Telegram Stars пользователям, которые оставляют посты в указанной теме на Lolz.team.
Как это работает
Бот следит за выбранной темой на форуме. Когда кто-то публикует новый пост — бот отправляет ему звёзды через Telegram. Опционально может оставлять комментарий под постом.
Установка
Вариант 1 — Docker (рекомендуется)
1. Клонируйте репозиторий
git clone https://github.com/ваш-ник/auto-stars
cd auto-stars
2. Создайте .env на основе примера и заполните его:
cp examples/.env.example .env
3. Авторизуйтесь в Telegram
Pyrogram требует интерактивного входа при первом запуске. Выполните его локально:
pip install -r requirements.txt
python main.py
Введите номер телефона и код подтверждения. После успешного входа бот создаст файл storage/stars_bot.session и завершится с сообщением о необходимости перезапуска. После этого Docker будет использовать готовую сессию.
4. Запустите через Docker Compose
docker compose -f examples/docker-compose.yml up -d
Данные сессии и логи хранятся в ./storage и ./logs на хосте (или по путям LOGS_PATH / STORAGE_PATH из .env).
5. Просмотр логов
docker compose -f examples/docker-compose.yml logs -f
Вариант 2 — Запуск напрямую
1. Клонируйте репозиторий
git clone https://github.com/ваш-ник/auto-stars
cd auto-stars
2. Установите зависимости
pip install -r requirements.txt
3. Создайте файл .env на основе .env.example и заполните его (см. раздел ниже).
4. Запустите бота
python main.py
При первом запуске Pyrogram попросит войти в Telegram-аккаунт — введите номер телефона и код подтверждения.
Настройка .env
# Telegram API — получить на https://my.telegram.org
API_ID=ваш_api_id
API_HASH=ваш_api_hash
# Lolz.team — токен API из настроек профиля
LOLZ_TOKEN=ваш_токен
# ID темы на форуме, за которой следит бот
LOLZ_THREAD_ID=123456
# Сколько звёзд отправлять за каждый пост
STARS_COUNT=1
# Режим запуска:
# 1 — мониторинг новых постов в реальном времени
# 2 — обработать все существующие посты в теме
DEFAULT_CHOICE=2
# С какой страницы начинать (обычно 1)
START_PAGE=1
# Как часто проверять новые посты (в секундах, минимум ~0.2)
CHECK_INTERVAL=30
# Задержка между запросами к API (в секундах, минимум 2)
API_DELAY=5
# Количество повторных попыток при ошибке
MAX_RETRIES=3
# Оставлять ли комментарий под постом
ENABLE_REPLY=true
# Пропускать посты, под которыми уже есть комментарий
SKIP_COMMENTED=true
Шаблоны ответов
Если ENABLE_REPLY=true, бот будет комментировать посты. Тексты берутся из файла storage/replies.txt.
Каждая строка — отдельный шаблон. Если в строке несколько вариантов через ||, бот выберет один из них случайно:
:catdance: Отправил звёзды || :animeyes2: Отправил
:sadge: Тут может быть реклама || Реклама казика :animeyessir:
:sigma: Это третье сообщение
Если файл отсутствует или пустой — бот использует ✓ по умолчанию.
Требования
- Python 3.10+
- Аккаунт Telegram с доступом к my.telegram.org
- API-токен Lolz.team