diff --git a/README.md b/README.md index bbcc06c..bbd78b9 100644 --- a/README.md +++ b/README.md @@ -85,36 +85,36 @@ python main.py ### Параметры производительности -| Переменная | Описание | По умолчанию | -| ---------------- | ------------------------------------------- | ------------ | -| `CHECK_INTERVAL` | Интервал проверки новых постов (секунды) | 10 | -| `API_DELAY` | Задержка между API запросами (секунды) | 5 | -| `API_TIMEOUT` | Таймаут для API запросов (секунды) | 15 | -| `MAX_RETRIES` | Количество повторных попыток при ошибках | 3 | +| Переменная | Описание | По умолчанию | +| ---------------- | ---------------------------------------- | ------------ | +| `CHECK_INTERVAL` | Интервал проверки новых постов (секунды) | 10 | +| `API_DELAY` | Задержка между API запросами (секунды) | 5 | +| `API_TIMEOUT` | Таймаут для API запросов (секунды) | 15 | +| `MAX_RETRIES` | Количество повторных попыток при ошибках | 3 | ### Уведомления -| Переменная | Описание | По умолчанию | -| ------------- | ---------------------------------------------- | ------------ | -| `BOT_TOKEN` | Токен бота для уведомлений (от @BotFather) | - | -| `ADMIN_ID` | Telegram ID администратора для уведомлений | - | -| `NOTIFY_ADMIN`| Включить уведомления администратору | true | +| Переменная | Описание | По умолчанию | +| -------------- | ------------------------------------------ | ------------ | +| `BOT_TOKEN` | Токен бота для уведомлений (от @BotFather) | - | +| `ADMIN_ID` | Telegram ID администратора для уведомлений | - | +| `NOTIFY_ADMIN` | Включить уведомления администратору | true | ### Автоматическое поднятие темы (Bump) -| Переменная | Описание | По умолчанию | -| -------------------- | ---------------------------------------- | ------------ | -| `ENABLE_AUTO_BUMP` | Включить автоматическое поднятие темы | true | -| `BUMP_CHECK_INTERVAL`| Интервал между поднятиями (секунды) | 3600 | +| Переменная | Описание | По умолчанию | +| --------------------- | ------------------------------------- | ------------ | +| `ENABLE_AUTO_BUMP` | Включить автоматическое поднятие темы | true | +| `BUMP_CHECK_INTERVAL` | Интервал между поднятиями (секунды) | 3600 | > **Примечание**: Минимальный интервал поднятия — 3600 секунд (1 час) согласно правилам Lolz.team. ### Система капчи -| Переменная | Описание | По умолчанию | -| --------------------- | ----------------------------------------------- | ------------ | -| `ENABLE_CAPTCHA` | Включить систему капчи | false | -| `CAPTCHA_ANSWER` | Правильный ответ на капчу | - | +| Переменная | Описание | По умолчанию | +| ------------------------ | -------------------------------------------- | ------------ | +| `ENABLE_CAPTCHA` | Включить систему капчи | false | +| `CAPTCHA_ANSWER` | Правильный ответ на капчу | - | | `CAPTCHA_CHECK_INTERVAL` | Интервал проверки обновления капчи (секунды) | 1800 | Капча добавляется в нижний спойлер первого поста темы: `Капча (обязательно)`. @@ -122,6 +122,7 @@ python main.py Текст капчи хранится в файле `storage/captcha.txt` и поддерживает BBCode форматирование. **Пример `storage/captcha.txt`:** + ``` [CENTER][B]Напишите ответ:[/B] сколько будет 20 + 20? [I][COLOR=rgb(80, 80, 78)](Капча меняется раз в месяц)[/COLOR][/I][/CENTER] @@ -131,10 +132,10 @@ python main.py Бот поддерживает использование прокси отдельно для Telegram и Lolz API. -| Переменная | Описание | По умолчанию | -| ---------------- | ------------------------------------------- | ------------ | -| `PROXY_TELEGRAM` | Использовать прокси для Telegram | false | -| `PROXY_LOLZ` | Использовать прокси для Lolz API | false | +| Переменная | Описание | По умолчанию | +| ---------------- | -------------------------------- | ------------ | +| `PROXY_TELEGRAM` | Использовать прокси для Telegram | false | +| `PROXY_LOLZ` | Использовать прокси для Lolz API | false | #### Вариант 1: Единая строка прокси @@ -143,25 +144,28 @@ 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` | Пароль (опционально) | - | +| Переменная | Описание | По умолчанию | +| ---------------- | ---------------------------------- | ------------ | +| `PROXY_PROTOCOL` | Протокол прокси (socks5 или https) | socks5 | +| `PROXY_HOST` | Хост прокси-сервера | - | +| `PROXY_PORT` | Порт прокси-сервера | - | +| `PROXY_USERNAME` | Логин (опционально) | - | +| `PROXY_PASSWORD` | Пароль (опционально) | - | **Поддерживаемые форматы прокси:** + - SOCKS5: `socks5://host:port` - HTTPS: `https://host:port` **Поддерживаемые возможности:** + - ✓ Пароли с символом `:` внутри - ✓ IPv6 адреса - ✓ Авторизация с логином и паролем @@ -187,85 +191,8 @@ PROXY=socks5://host:port Если файл пустой — используется `✓`. -## Структура проекта - -``` -Auto-Stars-Improved/ -├── main.py # Точка входа -├── config.py # Загрузка конфигурации -├── modules/ -│ ├── stars_bot.py # Основная логика бота -│ ├── lolz.py # API клиент Lolz.team -│ ├── notification_bot.py # Уведомления через Telegram -│ └── processed.py # Менеджер обработанных постов -├── storage/ -│ ├── replies.txt # Шаблоны ответов -│ ├── captcha.txt # Текст капчи -│ ├── processed_posts.json # История обработанных постов -│ ├── logs/ # Логи -│ └── sessions/ # Сессии Pyrogram -├── examples/ -│ ├── .env.example # Пример конфигурации -│ └── docker-compose.yml # Docker Compose конфигурация -└── Dockerfile # Docker образ -``` - -## Обработка ошибок - -Бот включает систему обработки ошибок с повторными попытками: - -- **Network errors**: Автоматические повторные попытки с задержкой -- **API errors**: Логирование и уведомление администратора -- **Config errors**: Валидация при старте с понятными сообщениями об ошибках -- **Timeout errors**: Настраиваемый таймаут через `API_TIMEOUT` - -Все ошибки логируются в `storage/logs/` с ротацией файлов. - -## Логирование - -Логи сохраняются в `storage/logs/auto_stars.log` с автоматической ротацией: -- Максимальный размер файла: 5 MB -- Количество резервных копий: 3 -- Формат: `[YYYY-MM-DD HH:MM:SS] [LEVEL] [module] message` - -Уровни логирования: -- `INFO` — основные операции -- `DEBUG` — детальная информация (запросы, ответы) -- `WARNING` — предупреждения -- `ERROR` — ошибки с трейсбеком - -## Разработка - -### Локальная разработка - -```bash -git clone https://git.sakamoto.best/Lolz/Auto-Stars-Improved.git -cd Auto-Stars-Improved -python -m venv venv -source venv/bin/activate # или venv\Scripts\activate на Windows -pip install -r requirements.txt -cp examples/.env.example .env -# редактируйте .env -python main.py -``` - -### CI/CD - -Проект использует Gitea Actions для автоматической сборки Docker образов: - -- **main branch** → `ghcr.io/username/auto-stars-improved:latest` -- **dev branch** → `ghcr.io/username/auto-stars-improved:dev` - -## Автор - -Разработчик: (https://lolz.team/members/7272152/) на Lolz.team - -## Лицензия - -Этот проект распространяется "как есть" без каких-либо гарантий. - ## Поддержка +- Автор: [Дриада](https://lolz.team/members/7272152/) - Создайте Issue на Gitea: https://git.sakamoto.best/Lolz/Auto-Stars-Improved/issues -- Форум Lolz.team: https://lolz.team/threads/10187517/ -- Автор: [@sakamotogoat](https://lolz.team/members/7272152/) +- Тема на форуме Lolz.team: https://lolz.team/threads/10187517/