document.addEventListener('DOMContentLoaded', () => { const btn = document.getElementById('downloadBtn'); const versionBadge = document.getElementById('versionBadge'); const versionSummary = document.getElementById('versionSummary'); const downloadMeta = document.getElementById('downloadMeta'); const releaseNotesSummary = document.getElementById('releaseNotesSummary'); const releaseNotesText = document.getElementById('releaseNotesText'); if (!btn) return; btn.addEventListener('click', (event) => { if (!btn.getAttribute('href') || btn.getAttribute('href') === '#') { event.preventDefault(); alert('APK пока не опубликован. Следите за обновлениями проекта.'); } }); fetch('/assets/meta/version.json', { cache: 'no-store' }) .then((response) => { if (!response.ok) { throw new Error(`HTTP ${response.status}`); } return response.json(); }) .then((meta) => { const sizeMb = (meta.apkSizeBytes / (1024 * 1024)).toFixed(1); const builtAt = new Date(meta.buildDateUtc).toLocaleString('ru-RU', { dateStyle: 'medium', timeStyle: 'short' }); if (versionBadge) { versionBadge.textContent = `v${meta.versionName} (${meta.versionCode})`; } if (versionSummary) { versionSummary.textContent = `Последняя сборка опубликована ${builtAt} UTC.`; } if (downloadMeta) { downloadMeta.textContent = `Доступна debug-сборка v${meta.versionName}. Размер APK: ${sizeMb} MB.`; } if (meta.apkPath) { btn.setAttribute('href', meta.apkPath); } if (meta.releaseNotesTitle && releaseNotesSummary) { releaseNotesSummary.textContent = meta.releaseNotesTitle; } if (meta.releaseNotesPath && releaseNotesText) { const notesPath = meta.releaseNotesPath.startsWith('/') ? meta.releaseNotesPath : `/${meta.releaseNotesPath}`; fetch(notesPath, { cache: 'no-store' }) .then((response) => { if (!response.ok) { throw new Error(`HTTP ${response.status}`); } return response.text(); }) .then((notes) => { releaseNotesText.innerHTML = notes.trim().replace(/\n/g, '
'); }) .catch(() => { releaseNotesText.textContent = 'Не удалось загрузить описание обновления.'; }); } }) .catch(() => { if (versionBadge) { versionBadge.textContent = 'Версия недоступна'; } if (versionSummary) { versionSummary.textContent = 'Не удалось загрузить метаданные сборки.'; } }); });