API Récupérer les URL relatives des articles

Salut à tous

J’utilise l’API Discourse pour récupérer un sujet / tous ses messages, puis chaque message et son contenu.

Mes forums sont hébergés sur forums.xxx.com
J’utilise l’API pour récupérer les messages et les placer sur mon domaine www.xxx.com et faire des liens entre les deux.

Tout cela fonctionne, sauf que le contenu que je récupère utilise des URL relatives - donc un lien vers un utilisateur (sur le domaine des forums) serait forums.xxx.com/u/the-user.

Lorsque je récupère ce message sur mon domaine www.xxx.com, il pointe vers www.xxx.com/u/the-user - ce qui n’existe évidemment pas.
Le même problème se pose pour les emojis ou les images inclus dans le message - les liens sont brisés.

Y a-t-il un moyen de faire en sorte que les liens qui arrivent (j’utilise content: 'data[\'cooked\']') pointent vers le domaine d’origine ?

j’ai en fait posé la même question à chat GPT et j’ai obtenu une réponse fonctionnelle immédiatement

en utilisant une méthode d’aide pour remplacer les URL dans les données traitées

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

    # Mettre à jour les attributs href
    content.gsub!(/href=\"(\\/[^\"]*)\"/i) { |match| "href=\"#{forum_domain}#{$1}\"" }

    # Mettre à jour les attributs src
    content.gsub!(/src=\"(\\/[^\"]*)\"/i) { |match| "src=\"#{forum_domain}#{$1}\"" }

    content
  end

je vais donc laisser cela ici pour les autres - si quelqu’un a une solution plus élégante prête à l’emploi, je serais intéressé

2 « J'aime »

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