Initial commit

This commit is contained in:
2026-01-18 21:01:43 +03:00
commit 455b6df2ba
3329 changed files with 1143638 additions and 0 deletions
View File
+21
View File
@@ -0,0 +1,21 @@
from pydantic_settings import BaseSettings
from typing import Optional
class Settings(BaseSettings):
DATABASE_URL: str = "postgresql://user:password@localhost/telepost"
REDIS_URL: str = "redis://localhost:6379"
SECRET_KEY: str = "your-secret-key-here"
ALGORITHM: str = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES: int = 30
# Telegram Bot API settings
TELEGRAM_BOT_TOKEN: Optional[str] = None
TELEGRAM_BOT_NAME: Optional[str] = None
class Config:
env_file = ".env"
settings = Settings()
+31
View File
@@ -0,0 +1,31 @@
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from .config import settings
# Create the database engine
engine = create_engine(
settings.DATABASE_URL,
pool_pre_ping=True, # Verify connections before use
pool_recycle=300, # Recycle connections after 5 minutes
)
# Create a configured "SessionLocal" class
SessionLocal = sessionmaker(
autocommit=False,
autoflush=False,
bind=engine
)
# Create a Base class for declarative models
Base = declarative_base()
def get_db():
"""
Dependency to get database session
"""
db = SessionLocal()
try:
yield db
finally:
db.close()