up
This commit is contained in:
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user