refactor(captcha): load answer from env dynamically
Build and Push (main) / build (push) Successful in 54s
Build and Push (dev) / build (push) Successful in 50s

This commit is contained in:
2026-08-08 06:26:56 +05:00
parent cb83fc1608
commit f5fd0187ec
2 changed files with 12 additions and 4 deletions
+5
View File
@@ -63,6 +63,11 @@ class Config:
except FileNotFoundError:
return default_captcha
def _load_captcha_answer(self):
"""Load captcha answer from environment variable (supports live reload)"""
load_dotenv(override=True) # Reload .env file
return os.getenv(key="CAPTCHA_ANSWER", default=None)
def _load(self):
load_dotenv()
+7 -4
View File
@@ -144,14 +144,16 @@ class TelegramStarsBot:
async def update_captcha(self):
"""Update or add captcha text in the thread spoiler block"""
captcha_text = self.config._load_captcha()
captcha_answer = self.config._load_captcha_answer()
if (
not captcha_text
or not self.config.enable_captcha
or not self.config.captcha_answer
or not captcha_answer
):
if not self.config.enable_captcha:
logger.error("Капча выключена. Редактирование темы невозможно.")
elif not self.config.captcha_answer:
elif not captcha_answer:
logger.error(
"Ответ для капчи не установлен. Редактирование темы невозможно."
)
@@ -245,8 +247,9 @@ class TelegramStarsBot:
self.processed_manager.mark_processed(post_id)
return
if self.config.enable_captcha and self.config.captcha_answer:
if not str(self.config.captcha_answer) in post_content:
if self.config.enable_captcha:
captcha_answer = self.config._load_captcha_answer()
if captcha_answer and str(captcha_answer) not in post_content:
logger.info(f"Пост {post_id} не содержит капчу. Пропускаю обработку.")
self.processed_manager.mark_processed(post_id)
return