feat(media): configurar dimensiones 640x360 para noticias y 640x640 para clasificados y eventos
This commit is contained in:
parent
987fe8aef6
commit
0e9bb2365e
@ -140,7 +140,7 @@ export default async function ClasificadosPage() {
|
||||
const mediaObj = post.resolved_media || (typeof post.imagen_destacada_id === 'object' ? post.imagen_destacada_id : null) as MediaItem | null;
|
||||
|
||||
if (mediaObj) {
|
||||
imagenUrl = `${ENDPOINT}/storage/buckets/${mediaObj.bucket_id}/files/${mediaObj.file_id}/preview?project=${PROJECT_ID}&width=640&height=360&quality=80`;
|
||||
imagenUrl = `${ENDPOINT}/storage/buckets/${mediaObj.bucket_id}/files/${mediaObj.file_id}/preview?project=${PROJECT_ID}&width=640&height=640&quality=80`;
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@ -140,7 +140,7 @@ export default async function EventosPage() {
|
||||
const mediaObj = post.resolved_media || (typeof post.imagen_destacada_id === 'object' ? post.imagen_destacada_id : null) as MediaItem | null;
|
||||
|
||||
if (mediaObj) {
|
||||
imagenUrl = `${ENDPOINT}/storage/buckets/${mediaObj.bucket_id}/files/${mediaObj.file_id}/preview?project=${PROJECT_ID}&width=640&height=360&quality=80`;
|
||||
imagenUrl = `${ENDPOINT}/storage/buckets/${mediaObj.bucket_id}/files/${mediaObj.file_id}/preview?project=${PROJECT_ID}&width=640&height=640&quality=80`;
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@ -217,10 +217,14 @@ export default async function Home(props: { searchParams: Promise<{ [key: string
|
||||
const ENDPOINT = process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT || 'https://appwrite.almeira.com.co/v1';
|
||||
let imagenUrl = post.og_image_url || null;
|
||||
|
||||
const isSquare = post.tipo === 'evento' || post.tipo === 'aviso' ||
|
||||
(typeof post.tipo_publicacion_id === 'object' && (post.tipo_publicacion_id.codigo === 'EVENTO' || post.tipo_publicacion_id.codigo === 'CLASIFICADO'));
|
||||
const imgHeight = isSquare ? 640 : 360;
|
||||
|
||||
const mediaObj = post.resolved_media || (typeof post.imagen_destacada_id === 'object' ? post.imagen_destacada_id : null) as MediaItem | null;
|
||||
|
||||
if (mediaObj) {
|
||||
imagenUrl = `${ENDPOINT}/storage/buckets/${mediaObj.bucket_id}/files/${mediaObj.file_id}/preview?project=${PROJECT_ID}&width=640&height=360&quality=85`;
|
||||
imagenUrl = `${ENDPOINT}/storage/buckets/${mediaObj.bucket_id}/files/${mediaObj.file_id}/preview?project=${PROJECT_ID}&width=640&height=${imgHeight}&quality=85`;
|
||||
}
|
||||
|
||||
return (
|
||||
@ -237,6 +241,7 @@ export default async function Home(props: { searchParams: Promise<{ [key: string
|
||||
showFooterDate={cardSettings.showFooterDate}
|
||||
showFooterButton={cardSettings.showFooterButton}
|
||||
footerText={cardSettings.footerText}
|
||||
imageAspect={isSquare ? 'aspect-square' : 'aspect-video'}
|
||||
isAdmin={isAdmin}
|
||||
/>
|
||||
)
|
||||
|
||||
@ -36,7 +36,9 @@ function resolveImageUrl(
|
||||
|
||||
if (typeof post.imagen_destacada_id === 'object') {
|
||||
const { bucket_id, file_id } = post.imagen_destacada_id;
|
||||
return `${endpoint}/storage/buckets/${bucket_id}/files/${file_id}/preview?project=${projectId}&width=640&height=360&quality=80`;
|
||||
const isSquare = post.tipo === 'evento' || post.tipo === 'aviso';
|
||||
const height = isSquare ? 640 : 360;
|
||||
return `${endpoint}/storage/buckets/${bucket_id}/files/${file_id}/preview?project=${projectId}&width=640&height=${height}&quality=80`;
|
||||
}
|
||||
|
||||
// If it's a string, we can't generate a valid URL because it's a document ID, not a file ID.
|
||||
|
||||
@ -20,14 +20,17 @@ export async function processWhatsAppMessage(
|
||||
}
|
||||
|
||||
const systemInstruction = `
|
||||
Eres un asistente editorial experto.
|
||||
Analiza un mensaje enviado al grupo de WhatsApp "Publicaciones Almeira".
|
||||
Eres un asistente editorial experto de Almeira Web.
|
||||
Analiza los mensajes y recursos multimedia recibidos desde WhatsApp para estructurarlos como publicaciones del portal.
|
||||
Debes estructurar el mensaje en base a lo siguiente:
|
||||
1. titulo: Asigna un título claro y corto.
|
||||
2. tipo: Determina si es "noticia" (Noticias, actualidad), "evento" (Invitaciones, programaciones), o "aviso" (Clasificados, empleos, ventas, anuncios parroquiales, etc).
|
||||
3. seo_descripcion: Un texto máximo de 150 caracteres describiendo de qué trata.
|
||||
4. contenido: El texto detallado de la publicación en HTML válido formateado (usa <p>, <strong>, listas locales si es útil) pero retén la información original importante.
|
||||
5. fecha_vencimiento: Si el texto indica fecha límite del evento o del aviso (Ej, "hasta el 30 de noviembre", o "el sábado"), devuélvela en formato YYYY-MM-DD. Si no tiene, omite el campo o pasa null.
|
||||
1. titulo: Asigna un título claro, profesional y conciso (máx. 70 caracteres).
|
||||
2. tipo: Determina la categoría exacta:
|
||||
- "noticia": Noticias generales, política, actualidad, comunicados y reportajes (dimensiones recomendadas de imagen: 640x360 px, relación 16:9).
|
||||
- "evento": Invitaciones a actividades, jornadas, ferias, foros, congresos, festivales o convocatorias con fecha (dimensiones de imagen: 640x640 px, relación 1:1).
|
||||
- "aviso": Clasificados, ofertas de empleo, compra/venta, servicios profesionales, comunicados comunitarios (dimensiones de imagen: 640x640 px, relación 1:1).
|
||||
3. seo_descripcion: Un resumen conciso de máximo 150 caracteres optimizado para redes y motores de búsqueda.
|
||||
4. contenido: El texto detallado de la publicación en HTML válido y limpio (usa <p>, <strong>, <ul>/<li> si es apropiado), preservando nombres, fechas, contactos y enlaces originales.
|
||||
5. fecha_vencimiento: Si el texto indica fecha límite del evento o del aviso (Ej. "hasta el 30 de noviembre", o "el próximo sábado"), devuélvela en formato YYYY-MM-DD. Si no aplica o es una noticia general, pasa null.
|
||||
`;
|
||||
|
||||
// Prepara los contenidos
|
||||
|
||||
Loading…
Reference in New Issue
Block a user