APIで投稿の相対URLを取得

皆さん、こんにちは

Discourse API を使用してトピック / すべての投稿を取得し、次に各投稿とそのコンテンツを取得しています。

私のフォーラムは forums.xxx.com でホストされています。
API を使用して投稿を取得し、www.xxx.com ドメインに配置し、両方の間で双方向にリンクしています。

これらすべては機能しますが、取得するコンテンツは相対 URL を使用しています。そのため、ユーザーへのリンク(フォーラム ドメインの場合)は forums.xxx.com/u/the-user となります。

その投稿を www.xxx ドメインに引き出すと、www.xxx.com/u/the-user にリンクされます。これは明らかに存在しません。
投稿に含まれる絵文字や画像にも同じ問題が発生します。リンクが壊れています。

content: 'data[\'cooked\']' を使用して)取得するリンクを元のドメインにリンクさせる方法はありますか?

チャットGPTにも同じ質問をしたところ、すぐに動作する回答が得られました。

クックされたデータ内のURLを置き換えるヘルパーメソッドを使用しています。

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

    # href属性を更新
    content.gsub!(/href=\"(\\/[^\"]*)\"/i) { |match| "href=\"#{forum_domain}#{$1}\"" }

    # src属性を更新
    content.gsub!(/src=\"(\\/[^\"]*)\"/i) { |match| "src=\"#{forum_domain}#{$1}\"" }

    content
  end

そこで、他の人のためにここに残しておきます。もし、よりエレガントな既製のソリューションがあれば、興味があります。

「いいね!」 2

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