Ci ho ripensato di nuovo.
Un plugin potrebbe aggiungere un campo argomento personalizzato per l’URL della fonte del documento primario. (Suppongo che avrebbe anche bisogno di campi per un nome utente remoto e una chiave API se il documento principale deve essere nascosto, come credo sia il tuo caso, ma quella parte potrebbe aspettare. O forse potrebbero risiedere in un campo personalizzato dell’utente. Spetterebbe a chiunque abbia generato la chiave assicurarsi che la chiave API abbia privilegi di sola lettura).
Quando crei un argomento, inseriresti qualcosa come “remoto: https://meta.discourse.org/t/synchronising-crossposting-topics-across-different-discourse-sites/263269” e, quando l’argomento viene creato, Discourse estrarrebbe il testo grezzo dell’argomento remoto, lo inserirebbe in raw come modifica e istanzierebbe il topic_custom_field con l’URL remoto, aggiungendo forse un “copiato da url” in cima.
A questo punto, hai copiato l’argomento remoto localmente e ne hai una registrazione.
Potrebbe quindi esserci un pulsante “controlla sorgente” che estrarrebbe l’argomento remoto e salverebbe l’updated_at dell’argomento remoto e forse anche il raw in altri campi personalizzati (un job potrebbe anche farlo periodicamente, risparmiando un po’ di UX). Potresti quindi avere un pulsante di aggiornamento che sostituirebbe il raw esistente con quello remoto come modifica.
Se il sito principale è pubblico, allora questa parte è davvero facile. L’aggiunta di una chiave API per estrarre da un sito privato complica le cose, la gestione di un set di chiavi API su più siti, la complica ulteriormente. Se la sorgente originale dovesse essere sostituita, potresti forse farlo con il task rake di rimappatura, o aggiungere la possibilità di modificare il campo personalizzato con l’URL remoto quando ne avessi bisogno.
Questa parte viene fornita gratuitamente, poiché questa soluzione prevede che i siti secondari estraggano i dati dal sito primario.
Giusto. E ci può essere un link al sito sorgente, in modo che le persone possano andare alla sorgente per vedere quei commenti, o forse persino incorporarli tramite Embed comments from Discourse in your single page app.
Se hai un budget per questo, non esitare a contattarmi.