discourse(prod)> TopicEmbed.find_by(topic_id: 157441).as_json
Serializzare modelli ActiveRecord (TopicEmbed) senza specificare i campi non è consentito. Usa uno Serializer o passa l'opzione :only a #serializable_hash. Maggiori informazioni: ``https://meta.discourse.org/t/-/314495
=>
{“id”=>56685,
“topic_id”=>157441,
“post_id”=>483289,
“embed_url”=>
“``https://tecnoblog.net/noticias/paramount-oferece-us-108-bilhoes-em-dinheiro-para-tomar-warner-da-netflix”``,
“content_sha1”=>nil,
“created_at”=>“2025-12-08T17:54:07.585Z”,
“updated_at”=>“2025-12-09T18:04:33.539Z”,
“deleted_at”=>nil,
“deleted_by_id”=>nil,
“embed_content_cache”=>“”}
discourse(prod)>
Potresti eseguire di nuovo lo stesso comando, ma questa volta:
./launcher enter app
rails c
TopicEmbed.find_by(topic_id: 157441).embed_url
Se ciò che hai condiviso è effettivamente il valore di embed_url nel tuo database, allora quello è il problema, e creerò una piccola PR in discourse/discourse per gestire casi limite come questo in cui l’embed_url è finito in uno stato malformato.
Quindi l’intero problema qui è perché la PR sopra ha iniziato a rimuovere le barre finali da TopicEmbed a gennaio di quest’anno? Mi sento combattuto riguardo a questa modifica. Onestamente preferirei che rispettassimo ciò che l’amministratore ci invia.
Penso che questa sia la radice dei nostri problemi.
In effetti non sta seguendo i reindirizzamenti. Il forum è in esecuzione sullo stesso server/spazio IP del blog? Potrebbe attivare la nostra protezione SSRF.
In tal caso, è necessario consentirlo tramite l’impostazione allowed_internal_hosts
Il motivo per cui abbiamo apportato questa modifica è che c’era un’incoerenza tra il modo in cui funzionavano gli embed di WP Discourse e gli embed javascript. Gli embed javascript hanno sempre normalizzato l’URL. Gli embed di WP Discourse arrivavano tramite un percorso diverso e non stavano normalizzando l’URL (fino a quando non abbiamo apportato la modifica). Ciò ha portato ad altre incoerenze.
Un altro problema è che, quando eseguo un curl verso l’API, cercando l’ID del topic di un URL di incorporamento (embed URL), non riesco a trovarlo a causa della barra finale (trailing slash). Discourse restituisce una pagina 404.
Ma se rimuovo la barra finale, restituisce il valore:
Per farlo funzionare, dovrei eseguire una sostituzione di stringa (str replace) in WordPress, per rimuovere la barra finale dal permalink, prima di effettuare la verifica. Ma questo non ha senso, l’URL canonico ha la barra finale…
In pratica, Discourse sta normalizzando il permalink a un URL che non esiste… la versione normalizzata dovrebbe essere quella con la barra finale.
Ma sono ancora preoccupato per gli URL senza la barra finale, per le ragioni menzionate nel mio post precedente. Devo aprire un nuovo argomento a riguardo @angus?
Certo! Non influenzerà la funzione “Full Post” poiché ora possiamo seguire i reindirizzamenti nei siti sullo stesso dominio del forum, ma puoi continuare in un nuovo argomento per altre preoccupazioni.