lsit user

This commit is contained in:
gpatruno
2025-07-20 02:53:10 +02:00
parent 2041e72342
commit 9725cd7a7c
8 changed files with 1087 additions and 11 deletions
+165
View File
@@ -213,6 +213,113 @@ def update_prompts():
bot_controller.save_config()
return jsonify({'success': True})
@app.route('/api/config/users', methods=['GET'])
def get_users():
"""Récupérer la liste des utilisateurs"""
try:
with open('config/user.json', 'r') as file:
users = json.load(file)
return jsonify(users)
except FileNotFoundError:
return jsonify([])
except Exception as e:
return jsonify({'error': str(e)}), 500
@app.route('/api/config/users', methods=['POST'])
def add_user():
"""Ajouter un nouvel utilisateur"""
data = request.json
pseudo = data.get('tw_acc_pseudo')
token = data.get('tw_acc_token')
charactere = data.get('charactere', '😊')
if not pseudo or not token:
return jsonify({'error': 'Pseudo et token requis'}), 400
try:
with open('config/user.json', 'r') as file:
users = json.load(file)
# Vérifier si l'utilisateur existe déjà
for user in users:
if user['tw_acc_pseudo'] == pseudo:
return jsonify({'error': 'Cet utilisateur existe déjà'}), 400
# Ajouter le nouvel utilisateur
new_user = {
'tw_acc_pseudo': pseudo,
'tw_acc_token': token,
'charactere': charactere
}
users.append(new_user)
# Sauvegarder
with open('config/user.json', 'w') as file:
json.dump(users, file, indent=4, ensure_ascii=False)
return jsonify({'success': True, 'user': new_user})
except Exception as e:
return jsonify({'error': str(e)}), 500
@app.route('/api/config/users/<int:user_id>', methods=['PUT'])
def update_user(user_id):
"""Modifier un utilisateur existant"""
data = request.json
pseudo = data.get('tw_acc_pseudo')
token = data.get('tw_acc_token')
charactere = data.get('charactere', '😊')
if not pseudo or not token:
return jsonify({'error': 'Pseudo et token requis'}), 400
try:
with open('config/user.json', 'r') as file:
users = json.load(file)
if user_id >= len(users):
return jsonify({'error': 'Utilisateur non trouvé'}), 404
# Vérifier si le pseudo existe déjà (sauf pour l'utilisateur actuel)
for i, user in enumerate(users):
if i != user_id and user['tw_acc_pseudo'] == pseudo:
return jsonify({'error': 'Ce pseudo est déjà utilisé'}), 400
# Mettre à jour l'utilisateur
users[user_id] = {
'tw_acc_pseudo': pseudo,
'tw_acc_token': token,
'charactere': charactere
}
# Sauvegarder
with open('config/user.json', 'w') as file:
json.dump(users, file, indent=4, ensure_ascii=False)
return jsonify({'success': True, 'user': users[user_id]})
except Exception as e:
return jsonify({'error': str(e)}), 500
@app.route('/api/config/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
"""Supprimer un utilisateur"""
try:
with open('config/user.json', 'r') as file:
users = json.load(file)
if user_id >= len(users):
return jsonify({'error': 'Utilisateur non trouvé'}), 404
# Supprimer l'utilisateur
deleted_user = users.pop(user_id)
# Sauvegarder
with open('config/user.json', 'w') as file:
json.dump(users, file, indent=4, ensure_ascii=False)
return jsonify({'success': True, 'deleted_user': deleted_user})
except Exception as e:
return jsonify({'error': str(e)}), 500
@app.route('/api/subtitles', methods=['GET'])
def get_subtitles():
data = storage.read("subtitle_data")
@@ -252,6 +359,64 @@ def generate_response():
except Exception as e:
return jsonify({'error': str(e)}), 500
@app.route('/api/chat/<int:flux_id>/messages', methods=['GET'])
def get_chat_messages(flux_id):
"""Récupérer les messages de chat d'un flux spécifique"""
try:
if flux_id not in bot_controller.bots:
return jsonify({'error': 'Flux non trouvé'}), 404
chat_bot = bot_controller.bots[flux_id]['chat_bot']
if not chat_bot:
return jsonify({'error': 'Bot de chat non disponible'}), 404
# Récupérer les messages du bot de chat
messages = []
for msg in chat_bot.messages[-50:]: # Derniers 50 messages
messages.append({
'timestamp': msg.timestamp.isoformat(),
'username': msg.username,
'content': msg.content
})
return jsonify({
'success': True,
'flux_id': flux_id,
'messages': messages
})
except Exception as e:
return jsonify({'error': str(e)}), 500
@app.route('/api/chat/<int:flux_id>/send', methods=['POST'])
def send_chat_message(flux_id):
"""Envoyer un message dans le chat d'un flux spécifique"""
data = request.json
message = data.get('message', '')
if not message:
return jsonify({'error': 'Message requis'}), 400
try:
# Trouver le flux
flux = None
for f in bot_controller.flux_list:
if f['id'] == flux_id:
flux = f
break
if not flux:
return jsonify({'error': 'Flux non trouvé'}), 404
# Envoyer le message
msg_bot = messageTwitch("config/user.json", flux['twitchname'])
msg_bot.send_message(message)
return jsonify({'success': True})
except Exception as e:
return jsonify({'error': str(e)}), 500
@app.route('/api/status', methods=['GET'])
def get_status():
status = {