This commit is contained in:
Lizandro Guarnizo
2026-01-24 00:18:49 -05:00
parent 81500d8ce7
commit 5ea6f0fb73
2 changed files with 86 additions and 4 deletions
+19 -2
View File
@@ -73,8 +73,25 @@ function renderMediaMessage(msg) {
}
case 'audio': {
const src = ensureProxyUrl(effective || msg.media_url || '');
if (src) return `<div class="message-media"><audio controls><source src="${escapeHtml(src)}"></audio></div>`;
return `<div class="text-muted"><em>Audio no disponible</em></div>`;
if (!src) return `<div class="text-muted"><em>Audio no disponible</em></div>`;
// build download link when possible (api/get_media.php?id=... or direct url or local file)
let audioDownload = null;
const candidate = isValidMediaUrl(effective) ? effective : (isValidMediaUrl(msg.media_url) ? msg.media_url : (isValidMediaUrl(localFile) ? localFile : null));
if (candidate && candidate.indexOf && candidate.indexOf('api/get_media.php?id=') !== -1) {
const parts = candidate.split('id=');
const mid = parts[1] ? parts[1] : '';
audioDownload = `/api/version/media-url.php?id=${encodeURIComponent(mid)}&download=1`;
} else if (candidate && /^https?:\/\//i.test(candidate)) {
audioDownload = `/api/version/media-url.php?url=${encodeURIComponent(candidate)}&download=1`;
} else if (candidate && candidate === localFile) {
audioDownload = `/api/version/media-url.php?local=${encodeURIComponent(candidate)}&download=1`;
}
let html = `<div class="message-media"><audio controls><source src="${escapeHtml(src)}" type="audio/mpeg">Tu navegador no soporta audio.</audio></div>`;
if (audioDownload) {
html += `<div class="mt-2"><a href="${escapeHtml(audioDownload)}" class="btn btn-sm btn-outline-secondary" target="_blank" rel="noopener noreferrer">Descargar audio</a></div>`;
}
return html;
}
case 'document': {
const filename = msg.filename || content || 'Documento';