add dashboard apis

This commit is contained in:
jxxghp
2023-07-10 16:42:20 +08:00
parent 90002b6223
commit 15bb043fe8
10 changed files with 223 additions and 8 deletions

View File

@ -0,0 +1,46 @@
from pathlib import Path
from typing import Any, List
from fastapi import APIRouter, Depends
from app import schemas
from app.chain.dashboard import DashboardChain
from app.core.config import settings
from app.core.security import verify_token
from app.utils.system import SystemUtils
router = APIRouter()
@router.get("/statistic", summary="媒体数量统计", response_model=schemas.Statistic)
def statistic(_: schemas.TokenPayload = Depends(verify_token)) -> Any:
"""
查询媒体数量统计信息
"""
media_statistic = DashboardChain().media_statistic()
return schemas.Statistic(
movie_count=media_statistic.movie_count,
tv_count=media_statistic.tv_count,
episode_count=media_statistic.episode_count,
user_count=media_statistic.user_count
)
@router.get("/storage", summary="存储空间", response_model=schemas.Storage)
def storage(_: schemas.TokenPayload = Depends(verify_token)) -> Any:
"""
查询存储空间信息
"""
total_storage, used_storage = SystemUtils.space_usage(Path(settings.LIBRARY_PATH))
return schemas.Storage(
total_storage=total_storage,
used_storage=used_storage
)
@router.get("/processes", summary="进程信息", response_model=List[schemas.ProcessInfo])
def processes(_: schemas.TokenPayload = Depends(verify_token)) -> Any:
"""
进程信息
"""
return SystemUtils.processes()