加入通讯录管理功能

This commit is contained in:
liuwei
2025-04-03 10:50:53 +08:00
parent 66effdfed7
commit c574989dd4
3 changed files with 142 additions and 3 deletions

View File

@@ -180,6 +180,90 @@ class DashboardServer:
@login_required
def robot_management():
return render_template('robot_management.html')
# 添加通讯录管理页面路由
@app.route('/contacts')
@login_required
def contacts_management():
"""通讯录管理页面"""
return render_template('contacts_management.html')
# 添加通讯录相关API
@app.route('/api/contacts/all', methods=['GET'])
@login_required
def api_contacts_all():
"""获取所有联系人信息API"""
try:
contacts = self.contact_manager.get_contacts()
return jsonify({
"success": True,
"data": {
"contacts": contacts
}
})
except Exception as e:
self.logger.error(f"获取所有联系人信息失败: {e}")
return jsonify({"success": False, "error": str(e)}), 500
@app.route('/api/contacts/groups', methods=['GET'])
@login_required
def api_contacts_groups():
"""获取群组联系人信息API"""
try:
contacts = self.contact_manager.get_contacts()
group_contacts = {wxid: name for wxid, name in contacts.items() if '@@' in wxid or '@chatroom' in wxid}
return jsonify({
"success": True,
"data": {
"groups": group_contacts
}
})
except Exception as e:
self.logger.error(f"获取群组联系人信息失败: {e}")
return jsonify({"success": False, "error": str(e)}), 500
@app.route('/api/contacts/personal', methods=['GET'])
@login_required
def api_contacts_personal():
"""获取个人联系人信息API"""
try:
contacts = self.contact_manager.get_contacts()
personal_contacts = {wxid: name for wxid, name in contacts.items()
if '@@' not in wxid and '@chatroom' not in wxid}
return jsonify({
"success": True,
"data": {
"personal": personal_contacts
}
})
except Exception as e:
self.logger.error(f"获取个人联系人信息失败: {e}")
return jsonify({"success": False, "error": str(e)}), 500
@app.route('/api/contacts/statistics', methods=['GET'])
@login_required
def api_contacts_statistics():
"""获取联系人统计信息API"""
try:
contacts = self.contact_manager.get_contacts()
group_contacts = {wxid: name for wxid, name in contacts.items()
if '@@' in wxid or '@chatroom' in wxid}
personal_contacts = {wxid: name for wxid, name in contacts.items()
if '@@' not in wxid and '@chatroom' not in wxid}
return jsonify({
"success": True,
"data": {
"total": len(contacts),
"groups": len(group_contacts),
"personal": len(personal_contacts)
}
})
except Exception as e:
self.logger.error(f"获取联系人统计信息失败: {e}")
return jsonify({"success": False, "error": str(e)}), 500
@app.route('/api/robot/groups')
@login_required

View File

@@ -143,6 +143,11 @@
<i class="el-icon-document"></i>
<span slot="title">运行日志</span>
</el-menu-item>
<!-- 在导航菜单中添加通讯录管理入口 -->
<el-menu-item index="10">
<i class="el-icon-notebook-1"></i>
<span slot="title">通讯录管理</span>
</el-menu-item>
</el-menu>
</div>
@@ -204,7 +209,8 @@
'5': '/errors',
'6': '/robot_management',
'7': '/messages',
'9': '/wx_logs'
'9': '/wx_logs',
'10': '/contacts'
};
// 如果当前不在对应页面,则跳转