Discord Sync: sincronizza un forum Discourse con un server Discord

:warning: Questo plugin è automatico; non ha alcun comando. Se stai cercando un framework generico per bot Discord, consulta il kit di costruzione del bot di @merefield qui, su cui si basa questo plugin.

Discord Sync Sincronizza un forum Discourse con un server Discord :discourse:

Questo plugin permette di sincronizzare determinati elementi relativi agli utenti tra un’istanza del forum Discourse e un server Discord. Creerà un Bot Discord per gestire tutte le autorizzazioni e attivare azioni specifiche nel server.

Funzionalità

  • Sincronizza i gruppi Discourse con i ruoli Discord
    Gestisce automaticamente i ruoli nel server Discord in base ai gruppi a cui un utente ha accesso su Discourse.

    • Ruolo Verificato
      Puoi aggiungere un “ruolo verificato” che verrà assegnato a tutti gli utenti Discord che hanno collegato un account Discord.

    • Ruoli Sicuri
      Poiché questo plugin impone che i ruoli in Discord corrispondano esattamente ai gruppi in Discourse, puoi impostare un elenco di ruoli che il bot ignorerà e che potrai gestire manualmente nel server Discord.

  • Sincronizza il nome utente Discourse con il nickname Discord
    Se desideri riconoscere gli utenti in base al loro nome utente del forum, puoi forzare l’uso dello stesso nickname nel server Discord del nome utente che hanno su Discourse.

Trigger

Il plugin eseguirà una sincronizzazione completa da Discourse a Discord (nickname e ruoli) nei seguenti casi:

  • Discourse
    • Un utente viene aggiunto a un gruppo
    • Un utente viene rimosso da un gruppo
    • Il profilo utente viene aggiornato
      Inteso per la sincronizzazione nome utente-nickname
    • L’utente si autentica
      Verrà eseguito solo se il provider di autenticazione è Discord, per garantire che una prima sincronizzazione avvenga subito dopo il collegamento degli account
  • Discord
    • Un utente entra in un server Discord
      Cercerà nel database un utente con il dato ID Discord e successivamente eseguirà il lavoro di sincronizzazione

Installazione

:exclamation: Questo plugin dipende da Discord OAuth2 per identificare e collegare gli account Discourse-Discord. Se non desideri consentire agli utenti di accedere con Discord, ma vuoi comunque mantenere il collegamento degli account, consulta la soluzione a questo argomento.

Prerequisiti

Questo plugin richiede libsodium (richiesto dal gemma Ruby di Discord). Per installarlo, modifica il tuo file .yml e aggiungi il seguente codice:

hooks:
    before_code:
       - exec:
              cmd:
                - apt-get update
                - apt-get install -y libsodium-dev

Passaggi di installazione

  1. Segui la guida standard su Come installare un plugin con l’URL di questo repository: https://github.com/barreeeiroo/discourse-discord-sync.git
  2. Segui questa guida per configurare l’accesso con Discord nella tua istanza Discourse.
  3. Nel portale per sviluppatori di Discord, vai su Bot e aggiungilo al tuo server. Assicurati di concedergli il ruolo più alto possibile.
  4. In Discourse, nelle Impostazioni del plugin, imposta discord sync token con il token del Bot che è apparso nel passaggio precedente.

Opzioni di configurazione

  • discord sync enabled: Abilita o disabilita l’integrazione
  • discord sync token: Token del bot da Discord
  • discord sync prefix: Prefisso per i comandi (al momento solo !ping)
  • discord sync admin channel id: Canale dove pubblicare i messaggi di registrazione (cambiamenti nickname, cambiamenti ruoli)
  • discord sync username: Se vero, sincronizzerà tutti i nickname del server Discord con il rispettivo nome utente Discourse
  • discord sync verified role: Ruolo da aggiungere a tutti gli utenti che hanno un account Discourse
  • discord sync safe roles: Elenco di ruoli che il bot ignorerà e contrassegnerà come concessi manualmente in Discord

Come fare

Per collegare gli account, se consenti agli utenti di autenticarsi con Discord, possono semplicemente utilizzare quel provider. In caso contrario, dovranno andare nelle Preferenze dell’Account, scorrere fino a Account Associati e cliccare su Connetti nella riga di Discord.

Demo dal vivo

Stiamo attualmente utilizzando questo plugin nella nostra istanza Discourse di Kodular Community, con il server Discord su kodul.ar/discord:

Ringraziamenti

  • Discourse Bot, creato da @merefield
    Grazie mille a Robert per aver fornito lo scheletro di questo plugin. Ha sicuramente aiutato a impostare le basi di questo intero plugin, permettendo di eseguire un bot Discord in un’istanza Discourse (e complimenti per il suo trucco per installare libsodium!).

  • Discourse Discord Sync, creato da @angus
    Un’alternativa per sincronizzare i livelli di fiducia con i ruoli Discord senza la necessità di alcun bot.

  • Login with Discord, creato dal team Discourse
    Questo plugin non sarebbe stato possibile senza l’integrazione Discord OAuth2 (in precedenza un plugin), per collegare gli account sia Discourse che Discord.

  • discordrb
    Questo plugin si basa sul gemma discordrb, che permette di connettersi all’API Discord utilizzando Ruby.

29 Mi Piace

È davvero fantastico! Io sono più un fan di Telegram, ma anche Discord è ottimo! Sento che Telegram si abbina bene a Discourse, dato che entrambi sono progetti open-source molto noti focalizzati sulla comunicazione.

Sarebbe bello se ci fosse una funzione di cross-posting. Se qualcuno dicesse qualcosa nella chat di Discord, verrebbe creata una risposta in un thread specifico di Discord noto come “thread della chat room”. Questo darebbe al tuo sito Discourse un boost SEO grazie a tutto il nuovo contenuto all’interno del thread della chat.

4 Mi Piace

Anche a me piace molto Telegram, e lo usavamo con un gruppo di chat pubblico. Ma qualche giorno fa siamo passati a Discord, perché avevamo oltre 1.000 membri ed è piuttosto difficile moderare un gruppo così grande. Con Discord è stato facile grazie al loro sistema di ruoli.

4 Mi Piace

Ottimo lavoro :slight_smile:

Oltre al Discord Bot di @merefield, esiste anche un plugin di sincronizzazione tra ruoli Discord e gruppi Discourse basato su OAuth2 puro (senza bot), ad esempio per sincronizzare il livello di fiducia 3 con un ruolo Discord, disponibile qui:

5 Mi Piace

Questo sincronizza Discourse → Discord. Tuttavia, facciamo più affidamento sui ruoli di Discord rispetto ai gruppi di Discourse per l’identificazione dei tipi di stakeholder, quindi sarebbe ottimo se questo plugin potesse anche eseguire una sincronizzazione Discord → Discourse, ovvero aggiungere gli utenti di Discourse ai gruppi in base ai loro ruoli su Discord, assegnare badge agli utenti di Discourse in base ai loro ruoli su Discord, modificare il nome utente di Discourse per corrispondere al nome utente di Discord (e non viceversa), ecc.

1 Mi Piace

Sarebbe possibile configurarlo in modo che la sincronizzazione avvenga in senso inverso? Ovvero, sincronizzare i ruoli da Discord verso i gruppi di Discourse, gli alias, ecc.

Gestiamo i ruoli e altro da Discord e preferiremmo trasferirli su Discourse.

2 Mi Piace

Se trovi qualcosa del genere, fammelo sapere.

Sembra davvero interessante. L’unica cosa è: come si collega al gruppo su Discord da Discourse? È solo in base al nome? Se è così, potresti fare in modo che definiamo quale gruppo corrisponde a quale ruolo utilizzando l’ID del ruolo da Discord? Se non è possibile, pensi che potresti aggiungere una whitelist dei ruoli? Ho solo pochi ruoli che hanno gruppi su Discourse, ma ne utilizzo molti su Discord.

1 Mi Piace

Questa funzionalità è per noi estremamente importante, dato che gestiamo tutti i nostri ruoli tramite Discord. Sarebbe utile disporre di un modo per sincronizzare i gruppi da Discord a Discourse. Anche se fossero solo ‘sincronizzati’ tramite nome e le autorizzazioni, ecc., vengono configurate successivamente.

@barreeeiroo: hai intenzione di sviluppare qualcosa del genere? O hai qualche consiglio su come procedere? La gestione manuale dei ruoli tramite ‘Safe Roles’ è quasi sufficiente. Ho dei ruoli che contengono spazi e quindi non posso aggiungerli nel campo Safe Roles. Invece di aggiornare manualmente tutti i ruoli su Discord e aggiungerli senza spazi, esiste un’altra strada da percorrere?

Sarebbe davvero fantastico se fosse possibile ‘spingere’ i gruppi da Discord verso i gruppi di Discourse.

Grazie per il tuo lavoro su questo plugin!

Modifica: La proposta di utilizzare gli ID dei ruoli invece dei nomi risolverebbe sicuramente molti dei miei problemi.

1 Mi Piace

Ho ancora problemi a configurarlo. Per i ruoli su Discord, sta cercando un ID o un nome? Inoltre, invece di “ruoli protetti”, potresti aggiungere la possibilità di sincronizzare solo ruoli specifici?

Non conosco Ruby, altrimenti offrirei il mio aiuto. Probabilmente imparerò le basi o semplicemente implementerò qualcosa tramite l’API in Java.

Ho trovato il mio problema, avevo il nome del canale admin invece del suo id. Ora devo solo fare alcuni controlli sui permessi/ruoli per vedere perché in realtà non succede nulla

1 Mi Piace

Volevo solo menzionare: ho creato l’inverso di questo plugin, che sincronizza i ruoli di Discord con i gruppi di Discourse: https://www.youtube.com/watch?v=C5paAvTYty4

5 Mi Piace

C’è un modo per sincronizzare i ruoli di Discord con Discourse, invece di sincronizzare i ruoli di Discourse con Discord?

Questo è il punto di questo plugin? È rotto? Dai anche un’occhiata al mio plugin bot collegato nell’OP che esegue discourse → discord (sebbene utilizzando il comando bot)

2 Mi Piace

Tutti i plugin qui, assegnano i ruoli che hai su discourse al tuo account discord. Non assegna i tuoi ruoli discord al tuo account discourse.

È il contrario della tua domanda originale?

Credo che il plugin di @spirobel faccia questo?

2 Mi Piace

No, fa un esempio: se hai “Community Moderator” in Discourse, cambierà il tuo ruolo in Discord.
Ma se hai “Community Moderator” in Discord, non cambierà il tuo ruolo in Discourse.

2 Mi Piace

Potresti esserti perso ciò a cui mi riferivo: Discord Sync: sync a Discourse forum with a Discord server - #17 by spirobel

A te, @spirobel

4 Mi Piace

Me lo sono perso, il suo plugin è un plugin fatto su misura per 400 dollari

1 Mi Piace

lo sta vendendo davvero per 400$? è ridicolo.

1 Mi Piace