異なるDiscourseサイト間でトピックを同期/クロス投稿する

またこれについて考えていました。

プラグインで、プライマリドキュメントのソースURL用のカスタムトピックフィールドを追加できます。(プライマリドキュメントを非表示にする場合、リモートユーザー名とAPIキーのフィールドも必要になると思いますが、それは後回しでも構いません。あるいは、それらはユーザーのカスタムフィールドに配置することもできます。APIキーに読み取り専用権限があるかどうかは、キーを生成した人が確認することになります。)

トピックを作成する際に、「remote: https://meta.discourse.org/t/synchronising-crossposting-topics-across-different-discourse-sites/263269」のようなものを入力すると、トピックが作成されたときに、Discourseはリモートトピックの生のテキストを取得し、それをrawに編集として挿入し、リモートURLでtopic_custom_fieldをインスタンス化します。おそらく、先頭に「copied from url」を追加します。

これで、リモートトピックをローカルにコピーし、その記録を持つことができます。

その後、「ソースを確認」ボタンを設けることで、リモートトピックを取得し、リモートトピックのupdated_at、さらには他のカスタムフィールドにrawを保存できます(ジョブで定期的に行うこともでき、UXを節約できます)。その後、更新ボタンで、既存のrawをリモートのものに編集として置き換えることができます。

プライマリサイトが公開されている場合、この部分は非常に簡単です。プライベートサイトから取得するためにAPIキーを追加すると複雑になり、複数のサイトにわたるAPIキーのセットを管理するとさらに複雑になります。元のソースを置き換える必要がある場合は、remap rakeタスクでそれを行うか、必要に応じてリモートURLでカスタムフィールドを編集する機能を追加できるかもしれません。

この部分は、このソリューションではセカンダリサイトがプライマリサイトからデータを取得するため、無料で提供されます。

はい。ソースサイトへのリンクを設置することもでき、人々はコメントを見るためにソースサイトにアクセスしたり、Embed comments from Discourse in your single page app を介してコメントを埋め込んだりできるかもしれません。

これに予算がある場合は、お気軽にご連絡ください。

「いいね!」 1