API Recuperar URLs relativas de postagens

Olá a todos

Estou usando a API do Discourse para recuperar um Tópico / todas as suas postagens e, em seguida, cada postagem e seu conteúdo.

Meus fóruns estão hospedados em forums.xxx.com
Eu uso a API para recuperar as postagens e colocá-las em meu domínio www.xxx.com e vincular de um para o outro,

Tudo isso funciona, exceto que o conteúdo que eu trago usa URLs relativas - então um link para um usuário (quando no domínio dos fóruns) seria forums.xxx.com/u/o-usuário

Como eu trago essa postagem para o meu domínio www.x, ela se vincula a www.xxx.com/u/o-usuário - que obviamente não existe.
O mesmo problema se estende a quaisquer emojis ou imagens incluídos na postagem - os links estão quebrados.

Existe alguma maneira de fazer com que os links que chegam (eu uso conteúdo: data['cooked']) apontem de volta para o domínio original?

Eu, na verdade, perguntei ao ChatGPT a mesma pergunta e obtive uma resposta funcional imediatamente

usando um método auxiliar para substituir os URLs dentro dos dados processados

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

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

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

    content
  end

Então, deixarei isso aqui para qualquer outra pessoa - se alguém tiver uma solução mais elegante e pronta, ficarei interessado.

2 curtidas

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