管理后台 server 使用蓝图模式,降低维护成本,降低修改功能时对其他模块的影响

This commit is contained in:
liuwei
2025-04-03 11:51:40 +08:00
parent 4cd1008f3a
commit 65059c2a10
5 changed files with 16 additions and 16 deletions

View File

@@ -21,7 +21,7 @@ def login():
username = request.form['username']
password = request.form['password']
# 从应用上下文获取服务器实例
# 从应用上下文获取服务器实例,而不是从蓝图对象
server = current_app.dashboard_server
if username == server.username and password == server.password:

View File

@@ -36,7 +36,7 @@ def api_contacts_all():
def api_contacts_statistics():
"""获取联系人统计信息API"""
try:
server = contacts_bp.server
server = current_app.dashboard_server
# 使用新的联系人分类方法获取统计信息
total, groups, personal, public, official = server.contact_manager.get_contact_statistics()

View File

@@ -1,4 +1,4 @@
from flask import Blueprint, render_template, jsonify, request
from flask import Blueprint, render_template, jsonify, request, current_app
from .auth import login_required
import logging
import xml.etree.ElementTree as ET
@@ -22,7 +22,7 @@ def message_list_page():
def get_messages():
"""获取消息列表API"""
try:
server = messages_bp.server
server = current_app.dashboard_server
# 获取查询参数
group_id = request.args.get('group_id')
start_date = request.args.get('start_date', datetime.now().strftime('%Y-%m-%d'))
@@ -75,7 +75,7 @@ def get_messages():
def get_groups():
"""获取群组列表API"""
try:
server = messages_bp.server
server = current_app.dashboard_server
# 获取机器人管理的群组列表
groups = []
for group_id in server.contact_manager.get_contacts():

View File

@@ -1,4 +1,4 @@
from flask import Blueprint, render_template, jsonify, request
from flask import Blueprint, render_template, jsonify, request, current_app
from .auth import login_required
import logging
from robot_cmd.robot_command import GroupBotManager, Feature, PermissionStatus
@@ -19,7 +19,7 @@ def robot_management():
@login_required
def api_robot_groups():
try:
server = robot_bp.server
server = current_app.dashboard_server
# 获取所有群组列表
groups = GroupBotManager.get_group_list()
@@ -90,7 +90,7 @@ def api_robot_group_permissions(group_id):
@login_required
def api_update_robot_permissions(group_id):
# 更新群组功能权限
server = robot_bp.server
server = current_app.dashboard_server
data = request.json
feature_id = data.get('feature_id')
status = data.get('status')
@@ -142,7 +142,7 @@ def api_robot_batch_operation():
@login_required
def api_add_group():
try:
server = robot_bp.server
server = current_app.dashboard_server
data = request.json
group_id = data.get('group_id')
@@ -183,7 +183,7 @@ def api_add_group():
@login_required
def api_group_message_trend(group_id):
try:
server = robot_bp.server
server = current_app.dashboard_server
days = request.args.get('days', 7, type=int)
trend_data = server.message_storage.get_message_trend(group_id, days)

View File

@@ -34,7 +34,7 @@ def errors():
@login_required
def api_user_stats():
try:
server = stats_bp.server
server = current_app.dashboard_server
days = request.args.get('days', 7, type=int)
limit = request.args.get('limit', 10, type=int)
stats = server.stats_db.get_user_stats(days, limit)
@@ -54,7 +54,7 @@ def api_user_stats():
@login_required
def api_group_stats():
try:
server = stats_bp.server
server = current_app.dashboard_server
days = request.args.get('days', 7, type=int)
limit = request.args.get('limit', 10, type=int)
stats = server.stats_db.get_group_stats(days, limit)
@@ -74,7 +74,7 @@ def api_group_stats():
@login_required
def api_plugin_stats():
try:
server = stats_bp.server
server = current_app.dashboard_server
days = request.args.get('days', 7, type=int)
stats = server.stats_db.get_plugin_stats(days)
return jsonify({"success": True, "data": stats})
@@ -86,7 +86,7 @@ def api_plugin_stats():
@login_required
def api_error_logs():
try:
server = stats_bp.server
server = current_app.dashboard_server
days = request.args.get('days', 7, type=int)
limit = request.args.get('limit', 100, type=int)
logs = server.stats_db.get_error_logs(days, limit)
@@ -123,7 +123,7 @@ def api_dashboard_summary():
@login_required
def api_plugin_trend():
try:
server = stats_bp.server
server = current_app.dashboard_server
days = request.args.get('days', 7, type=int)
plugin_name = request.args.get('plugin_name', '')
trend = server.stats_db.get_plugin_trend(plugin_name, days)
@@ -136,7 +136,7 @@ def api_plugin_trend():
@login_required
def api_error_detail(error_id):
try:
server = stats_bp.server
server = current_app.dashboard_server
detail = server.stats_db.get_error_detail(error_id)
return jsonify({"success": True, "data": detail})
except Exception as e: