tg-bot/backend/app/main.py

48 lines
1.3 KiB
Python
Raw Normal View History

2025-12-04 09:52:39 +08:00
import logging
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from .api.auth_routes import get_auth_router, build_token_verifier, get_current_user_dependency
from .api.routes import get_router
from .services.config_repo import ConfigRepository
from .services.match_store import MatchStore
from .services.pattern_service import PatternService
from .services.scanner_manager import ScannerManager
from .services.user_service import UserService
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s",
)
repo = ConfigRepository()
match_store = MatchStore()
pattern_service = PatternService(repo)
scanner_manager = ScannerManager(repo, pattern_service, match_store)
user_service = UserService()
token_verifier = build_token_verifier(user_service)
require_user = get_current_user_dependency(token_verifier)
app = FastAPI(title="Streaming Overseer API", version="1.0.0")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(get_auth_router(user_service), prefix="/api")
app.include_router(
get_router(repo, match_store, scanner_manager, require_user, token_verifier),
prefix="/api",
)
@app.on_event("shutdown")
async def shutdown_event():
await scanner_manager.stop()