管理后台 server 使用蓝图模式,降低维护成本,降低修改功能时对其他模块的影响
This commit is contained in:
127
admin/dashboard/blueprints/contacts.py
Normal file
127
admin/dashboard/blueprints/contacts.py
Normal file
@@ -0,0 +1,127 @@
|
||||
from flask import Blueprint, render_template, jsonify, request
|
||||
from .auth import login_required
|
||||
import logging
|
||||
|
||||
# 创建联系人管理蓝图
|
||||
contacts_bp = Blueprint('contacts', __name__, url_prefix='/contacts')
|
||||
logger = logging.getLogger("ContactsBlueprint")
|
||||
|
||||
# 联系人管理页面
|
||||
@contacts_bp.route('/')
|
||||
@login_required
|
||||
def contacts_management():
|
||||
"""通讯录管理页面"""
|
||||
return render_template('contacts_management.html')
|
||||
|
||||
# API路由
|
||||
@contacts_bp.route('/api/all', methods=['GET'])
|
||||
@login_required
|
||||
def api_contacts_all():
|
||||
"""获取所有联系人信息API"""
|
||||
try:
|
||||
server = contacts_bp.server
|
||||
contacts = server.contact_manager.get_contacts()
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"data": {
|
||||
"contacts": contacts
|
||||
}
|
||||
})
|
||||
except Exception as e:
|
||||
logger.error(f"获取所有联系人信息失败: {e}")
|
||||
return jsonify({"success": False, "error": str(e)}), 500
|
||||
|
||||
@contacts_bp.route('/api/statistics', methods=['GET'])
|
||||
@login_required
|
||||
def api_contacts_statistics():
|
||||
"""获取联系人统计信息API"""
|
||||
try:
|
||||
server = contacts_bp.server
|
||||
# 使用新的联系人分类方法获取统计信息
|
||||
total, groups, personal, public, official = server.contact_manager.get_contact_statistics()
|
||||
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"data": {
|
||||
"total": total,
|
||||
"groups": groups,
|
||||
"personal": personal,
|
||||
"public": public,
|
||||
"official": official
|
||||
}
|
||||
})
|
||||
except Exception as e:
|
||||
logger.error(f"获取联系人统计信息失败: {e}")
|
||||
return jsonify({"success": False, "error": str(e)}), 500
|
||||
|
||||
@contacts_bp.route('/api/groups', methods=['GET'])
|
||||
@login_required
|
||||
def api_contacts_groups():
|
||||
"""获取群组联系人信息API"""
|
||||
try:
|
||||
server = contacts_bp.server
|
||||
group_contacts = server.contact_manager.get_group_contacts()
|
||||
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"data": {
|
||||
"groups": group_contacts
|
||||
}
|
||||
})
|
||||
except Exception as e:
|
||||
logger.error(f"获取群组联系人信息失败: {e}")
|
||||
return jsonify({"success": False, "error": str(e)}), 500
|
||||
|
||||
@contacts_bp.route('/api/personal', methods=['GET'])
|
||||
@login_required
|
||||
def api_contacts_personal():
|
||||
"""获取个人联系人信息API"""
|
||||
try:
|
||||
server = contacts_bp.server
|
||||
personal_contacts = server.contact_manager.get_personal_contacts()
|
||||
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"data": {
|
||||
"personal": personal_contacts
|
||||
}
|
||||
})
|
||||
except Exception as e:
|
||||
logger.error(f"获取个人联系人信息失败: {e}")
|
||||
return jsonify({"success": False, "error": str(e)}), 500
|
||||
|
||||
@contacts_bp.route('/api/official', methods=['GET'])
|
||||
@login_required
|
||||
def api_contacts_official():
|
||||
"""获取公众号联系人信息API"""
|
||||
try:
|
||||
server = contacts_bp.server
|
||||
official_accounts = server.contact_manager.get_official_accounts()
|
||||
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"data": {
|
||||
"official": official_accounts
|
||||
}
|
||||
})
|
||||
except Exception as e:
|
||||
logger.error(f"获取公众号联系人信息失败: {e}")
|
||||
return jsonify({"success": False, "error": str(e)}), 500
|
||||
|
||||
@contacts_bp.route('/api/public', methods=['GET'])
|
||||
@login_required
|
||||
def api_contacts_public():
|
||||
"""获取公共好友信息API"""
|
||||
try:
|
||||
server = contacts_bp.server
|
||||
public_contacts = server.contact_manager.get_public_contacts()
|
||||
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"data": {
|
||||
"public": public_contacts
|
||||
}
|
||||
})
|
||||
except Exception as e:
|
||||
logger.error(f"获取公共好友信息失败: {e}")
|
||||
return jsonify({"success": False, "error": str(e)}), 500
|
||||
Reference in New Issue
Block a user