提交消息列表功能

This commit is contained in:
liuwei
2025-04-01 13:42:22 +08:00
parent d93f47d800
commit 6fe8f9ae9e
3 changed files with 142 additions and 3 deletions

View File

@@ -152,6 +152,12 @@ class DashboardServer:
def errors():
return render_template('errors.html')
@app.route('/messages')
@login_required
def message_list_page():
"""消息列表页面"""
return render_template('message_list.html')
# 在_create_app方法中添加新的路由
@app.route('/robot_management')
@login_required
@@ -480,7 +486,63 @@ class DashboardServer:
self.logger.error(f"添加群组失败: {e}")
return jsonify({"success": False, "error": str(e)}), 500
return app
@app.route('/api/messages', methods=['GET'])
@login_required
def get_messages():
"""获取消息列表API"""
try:
# 获取查询参数
group_id = request.args.get('group_id')
start_date = request.args.get('start_date', datetime.now().strftime('%Y-%m-%d'))
end_date = request.args.get('end_date', datetime.now().strftime('%Y-%m-%d'))
search_text = request.args.get('search_text')
page = int(request.args.get('page', 1))
page_size = int(request.args.get('page_size', 20))
# 调用数据库方法获取消息
result = self.message_storage.get_messages_by_filter(
group_id=group_id,
start_date=start_date,
end_date=end_date,
search_text=search_text,
page=page,
page_size=page_size
)
# 处理消息数据,添加群组名称和发送者昵称
for msg in result['messages']:
# 获取群组名称
msg['group_name'] = self.contact_manager.get_nickname(msg['group_id']) or msg['group_id']
# 获取发送者昵称
msg['sender_name'] = self.contact_manager.get_nickname(msg['sender']) or msg['sender']
return jsonify(result)
except Exception as e:
self.logger.error(f"获取消息列表失败: {e}")
return jsonify({'error': str(e)}), 500
@app.route('/api/groups', methods=['GET'])
@login_required
def get_groups():
"""获取群组列表API"""
try:
# 获取机器人管理的群组列表
groups = []
for group_id in self.contact_manager.get_contacts():
if '@chatroom' in group_id:
groups.append({
'group_id': group_id,
'group_name': self.contact_manager.get_nickname(group_id) or group_id
})
return jsonify({'groups': groups})
except Exception as e:
self.logger.error(f"获取群组列表失败: {e}")
return jsonify({'error': str(e)}), 500
return app
def run(self):
"""运行服务器"""
@@ -504,4 +566,4 @@ class DashboardServer:
if self._server:
self._server.shutdown()
self.logger.info("服务器已停止")
self.logger.info("服务器已停止")