from flask import Flask, jsonify
import psutil

# Crée l'application web
app = Flask(__name__)

@app.route("/api/data")
def get_system_data():
    """Cette fonction est appelée quand le navigateur visite /api/data"""
    
    # 1. Obtenir CPU et RAM
    cpu = psutil.cpu_percent(interval=None)
    ram = psutil.virtual_memory().percent
    
    # 2. Obtenir les températures
    temps_data = psutil.sensors_temperatures()
    
    # 'temps_data' est complexe. On cherche la température principale.
    # Souvent, elle est dans 'coretemp' ou 'k10temp'.
    current_temp = None
    if 'coretemp' in temps_data:
        # Prend la première température "Package"
        current_temp = temps_data['coretemp'][0].current
    elif 'k10temp' in temps_data:
        # Pour les processeurs AMD
        current_temp = temps_data['k10temp'][0].current
    else:
        current_temp = "N/A" # Non trouvé

    # 3. Renvoyer les données au format JSON
    return jsonify(
        cpu_percent=cpu,
        ram_percent=ram,
        cpu_temp=current_temp
    )

@app.route("/")
def home():
    """Cette fonction sert la page web principale (le frontend)"""
    # On dit à Flask de renvoyer le fichier 'index.html'
    # Ce fichier doit se trouver dans un dossier 'static'
    return app.send_static_file('index.html')


if __name__ == "__main__":
    # Lance le serveur sur http://127.0.0.1:5000
    print("Serveur lancé ! Ouvrez http://127.0.0.1:5000 dans votre navigateur.")
    app.run(debug=True, port=5000)
