lsit user
This commit is contained in:
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user