API Abrufen Post relative URLs

Hallo zusammen

Ich verwende die Discourse-API, um ein Thema / alle seine Beiträge abzurufen und dann jeden Beitrag und seinen Inhalt.

Meine Foren werden auf forums.xxx.com gehostet.
Ich verwende die API, um die Beiträge abzurufen und sie auf meiner Domain www.xxx.com zu platzieren und zwischen beiden hin und her zu verlinken.

Das funktioniert alles, außer dass der Inhalt, den ich abrufe, relative URLs verwendet – ein Link zu einem Benutzer (wenn auf der Foren-Domain) wäre forums.xxx.com/u/the-user.

Wenn ich diesen Beitrag auf meine www.xxx-Domain ziehe, verlinkt er zu www.xxx.com/u/the-user – was offensichtlich nicht existiert.
Das gleiche Problem tritt bei Emojis oder Bildern auf, die im Beitrag enthalten sind – die Links sind fehlerhaft.

Gibt es eine Möglichkeit, die Links, die durchkommen (ich verwende content: data['cooked']), so zu gestalten, dass sie auf die ursprüngliche Domain zurückverlinken?

Ich habe auch ChatGPT dieselbe Frage gestellt und sofort eine funktionierende Antwort erhalten

mit einer Hilfsmethode, um die URLs im verarbeiteten Inhalt zu ersetzen

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

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

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

    content
  end

Ich lasse das hier für alle anderen - wenn jemand eine elegantere Out-of-the-Box-Lösung hat, wäre ich daran interessiert

2 „Gefällt mir“

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