Files
Skit-Panel/backend/routes/dashboard.py
DengDai 519589f8f5 init
2025-12-08 14:45:14 +08:00

54 lines
2.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from flask import Blueprint, jsonify
from config import config_manager
from utils.placeholders import ServicePlaceholder
from utils.plex_utils import PlexManager
dashboard_bp = Blueprint('dashboard', __name__, url_prefix='/api/dashboard')
@dashboard_bp.route('/initial_check', methods=['GET'])
def initial_check():
# 逻辑: 检查配置文件中是否至少有一个关键项被配置例如ptskit的URL
# 返回格式: {"is_configured": true | false}
is_configured = bool(config_manager.get('ptskit', {}).get('url'))
return jsonify({"is_configured": is_configured})
@dashboard_bp.route('/stats', methods=['GET'])
def get_stats():
# 逻辑: 分别连接 qBittorrent, Transmission, Emby 等服务获取它们的项目总数
# 返回格式: {"local_skits": int, "fnos_items": int, ...}
qb_manager = ServicePlaceholder(config_manager.get('qbittorrent'))
plex_config = config_manager.get('plex')
plex_manager = PlexManager(plex_config)
plex_items = plex_manager.get_stats()
return jsonify({
"local_skits": 15,
"fnos_items": 12,
"emby_items": 12,
"plex_items": plex_items,
"qb_total": qb_manager.get_stats(),
"tr_total": 4
})
@dashboard_bp.route('/component_statuses', methods=['GET'])
def get_component_statuses():
# 逻辑: 对每个配置的服务进行一次连接测试,并返回其状态
# 返回格式: {"qbittorrent": {"status": "success" | "error" | "unconfigured", "message": str}, ...}
plex_config = config_manager.get('plex')
plex_status = {"status": "unconfigured", "message": "未配置"}
if plex_config and plex_config.get('host'):
plex_manager = PlexManager(plex_config)
success, message = plex_manager.test_connection()
plex_status = {"status": "success" if success else "error", "message": message}
return jsonify({
"douban_cookie": {"status": "success", "message": "Cookie已配置"},
"ptskit_cookie": {"status": "success", "message": "Cookie已配置"},
"local_path": {"status": "success", "message": "已挂载"},
"qbittorrent": {"status": "success", "message": "连接成功 v4.5.2"},
"transmission": {"status": "error", "message": "连接失败: 认证错误"},
"fnos": {"status": "unconfigured", "message": "未配置"},
"emby": {"status": "success", "message": "连接成功"},
"plex": plex_status
})