refactor(config): remove DEFAULT_CHOICE option
Build and Push (dev) / build (push) Successful in 1m56s
Build and Push (dev) / build (push) Successful in 1m56s
This commit is contained in:
@@ -14,10 +14,6 @@ LOLZ_TOKEN=
|
||||
LOLZ_THREAD_ID=
|
||||
|
||||
STARS_COUNT=1
|
||||
|
||||
# 1 - Начать мониторинг
|
||||
# 2 - Спарсить все существующие посты
|
||||
DEFAULT_CHOICE=2
|
||||
START_PAGE=1
|
||||
|
||||
CHECK_INTERVAL=10
|
||||
|
||||
@@ -23,12 +23,14 @@
|
||||
## Быстрый старт (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
|
||||
```
|
||||
@@ -36,6 +38,7 @@
|
||||
3. Отредактируйте `.env` и заполните необходимые значения (`API_ID`, `API_HASH`, `LOLZ_TOKEN`, `LOLZ_THREAD_ID` и т.д.).
|
||||
|
||||
4. Запустите:
|
||||
|
||||
```bash
|
||||
docker compose -f examples/docker-compose.yml up -d
|
||||
```
|
||||
@@ -61,19 +64,19 @@ python main.py
|
||||
Все настройки находятся в файле `.env`.
|
||||
|
||||
Пример конфигурации лежит здесь:
|
||||
|
||||
- `examples/.env.example`
|
||||
|
||||
**Основные параметры:**
|
||||
|
||||
| Переменная | Описание | По умолчанию |
|
||||
|-----------------------|-----------------------------------------------|--------------|
|
||||
| `API_ID` / `API_HASH` | Данные Telegram API | - |
|
||||
| `LOLZ_TOKEN` | Токен API Lolz.team | - |
|
||||
| `LOLZ_THREAD_ID` | ID темы на форуме | - |
|
||||
| `STARS_COUNT` | Сколько звёзд отправлять за пост | 1 |
|
||||
| `DEFAULT_CHOICE` | 1 — реал-тайм, 2 — обработать все посты | 2 |
|
||||
| `ENABLE_REPLY` | Отправлять ли комментарии | true |
|
||||
| `SKIP_COMMENTED` | Пропускать посты, на которые уже отвечали | true |
|
||||
| Переменная | Описание | По умолчанию |
|
||||
| --------------------- | ----------------------------------------- | ------------ |
|
||||
| `API_ID` / `API_HASH` | Данные Telegram API | - |
|
||||
| `LOLZ_TOKEN` | Токен API Lolz.team | - |
|
||||
| `LOLZ_THREAD_ID` | ID темы на форуме | - |
|
||||
| `STARS_COUNT` | Сколько звёзд отправлять за пост | 1 |
|
||||
| `ENABLE_REPLY` | Отправлять ли комментарии | true |
|
||||
| `SKIP_COMMENTED` | Пропускать посты, на которые уже отвечали | true |
|
||||
|
||||
## Шаблоны ответов
|
||||
|
||||
@@ -82,10 +85,12 @@ python main.py
|
||||
Шаблоны хранятся в файле `storage/replies.txt`.
|
||||
|
||||
**Формат:**
|
||||
|
||||
- Каждая строка — отдельный шаблон
|
||||
- Можно использовать `||` для случайного выбора
|
||||
|
||||
**Пример:**
|
||||
|
||||
```
|
||||
:catdance: Отправил звёзды || :animeyes2: Отправил
|
||||
:sadge: Тут может быть реклама
|
||||
|
||||
@@ -106,7 +106,6 @@ class Config:
|
||||
stars_count = int(os.getenv(key="STARS_COUNT", default=1))
|
||||
|
||||
# Misc
|
||||
default_choice = int(os.getenv(key="DEFAULT_CHOICE", default=2))
|
||||
start_page = max(int(os.getenv(key="START_PAGE", default=1)), 1)
|
||||
|
||||
check_interval = max(
|
||||
@@ -185,9 +184,7 @@ class Config:
|
||||
if "@" in main:
|
||||
main_split = main.split("@")
|
||||
if len(main_split) != 2:
|
||||
raise ConfigError(
|
||||
"Неверный формат авторизации в PROXY"
|
||||
)
|
||||
raise ConfigError("Неверный формат авторизации в PROXY")
|
||||
|
||||
authorization = main_split[0]
|
||||
server = main_split[1]
|
||||
@@ -222,13 +219,15 @@ class Config:
|
||||
proxy_protocol,
|
||||
proxy_host,
|
||||
proxy_port,
|
||||
"да" if proxy_username else "нет"
|
||||
"да" if proxy_username else "нет",
|
||||
)
|
||||
|
||||
except ConfigError:
|
||||
raise
|
||||
except Exception as e:
|
||||
raise ConfigError(f"Произошла ошибка при парсе PROXY: {e}") from e
|
||||
raise ConfigError(
|
||||
f"Произошла ошибка при парсе PROXY: {e}"
|
||||
) from e
|
||||
|
||||
else:
|
||||
logger.info("Загрузка прокси из отдельных переменных...")
|
||||
@@ -250,7 +249,7 @@ class Config:
|
||||
proxy_protocol,
|
||||
proxy_host,
|
||||
proxy_port,
|
||||
"да" if proxy_username else "нет"
|
||||
"да" if proxy_username else "нет",
|
||||
)
|
||||
|
||||
# Валидация
|
||||
@@ -259,7 +258,9 @@ class Config:
|
||||
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(
|
||||
"PROXY_USERNAME и PROXY_PASSWORD должны быть указаны оба или не указаны вовсе"
|
||||
)
|
||||
@@ -295,7 +296,6 @@ class Config:
|
||||
"api_delay": api_delay,
|
||||
"api_timeout": api_timeout,
|
||||
"max_retries": max_retries,
|
||||
"default_choice": default_choice,
|
||||
# Bump
|
||||
"enable_auto_bump": enable_auto_bump,
|
||||
"bump_check_interval": bump_check_interval,
|
||||
|
||||
@@ -17,10 +17,6 @@ LOLZ_TOKEN=
|
||||
LOLZ_THREAD_ID=
|
||||
|
||||
STARS_COUNT=1
|
||||
|
||||
# 1 - Начать мониторинг
|
||||
# 2 - Спарсить все существующие посты
|
||||
DEFAULT_CHOICE=2
|
||||
START_PAGE=1
|
||||
|
||||
CHECK_INTERVAL=10
|
||||
|
||||
@@ -427,30 +427,6 @@ class TelegramStarsBot:
|
||||
if is_first_login:
|
||||
logger.info("Сессия Telegram не найдена. Запускаю процесс входа...")
|
||||
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.client = Client(
|
||||
|
||||
Reference in New Issue
Block a user