import requests
import time

# --- KONFIGURATION ---
# Die IP deines Roboters
MISTY_IP = "192.168.68.58"
# So soll die Datei auf dem Roboter und dem Server heißen
DATEI_NAME = "praesentation_aufnahme.wav"
# Dauer der Aufnahme in Sekunden
AUFNAHME_DAUER = 10 

def aufnahme_starten():
    # 1. Misty bescheid geben
    print("--- Misty bereitet sich vor ---")
    requests.post(f"http://{MISTY_IP}/api/tts/speak", json={
        "text": "Ich höre dir jetzt für 10 Sekunden zu. Fang an nach dem ich fertig bin mit sprechen.",
        "speechLocale": "de-DE"
    })
    
    # Wir warten 4 Sekunden, damit sie sich nicht selbst beim Sprechen aufnimmt
    time.sleep(4) 

    # 2. Aufnahme auf dem Roboter starten
    print(f"--- Schritt 1: Aufnahme läuft für {AUFNAHME_DAUER} Sekunden ---")
    start_url = f"http://{MISTY_IP}/api/audio/record/start"
    requests.post(start_url, json={"FileName": DATEI_NAME})
    
    # Das Programm pausiert hier für 10 Sekunden, während du sprichst
    time.sleep(AUFNAHME_DAUER)
    
    # 3. Aufnahme stoppen
    print("--- Schritt 2: Aufnahme wird beendet ---")
    stop_url = f"http://{MISTY_IP}/api/audio/record/stop"
    requests.post(stop_url)
    
    # 2 Sekunden warten, damit die Datei auf dem Roboter-Speicher fertig geschrieben wird
    time.sleep(2)
    
    # 4. Datei vom Roboter auf den Ubuntu-Server kopieren
    print(f"--- Schritt 3: Datei '{DATEI_NAME}' wird heruntergeladen ---")
    download_url = f"http://{MISTY_IP}/api/audio?FileName={DATEI_NAME}"
    r = requests.get(download_url)
    
    if r.status_code == 200:
        # Die Daten werden binär in eine lokale Datei geschrieben
        with open(DATEI_NAME, 'wb') as f:
            f.write(r.content)
        print(f"Erfolg! Die Datei liegt jetzt bereit für die Analyse.")
    else:
        print(f"Fehler beim Download: Statuscode {r.status_code}")

if __name__ == "__main__":
    aufnahme_starten()
