up
This commit is contained in:
+24
-3
@@ -5704,9 +5704,9 @@ if (!isset($_SESSION['user_id'])) {
|
||||
console.log('🔄 Usando media_url_external (URL absoluta):', full);
|
||||
} else if (mediaUrl && /^\d+$/.test(mediaUrl)) {
|
||||
// 📱 PRIORIDAD 4: Es un ID de WhatsApp (solo números) - usar URL absoluta
|
||||
full = `${baseUrl}/api/get_media.php?id=${encodeURIComponent(mediaUrl)}`;
|
||||
full = `${baseUrl}/api/version/media-url.php?id=${encodeURIComponent(mediaUrl)}`;
|
||||
thumb = full;
|
||||
console.log('📱 Usando whatsapp_media_id con get_media.php:', mediaUrl);
|
||||
console.log('📱 Usando whatsapp_media_id con media-url.php:', mediaUrl);
|
||||
} else if (mediaUrl && /^https?:\/\//i.test(mediaUrl)) {
|
||||
// 🌐 PRIORIDAD 5: URL externa directa (puede estar caducada)
|
||||
full = mediaUrl;
|
||||
@@ -5719,12 +5719,33 @@ if (!isset($_SESSION['user_id'])) {
|
||||
thumb = '';
|
||||
}
|
||||
|
||||
// Si no hay URL de media, mostrar placeholder con botón de descarga
|
||||
if (!full && mediaType !== 'text') {
|
||||
const retryUrl = mediaUrl && /^\d+$/.test(mediaUrl)
|
||||
? `${baseUrl}/api/version/media-url.php?id=${encodeURIComponent(mediaUrl)}`
|
||||
: (mediaUrlExternal ? `${baseUrl}/${mediaUrlExternal.replace(/^\//, '')}` : '');
|
||||
const retryBtn = retryUrl
|
||||
? `<a href="${escapeHtml(retryUrl)}" target="_blank" class="btn btn-sm btn-outline-success mt-1" onclick="event.stopPropagation(); setTimeout(()=>location.reload(), 3000);"><i class="fas fa-download"></i> Descargar ahora</a>`
|
||||
: '';
|
||||
const iconMap = {image: 'fa-image', video: 'fa-video', audio: 'fa-microphone', document: 'fa-file', sticker: 'fa-sticky-note'};
|
||||
const icon = iconMap[mediaType] || 'fa-file';
|
||||
return `
|
||||
<div class="message-media" style="background:rgba(0,0,0,0.04); border-radius:8px; padding:12px; text-align:center; min-width:180px;">
|
||||
<i class="fas ${icon}" style="font-size:28px; color:#999; margin-bottom:6px;"></i>
|
||||
<div style="font-size:12px; color:#888;">Descargando ${escapeHtml(mediaType)}...</div>
|
||||
<div style="font-size:11px; color:#aaa; margin-top:2px;">En cola de descarga</div>
|
||||
${retryBtn}
|
||||
</div>
|
||||
${caption ? `<div>${escapeHtml(caption)}</div>` : ''}
|
||||
`;
|
||||
}
|
||||
|
||||
switch (mediaType) {
|
||||
case 'image':
|
||||
return `
|
||||
<div class="message-media">
|
||||
<a href="#" data-full="${escapeHtml(full)}" data-type="image" data-caption="${escapeHtml(caption)}" onclick="openMediaLightbox(this.dataset.full, this.dataset.type, this.dataset.caption); return false;" title="Abrir imagen">
|
||||
<img src="${escapeHtml(thumb)}" alt="Imagen" style="cursor:zoom-in">
|
||||
<img src="${escapeHtml(thumb)}" alt="Imagen" style="cursor:zoom-in" onerror="this.parentElement.parentElement.innerHTML='<div style=\\'padding:12px;text-align:center;background:rgba(0,0,0,0.04);border-radius:8px;\\'><i class=\\'fas fa-image\\' style=\\'font-size:28px;color:#ccc;\\'></i><div style=\\'font-size:12px;color:#999;margin-top:4px;\\'>Imagen no disponible</div><a href=\\'${escapeHtml(full)}\\' target=\\'_blank\\' class=\\'btn btn-sm btn-outline-primary mt-1\\'><i class=\\'fas fa-download\\'></i> Reintentar</a></div>'">
|
||||
</a>
|
||||
</div>
|
||||
${caption ? `<div>${escapeHtml(caption)}</div>` : ''}
|
||||
|
||||
Reference in New Issue
Block a user