Initial commit
This commit is contained in:
32
app/config.py
Normal file
32
app/config.py
Normal file
@@ -0,0 +1,32 @@
|
||||
from functools import lru_cache
|
||||
from pathlib import Path
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
model_config = SettingsConfigDict(
|
||||
env_file=".env",
|
||||
env_file_encoding="utf-8",
|
||||
populate_by_name=True,
|
||||
extra="ignore",
|
||||
)
|
||||
|
||||
api_id: int = Field(..., alias="TELEGRAM_API_ID")
|
||||
api_hash: str = Field(..., alias="TELEGRAM_API_HASH")
|
||||
phone_number: Optional[str] = Field(default=None, alias="TELEGRAM_PHONE")
|
||||
session_name: str = Field(default="telegram", alias="TELEGRAM_SESSION_NAME")
|
||||
session_path: Path = Field(default=Path("data") / "telegram.session", alias="TELEGRAM_SESSION_PATH")
|
||||
database_path: Path = Field(default=Path("data") / "hooks.json", alias="DATABASE_PATH")
|
||||
base_url: str = Field(default="http://localhost:8000", alias="BASE_URL")
|
||||
hook_id_length: int = Field(default=8, alias="HOOK_ID_LENGTH")
|
||||
|
||||
|
||||
@lru_cache
|
||||
def get_settings() -> Settings:
|
||||
settings = Settings()
|
||||
settings.session_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
settings.database_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
return settings
|
||||
Reference in New Issue
Block a user