Initial commit: полный проект my_speaker

This commit is contained in:
2025-12-25 12:16:19 +03:00
commit 8279fbb35f
85 changed files with 6027 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# app/api/session.py
from fastapi import APIRouter, Depends, Request
from pydantic import BaseModel
from typing import Optional
from app.core.security import require_auth
router = APIRouter(prefix="/session", tags=["session"])
# Глобальная переменная для хранения экземпляра SessionManager
_session_manager = None
def set_session_manager(session_manager):
"""Устанавливает глобальный экземпляр SessionManager"""
global _session_manager
_session_manager = session_manager
def get_session_manager():
"""Возвращает глобальный экземпляр SessionManager"""
return _session_manager
class SessionStatus(BaseModel):
"""Модель для статуса сессии"""
active: bool
time_left: float
start_time: Optional[str] = None
end_time: Optional[str] = None
@router.get("/status", response_model=SessionStatus)
async def get_session_status(request: Request, token: str = Depends(require_auth)):
"""Получить текущий статус сессии"""
session_manager = get_session_manager()
if not session_manager:
return SessionStatus(active=False, time_left=0)
return session_manager.get_session_status()