refactor(config): remove DEFAULT_CHOICE option
Build and Push (dev) / build (push) Successful in 1m56s

This commit is contained in:
2026-08-16 05:20:24 +05:00
parent 5dece14c8b
commit 37d4400513
5 changed files with 23 additions and 50 deletions
-4
View File
@@ -14,10 +14,6 @@ LOLZ_TOKEN=
LOLZ_THREAD_ID= LOLZ_THREAD_ID=
STARS_COUNT=1 STARS_COUNT=1
# 1 - Начать мониторинг
# 2 - Спарсить все существующие посты
DEFAULT_CHOICE=2
START_PAGE=1 START_PAGE=1
CHECK_INTERVAL=10 CHECK_INTERVAL=10
+7 -2
View File
@@ -23,12 +23,14 @@
## Быстрый старт (Docker — рекомендуется) ## Быстрый старт (Docker — рекомендуется)
1. Клонируйте репозиторий: 1. Клонируйте репозиторий:
```bash ```bash
git clone https://git.sakamoto.best/Lolz/Auto-Stars-Improved.git git clone https://git.sakamoto.best/Lolz/Auto-Stars-Improved.git
cd Auto-Stars-Improved cd Auto-Stars-Improved
``` ```
2. Скопируйте пример конфигурации: 2. Скопируйте пример конфигурации:
```bash ```bash
cp examples/.env.example .env cp examples/.env.example .env
``` ```
@@ -36,6 +38,7 @@
3. Отредактируйте `.env` и заполните необходимые значения (`API_ID`, `API_HASH`, `LOLZ_TOKEN`, `LOLZ_THREAD_ID` и т.д.). 3. Отредактируйте `.env` и заполните необходимые значения (`API_ID`, `API_HASH`, `LOLZ_TOKEN`, `LOLZ_THREAD_ID` и т.д.).
4. Запустите: 4. Запустите:
```bash ```bash
docker compose -f examples/docker-compose.yml up -d docker compose -f examples/docker-compose.yml up -d
``` ```
@@ -61,17 +64,17 @@ python main.py
Все настройки находятся в файле `.env`. Все настройки находятся в файле `.env`.
Пример конфигурации лежит здесь: Пример конфигурации лежит здесь:
- `examples/.env.example` - `examples/.env.example`
**Основные параметры:** **Основные параметры:**
| Переменная | Описание | По умолчанию | | Переменная | Описание | По умолчанию |
|-----------------------|-----------------------------------------------|--------------| | --------------------- | ----------------------------------------- | ------------ |
| `API_ID` / `API_HASH` | Данные Telegram API | - | | `API_ID` / `API_HASH` | Данные Telegram API | - |
| `LOLZ_TOKEN` | Токен API Lolz.team | - | | `LOLZ_TOKEN` | Токен API Lolz.team | - |
| `LOLZ_THREAD_ID` | ID темы на форуме | - | | `LOLZ_THREAD_ID` | ID темы на форуме | - |
| `STARS_COUNT` | Сколько звёзд отправлять за пост | 1 | | `STARS_COUNT` | Сколько звёзд отправлять за пост | 1 |
| `DEFAULT_CHOICE` | 1 — реал-тайм, 2 — обработать все посты | 2 |
| `ENABLE_REPLY` | Отправлять ли комментарии | true | | `ENABLE_REPLY` | Отправлять ли комментарии | true |
| `SKIP_COMMENTED` | Пропускать посты, на которые уже отвечали | true | | `SKIP_COMMENTED` | Пропускать посты, на которые уже отвечали | true |
@@ -82,10 +85,12 @@ python main.py
Шаблоны хранятся в файле `storage/replies.txt`. Шаблоны хранятся в файле `storage/replies.txt`.
**Формат:** **Формат:**
- Каждая строка — отдельный шаблон - Каждая строка — отдельный шаблон
- Можно использовать `||` для случайного выбора - Можно использовать `||` для случайного выбора
**Пример:** **Пример:**
``` ```
:catdance: Отправил звёзды || :animeyes2: Отправил :catdance: Отправил звёзды || :animeyes2: Отправил
:sadge: Тут может быть реклама :sadge: Тут может быть реклама
+9 -9
View File
@@ -106,7 +106,6 @@ class Config:
stars_count = int(os.getenv(key="STARS_COUNT", default=1)) stars_count = int(os.getenv(key="STARS_COUNT", default=1))
# Misc # Misc
default_choice = int(os.getenv(key="DEFAULT_CHOICE", default=2))
start_page = max(int(os.getenv(key="START_PAGE", default=1)), 1) start_page = max(int(os.getenv(key="START_PAGE", default=1)), 1)
check_interval = max( check_interval = max(
@@ -185,9 +184,7 @@ class Config:
if "@" in main: if "@" in main:
main_split = main.split("@") main_split = main.split("@")
if len(main_split) != 2: if len(main_split) != 2:
raise ConfigError( raise ConfigError("Неверный формат авторизации в PROXY")
"Неверный формат авторизации в PROXY"
)
authorization = main_split[0] authorization = main_split[0]
server = main_split[1] server = main_split[1]
@@ -222,13 +219,15 @@ class Config:
proxy_protocol, proxy_protocol,
proxy_host, proxy_host,
proxy_port, proxy_port,
"да" if proxy_username else "нет" "да" if proxy_username else "нет",
) )
except ConfigError: except ConfigError:
raise raise
except Exception as e: except Exception as e:
raise ConfigError(f"Произошла ошибка при парсе PROXY: {e}") from e raise ConfigError(
f"Произошла ошибка при парсе PROXY: {e}"
) from e
else: else:
logger.info("Загрузка прокси из отдельных переменных...") logger.info("Загрузка прокси из отдельных переменных...")
@@ -250,7 +249,7 @@ class Config:
proxy_protocol, proxy_protocol,
proxy_host, proxy_host,
proxy_port, proxy_port,
"да" if proxy_username else "нет" "да" if proxy_username else "нет",
) )
# Валидация # Валидация
@@ -259,7 +258,9 @@ class Config:
f"Формат прокси '{proxy_protocol}' не поддерживается. Укажите socks5 или https" f"Формат прокси '{proxy_protocol}' не поддерживается. Укажите socks5 или https"
) )
if (proxy_username and not proxy_password) or (proxy_password and not proxy_username): if (proxy_username and not proxy_password) or (
proxy_password and not proxy_username
):
raise ConfigError( raise ConfigError(
"PROXY_USERNAME и PROXY_PASSWORD должны быть указаны оба или не указаны вовсе" "PROXY_USERNAME и PROXY_PASSWORD должны быть указаны оба или не указаны вовсе"
) )
@@ -295,7 +296,6 @@ class Config:
"api_delay": api_delay, "api_delay": api_delay,
"api_timeout": api_timeout, "api_timeout": api_timeout,
"max_retries": max_retries, "max_retries": max_retries,
"default_choice": default_choice,
# Bump # Bump
"enable_auto_bump": enable_auto_bump, "enable_auto_bump": enable_auto_bump,
"bump_check_interval": bump_check_interval, "bump_check_interval": bump_check_interval,
-4
View File
@@ -17,10 +17,6 @@ LOLZ_TOKEN=
LOLZ_THREAD_ID= LOLZ_THREAD_ID=
STARS_COUNT=1 STARS_COUNT=1
# 1 - Начать мониторинг
# 2 - Спарсить все существующие посты
DEFAULT_CHOICE=2
START_PAGE=1 START_PAGE=1
CHECK_INTERVAL=10 CHECK_INTERVAL=10
-24
View File
@@ -427,30 +427,6 @@ class TelegramStarsBot:
if is_first_login: if is_first_login:
logger.info("Сессия Telegram не найдена. Запускаю процесс входа...") logger.info("Сессия Telegram не найдена. Запускаю процесс входа...")
else: else:
if self.config.default_choice == 2:
logger.info("Выбран режим парсинга существующих постов.")
self.client = Client(
name=self.SESSION_NAME,
api_id=self.config.api_id,
api_hash=self.config.api_hash,
)
try:
await self.client.start()
await self.parse_existing_posts()
except Exception as e:
logger.error(f"Ошибка при парсинге существующих постов: {e}")
raise
finally:
if self.client and self.client.is_connected:
await self.client.stop()
logger.info(
"Парсинг завершен. Все существующие посты добавлены в обработанные."
)
return
self.start_page = self.config.start_page self.start_page = self.config.start_page
self.client = Client( self.client = Client(