Kit di Costruzione per Discord Bot 🤖

Possiamo usarlo senza spawnare quando usiamo la console su Discourse?

Vedo il bot che mi dice errori quando provo a fare un remap :smiling_face_with_tear:

Non sono del tutto sicuro di cosa intendi. L’unica interazione dovrebbe avvenire su Discord.

Tuttavia, quali errori stai riscontrando? Darò un’occhiata prima o poi.

1 Mi Piace

Ho anche questo problema, entrare nel container di discourse e avviare il prompt rails c causa la creazione di un’altra istanza del bot. Ciò si traduce in comandi come Ping! che restituiscono Pong! due volte e altre cose come l’impossibilità di cambiare il nome utente o il nickname tramite discordrb.

Eseguire il comando ::DiscordBot::Bot.discord_bot.stop causa l’uscita dell’istanza creata da rails c ma non può interagire con il bot creato quando Discourse si avvia.

1 Mi Piace

Grazie per la segnalazione. La registrerò come problema noto (modifica: fatto - aggiunta alla sezione “Problemi noti” dell’OP). Sospetto che si sia comportato così fin dall’inizio, e dato che è stato segnalato solo un paio di volte e molto di recente, sospetto che non sia generalmente considerato un grosso problema in quanto si tratta di un caso limite.

Dato che sembri tecnicamente in grado, una PR è benvenuta, se riesci a risolverlo.

1 Mi Piace

Potrebbe essere un problema fondamentale con Discordrb, ad essere sinceri, non vedo alcun modo per elencare altri bot in esecuzione o addirittura selezionarli nella loro documentazione, se lo scoprirò te lo farò sapere. Per quanto riguarda questo bot, ho forked il progetto e l’ho modificato al meglio delle mie capacità per funzionare come un ponte di chat invece che come un ponte di post.


1 Mi Piace

Sì, quello che dobbiamo fare è essere in grado di verificare se un’istanza è in esecuzione e non avviarne una nuova se ne esiste già una.

Questa è una zona pericolosa per le race condition, ma sarebbe un miglioramento davvero gradito.

Se avessi più tempo darei un’occhiata prima, ma se vuoi provarci sentiti libero.

Sembra che all’avvio della console Rails, la variabile @@DiscordBot venga associata a un altro bot in un altro thread, mentre l’originale viene lasciato inalterato. Non sono sicuro se sia possibile rilevare l’avvio della console Rails e non avviare un secondo bot, ma questo spiega perché posso eseguire il comando di arresto sul bot tramite Rails e non influire su quello che è stato avviato con Discourse.

1 Mi Piace

Ciao,

Bel lavoro, voglio usarlo ma prima ho una domanda che è in qualche modo correlata, diciamo…

Uso Discourse WP-Connect per usare Wordpress come mio “master” per l’SSO (questo può anche usare il login di Discord) sai quali “user variables” dovrei passare nella richiesta SSO affinché questo plugin lo abbini a un utente Discord? o è solo l’email (presumo di no)

Ho già inviato alcuni valori aggiuntivi, quindi spero di poterne inviare solo uno in più?

Come da OP, richiede l’autenticazione tramite Discord (utilizzando la logica principale integrata) per stabilire la relazione.

Un SSO codificato in modo fisso da Wordpress lo impedirà, specialmente per i nuovi utenti.

PR o documentazione aggiuntiva sono benvenuti se trovi un modo per aggirare questo problema.

Bel lavoro, ben fatto. È un’intuizione utile.

Va bene, in realtà non è quello che ho chiesto, forse è meglio chiedere al supporto dato che l’accesso a Discord è ora integrato in Discourse.

1 Mi Piace

Sì, è al di là dello scopo di questo plugin supportare il SSO di Wordpress.

Ma per indicarti la giusta direzione, hai bisogno di una voce in questa tabella:

Questo viene fatto automaticamente quando accedi tramite Discord.

Dubito che il SSO di Wordpress possa popolare questo al posto di Discord, ma sono pronto a essere smentito.

1 Mi Piace

Ho anche una sorgente OAuth che devo far usare agli utenti invece di Discord. Per aggirare questo problema, ho abilitato l’OAuth di Discord come descritto nell’OP, ma ho usato CSS personalizzato per nascondere tutte le altre sorgenti di accesso tranne quella che voglio che i miei utenti utilizzino con l’opzione CSS display: none;. La possibilità di effettuare l’OAuth con Discord è “tecnicamente” ancora nell’HTML, ma un utente finale normale non la troverà mai.

Gli utenti possono quindi “collegare” il loro Discord all’account creato dalla mia altra sorgente OAuth nelle preferenze dell’utente.


image

Bello, potrebbe essere una soluzione alternativa, potrei però indagare su una soluzione di codice reale, questo viene visualizzato nelle preferenze di Discourse allora? forse potremmo inviare un messaggio privato per non appesantire questo argomento?

Perché abbini i canali Discord alle categorie Discourse invece che agli argomenti? È perché ci possono essere argomenti con nomi duplicati? Vorrei che 5 canali andassero agli argomenti pertinenti in 3 categorie, ma sembra che questo non sia possibile?

Perché gli annunci di un singolo Topic diventerebbero piuttosto noiosi?

È volutamente di alto livello in modo da poter annunciare nuovi Topic in Categorie specifiche.

2 Mi Piace

Mi dispiace, intendevo per questo
image

2 Mi Piace

Questa era una richiesta del cliente :money_bag:

Tutta la chat, se non ricordo male, viene inserita in un unico argomento per categoria per evitare disordine in troppi argomenti.

2 Mi Piace

Capisco

Certo, tuttavia dato che utilizza le categorie non posso avere, ad esempio, un thread “#ford-support” nella mia categoria “Ford” che viene sincronizzato dal canale #ford-support in discord. Ruby non è la mia lingua di scelta, quindi dubito di poter fare un fork e modificarlo (come faccio per molte altre cose che non sono in Ruby).

Sarebbe facile farlo basandosi invece sul nome dell’argomento/thread? o c’è qualche limitazione forse?

Nota a margine: le immagini (interessantemente le GIF sì) non vengono sincronizzate nell’argomento, non so se è noto?

EDIT: oh aspetta, sembra che possa semplicemente spostare l’argomento dopo che è stato creato.

Le thread non erano disponibili nell’API Discord di Ruby l’ultima volta che ho controllato, ma mi è stato detto che “era in lavorazione” (due anni fa!)

Accoglierei sicuramente una PR per aggiungere il supporto per le thread quando ciò diventerà possibile.

Temo di essere troppo oberato in questi giorni per concentrarmi sulla creazione di molte funzionalità nei plugin al di fuori del lavoro retribuito, ma sarò felice di rivedere una PR.

1 Mi Piace