Files
Auto-Stars-Improved/README.md
T

226 lines
12 KiB
Markdown

# ⭐ Auto-Stars-Improved
Бот для автоматической отправки Telegram Stars пользователям, которые оставляют посты в указанной теме на форуме Lolz.team.
## Возможности
- Автоматический мониторинг темы на Lolz.team
- Отправка Telegram Stars за каждый новый пост
- Автоматические ответы с поддержкой шаблонов (включая случайный выбор)
- Автоматическое поднятие темы (bump) с настраиваемым интервалом
- Система капчи для фильтрации пользователей
- Поддержка прокси для Telegram и Lolz API (SOCKS5/HTTPS)
- Полная поддержка Docker (рекомендуется)
- CI/CD через Gitea Actions (сборка и публикация образов)
- Уведомления администратору через Telegram
- Гибкая настройка через `.env`
- Логирование и сохранение сессии
- Обработка ошибок и повторные попытки
- **Поддержка рекламы** - автоматическая отправка рекламных сообщений как отдельных комментариев
- **Исправлена обработка `\n`** - теперь корректно обрабатываются многострочные комментарии
## Требования
- Python 3.10+
- Аккаунт Telegram (для получения `API_ID` и `API_HASH`)
- API-токен Lolz.team
- Docker (рекомендуется) или Python окружение
## Быстрый старт (Docker – рекомендуется)
1. Клонируйте репозиторий:
```bash
git clone https://git.sakamoto.best/Lolz/Auto-Stars-Improved.git
cd Auto-Stars-Improved
```
2. Скопируйте пример конфигурации:
```bash
cp examples/.env.example .env
```
3. Отредактируйте `.env` и заполните необходимые значения (`API_ID`, `API_HASH`, `LOLZ_TOKEN`, `LOLZ_THREAD_ID` и т.д.).
4. Запустите:
```bash
docker compose -f examples/docker-compose.yml up -d
```
5. Посмотрите логи:
```bash
docker compose -f examples/docker-compose.yml logs -f
```
## Запуск без Docker
```bash
pip install -r requirements.txt
cp examples/.env.example .env
# отредактируйте .env
python main.py
```
> При первом запуске (если используете Pyrogram напрямую) потребуется интерактивная авторизация в Telegram.
## Конфигурация
Все настройки находятся в файле `.env`.
Пример конфигурации лежит здесь:
- `examples/.env.example`
### Основные параметры
| Переменная | Описание | По умолчанию |
| ----------------------- | ------------------------------------------------------------- | ------------ |
| `API_ID` / `API_HASH` | Данные Telegram API | - |
| `LOLZ_TOKEN` | Токен API Lolz.team | - |
| `LOLZ_THREAD_ID` | ID темы на форуме | - |
| `STARS_COUNT` | Сколько звёзд отправлять за пост | 1 |
| `START_PAGE` | С какой страницы начинать парсинг | 1 |
| `ENABLE_REPLY` | Отправлять ли комментарии | true |
| `SKIP_COMMENTED` | Пропускать посты, на которые уже отвечали | true |
### Параметры производительности
| Переменная | Описание | По умолчанию |
| ----------------- | ------------------------------------------------- | ------------ |
| `CHECK_INTERVAL` | Интервал проверки новых постов (секунды) | 10 |
| `API_DELAY` | Задержка между API запросами (секунды) | 5 |
| `API_TIMEOUT` | Таймаут для API запросов (секунды) | 15 |
| `MAX_RETRIES` | Количество повторных попыток при ошибках | 3 |
### Уведомления
| Переменная | Описание | По умолчанию |
| -------------- | --------------------------------------------------------------- | ------------ |
| `BOT_TOKEN` | Токен бота для уведомлений (от @BotFather) | - |
| `ADMIN_ID` | Telegram ID администратора для уведомлений | - |
| `NOTIFY_ADMIN` | Включить уведомления администратору | true |
### Автоматическое поднятие темы (Bump)
| Переменная | Описание | По умолчанию |
| --------------------- | -------------------------------------------------- | ------------ |
| `ENABLE_AUTO_BUMP` | Включить автоматическое поднятие темы | true |
| `BUMP_CHECK_INTERVAL` | Интервал между поднятиями (секунды) | 3600 |
> **Примечание**: Минимальный интервал поднятия – 3600 секунд (1 час) согласно правилам Lolz.team.
### Система капчи
| Переменная | Описание | По умолчанию |
| ----------------------- | ------------------------------------------------------------ | ------------ |
| `ENABLE_CAPTCHA` | Включить систему капчи | false |
| `CAPTCHA_ANSWER` | Правильный ответ на капчу | - |
| `CAPTCHA_CHECK_INTERVAL`| Интервал проверки обновления капчи (секунды) | 1800 |
Капча добавляется в нижний спойлер первого поста темы: `Капча (обязательно)`.
Текст капчи хранится в файле `storage/captcha.txt` и поддерживает BBCode форматирование.
**Пример `storage/captcha.txt`:**
```
[CENTER][B]Напишите ответ:[/B]
сколько будет 20 + 20? [I][COLOR=rgb(80, 80, 78)](Капча меняется раз в месяц)[/COLOR][/I][/CENTER]
```
### Реклама
| Переменная | Описание | По умолчанию |
| ------------ | ------------------------------------------------------- | ------------ |
| `ENABLE_ADS` | Включить автоматическую отправку рекламы | false |
Когда `ENABLE_ADS=true`, бот будет автоматически отправлять рекламное сообщение как **отдельный комментарий** после основных ответов.
Текст рекламы хранится в файле `storage/ads.txt`. Файл может содержать BBCode форматирование.
**Пример `storage/ads.txt`:**
```
[ad=align=center][CENTER]PROXYLEET — прокси под работу с аккаунтами и трафиком.
Серверные IPv4 (десятки стран), мобильные, MTProto. От 164 ₽ / 30 дней.
Выдача автоматическая, оплата с баланса лолза.
Промокод LOLZ10 — 10% скидки.
[UNFURL]https://lolz.team/threads/1337[/UNFURL][/CENTER][/ad]
```
> **Примечание**: Реклама отправляется как отдельный комментарий, а не добавляется к основному ответу. По умолчанию `storage/ads.txt` пустой.
### Прокси
Бот поддерживает использование прокси отдельно для Telegram и Lolz API.
| Переменная | Описание | По умолчанию |
| ----------------- | ----------------------------------------- | ------------ |
| `PROXY_TELEGRAM` | Использовать прокси для Telegram | false |
| `PROXY_LOLZ` | Использовать прокси для Lolz API | false |
#### Вариант 1: Единая строка прокси
```env
PROXY=socks5://username:password@host:port
```
Или без авторизации:
```env
PROXY=socks5://host:port
```
#### Вариант 2: Отдельные параметры
| Переменная | Описание | По умолчанию |
| ----------------- | ---------------------------------------------- | ------------ |
| `PROXY_PROTOCOL` | Протокол прокси (socks5 или https) | socks5 |
| `PROXY_HOST` | Хост прокси-сервера | - |
| `PROXY_PORT` | Порт прокси-сервера | - |
| `PROXY_USERNAME` | Логин (опционально) | - |
| `PROXY_PASSWORD` | Пароль (опционально) | - |
**Поддерживаемые форматы прокси:**
- SOCKS5: `socks5://host:port`
- HTTPS: `https://host:port`
**Поддерживаемые возможности:**
- ✓ Пароли с символом `:` внутри
- ✓ IPv6 адреса
- ✓ Авторизация с логином и паролем
- ✓ Независимая настройка для Telegram и Lolz API
## Шаблоны ответов
Если `ENABLE_REPLY=true`, бот будет отвечать под постами.
Шаблоны хранятся в файле `storage/replies.txt`.
**Формат:**
- Каждая строка – отдельный шаблон
- Можно использовать `||` для случайного выбора
- Поддерживается `\n` для многострочных комментариев
**Пример:**
```
:catdance: Отправил звёзды || :animeyes2: Отправил
:sadge: Тут может быть реклама
Первая строка\nВторая строка\nТретья строка
```
Если файл пустой – используется `✓`.
## Поддержка
- Автор: [Дриада](https://lolz.team/members/7272152/)
- Создайте Issue на Gitea: https://git.sakamoto.best/Lolz/Auto-Stars-Improved/issues
- Тема на форуме Lolz.team: https://lolz.team/threads/10187517/