<h1>AirChecky - Záznamy vysílání</h1>
<div class="glass" style="padding: 20px; margin-bottom: 20px;">
    <p>Automatické nahrávky celých hodin vysílání (AirChecks) slouží pro kontrolu programu nebo pro dodatečný export moderátorských vstupů. K automatickému nahrávání je nutné mít na serveru nastavený cron (spouštěn v 59. minutě každou hodinu, případně v celou hodinu): <code>/cesta/k/webu/aircheck.sh</code></p>
</div>

<div class="glass" style="padding: 20px;">
    <table>
        <thead><tr><th>Záznam (Datum a Čas)</th><th>Velikost</th><th>Přehrát</th><th>Akce</th></tr></thead>
        <tbody id="tbody-airchecks"></tbody>
    </table>
</div>

<script>
    async function loadAirchecks() {
        const res = await fetch('/admin/api/airchecks');
        const json = await res.json();
        const tbody = document.getElementById('tbody-airchecks');
        if (!json.data || json.data.length === 0) {
            tbody.innerHTML = '<tr><td colspan="4">Zatím nebyly zaznamenány žádné AirChecky.</td></tr>';
            return;
        }
        tbody.innerHTML = json.data.map(f => {
            const url = '/airchecks/' + f.name;
            let dName = f.name.replace('.mp3', '');
            let recFlag = '';
            if (dName.startsWith('raw_')) {
                dName = dName.replace('raw_', '');
                recFlag = ' <span style="color:#ff4b2b; font-size:0.8rem; font-weight:bold;">🔴 Nahrává se</span>';
            } else {
                dName = dName.replace('AirCheck_', '');
            }
            dName = dName.replace('_', ' ');
            return `<tr><td style="font-weight:bold;">${dName}${recFlag}</td><td>${f.size}</td><td><audio controls src="${url}" style="height:30px;"></audio></td><td><button class="action-btn btn-info" onclick="emailAircheck('${url}', '${f.name}')">✉️ Odeslat</button> <a href="${url}" download="${f.name}" class="action-btn" style="background:rgba(255,255,255,0.2); text-decoration:none; display:inline-block; padding:4px 10px;">💾 Stáhnout</a> <button class="action-btn btn-delete" onclick="delAircheck('${f.name}')">Smazat</button></td></tr>`;
        }).join('');
    }
    function emailAircheck(url, name) {
        if (typeof window.openEmailComposer !== 'function') return customAlert('E-mailový klient se načítá...');
        const fullUrl = window.location.origin + url;
        window.openEmailComposer('', 'Záznam z vysílání (AirCheck)', `Dobrý den,<br><br>zasíláme Vám odkaz ke stažení nahrávky z vysílání:<br><br><a href="${fullUrl}">${name}</a><br><br>S pozdravem,`);
    }
    async function delAircheck(name) {
        customConfirm('Opravdu smazat tuto nahrávku?', async () => {
            await fetch('/admin/api/airchecks', { method: 'DELETE', headers: {'Content-Type':'application/json'}, body: JSON.stringify({name}) }); loadAirchecks();
        });
    }
    loadAirchecks();
</script>