Sincronizando/Crossposting de tópicos entre diferentes sites do Discourse

Tenho pensado nisso novamente.

Um plugin poderia adicionar um campo de tópico personalizado para o URL da fonte do documento principal. (Acho que também precisaria de campos para um nome de usuário remoto e chave de API se o documento principal for oculto, como acho que é o seu caso, mas essa parte poderia esperar. Ou talvez eles pudessem viver em um campo personalizado do usuário. Caberia a quem gerou a chave garantir que a chave de API tenha privilégios somente leitura).

Ao criar um tópico, você digitaria algo como “remote: https://meta.discourse.org/t/synchronising-crossposting-topics-across-different-discourse-sites/263269” e, quando o tópico fosse criado, o Discourse puxaria o texto bruto do tópico remoto, o inseriria em raw como uma edição e instanciaria o topic_custom_field com o URL remoto, talvez adicionando um “copiado de url” no topo.

Neste ponto, você copiou o tópico remoto localmente e tem um registro dele.

Poderia haver então um botão “verificar fonte” que puxaria o tópico remoto e salvaria o updated_at do tópico remoto e talvez até o raw em outros campos personalizados (um trabalho também poderia fazer isso periodicamente, economizando um pouco de UX). Você poderia então ter um botão de atualização que substituiria o raw existente pelo remoto como uma edição.

Se o site principal for público, então essa parte é realmente fácil. Adicionar uma chave de API para puxar de um site privado complica as coisas, gerenciar um conjunto de chaves de API em vários sites, complica ainda mais. Se a fonte original precisasse ser substituída, você poderia talvez fazer isso com a tarefa rake de remapeamento, ou adicionar a capacidade de editar o campo personalizado com o URL remoto quando você precisasse.

Esta parte vem de graça, já que esta solução tem os sites secundários puxando os dados do principal.

Certo. E pode haver um link de volta para o site de origem, para que as pessoas possam ir à origem para ver esses comentários, ou talvez até incorporá-los via Embed comments from Discourse in your single page app.

Se você tiver algum orçamento para isso, sinta-se à vontade para me contatar.

1 curtida