J’ai encore réfléchi à cela.
Un plugin pourrait ajouter un champ de sujet personnalisé pour l’URL de la source du document principal. (Je suppose qu’il faudrait aussi des champs pour un nom d’utilisateur distant et une clé API si le document principal doit être caché, comme je pense que c’est votre cas, mais cette partie pourrait attendre. Ou peut-être qu’ils pourraient vivre dans un champ personnalisé d’utilisateur. Ce serait à celui qui a généré la clé de s’assurer que la clé API a des privilèges en lecture seule).
Lors de la création d’un sujet, vous saisiriez quelque chose comme « remote: https://meta.discourse.org/t/synchronising-crossposting-topics-across-different-discourse-sites/263269 » et lorsque le sujet serait créé, Discourse récupérerait le texte brut du sujet distant, l’insérerait dans raw en tant que modification et instancierait le topic_custom_field avec l’URL distante, ajoutant peut-être un « copié depuis url » en haut.
À ce stade, vous avez copié le sujet distant localement et en avez une trace.
Il pourrait alors y avoir un bouton « vérifier la source » qui récupérerait le sujet distant et enregistrerait updated_at du sujet distant et peut-être même le raw dans d’autres champs personnalisés (un travail pourrait également le faire périodiquement, économisant un peu d’UX). Vous pourriez alors avoir un bouton de mise à jour qui remplacerait le raw existant par celui du distant en tant que modification.
Si le site principal est public, alors cette partie est vraiment facile. L’ajout d’une clé API pour récupérer à partir d’un site privé complique les choses, la gestion d’un ensemble de clés API sur plusieurs sites complique encore plus. Si la source d’origine devait être remplacée, vous pourriez peut-être le faire avec la tâche rake remap, ou ajouter la possibilité de modifier le champ personnalisé avec l’URL distante lorsque vous en avez besoin.
Cette partie est gratuite, car cette solution permet aux sites secondaires de récupérer les données du site principal.
Exact. Et il peut y avoir un lien vers le site source, afin que les gens puissent aller à la source pour voir ces commentaires, ou peut-être même les intégrer via Embed comments from Discourse in your single page app.
Si vous avez un budget, n’hésitez pas à me contacter.