Kit di Costruzione per Discord Bot 🤖

Scusa, linguaggio dei forum della vecchia scuola, Threads sono Argomenti di Discussione non Thread di Discord.

Sono felice di pagare per funzionalità personalizzate, ma penso di aver trovato una soluzione aggirando semplicemente spostando l’argomento dopo che è stato creato :thinking: mi sembra che fosse troppo semplice

I thread di Discord esistevano circa 2 anni fa? accidenti, sto invecchiando :laughing: perdo la cognizione del tempo

Ma sì, mi chiedo se sarebbe facile aggiungere il supporto per Immagini e Menzioni :thinking: ?

dammi un preventivo :wink:

image


1 Mi Piace

Sì, continua questa conversazione qui su Discourse!

Anch’io sto implementando questo plugin per la sincronizzazione con un server Discord!

Ciò significa che i ruoli su Discord vengono copiati in Discourse? O viceversa? In definitiva, sarebbe comunque meglio consentire entrambe le opzioni.

1 Mi Piace

Attendo il tuo PR

1 Mi Piace

Come il mio? PR? Quale PR?

@merefield Ciao! Ottimo lavoro. Come molti, immagino, ho trovato questo post cercando plugin o bot che possano collegare Discourse e Discord in un modo o nell’altro.

A questo punto stavo per arrendermi e assumere uno sviluppatore per occuparsene per me, ma credo nell’open source e sono grato di essermi imbattuto prima in questo argomento.

In una delle community di Discord che aiuto a moderare, ci sono più librerie di diversi autori le cui community si sovrappongono e quindi usano quel Discord e il canale pertinente per il supporto tecnico di quella libreria.

La soluzione ideale per la SEO, la creazione di knowledge base e la convenienza sarebbe che tutti usassero un forum Discourse, ma a parità di condizioni le persone preferiscono semplicemente porre le loro domande su Discord e la parte che risponde si trova a dover trovare una soluzione manuale per replicare quella conversazione in Discourse.

Nel tentativo di combattere questa inefficienza senza imporre una scarsa UX all’utente (ad esempio, “Benvenuto su Discord, ora usa Discourse e ripeti la stessa domanda”), vorrei che il commento principale di ogni canale di libreria avesse la possibilità di generare automaticamente un nuovo argomento nel forum Discourse. Questo diventerebbe rapidamente spam, quindi vorrei che fosse attivato solo se:

  1. si trasforma in un thread (implicando che si trattava di una domanda a cui è stata effettivamente data una risposta)

  2. è stato risposto con un emoji scelto da un ruolo autorizzato (supporto tecnico, moderatore, amministratore, ecc.)

Da lì, eventuali commenti successivi in quel thread di Discord verrebbero automaticamente seguiti e pubblicati come risposte sullo stesso argomento Discourse principale. (Nota: non è importante che esistano account utente – inviare come “system” o un bot designato sarebbe accettabile, purché menzioni il nome utente da cui è originato nel corpo dei post)

Sulla base di questi requisiti, ho alcune domande:

  1. il bot in questione in questo argomento è pronto per questo?

  2. Se no, quali parti non sono pronte o non ancora pianificate? (Vedo che i thread sono qualcosa “in lavorazione”, ma se si tratta di priorità finanziarie posso pubblicare una generosa ricompensa per renderlo realtà)

  3. Se dovesse essere necessario pubblicare detta ricompensa per lo sviluppo, qual è il metodo appropriato per la commissione? Quali sono i requisiti e le aspettative (costi, tempistiche, ecc.)?

Apprezzo il lavoro che hai (e tutti!) fatto finora e attendo con ansia la tua tempestiva risposta.

~carrot

Ciao @carrotcypher,

Questo plugin gratuito è mantenuto da me (come parte di Pavilion) su base di miglior sforzo.

Non c’è una roadmap e il lavoro sulle funzionalità avviene solo quando c’è uno sponsor esterno.

Il tuo caso d’uso è interessante.

Questo “bot” si basa su questa gemma Ruby che è una dipendenza critica.

Non supporta ancora il threading in una versione ufficiale, tuttavia sembra che sia stato aggiunto un certo supporto al ramo principale, ma non sono sicuro in che misura; sarebbe un bel po’ di lavoro scoprire e magari discuterne con loro se prevedono una versione a un certo punto. La loro documentazione viene aggiornata solo ad ogni rilascio. Non è sufficiente avere il supporto sul ramo principale, devono aggiornare la gemma, idealmente.

Se sei seriamente interessato a questo progetto, ti consiglio di discuterne prima con il team di gestione del progetto di Pavilion, anche se sei libero di pubblicare su Marketplace, ovviamente.

Vai qui e clicca su contatti e segui le istruzioni: https://pavilion.tech/solutions/

1 Mi Piace

@merefield Ciao, ho installato il plugin ma non riesco a far rispondere il bot ai comandi sul mio server.
Visualizza correttamente il messaggio “Il bot amministratore di Discourse ha iniziato il suo turno!”, ma dopo non reagisce a nulla.

Stranamente, funziona quando gli invio un messaggio diretto su Discord. Ho controllato i permessi sul server e sembrano essere configurati correttamente (ho dato al bot i permessi di amministratore).

Strano, l’ho controllato sull’ultimissima versione di Discourse e si comporta correttamente.

Cosa succede quando digiti Ping! su Discord (maiuscole importanti)?

Controlla i tuoi log, vedi messaggi di errore?

non reagisce a Ping! (ma funziona nei messaggi diretti)

log

Sta lottando in qualche modo con il token nelle tue impostazioni.

Hai inserito caratteri strani o non l’hai inserito affatto?

image

Ci ho rinunciato. Non credo che fosse comunque lo strumento giusto per il mio caso d’uso.
Non so perché non abbia funzionato. Ho fatto tutto con attenzione, più volte.
Forse Discord sta facendo il bizzarro?
Comunque, grazie per aver cercato di aiutarmi.

1 Mi Piace

Cosa stavi cercando di fare funzionalmente?

Sì, buona soluzione e il comando richiesto è questo:

::DiscordBot::Bot.discord_bot.stop

Questo fermerà il bot aggiuntivo nella sessione della console di Rails e lascerà in esecuzione quello principale corrente del server.

@satonotdead potresti apprezzare questa soluzione.

Ho aggiunto queste informazioni all’OP.

2 Mi Piace

Mi dispiace, sto solo rivedendo i post qui e ho notato che ti ho dato consigli errati e da allora ho implementato hook che rispondono agli eventi di Discourse che possono agire su Discord. Alcuni di questi potrebbero già esserti utili e questa tecnica può essere estesa ad altri eventi:

1 Mi Piace

Con i ringraziamenti al mio sponsor e per ulteriore aiuto da @RGJ, vi porto alcuni importanti aggiornamenti:

  • FEATURE; Aggiunge la possibilità di copiare facilmente singoli thread di Discord in Discourse, estendendo e migliorando il comando esistente !disccopy
  • MIGLIORAMENTO: Aggiorna il plugin con il codice più recente di discordrb (3.5.0)
  • FEATURE: Aggiunge il supporto multisito (grazie @RGJ!!)
  • FEATURE: Riavvia il thread del bot se il token viene modificato o se viene abilitato (quindi non è necessario riavviare il server host) (grazie ancora @RGJ!!)

@klausagnoletti, @Fma965 con questo aggiornamento dell’API abbiamo finalmente la possibilità di interagire con i thread di Discord tramite l’API che sono essenzialmente solo “canali” aggiuntivi.

2 Mi Piace

Ah, finalmente!

Un controllo funzionante per evitare che il bot venga avviato in punti inappropriati del processo*!

Non verrà più avviato un nuovo bot quando:

  • si migrano le modifiche al database
  • si apre la console di Rails (quindi non è più necessario arrestarla).

Di conseguenza, il rumore del bot di ricostruzione è ridotto almeno del 50%, quindi dovrebbe annunciarsi solo due volte :sweat_smile:

Fammi sapere se riscontri problemi con quest’ultima modifica.

Crediti a @RGJ per il suggerimento! :pray:

\u003csup\u003e*per lo più! :slight_smile:

1 Mi Piace

Solo per dire che di recente ho:

  • FIX: Corretto la sincronizzazione automatica dei messaggi da Discord a Discourse, che a quanto pare era interrotta dall’ultimo aggiornamento!!
  • FEATURE: Aggiunto un livello di supporto per la sincronizzazione automatica degli embed di Discord.

Buon divertimento!

Ciao, ottimo lavoro con lo script! grazie per averlo creato. Avevo alcune domande… ogni quanto il bot sincronizza i membri nei ruoli? Ho appena configurato discourse e questo è stato uno dei primi plugin che ho installato. Ho creato un gruppo su www, mi sono aggiunto e se digito manualmente !discsync aggiunge correttamente il tag discord al mio nome, ora se mi rimuovo dal gruppo su www, o aggiungo qualcun altro… non succede nulla a meno che non digiti manualmente !discsync su discord. È così che dovrebbe essere o dovrebbe sincronizzarsi ogni pochi minuti, ogni 10 minuti?

È manuale.

Potresti dare un’occhiata a questo fork: Discord Sync: sync a Discourse forum with a Discord server ma credo che non sia mantenuto e sia rotto (ho anche chiesto a quella persona di fare una PR, ma tant’è!).

Sentiti libero di fare una PR per una soluzione più automatizzata o puoi assumermi per lavorarci, o Marketplace

È dopotutto un “kit di costruzione” :slight_smile: