Астат ты не вознесешься

This commit is contained in:
2026-02-18 01:43:22 +07:00
parent 59a3a7b46a
commit 5d350d0885
15 changed files with 1489 additions and 183 deletions

View File

@@ -3,7 +3,7 @@ from urllib.parse import urlparse, ParseResult
from typing import Optional, Any
from secrets import token_urlsafe
from pydantic import field_validator, model_validator
from pydantic import field_validator, model_validator, Field
from pydantic_settings import BaseSettings, SettingsConfigDict
from aiogram.types import ChatAdministratorRights
@@ -21,6 +21,7 @@ class _Settings(BaseSettings):
# ============== ОСНОВНЫЕ ПАРАМЕТРЫ ==============
# Токены бота
BOT_TOKEN: Optional[str] = None
DATABASE_PATH: Optional[str] = "data/banwords.db"
# Параметры сообщений
PARSE_MODE: str = "HTML"
@@ -61,6 +62,35 @@ class _Settings(BaseSettings):
BOT_DESCRIPTION: Optional[str] = None
BOT_SHORT_DESCRIPTION: Optional[str] = None
# ============ АВТОКОММЕНТАРИИ В КАНАЛЕ ============
AUTO_COMMENT_CHANNELS: str = Field(
default="",
description="ID каналов через запятую"
)
AUTO_COMMENT_TEXT: str = Field(
default="🔍 <b>Нужна помощь?</b>\n\nИспользуй наш сервис!",
description="Текст по умолчанию (HTML)"
)
AUTO_COMMENT_BUTTON_TEXT: str = Field(
default="🌐 Искать в Google",
description="Текст кнопки по умолчанию"
)
AUTO_COMMENT_BUTTON_URL: str = Field(
default="https://www.google.com",
description="URL кнопки по умолчанию"
)
AUTO_COMMENT_PHOTO_URL: str = Field(
default="https://via.placeholder.com/800x600.png",
description="URL фото по умолчанию"
)
# Права администратора
ANONYMOUS: bool = False
MANAGE_CHAT: bool = True
@@ -160,6 +190,25 @@ class _Settings(BaseSettings):
return self
# ================= СВОЙСТВА =================
@property
def AUTO_COMMENT_CHANNELS_LIST(self) -> list[int]:
"""Преобразует строку ID каналов в список"""
if not self.AUTO_COMMENT_CHANNELS:
return []
try:
return [
int(channel_id.strip())
for channel_id in self.AUTO_COMMENT_CHANNELS.split(",")
if channel_id.strip()
]
except ValueError:
from middleware.loggers import logger # ✅ ДОБАВЬ ИМПОРТ
logger.error(
"Неверный формат AUTO_COMMENT_CHANNELS",
log_type="CONFIG"
)
return []
@property
def rights(self) -> ChatAdministratorRights: