Initial commit
This commit is contained in:
56
Python/register.py
Normal file
56
Python/register.py
Normal file
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from flask import Flask, request, jsonify
|
||||
import json
|
||||
import threading
|
||||
import os
|
||||
from waitress import serve
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
buttons = {} # Dictionnaire pour stocker les boutons et leurs IP
|
||||
lock = threading.Lock()
|
||||
EXPECTED_BUTTONS = 2 # Nombre de boutons attendus
|
||||
|
||||
# Fichier pour enregistrer la correspondance
|
||||
BUTTONS_FILE = 'buttons.json'
|
||||
|
||||
# Compteur pour attribuer un ID unique à chaque bouton
|
||||
button_counter = 1
|
||||
|
||||
@app.route('/execute')
|
||||
def execute_script():
|
||||
global buttons, button_counter
|
||||
ip_address = request.remote_addr # Obtenir l'adresse IP du client
|
||||
|
||||
# Vérifier si l'adresse IP est déjà enregistrée
|
||||
for button_id, registered_ip in buttons.items():
|
||||
if registered_ip == ip_address:
|
||||
return jsonify({"message": f"Button already registered with ID {button_id}."}), 400
|
||||
|
||||
with lock:
|
||||
# Enregistrer le bouton avec son IP si ce n'est pas déjà fait
|
||||
if len(buttons) < EXPECTED_BUTTONS:
|
||||
# Attribuer un ID basé sur le compteur
|
||||
button_id = button_counter
|
||||
buttons[button_id] = ip_address
|
||||
print(f"Button {button_id} registered from IP: {ip_address}")
|
||||
|
||||
# Incrémenter le compteur pour le prochain bouton
|
||||
button_counter += 1
|
||||
|
||||
# Enregistrer dans le fichier
|
||||
with open(BUTTONS_FILE, 'w') as f:
|
||||
json.dump(buttons, f)
|
||||
|
||||
# Vérifier si tous les boutons sont enregistrés
|
||||
if len(buttons) == EXPECTED_BUTTONS:
|
||||
print("Tous les boutons sont enregistrés. Prêt à commencer le jeu.")
|
||||
# Fermer le serveur après enregistrement
|
||||
os._exit(0) # Quitte le programme
|
||||
|
||||
return jsonify({"message": f"Button {button_id} registered."}), 200
|
||||
|
||||
if __name__ == '__main__':
|
||||
print("Serveur d'enregistrement démarré")
|
||||
serve(app, host='0.0.0.0', port=5000) # Utiliser Waitress pour démarrer le serveur
|
||||
Reference in New Issue
Block a user