import random
import os
import pygame
import subprocess

def play_random_sound():
    # Liste der verfügbaren MP3-Dateien
    sounds = ["knall1.mp3", "knall2.mp3", "knall3.mp3"]
    
    # Zufällige MP3 auswählen
    selected_sound = random.choice(sounds)
    sound_path = os.path.join(os.path.dirname(__file__), selected_sound)
    
    if os.path.exists(sound_path):
        # Pygame-Mixer initialisieren und den Sound abspielen
        pygame.mixer.init()
        pygame.mixer.music.load(sound_path)
        pygame.mixer.music.play()
        
        print(f"Spiele Sound: {selected_sound}")
        
        # Warten, bis der Sound abgespielt ist
        while pygame.mixer.music.get_busy():
            pygame.time.Clock().tick(10)  # Verhindert hohe CPU-Auslastung
    else:
        print(f"Fehler: Datei {selected_sound} nicht gefunden.")

def display_ascii_art():
    # Pfad zur ASCII-Datei
    ascii_path = os.path.join(os.path.dirname(__file__), "ascii.bumms")
    
    if os.path.exists(ascii_path):
        with open(ascii_path, "r", encoding="utf-8") as file:
            ascii_art = file.read()
            print(ascii_art)
    else:
        print("Fehler: ASCII-Datei nicht gefunden.")

def display_random_text():
    # Pfad zur Textdatei
    text_path = os.path.join(os.path.dirname(__file__), "txt.bumms")
    
    if os.path.exists(text_path):
        with open(text_path, "r", encoding="utf-8") as file:
            lines = file.readlines()
            random_text = random.choice(lines).strip()
            print("\n\n" + random_text)
    else:
        print("Fehler: Textdatei nicht gefunden.")

def play_video_in_ascii():
    # Verwenden von subprocess, um video-to-ascii aufzurufen
    video_path = os.path.join(os.path.dirname(__file__), "video.mp4")
    
    if os.path.exists(video_path):
        print("Starte Video im ASCII-Format mit Ton...")
        subprocess.run(["video-to-ascii", "-f", video_path])
    else:
        print(f"Fehler: Datei {video_path} nicht gefunden.")

def main():
    # Alle Funktionen ausführen
    play_random_sound()
    display_ascii_art()
    display_random_text()

def bumms_hd():
    # HD Version ausführen
    play_video_in_ascii()

if __name__ == "__main__":
    # Beispiel für den Standardlauf
    main()
    
    # Beispiel für bumms-hd
    # bumms_hd()  # Wenn bumms-hd ausgeführt werden soll, entkommentiere diese Zeile
