init
This commit is contained in:
53
backend/routes/dashboard.py
Normal file
53
backend/routes/dashboard.py
Normal file
@@ -0,0 +1,53 @@
|
||||
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
|
||||
})
|
||||
Reference in New Issue
Block a user