Sappiamo già qual è lo stato per quanto riguarda l’aggiornamento automatico degli utenti tramite questo plugin al momento dell’iscrizione al gruppo, invece di una sincronizzazione manuale? E anche una possibile modalità per indicare quali gruppi/ruoli sincronizzare tra loro, invece che il plugin si impadronisca o crei i ruoli autonomamente?
È la prima volta che viene richiesto, quindi, come puoi immaginare, non è nemmeno nella backlog, per così dire.
Sarebbe piuttosto complicato, dato che il bot gira su un thread separato. Dovresti aggiungere un metodo per inviare un messaggio al bot e assicurarti che sia in ascolto della richiesta. Un esercizio tecnicamente interessante, ma non banale.
In alternativa, potrebbe essere meglio esplorare un’alternativa tramite chiamata API diretta invece di utilizzare il bot. Dovresti poi decidere se ciò giustifica l’implementazione in un plugin diverso, basato su chiamate separate e non su un bot.
Non è una cattiva idea, ma per curiosità, perché hai bisogno che siano diversi?
Questa opzione è più pratica.
PR accettata. Purtroppo il mio tempo è molto limitato per lavorare su funzionalità significative senza finanziamenti.
Bene, al momento sembra che i ruoli siano basati sul “nome” invece che sul titolo. Ciò significa che i miei ruoli su Discord finiscono per avere “dashing” e senza spazi, per esempio. Quindi, immagino che una soluzione alternativa sia far sì che i ruoli siano basati non sul nome, ma sul nome completo o sul titolo predefinito.
Detto questo, potrebbero esserci gruppi su Discourse che non vorrei sincronizzare affatto con Discord.
Questo è intenzionale per evitare di fare affidamento su un campo di descrizione che può:
a) contenere spazi
b) non essere univoco
e (è solitamente un’idea terribile nell’informatica).
Tuttavia, se esiste un modo sicuro per migliorare questa situazione, sono tutto orecchi. Apprezzo che non ‘sembri’ molto elegante
Il plugin potrebbe certamente avere funzionalità aggiuntive per disattivare la sincronizzazione per gruppi specifici, a discrezione dell’amministratore. Le PR sono accettate.
Nel frattempo, mentre si esplora un metodo API, potremmo far sincronizzare il bot automaticamente a un orario programmato? Qualcosa come un controllo ogni ora, o 24, ecc.?
Credo che sarebbe possibile aggiungere una funzionalità simile a ‘ripeti questo tra x ore’ senza problemi.
Il problema, però, è che si interromperebbe ogni volta che il bot si spegne (ad esempio, durante un riavvio).
L’approccio assolutamente migliore sarebbe:
a) aggiungere una chiamata API discreta collegata a un job Sidekiq a questo plugin, oppure
b) scrivere un nuovo plugin che utilizzi chiamate API normali invece di avvalersi di un bot (e integrare una sincronizzazione batch in quel contesto).
Entrambe le opzioni richiederanno uno sponsor o una pull request.
Sto attualmente utilizzando il tuo plugin e ho portato tutto a un punto funzionante. Sembra davvero ottimo, ottimo lavoro!
Tuttavia, ho alcune domande: ora che ho tutto in esecuzione, devo far accedere i miei utenti tramite Discord OAuth. Questo crea un nuovo account.
Qual è il modo migliore per gestirlo? Devo unire gli account nuovi e vecchi? Ho provato a farlo con il mio account Admin e ho ottenuto l’errore “Non hai il permesso di eseguire il comando discsync!” quando ho tentato di eseguire manualmente !discsync.
Inoltre, non ha ancora copiato nessun ruolo dal mio Discourse.
Per tua informazione, il mio account Discord risulta nelle opzioni come un account associato.
Le impostazioni sopra indicate appaiono indipendentemente dall’aggiunta di questo plugin al tuo Discourse.
Se accedi tramite un account sociale, purché gli indirizzi email di registrazione corrispondano, l’account dovrebbe essere riconosciuto e non ne verrà creato uno nuovo. Tuttavia, se l’utente si è registrato su Discord con un’email diversa da quella di Discourse, ovviamente non c’è modo per il sistema di sapere che si tratta dello stesso utente, quindi verrà creato un nuovo account.
Si tratta del tuo account amministratore sul server Discord? Inoltre, hai autorizzato il bot?
Confermo. Nel peggiore dei casi posso semplicemente unire gli account con indirizzi email non corrispondenti.
Sì, esatto. Sono il proprietario delle istanze di Discord e Discourse. Il risultato di “Ping!” è “Pong!”. Nessun ruolo è stato migrato da Discourse a Discord.
Il bot è presente sul mio server Discord e ha privilegi di amministratore. Potresti chiarire cosa intendi per “autorizzare”?
Il mio istinto è che i tuoi diritti o quelli del bot sul server Discord non siano configurati correttamente in qualche modo. Sto solo rinfrescando la memoria su questo plugin mentre lavoro su decine di altri. L’ultima modifica che ho apportato a questo è stata parecchio tempo fa!
Roger! Ho fatto un rapido controllo dalla mia parte, quindi per tua informazione risulto come proprietario del server e ho i diritti di amministratore.
EDIT: Possiamo chiarire quali diritti richiede il bot? Attualmente è elencato come amministratore (questo gli è stato concesso da un ruolo, non dall’invito OAuth, però).