Marcador de posición para imágenes remotas inexistentes

Hola,

Importé 80.000 publicaciones de phpBB a Discourse. En las publicaciones hay muchas imágenes enlazadas desde un sitio web remoto como [img]http://www.domain.tld/image.jpg[/img] que ya no están allí.

La publicación no muestra nada, lo que causa irritación, ya que el contexto se rompe en algunas de estas publicaciones, al no quedar claro que entre un bloque de texto y el siguiente hay/hubo una imagen.

Mi pregunta es: ¿Es posible poner una imagen de marcador de posición allí si la imagen original ya no está disponible?

Saludos,
Roi

¿Muestra el icono de imagen del broker predeterminado? Creo que debería hacerlo después de que se publiquen las publicaciones.

Lo personalicé. Ver (código incluido):

1 me gusta

No, no muestra nada. Pero me estoy acercando. Creo que está causado por la etiqueta BBCode . Si edito una publicación y elimino la etiqueta, se ve así.

¿Entonces necesitaría eliminar todas las etiquetas BBCode [img] y volver a hornear las publicaciones?

Eso parece interesante. Creo que también lo necesito. :slight_smile: ¡Gracias!

No estoy seguro. Si eliminas una etiqueta BBCode en línea, tendrás la URL de la imagen en texto plano dentro de tu texto, y no usará el icono de imagen rota.

Quizás podrías intentar eliminar la etiqueta BBCode, pero insertando una línea vacía antes y después de la URL de la imagen. ¡Haz una copia de seguridad primero!

Sí. Maldita sea, podrías tener razón.

Bueno, ¿qué tendría que cambiar para obtener el icono de imagen rota, o la imagen remota (mi suposición entonces descargada) si todavía existe?

No estoy seguro.
Yo también debería haber encontrado este problema ya que también importé un foro phpBB con etiquetas [IMG] y el 95% de las imágenes rotas, pero por lo que recuerdo, después de procesar las imágenes rotas en línea, estas fueron reemplazadas correctamente por el icono de imagen rota incluso cuando estaban en línea, pero podría estar equivocado :thinking:

Me temo que no tengo una solución lista para usar por ahora, pero estoy seguro de que hay una manera de resolverlo.

¿Tienes por casualidad un enlace a un mensaje que contenga una imagen en línea rota? ¿Podrías copiar y pegar el texto sin formato también?

1 me gusta

Claro, este es un ejemplo en vivo:

Si revisas la primera publicación, hay un gran espacio en blanco debajo de la última línea de texto y la firma. En el código fuente puedes ver las imágenes rotas, por ejemplo:

<p><img src="http://www.grillen-darf-nicht-gesund-sein.de/gfx/beef-buddies-2008_initiative.jpg" alt="" role="presentation" loading="lazy"></p>

“sin procesar” de la base de datos:

[img]http://www.grillen-darf-nicht-gesund-sein.de/gfx/beef-buddies-2008_initiative.jpg[/img]

“procesado” de la base de datos:

<p><img src="http://www.grillen-darf-nicht-gesund-sein.de/gfx/beef-buddies-2008_initiative.jpg" alt="" role="presentation"></p>

¿Tienes habilitada la configuración descargar imágenes remotas a local? El icono de imagen rota solo aparece después de que Discourse intenta descargar la imagen remota y falla.

Si la configuración está deshabilitada, deja una línea vacía.

Sí, está habilitado. Siempre lo estuvo, incluso antes de importar desde phpBB.

¿Es posible que el importador de phpBB no tenga en cuenta esta configuración? Según mi entendimiento, la cocción debería realizarse fuera del importador y utilizar la configuración.

¿Recocinar todas las publicaciones causa algún daño?

Intenté:

rake posts:rebake_match["[img]"]
      767 / 767 (100.0%)
¡767 publicaciones hechas!

La publicación que mencioné anteriormente (y parece que todas las demás) se ven exactamente igual…

Creo que hay una configuración en /var/discourse/shared/standalone/import/settings.yml donde podemos establecer la descarga de imágenes remotas en verdadero o falso, pero las publicaciones se hornearán después de la importación, independientemente de si esta opción está configurada o no.

Veo que sus líneas vacías ahora muestran el icono de imagen rota esperado:
\u003chttps://forum.gdngs.de/t/grill-shirts-von-3dsupply-de/5515\u003e

En lugar de volver a hornear un montón de publicaciones, una buena prueba es reconstruir el HTML de una publicación específica desde las opciones de administración de la publicación, ya que esto activa un nuevo horneado:

chrome_RLLvokErfg

Y luego activar el trabajo UpdateHotlinkedRaw agregándolo a la cola:

Lo intenté en mi instancia de prueba usando una de sus imágenes rotas y dentro de BBcode. Cuando descargar imágenes remotas a local estaba deshabilitado, la línea vacía permaneció. Cuando estaba habilitado, apareció el icono de imagen rota en su lugar.

1 me gusta

Oh sí, tienes razón. Creo que fue un problema de caché del navegador después del comando de “rehorneado”. ¡Gracias por comprobarlo tú mismo! :slight_smile:

Así que fue un problema de importación de phpBB de alguna manera. Juraría que no alteré ninguna configuración relacionada con imágenes remotas después de importar todo desde phpBB…

Ah, genial. Lo encontré y le hice clic.

No encuentro ningún trabajo UpdateHotlinkedRaw en Sidekiq… ¿Puedes ayudarme a resolverlo? Estoy seguro de que es un problema de PEBCAK (Error de usuario entre el asiento y el teclado). :wink:

Eso apuntaría a que habilité descargar imágenes remotas a local después de importar todo desde phpBB. Mmm… Como también tenía/tengo una instalación de prueba y probé muchas cosas allí, sigo estando bastante seguro de que ya estaba activado antes.

Nota: el trabajo se activaría en unos minutos de todos modos, ir a Sidekiq es solo una forma de verificar las cosas más rápido.

El trabajo UpdateHotlinkedRaw debería estar presente segundos después de reconstruir el HTML de tu publicación, en la pestaña Programado de Sidekiq.

El trabajo solo debería ser visible si la configuración descargar imágenes remotas a local está habilitada en la configuración de tu foro de Discourse, y si tu publicación contiene imagen(es).

Si eso no funciona, entonces no tengo ninguna otra idea por ahora…!

Gracias, entonces está claro. Acabo de volver a hornear cualquier publicación, una sin imágenes remotas. Así que no pasó nada. :wink:

Y gracias, me has ayudado a resolver las cosas aquí. Ahora veo las imágenes de marcador de posición. Y lo más probable es que reemplace la imagen de marcador de posición con tu truco de CSS que enlazaste aquí.

1 me gusta