from flask import Flask, request, jsonify import socket import json import threading from datetime import datetime app = Flask(__name__) class APIClient: def __init__(self, host='localhost', port=5555): self.host = host self.port = port self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.connect((host, port)) self.lock = threading.Lock() def send_command(self, command_type, **kwargs): with self.lock: data = {'type': command_type, **kwargs} self.socket.send(json.dumps(data).encode('utf-8')) response = self.socket.recv(4096).decode('utf-8') return json.loads(response) if response else None api_client = APIClient() # 用户管理API @app.route('/api/users', methods=['GET']) def get_users(): response = api_client.send_command('admin_get_users') return jsonify(response) @app.route('/api/users', methods=['POST']) def create_user(): data = request.json response = api_client.send_command('admin_create_user', username=data['username'], password=data['password']) return jsonify(response) @app.route('/api/users/', methods=['DELETE']) def delete_user(username): response = api_client.send_command('admin_delete_user', username=username) return jsonify(response) # 消息管理API @app.route('/api/messages', methods=['GET']) def get_messages(): params = { 'sender': request.args.get('sender'), 'receiver': request.args.get('receiver'), 'is_group': request.args.get('is_group'), 'start_time': request.args.get('start_time'), 'end_time': request.args.get('end_time') } response = api_client.send_command('admin_get_messages', **params) return jsonify(response) @app.route('/api/messages/', methods=['DELETE']) def delete_message(message_id): response = api_client.send_command('admin_delete_message', message_id=message_id) return jsonify(response) # 群组管理API @app.route('/api/groups', methods=['GET']) def get_groups(): response = api_client.send_command('admin_get_groups') return jsonify(response) @app.route('/api/groups', methods=['POST']) def create_group(): data = request.json response = api_client.send_command('admin_create_group', group_name=data['group_name'], members=data['members']) return jsonify(response) @app.route('/api/groups/', methods=['DELETE']) def delete_group(group_name): response = api_client.send_command('admin_delete_group', group_name=group_name) return jsonify(response) @app.route('/api/groups//members', methods=['POST']) def add_group_member(group_name): data = request.json response = api_client.send_command('admin_add_group_member', group_name=group_name, username=data['username']) return jsonify(response) @app.route('/api/groups//members/', methods=['DELETE']) def remove_group_member(group_name, username): response = api_client.send_command('admin_remove_group_member', group_name=group_name, username=username) return jsonify(response) # 服务器管理API @app.route('/api/server/status', methods=['GET']) def get_server_status(): response = api_client.send_command('admin_get_server_status') return jsonify(response) @app.route('/api/server/restart', methods=['POST']) def restart_server(): response = api_client.send_command('admin_restart_server') return jsonify(response) @app.route('/api/server/shutdown', methods=['POST']) def shutdown_server(): response = api_client.send_command('admin_shutdown_server') return jsonify(response) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True)