Synchronisation/Cross-Posting von Themen zwischen verschiedenen Discourse-Seiten

Ich habe wieder darüber nachgedacht.

Ein Plugin könnte ein benutzerdefiniertes Themafeld für die URL der Quelle des primären Dokuments hinzufügen. (Ich schätze, es bräuchte auch Felder für einen Remote-Benutzernamen und einen API-Schlüssel, wenn das Hauptdokument verborgen werden soll, was ich für Ihren Anwendungsfall halte, aber dieser Teil könnte warten. Oder vielleicht könnten sie in einem benutzerdefinierten Feld des Benutzers leben. Es wäre demjenigen überlassen, der den Schlüssel generiert hat, sicherzustellen, dass der API-Schlüssel Lesezugriff hat).

Beim Erstellen eines Themas würden Sie etwas wie “remote: https://meta.discourse.org/t/synchronising-crossposting-topics-across-different-discourse-sites/263269” eingeben und wenn das Thema erstellt wurde, würde Discourse den rohen Text des Remote-Themas abrufen, ihn in raw als Bearbeitung einfügen und das topic_custom_field mit der Remote-URL instanziieren, vielleicht mit einem “kopiert von url” am Anfang.

Zu diesem Zeitpunkt haben Sie das Remote-Thema lokal kopiert und eine Aufzeichnung davon.

Dann könnte es eine Schaltfläche “Quelle prüfen” geben, die das Remote-Thema abruft und die updated_at und vielleicht sogar die raw des Remote-Themas in anderen benutzerdefinierten Feldern speichert (ein Job könnte dies auch periodisch tun und etwas UX sparen). Sie könnten dann eine Update-Schaltfläche haben, die die vorhandene raw durch die Remote-Version als Bearbeitung ersetzt.

Wenn die primäre Seite öffentlich ist, ist dieser Teil wirklich einfach. Das Hinzufügen eines API-Schlüssels zum Abrufen von einer privaten Seite verkompliziert die Dinge, die Verwaltung einer Reihe von API-Schlüsseln über mehrere Seiten hinweg, verkompliziert es weiter. Wenn die ursprüngliche Quelle ersetzt werden müsste, könnten Sie das vielleicht mit der Remap-Rake-Aufgabe tun oder die Möglichkeit hinzufügen, das benutzerdefinierte Feld mit der Remote-URL zu bearbeiten, wenn Sie es benötigen.

Dieser Teil ist kostenlos, da diese Lösung die sekundären Websites die Daten von der primären abrufen lässt.

Richtig. Und es kann einen Link zurück zur Quellseite geben, damit die Leute zur Quelle gehen können, um diese Kommentare zu sehen, oder sie vielleicht sogar über Embed comments from Discourse in your single page app einbetten.

Wenn Sie überhaupt ein Budget dafür haben, können Sie mich gerne kontaktieren.

1 „Gefällt mir“