Files
turf_saas/agent_chat_api.py
2026-04-25 17:18:43 +02:00

83 lines
2.2 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Agent Chat API - Communications entre agents H3R7Tech
"""
from flask import Flask, jsonify, request, send_from_directory
from flask_cors import CORS
import json
import os
from datetime import datetime
app = Flask(__name__)
CORS(app)
CHAT_FILE = '/home/h3r7/turf_scraper/agent_chat.json'
def load_chat():
if not os.path.exists(CHAT_FILE):
data = {"messages": []}
with open(CHAT_FILE, 'w') as f:
json.dump(data, f, indent=2)
return data
with open(CHAT_FILE, 'r') as f:
return json.load(f)
def save_chat(data):
with open(CHAT_FILE, 'w') as f:
json.dump(data, f, indent=2)
@app.route('/')
def index():
return send_from_directory('/home/h3r7/turf_scraper', 'agent_chat.html')
@app.route('/api/messages', methods=['GET'])
def get_messages():
data = load_chat()
limit = request.args.get('limit', 50)
return jsonify(data['messages'][-int(limit):])
@app.route('/api/messages', methods=['POST'])
def add_message():
data = load_chat()
req = request.json
message = {
'id': len(data['messages']) + 1,
'agent': req.get('agent', 'system'),
'type': req.get('type', 'info'), # info, warning, error, success
'content': req.get('content', ''),
'timestamp': datetime.now().isoformat()
}
data['messages'].append(message)
save_chat(data)
return jsonify({'success': True, 'message': message})
@app.route('/api/messages', methods=['DELETE'])
def clear_messages():
data = {'messages': []}
save_chat(data)
return jsonify({'success': True})
@app.route('/api/stats', methods=['GET'])
def get_stats():
data = load_chat()
messages = data['messages']
stats = {
'total': len(messages),
'par_agent': {},
'par_type': {}
}
for m in messages:
agent = m.get('agent', 'unknown')
stats['par_agent'][agent] = stats['par_agent'].get(agent, 0) + 1
type_msg = m.get('type', 'info')
stats['par_type'][type_msg] = stats['par_type'].get(type_msg, 0) + 1
return jsonify(stats)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8771, debug=False)