#!/bin/bash

OUT="audios.html"

python3 - "$OUT" <<'PY'
from pathlib import Path
from html import escape
import sys

OUT = Path(sys.argv[1])
ROOT = Path(".")

EXTENSIONS = {
    ".mp3":  "🎵",
    ".ogg":  "🎵",
    ".mp4":  "🎬",
    ".pdf":  "📕",
    ".doc":  "📘",
    ".docx": "📘",
    ".html": "🌐",
    ".jpg":  "🖼️",
    ".png":  "🖼️",
    ".tif":  "🖼️",
    ".tiff":  "🖼️",    
    ".txt":  "📄",
}

def build(folder):
    result = []

    # Files
    for f in sorted(folder.iterdir(), key=lambda x: x.name.casefold()):
        if f.is_file() and f.suffix.lower() in EXTENSIONS:
            rel = f.relative_to(ROOT).as_posix()
            icon = EXTENSIONS[f.suffix.lower()]

            result.append(
                '<a class="file" href="' +
                escape(rel, quote=True) +
                '" target="_blank">' +
                icon + ' ' + escape(f.name) +
                '</a>'
            )

    # Subfolders
    for d in sorted(
        [x for x in folder.iterdir() if x.is_dir()],
        key=lambda x: x.name.casefold()
    ):
        content = build(d)

        if content:
            result.append(
                '<details>\n'
                '<summary>📁 ' + escape(d.name) + '</summary>\n'
                + content +
                '\n</details>\n'
            )

    return "\n".join(result)


page = '''<!DOCTYPE html>
<html lang="hi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>गुरुदेव का अमृत सन्देश — audios of short video clips</title>

<style>
body {
    font-family: "Noto Sans Devanagari", "Noto Sans", sans-serif;
    margin: 30px;
    line-height: 1.7;
}

h1 {
    font-size: 24px;
}

details {
    margin-left: 22px;
}

summary {
    cursor: pointer;
    font-weight: 600;
}

.file {
    display: block;
    margin-left: 42px;
    padding: 1px 4px;
    text-decoration: none;
    color: #0645ad;
}

.file:hover {
    text-decoration: underline;
    background: #eef4ff;
}
</style>
</head>

<body>

<h1>📚 गुरुदेव का अमृत सन्देश — audios of short video clips</h1>

<div class="tree">
''' + build(ROOT) + '''
</div>

</body>
</html>
'''

OUT.write_text(page, encoding="utf-8")
print("Created:", OUT)
PY
