Segnaposto per immagini remote non esistenti

Ciao,

Ho importato 80.000 post da phpBB a Discourse. Nei post ci sono molte immagini collegate da un sito web remoto come [img]http://www.domain.tld/image.jpg[/img] che non ci sono più.

Il post non mostra nulla lì, il che causa irritazione, poiché il contesto si interrompe in alcuni di questi post, non essendo chiaro che tra un blocco di testo e l’altro ci sia/fosse un’immagine.

Quindi la mia domanda è: è possibile inserire un’immagine segnaposto lì se l’immagine originale non è più disponibile?

Saluti,
Roi

Mostra l’icona dell’immagine del broker predefinita? Penso che dovrebbe farlo dopo che i post sono stati elaborati.

Ho personalizzato il mio. Vedi (codice incluso):

1 Mi Piace

No, non mostra nulla. Ma ci sto andando vicino. Penso che sia causato dal tag BBCode . Se modifico un post e rimuovo il tag, ha questo aspetto.

Quindi dovrei rimuovere tutti i tag BBCode [img] e rielaborare i post?

Sembra interessante. Penso che serva anche a me. :slight_smile: Grazie!

Non sono sicuro. Se rimuovi un tag BBCode inline, avrai l’URL dell’immagine in testo semplice all’interno del tuo testo e non utilizzerà l’icona dell’immagine non valida.

Forse potresti provare a rimuovere il tag BBCode, ma inserendo una riga vuota prima e dopo l’URL dell’immagine. Fai prima un backup!

Sì. Dannazione, potresti avere ragione.

Bene, cosa dovrei cambiare per ottenere l’icona dell’immagine non valida, o l’immagine remota (la mia ipotesi, quindi scaricata) se esiste ancora?

Non sono sicuro.
Dovrei aver riscontrato anch’io questo problema dato che ho importato anche un forum phpBB con tag [IMG] e il 95% di immagini non funzionanti, ma per quanto ricordo, dopo il “baking” le immagini non funzionanti inline sono state correttamente sostituite dall’icona dell’immagine non funzionante anche quando erano inline, ma potrei sbagliarmi :thinking:

Temo di non avere una soluzione pronta all’uso per ora, ma sono sicuro che c’è un modo per scoprirlo.

Hai per caso un link a un messaggio che conterrebbe un’immagine inline non funzionante? Potresti copiare e incollare anche il testo grezzo?

1 Mi Piace

Certo, questo è un esempio reale:

Se controlli il primo post, c’è un grande spazio vuoto sotto l’ultima riga di testo e la firma. Nel codice sorgente puoi vedere le immagini non funzionanti, ad esempio:

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

“grezzo” dal database:

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

“cotto” dal database:

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

Hai abilitato l’impostazione scarica immagini remote in locale? L’icona dell’immagine non valida appare solo dopo che Discourse tenta di scaricare l’immagine remota e non ci riesce.

Se l’impostazione è disabilitata, lascia una riga vuota.

Sì, è abilitato. Lo è sempre stato, anche prima che importassi da phpBB.

È possibile che l’importatore phpBB non tenga conto di questa impostazione? Per come la intendo io, la cottura dovrebbe avvenire al di fuori dell’importatore e utilizzare le impostazioni.

La ricottura di tutti i post causa qualche danno?

Ho provato:

rake posts:rebake_match["[img]"]
      767 / 767 (100,0%)
767 post completati!

Il post che ho menzionato sopra (e tutti gli altri) sembrano esattamente uguali…

Penso che ci sia un’impostazione in /var/discourse/shared/standalone/import/settings.yml dove possiamo impostare il download di immagini remote su true o false, ma i post verranno “cotti” dopo l’importazione indipendentemente da questa opzione.

Vedo che le tue righe vuote ora mostrano l’icona dell’immagine interrotta prevista:
\u003chttps://forum.gdngs.de/t/grill-shirts-von-3dsupply-de/5515\u003e

Invece di ricuocere un mucchio di post, un buon test è ricostruire l’HTML di un post specifico dalle opzioni di amministrazione del post, poiché ciò attiva una ricottura:

chrome_RLLvokErfg

E quindi attivare il job UpdateHotlinkedRaw aggiungendolo alla coda:

Ho provato sulla mia istanza di test usando una delle tue immagini interrotte e all’interno di BBcode. Quando scarica le immagini remote in locale era disabilitato, la riga vuota è rimasta. Quando era abilitato, è apparsa invece l’icona dell’immagine interrotta.

1 Mi Piace

Oh sì, hai ragione. Penso che fosse un problema di cache del browser dopo il comando di rebake. Grazie per aver controllato tu stesso! :slight_smile:

Quindi è stato in qualche modo un problema di importazione phpBB. Giurerei di non aver modificato alcuna impostazione di configurazione relativa alle immagini remote dopo aver importato tutto da phpBB…

Ah, bello. L’ho trovato e ci ho cliccato sopra.

Non riesco a trovare un job UpdateHotlinkedRaw da nessuna parte in Sidekiq… Puoi aiutarmi a risolvere questo problema. Sono sicuro che sia in qualche modo PEBCAK. :wink:

Questo porterebbe nella direzione in cui ho abilitato download remote images to local dopo aver importato tutto da phpBB. Hm… Dato che avevo/ho anche un’installazione di test e ho testato molte cose lì, sono ancora abbastanza sicuro che fosse già attivo prima.

Nota: il job verrebbe comunque attivato in pochi minuti, andare su Sidekiq è solo un modo per controllare le cose più velocemente.

Il job UpdateHotlinkedRaw dovrebbe essere presente pochi secondi dopo aver ricostruito l’HTML del tuo post, nella scheda Scheduled di Sidekiq.

Il job dovrebbe essere visibile solo se l’impostazione scarica immagini remote in locale è abilitata nelle impostazioni del tuo forum Discourse, e se il tuo post contiene immagini.

Se ciò non funziona, allora per ora non ho altre idee…!

Grazie, allora è chiaro. Ho appena rifatto il “rebake” di un post - uno senza immagini remote. Quindi non è successo nulla. :wink:

E grazie, mi hai aiutato a chiarire le cose qui. Ora vedo le immagini segnaposto. E molto probabilmente sostituirò l’immagine segnaposto con il tuo trucco CSS che hai linkato qui.

1 Mi Piace