调整通讯录管理

This commit is contained in:
liuwei
2025-04-03 11:18:46 +08:00
parent dbda48f01f
commit 29644271ce
3 changed files with 311 additions and 22 deletions

View File

@@ -247,24 +247,95 @@ class DashboardServer:
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}
# 使用新的联系人分类方法获取统计信息
total, groups, personal, public, official = self.contact_manager.get_contact_statistics()
return jsonify({
"success": True,
"data": {
"total": len(contacts),
"groups": len(group_contacts),
"personal": len(personal_contacts)
"total": total,
"groups": groups,
"personal": personal,
"public": public,
"official": official
}
})
except Exception as e:
self.logger.error(f"获取联系人统计信息失败: {e}")
return jsonify({"success": False, "error": str(e)}), 500
# 修改群组联系人API使用新的分类方法
@app.route('/api/contacts/groups', methods=['GET'])
@login_required
def api_contacts_groups():
"""获取群组联系人信息API"""
try:
group_contacts = self.contact_manager.get_group_contacts()
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
# 修改个人联系人API使用新的分类方法
@app.route('/api/contacts/personal', methods=['GET'])
@login_required
def api_contacts_personal():
"""获取个人联系人信息API"""
try:
personal_contacts = self.contact_manager.get_personal_contacts()
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
# 添加公众号联系人API
@app.route('/api/contacts/official', methods=['GET'])
@login_required
def api_contacts_official():
"""获取公众号联系人信息API"""
try:
official_accounts = self.contact_manager.get_official_accounts()
return jsonify({
"success": True,
"data": {
"official": official_accounts
}
})
except Exception as e:
self.logger.error(f"获取公众号联系人信息失败: {e}")
return jsonify({"success": False, "error": str(e)}), 500
# 添加公共好友API
@app.route('/api/contacts/public', methods=['GET'])
@login_required
def api_contacts_public():
"""获取公共好友信息API"""
try:
public_contacts = self.contact_manager.get_public_contacts()
return jsonify({
"success": True,
"data": {
"public": public_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
def api_robot_groups():