diff --git a/.env.example b/.env.example index 49ce767..f09e744 100644 --- a/.env.example +++ b/.env.example @@ -14,10 +14,6 @@ LOLZ_TOKEN= LOLZ_THREAD_ID= STARS_COUNT=1 - -# 1 - Начать мониторинг -# 2 - Спарсить все существующие посты -DEFAULT_CHOICE=2 START_PAGE=1 CHECK_INTERVAL=10 diff --git a/README.md b/README.md index c97ae9f..2469b16 100644 --- a/README.md +++ b/README.md @@ -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: Тут может быть реклама diff --git a/config.py b/config.py index 9bea2f6..15adcc5 100644 --- a/config.py +++ b/config.py @@ -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, diff --git a/examples/.env.example b/examples/.env.example index f2e2b2d..378b463 100644 --- a/examples/.env.example +++ b/examples/.env.example @@ -17,10 +17,6 @@ LOLZ_TOKEN= LOLZ_THREAD_ID= STARS_COUNT=1 - -# 1 - Начать мониторинг -# 2 - Спарсить все существующие посты -DEFAULT_CHOICE=2 START_PAGE=1 CHECK_INTERVAL=10 diff --git a/modules/stars_bot.py b/modules/stars_bot.py index a341558..4bc9da8 100644 --- a/modules/stars_bot.py +++ b/modules/stars_bot.py @@ -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(