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=
|
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
|
||||||
|
|||||||
@@ -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,19 +64,19 @@ 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: Тут может быть реклама
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user