1
0
mirror of https://github.com/ijaric/voice_assistant.git synced 2025-12-19 01:36:18 +00:00

feat: [#49] tg_bot

This commit is contained in:
2023-10-13 23:05:25 +03:00
parent bc88ceffec
commit 8486d2e0bf
10 changed files with 247 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
from .api import *
from .tgbot import *
__all__ = [
"ApiSettings",
"TgBotSettings",
]

View File

@@ -0,0 +1,20 @@
import pydantic_settings
import tgbot.split_settings.utils as split_settings_utils
class ApiSettings(pydantic_settings.BaseSettings):
model_config = pydantic_settings.SettingsConfigDict(
env_file=split_settings_utils.ENV_PATH,
env_prefix="API_",
env_file_encoding="utf-8",
extra="ignore",
)
url: str
port: int
protocol: str
@property
def api_url(self) -> str:
return f"{self.protocol}://{self.url}:{self.port}"

View File

@@ -0,0 +1,22 @@
import pydantic
import pydantic_settings
import tgbot.split_settings.utils as split_settings_utils
class TgBotSettings(pydantic_settings.BaseSettings):
model_config = pydantic_settings.SettingsConfigDict(
env_file=split_settings_utils.ENV_PATH,
env_prefix="BOT_",
env_file_encoding="utf-8",
extra="ignore",
)
token: pydantic.SecretStr = pydantic.Field(
default=..., validation_alias=pydantic.AliasChoices("token", "bot_token")
)
admins: str = pydantic.Field(default="")
@pydantic.field_validator("admins")
def validate_bot_admins(cls, v: str) -> list[int]:
return list(map(int, v.split(",")))

View File

@@ -0,0 +1,4 @@
import pathlib
BASE_PATH = pathlib.Path(__file__).parent.parent.parent.resolve()
ENV_PATH = BASE_PATH / ".env"