Discord e Discourse - Meglio Insieme | Blog

Ecco una domanda che riceviamo molto spesso: Discourse e Discord. Sembra che si assomiglino molto, ma sono la stessa cosa?


Questa è una discussione di approfondimento per l'articolo originale su https://blog.discourse.org/2021/05/discord-and-discourse-better-together/
22 Mi Piace

Adoro che tu ti stia occupando di questa questione così attuale. Ma sento che manchino ancora flussi di lavoro solidi, best practice e, idealmente, strumenti per rendere più efficiente, piacevole e fluida la collaborazione con questi due prodotti separati. Questo vale nonostante un post sul blog molto simile (sebbene più ampio) pubblicato tre anni fa, che ha generato una piccola discussione (e alcune richieste simili a quelle che sto per esporre).

Voglio proporre alcuni esempi di ciò che mi piacerebbe idealmente poter fare per armonizzare, ad esempio, Discord e Discourse, riconoscendo che nessuno di questi scenari potrebbe essere effettivamente realizzabile a causa delle limitazioni delle API di Discord o Discourse, o per altre ragioni. Tuttavia, penso valga la pena riflettere e discutere ulteriormente su questo argomento, entrando nei dettagli, perché la sincronia/asincronia è un problema attuale per molte comunità e non esistono ancora soluzioni ideali.

La prima e più importante sarebbe una strumentazione (apparentemente) semplice per facilitare il passaggio da un sistema all’altro. Poter collegare una #categoria di Discourse in Discord con un semplice click, e viceversa un canale di Discord in Discourse, senza dover copiare e incollare link manualmente. Ancora meglio: una ricerca di argomenti integrata in Discord, così da poter trovare e condividere un link senza uscire dall’app. Inoltre, la possibilità di generare immediatamente un invito da un sistema all’altro, magari con una scorciatoia da tastiera, in entrambi gli ambienti.

Il tuo precedente articolo Effectively using Discourse together with group chat suggerisce cose come:

Nuovo utente: Come faccio a fare X?
Utente disponibile: Buona domanda. Per favore ripubblica questo messaggio sul nostro forum pubblico in modo che eventuali risposte possano essere cercate e lette da chiunque altro si trovi nella stessa situazione.

Questa è una buona policy per gestire parte del problema, ma dal punto di vista dell’esperienza utente (UX) non è l’ideale. Preferirei poter cliccare sul loro messaggio in Discord e, con un singolo comando, generare un link di invito al forum che li indirizzi alla categoria corretta e, idealmente, avvia direttamente l’azione “Nuovo argomento” dopo la registrazione. Bonus se si copia automaticamente il contenuto del messaggio da Discord nel nuovo argomento di Discourse.

Forse si potrebbe anche privilegiare l’integrazione con l’accesso tramite Discord: ad esempio, l’utente clicca sul link in Discord, si apre una nuova finestra del browser con il forum, e appare un popup che dice: “Sei stato invitato a unire la community Discourse X! Clicca su ‘Unisciti’ per accedere con il tuo account Discord, oppure scegli un’opzione di accesso alternativa a destra.” Una volta registrato, potrebbe essere reindirizzato direttamente alla creazione di un nuovo argomento.

Anche il suggerimento di “attendere la fine delle chat per generare un riassunto” potrebbe beneficiare notevolmente di strumenti dedicati. So che esiste già uno strumento per Slack che svolge parzialmente questo lavoro in modo semi-automatico, il che è ottimo. Non l’ho ancora usato, quindi non so come gestisca cose come i nomi utente, che idealmente dovrebbero essere collegati a eventuali nomi utente già esistenti su Discourse. Ma soprattutto, sarebbe fantastico avere una funzionalità simile per Discord. Nel precedente post sul blog c’era un invito alla collaborazione da parte di altre app di chat, ma immagino non sia mai successo. Cosa servirebbe per incentivare sufficientemente questa collaborazione? Potrebbe essere resa ancora più potente, operando su una selezione specifica invece che sugli “ultimi 20 messaggi”? E, se non è già presente nella versione per Slack, sarebbe gradita anche la generazione automatica di un link di ritorno alla chat all’interno del post del forum.

Sto semplicemente lanciando idee a caso, ma penso che almeno alcune di queste potrebbero davvero aiutare.

Personalmente, sul lungo termine, spero che emerga uno strumento unico che migliori la combinazione di entrambi gli approcci, sincrono e asincrono. So che ci sono state recenti discussioni sull’idea che gli argomenti Discourse ad alto volume possano trasformarsi in chat, magari con una certa effimerità. Spero che questo concetto riceva un’attenzione profonda e un approccio “pensiero laterale” per fornire il miglior insieme di strumenti alle comunità, permettendo loro di integrare realmente i valori di entrambi gli approcci.

Per me, questo si realizzerebbe idealmente all’interno di Discourse. Forse si potrebbe generare una chat ovunque, collegata a un argomento esistente o meno (una chat a livello di categoria sarebbe fantastica). Potrebbe funzionare un po’ come i thread di Slack, “ramificandosi” da qualche parte: ad esempio, stai leggendo un argomento e arrivi a una “risposta” che è in realtà un riassunto visivo di una chat in tempo reale avvenuta: “Chat generata con 243 messaggi il 31/05/21 dagli utenti x, y, z [avatar]” o simili. Una modifica della barra di riepilogo degli argomenti esistente, specifica per le chat, con uno stile che la distingua, e un click per aprire la finestra della chat per rivederla, o espanderla in linea o altro.

Le chat potrebbero essere archiviate automaticamente o persino cancellate, se desiderato. Ma idealmente verrebbero forniti strumenti per riassumere una chat nell’argomento, magari utilizzando le familiari funzioni di modifica dei messaggi di Discourse (selezione multipla, ecc.). I moderatori potrebbero farlo, oppure gli utenti potrebbero selezionare uno o più propri messaggi da contribuire all’argomento, se lo desiderano. Se non viene fatto entro un certo periodo di tempo, tutto viene archiviato (opzionalmente?). Per le chat basate su categoria, si potrebbe anche “promuovere” un messaggio di chat a un argomento.

Comunque, ci sono un’infinità di idee possibili. Ma questo sembra un’area di grande potenziale valore se può essere realizzata correttamente all’interno di Discourse. Ridurre la tensione tra, ad esempio, Discord e Discourse, e la “rigidità” dell’approccio di Discourse, mantenendo al contempo i benefici di entrambi, e penso sarebbe una grande vittoria. Più facile a dirsi che a farsi, ma una sfida certamente degna!

Modifica: so anche che in passato ci sono state moltissime discussioni variegate su argomenti simili, ad esempio:

ecc.

Babble è interessante, anche se non sembra così ben supportato. Più importante ancora, non risolve la maggior parte dei problemi di cui ho parlato sopra, anche se almeno integra tutto in un unico posto, il che rende più facile passare tra le diverse modalità di interazione…

Modifica 2: Inoltre, dovrebbero esserci categorie/canali solo per chat. Ma sempre con la possibilità di “promuovere” un messaggio (o una serie di messaggi?) a un argomento. E ora mi chiedo se non avrei dovuto pubblicare questo come un nuovo argomento da qualche altra parte. Oh, beh. :grinning_face_with_smiling_eyes:

15 Mi Piace

Potresti essere interessato a Discord Bot Construction Kit 🤖

Si tratta di un plugin di integrazione generico che può collegare Discord a Discourse in diversi modi.

È progettato per essere estensibile. Utilizza il framework degli eventi di Discourse e il gemma Ruby dell’API di Discord.

Sono benvenute le PR per funzionalità aggiuntive.

8 Mi Piace

Bene, grazie. Spero decisamente in un’integrazione più profonda e sofisticata, che potrebbe essere al di fuori dello scope di quanto hai sviluppato. Tuttavia, è sicuramente un ottimo plugin da avere nel frattempo.

A proposito, in generale, ho successivamente scoperto questo post precedente di Sam, che mostra come questo tema sia sulla mente del team di Discourse da molto tempo! Ci sono ottimi dettagli sul suo ragionamento in quel thread; ecco solo una parte:

7 Mi Piace

Puoi per favore spiegare in dettaglio? Cosa intendi per integrazione “più profonda” e “più sofisticata”?

Sentiti libero di inviare PR o di prendere in considerazione la specificazione (e il potenziale finanziamento) di funzionalità per far crescere il plugin.

1 Mi Piace

Ho scritto un plugin che risolve in parte questo problema. Almeno per quanto riguarda i permessi: ecco un’introduzione su come funziona: https://www.youtube.com/watch?v=C5paAvTYty4

Collega i sistemi di autorizzazione di entrambe le piattaforme.

Penso che una buona idea sarebbe ribaltare questo approccio. Invece di indirizzare le persone da Discord a Discourse, potremmo considerare le conversazioni che avvengono su Discord come una risorsa. È un’enorme miniera di contenuti che può essere utilizzata per creare automaticamente discussioni su Discourse.
Quando ho scritto il plugin per sincronizzare i ruoli di Discord con i gruppi di Discourse, ho riconosciuto quanto sia potente l’API di Discord. Possiamo reagire a qualsiasi evento che si verifica sul server Discord. Ad esempio, potremmo creare discussioni su Discourse ogni volta che qualcuno usa un punto interrogativo. Credo che le domande e le relative risposte siano probabilmente il frutto più prezioso e facilmente raggiungibile su Discord che potremmo raccogliere e inserire nel paniere dei frutti di Discourse. Questo amplierebbe anche l’imbuto verso la comunità, poiché improvvisamente le parti più preziose delle conversazioni su Discord diventerebbero accessibili dal web normale. Al momento, le conversazioni su Discord non sono indicizzate dai motori di ricerca, quindi questo potrebbe aprire una grande opportunità.

3 Mi Piace

Certamente! In realtà ho già delineato alcune di queste idee sopra. Ad esempio:

Ma per cercare di delineare il concetto in generale (tenendo presente che sono consapevole che alcune di queste cose potrebbero essere impossibili o più difficili di quanto valgano, questa è la visione idealizzata):

Possibilità per Amministratori, Moderatori o chiunque (a seconda delle impostazioni delle autorizzazioni) di creare istantaneamente Argomenti su Discourse partendo da uno (o più) messaggi su Discord, con un’interfaccia utente super semplice, ad esempio clic col tasto destro.

  • Interfaccia per selezionare la Categoria e i tag (opzionalmente) per il nuovo Argomento
  • La selezione multipla potrebbe essere utilizzata per identificare diversi messaggi da includere
  • Una versione base potrebbe semplicemente creare un Argomento da un utente di sistema o altro utente non personale di Discourse, con il contenuto di 1 o più messaggi Discord come unico messaggio che avvia un nuovo argomento
  • Una versione avanzata idealmente abbinerebbe gli utenti Discord a quelli di Discourse e creerebbe un Argomento partendo dal primo messaggio selezionato, attribuendolo all’utente corrispondente corretto, con gli altri messaggi selezionati come risposte, anch’esse correttamente attribuite
  • In entrambi i casi, verrebbe pubblicato un messaggio su Discord del tipo: “Una conversazione qui è appena stata trasformata in un argomento Discourse. Passa lì per continuare la discussione se vuoi! [link].”

Scorri verso il basso in questa pagina fino a “Retroactive Threading” per un buon esempio (sia nel concetto che nell’interfaccia) di ciò che ho in mente:
https://quill.chat/

Obiettivi ambiziosi:

  • Un’altra bella funzionalità sarebbe notificare l’utente (o gli utenti) il cui (i cui) messaggio/i viene (vengono) trasformato in un argomento Discourse all’interno di Discord, con un link al nuovo argomento
  • Sarebbe anche gradito permettere all’utente (o agli utenti) i cui messaggi sono stati selezionati per la creazione dell’argomento di negare/optare per l’esclusione
  • Opzione per invitare automaticamente gli autori dei messaggi selezionati a Discourse se non hanno già un account (o se non ne viene trovato uno corrispondente, cosa che potrebbe essere affrontata durante la registrazione se hanno già un account, magari con una email diversa, ecc.)
  • Integrazione con il comportamento di suggerimento dei thread già esistente (e recentemente aggiunto) di Discord, dove dice (quando le persone rispondono a un messaggio precedente) “Vuoi rendere più facile seguire questa conversazione di X risposte? Inizia un [thread]”, aggiungendo un’altra opzione, ad esempio “Inizia un [thread] o un nuovo [argomento] nel nostro forum.
  • Rilevamento di messaggi lunghi in fase di composizione su Discord e offerta del suggerimento, ad esempio: “Sembra che tu stia scrivendo un messaggio di chat molto lungo. Vuoi [iniziare un argomento del forum] invece?”
  • Visualizzazioni di argomenti inline, espandibili (finestra pop-up, con scorrimento?) per gli argomenti collegati a un messaggio/thread di Discord, cioè mostra un normale anteprima di tipo “onebox”, ma puoi cliccarci per visualizzare più della conversazione effettiva in qualche modo, ad esempio in un pop-up con scorrimento

L’obiettivo generale è rendere più semplice, se non fluido, per le persone iniziare nuovi argomenti da conversazioni esistenti su Discord e continuare le loro conversazioni più approfondite su una piattaforma dove ha più senso. E idealmente fornire anche suggerimenti contestuali ma non invasivi (proprio come fa già Discord) su quando le persone potrebbero voler continuare una conversazione sui forum invece che su Discord. Non pretendo che alcune di queste cose non siano un po’ ingombranti o goffe, ma credo che rappresenterebbero comunque un miglioramento rispetto a ciò che abbiamo.

Resta da vedere come apparirà la chat integrata nello stesso Discourse, nonché quanto verrà adottata, ad esempio per le comunità che desiderano avere una componente in tempo reale attiva oltre al forum, rispetto a quelle che, ad esempio, sono nate su Discord o hanno già una forte comunità sia su Discord che sul forum. L’integrazione sarà sufficiente per convincere i nuovi sviluppatori della comunità a usare solo Discourse sia per le funzioni in tempo reale che per quelle del forum? Lo vedremo. Ma l’utilità di gran parte di ciò che ho proposto sopra potrebbe dipendere fortemente da questo risultato.

Non sono un programmatore, ma penso spesso al finanziamento delle cose. Il problema è che ho numerose cose che vorrei vedere aggiunte/migliorate in Discourse e, certamente, non ho abbastanza soldi per finanziarle tutte. :grinning_face_with_smiling_eyes: Quindi do priorità… Le funzionalità di integrazione con Discord sono più un interesse per i miei clienti di consulenza, quindi spero che un giorno potrò convincere uno di loro a finanziare un’espansione in tal senso.

Sì, mi sono imbattuto in questo a un certo punto, non sono sicuro se prima o dopo il mio post sopra. È utile, quindi grazie per questo. Copre solo una parte del “problema”, ma è sicuramente una parte di una possibile soluzione.

Sono d’accordo con te per la maggior parte, ma sono cauto riguardo alla pubblicazione/ripubblicazione automatizzata. Cauto ma interessato alle possibilità, certamente. Se potesse essere basato su regole, come descrivi, potrebbe essere più utile.

È molto interessante! Non conosco bene l’API di Discord, quindi non sono sicuro di cosa sia possibile, ma ciò che descrivi sembra poter consentire alcune soluzioni utili. Qualcosa basato su regole, come accennato sopra, sarebbe un’ottima opzione da avere.

Tuttavia, penso ancora che strumenti potenti per moderatori/amministratori per “curare” manualmente i contenuti di Discord possano essere la cosa più importante o utile. Sicuramente è ciò per cui abbiamo meno capacità al momento, perché Integromat (ad esempio) può già essenzialmente fare ciò che descrivi, guardando gli argomenti Discord pubblicati, cercando testo particolare (ad esempio ?), o anche reazioni particolari (ad esempio una reazione emoji riservata a moderatori/amministratori che innesca tramite Integromat per pubblicare solo quegli argomenti su Discourse) e poi creare un argomento Discourse da quello. Quindi, sebbene sarebbe bello avere quella funzionalità in un plugin/integrazione nativa, per me sembra meno eccitante come area di focus rispetto a quanto ho descritto sopra.

2 Mi Piace

Questo è esattamente ciò che avevo in mente.

Non sono sicuro di averti capito correttamente: intendi che il clic con il tasto destro dovrebbe avvenire su Discord o nell’interfaccia di Discourse?

Anch’io penso che i contenuti dovrebbero essere curati. Ma il problema è che non possiamo aggiungere funzionalità all’interfaccia di Discord. Questo è fuori dal nostro controllo. Dovremmo quindi utilizzare l’API di Discord per importare tutti i messaggi di Discord in Discourse. Potremmo poi creare una sorta di “centro analitico Discord” nella dashboard degli amministratori/moderatori di Discourse, che permetta di sfogliare i messaggi di Discord, analizzarli e creare automaticamente discussioni partendo da essi. Forse potrebbe esserci anche una notifica per un moderatore ogni volta che qualcuno utilizza un punto interrogativo o un altro simbolo su Discord. La notifica li indirizzerebbe a una pagina dove potrebbero trasformare immediatamente la domanda e le risposte in una discussione su Discourse o ignorare la notifica.

3 Mi Piace

Grazie per la risposta dettagliata @oshyan

Sì, Discord non è open source e credo che modificare il client ufficiale sia contrario ai suoi termini di servizio.

(Prendiamoci un momento per apprezzare la differenza rinfrescante nel modo in cui Discourse è gestito e reso disponibile per la modifica!)

Potresti costruire o modificare un client alternativo, ma sarebbe un grosso impegno tenere il passo con le funzionalità del client ufficiale (aggiungendone di nuove!). Non sono molto aggiornato sui client alternativi, ma se puoi suggerirne uno ben mantenuto e con un sistema di plugin…

Quindi, fin da subito, direi che le modifiche all’interfaccia utente lato Discord saranno più complicate.

Tuttavia, sto per rilasciare una nuova modifica a plugin Discord Bot che ti permette di copiare gli ultimi x messaggi da Discord in un nuovo Topic in Discourse.

Questo viene realizzato tramite un comando “bot” invece di un clic su un menu.

Rispetta e corrisponde gli account utente e ti permette di specificare il titolo del Topic di destinazione o la Categoria.

In questa versione è presente anche una funzionalità per copiare automaticamente la chat da Discord a Discourse se i nomi del canale e della Categoria corrispondono.

È già possibile pubblicare nuovi Topic in un canale Annunci.

4 Mi Piace

Su Discord.

Sì, non ne ero a conoscenza, ma lo sospettavo. Questo è uno dei motivi per cui non ho esposto tutto questo fino a ora. Detto questo, sembra che @merefield sia riuscito a realizzare molto con questo recente aggiornamento! Quindi è piuttosto entusiasmante.

È un’idea interessante, ma sembra una soluzione un po’ “pesante”… (ammetto che anche la mia lo è a modo suo, e la tua è almeno fattibile nel senso che Discourse è open source mentre Discord non lo è).

Secondo me anche!

Purtroppo i client di terze parti sembrano essere contrari ai Termini di Servizio di Discord e quelli che ho visto sono o abbandonati o a codice sorgente chiuso (e probabilmente verranno banditi comunque prima o poi). Matrix ha un Bridge per Discord, ma è tutto.

Sì, ha senso. Quello che ho descritto era il mio caso ideale, ma immaginavo che probabilmente non fosse fattibile.

Wow, non me l’aspettavo. Fantastico! Anche se potrebbe non essere esattamente così comodo o personalizzabile come avevo immaginato, sembra che questo possa effettivamente soddisfare la maggior parte degli obiettivi di base che avevo in mente per i miglioramenti. Sono davvero felice di sapere che anche per altri è stato abbastanza utile da spingerti a lavorarci. Grazie!

Quando dici che allinea gli account utente, intende che crea una singola Discussione con il messaggio Discord più antico del set come primo messaggio e il resto come risposte?

Mmm, interessante. Quindi trasforma ogni messaggio in una nuova Discussione, o cosa? In caso contrario, come determina cosa è l’inizio di una Discussione e cosa sono le risposte?

Grazie ancora per il lavoro su questo. Non vedo l’ora di provare gli aggiornamenti quando saranno disponibili.

3 Mi Piace

Per corrispondenza degli account intendo che se la persona accede utilizzando le proprie credenziali Discord, in modo che esista un accesso associato, allora il messaggio su Discord verrà correttamente attribuito e accompagnato dall’Avatar corretto in Discourse.

No, questo sarebbe uno spreco, penso; si rivolge a un singolo Argomento nella Categoria.

3 Mi Piace

Sì, ho capito. La mia domanda era: usi il termine “account” al plurale e la modifica importa gli “ultimi x messaggi”. E se quei messaggi provenissero da 5 persone diverse? Verrà quindi creato un singolo argomento con 5 messaggi separati (come risposte), ciascuno attribuito a un account Discourse corrispondente (se disponibile)?

Sono d’accordo. Pensavo che non funzionasse così, ma non sono chiaro sui dettagli del suo funzionamento. Detto questo, credo che abbia più senso per me aspettare che tu lo rilasci e, se avrò ancora domande a quel punto, potrò chiedere. Grazie ancora! :slight_smile:

1 Mi Piace

Questi aggiornamenti sono stati rilasciati: Discord Bot Construction Kit 🤖 - #82 by merefield

5 Mi Piace