137 lines
4.7 KiB
Markdown
137 lines
4.7 KiB
Markdown
# ⭐ Auto-Stars
|
|
|
|
Бот автоматически отправляет Telegram Stars пользователям, которые оставляют посты в указанной теме на Lolz.team.
|
|
|
|
## Как это работает
|
|
|
|
Бот следит за выбранной темой на форуме. Когда кто-то публикует новый пост — бот отправляет ему звёзды через Telegram. Опционально может оставлять комментарий под постом.
|
|
|
|
## Установка
|
|
|
|
### Вариант 1 — Docker (рекомендуется)
|
|
|
|
**1. Клонируйте репозиторий**
|
|
|
|
```bash
|
|
git clone https://github.com/ваш-ник/auto-stars
|
|
cd auto-stars
|
|
```
|
|
|
|
**2. Создайте `.env`** на основе примера и заполните его:
|
|
|
|
```bash
|
|
cp examples/.env.example .env
|
|
```
|
|
|
|
**3. Авторизуйтесь в Telegram**
|
|
|
|
Pyrogram требует интерактивного входа при первом запуске. Выполните его локально:
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
python main.py
|
|
```
|
|
|
|
Введите номер телефона и код подтверждения. После успешного входа бот создаст файл `storage/stars_bot.session` и завершится с сообщением о необходимости перезапуска. После этого Docker будет использовать готовую сессию.
|
|
|
|
**4. Запустите через Docker Compose**
|
|
|
|
```bash
|
|
docker compose -f examples/docker-compose.yml up -d
|
|
```
|
|
|
|
Данные сессии и логи хранятся в `./storage` и `./logs` на хосте (или по путям `LOGS_PATH` / `STORAGE_PATH` из `.env`).
|
|
|
|
**5. Просмотр логов**
|
|
|
|
```bash
|
|
docker compose -f examples/docker-compose.yml logs -f
|
|
```
|
|
|
|
---
|
|
|
|
### Вариант 2 — Запуск напрямую
|
|
|
|
**1. Клонируйте репозиторий**
|
|
|
|
```bash
|
|
git clone https://github.com/ваш-ник/auto-stars
|
|
cd auto-stars
|
|
```
|
|
|
|
**2. Установите зависимости**
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
**3. Создайте файл `.env`** на основе `.env.example` и заполните его (см. раздел ниже).
|
|
|
|
**4. Запустите бота**
|
|
|
|
```bash
|
|
python main.py
|
|
```
|
|
|
|
При первом запуске Pyrogram попросит войти в Telegram-аккаунт — введите номер телефона и код подтверждения.
|
|
|
|
## Настройка `.env`
|
|
|
|
```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](https://my.telegram.org)
|
|
- API-токен [Lolz.team](https://lolz.team)
|