API Recupera URL relativi dei post

Ciao a tutti

Sto utilizzando l’API di Discourse per recuperare un argomento / tutti i suoi post e poi ogni post e il suo contenuto.

I miei forum sono ospitati su forums.xxx.com
Utilizzo l’API per recuperare i post e inserirli sul mio dominio www.xxx.com e creare collegamenti reciproci tra i due.

Tutto questo funziona tranne che il contenuto che recupero utilizza URL relativi - quindi un link a un utente (quando si è sul dominio dei forum) sarebbe forums.xxx.com/u/the-user

Poiché recupero quel post sul mio dominio www.xxx.com, si collega a www.xxx.com/u/the-user - che ovviamente non esiste.
Lo stesso problema si estende a eventuali emoji o immagini incluse nel post - i link sono interrotti.

C’è un modo per far sì che i link in arrivo (uso content: 'data['cooked']') rimandino al dominio originale?

ho anche chiesto a chat GPT la stessa domanda e ho ottenuto subito una risposta funzionante

utilizzando un metodo helper per sostituire gli URL all’interno dei dati elaborati

def update_urls(content)
    forum_domain = 'https://forums.xxx.com'

    # Aggiorna gli attributi href
    content.gsub!(/href=\"(\\/[^\"]*)\"/i) { |match| "href=\"#{forum_domain}#{$1}\"" }

    # Aggiorna gli attributi src
    content.gsub!(/src=\"(\\/[^\"]*)\"/i) { |match| "src=\"#{forum_domain}#{$1}\"" }

    content
  end

Quindi lascerò questo qui per chiunque altro - se qualcuno ha una soluzione più elegante pronta all’uso, sarei interessato

2 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.