import os

INPUT_FILE = "streams.txt"   # deine Liste
OUTPUT_FILE = "analog.m3u" # fertige M3U

def parse_line(line: str):
    line = line.strip()
    if not line or line.startswith("#"):
        return None

    # Versuche übliche Trenner: ; , | TAB
    for sep in (";", ",", "|", "\t"):
        if sep in line:
            left, right = [x.strip() for x in line.split(sep, 1)]
            name, url = left, right
            # Wenn links wie eine URL aussieht, drehen wir es um
            if name.lower().startswith(("http://", "https://")):
                name, url = url, name
            return name, url

    # Kein Trenner gefunden: versuche über Leerzeichen
    parts = line.split()
    if len(parts) == 1:
        # Nur URL -> Name = URL
        url = parts[0]
        name = url
    else:
        # Vermute: erstes Wort URL, Rest Name
        if parts[0].lower().startswith(("http://", "https://")):
            url = parts[0]
            name = " ".join(parts[1:])
        else:
            # Vermute: letzter Teil URL, Rest Name
            url = parts[-1]
            name = " ".join(parts[:-1])
    return name.strip(), url.strip()

def main():
    if not os.path.exists(INPUT_FILE):
        print(f"Eingabedatei '{INPUT_FILE}' nicht gefunden.")
        return

    entries = []
    with open(INPUT_FILE, "r", encoding="utf-8") as f:
        for line in f:
            parsed = parse_line(line)
            if not parsed:
                continue
            name, url = parsed
            if not url.lower().startswith(("http://", "https://")):
                # Zeilen ohne gültige URL ignorieren
                continue
            entries.append((name, url))

    if not entries:
        print("Keine gültigen Streams gefunden.")
        return

    with open(OUTPUT_FILE, "w", encoding="utf-8", newline="\n") as f:
        f.write("#EXTM3U\n")
        for name, url in entries:
            f.write(f"#EXTINF:-1,{name}\n")
            f.write(f"{url}\n")

    print(f"Fertige Playlist geschrieben nach '{OUTPUT_FILE}' mit {len(entries)} Einträgen.")

if __name__ == "__main__":
    main()
