ridicolosamente economico. Non ci sono molte persone interessate a questo caso d’uso disposte a pagare. Richiede tempo per ricercare questi argomenti, scrivere e mantenere il software. Questo non è gratis e se non ci sono molti clienti il prezzo lo riflette.
L’altro problema è: più basso è il prezzo, più esigenti sono i clienti. Semplicemente non ho il tempo di occuparmi di problemi di supporto e domande di persone che hanno pagato 25$ per questo.
Se hai un suggerimento su come posso guadagnare e non essere infastidito mentre vendo a un prezzo basso, fammelo sapere.
Sì, ricordo di averli contattati per usare il loro plugin e capisco perfettamente perché vogliano far pagare così tanto. So che molte community possono permettersi quel prezzo, ma non è necessariamente accessibile per le community più piccole.
Alla fine ho creato una mia soluzione aggiungendo funzionalità al mio bot Discord (basato su Java, dato che non penso di poter fare facilmente tutto tramite un plugin di Discourse, almeno non ancora), che ha la funzionalità aggiuntiva di una logica bidirezionale. In futuro, spero di rendere questa funzionalità disponibile al pubblico una volta che il mio bot Discord sarà completato, ma dipenderà da quanto tempo libero avrò. Ecco il mio bot in azione nel caso qualcuno voglia dare un’occhiata: https://p185.p2.n0.cdn.getcloudapp.com/items/4guZZEP1/b138570f-071c-4373-ada5-b7ed2cd63b26.mp4
Inoltre, se qualcuno fosse interessato a fare da beta tester una volta che renderò questa funzionalità pubblica, sentitevi liberi di mandarmi un messaggio privato - non ho una stima di quando avrò qualcosa di funzionante, ma potrei considerare di renderla una funzionalità autonoma se necessario.
Ti rendi conto che esiste già un framework per bot Discord di Discourse che puoi copiare, modificare ed estendere? Discord Bot Construction Kit 🤖. Si occupa del 99% della gestione in modo che tu possa concentrarti sul lato funzionale (funziona anche sul tuo server Discourse, quindi non è necessaria alcuna infrastruttura aggiuntiva). Le funzionalità esistenti fungono da guida per qualsiasi cosa tu voglia aggiungere.
Accetterei anche PR se trovassi qualcosa di utile per altre community.
Penso di averlo visto - non ho familiarità con Ruby, quindi ho aggiunto la funzionalità direttamente al mio bot su cui stavo già lavorando da anni prima di usare Discourse. Prenderei sicuramente in considerazione di fare una PR per questo, ma quando ho scritto questa funzionalità per la mia community ero sotto pressione, quindi imparare Ruby era fuori questione. Prenderei sicuramente in considerazione di affrontare Ruby come mio prossimo linguaggio di programmazione e di provare questo! ![]()
Modifica: Grazie anche per aver sottolineato che è facilmente personalizzabile - non me ne ero reso conto all’inizio. Mi sono semplicemente intimidito l’ultima volta che ho tentato di modificare un plugin di Discourse lol
Dai una possibilità a Ruby, è davvero un linguaggio di programmazione divertente ![]()
Sto riscontrando problemi durante il test di questo plugin dopo aver configurato tutto, durante il test si verifica un errore di autorizzazione.
Discordrb::Errors::NoPermission (Il bot non ha il permesso richiesto per fare questo!) lib/promotion.rb:136:in recalculate' app/models/group_user.rb:117:in recalculate_trust_level’
Allego uno screenshot come riferimento:
Qualcuno potrebbe aiutarmi qui?
Il tuo bot Discord ha i permessi impostati correttamente? Avresti bisogno che il bot fosse al di sopra di qualsiasi ruolo che assegnerebbe, e avresti bisogno di avere il permesso Gestisci ruoli o Amministratore sul ruolo del bot.
Sì, abbiamo fornito tutte le autorizzazioni, incluse Amministratore, Gestisci ruoli, Gestisci nickname.
Quel ruolo è al di sopra di tutti gli altri ruoli che verrebbero assegnati?
Questo plugin non è abilitato sul nostro server, ma sta causando errori nei log.
Errore gateway_check
discordrb (3.3.0) lib/discordrb/bot.rb:673:in `gateway_check’
discordrb (3.3.0) lib/discordrb/bot.rb:156:in `servers’
plugins/discourse-discord-sync/lib/utils.rb:72:in `sync_user’
plugins/discourse-discord-sync/plugin.rb:42:in `block (3 levels) in activate!’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:427:in `instance_exec’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:427:in `block in make_lambda’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:235:in `block in halting_and_conditional’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:516:in `block in invoke_after’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:516:in `each’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:516:in `invoke_after’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:131:in `block in run_callbacks’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:137:in `run_callbacks’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:824:in `_run_save_callbacks’
activerecord (6.1.4.1) lib/active_record/callbacks.rb:457:in `create_or_update’
activerecord (6.1.4.1) lib/active_record/timestamp.rb:126:in `create_or_update’
activerecord (6.1.4.1) lib/active_record/persistence.rb:474:in `save’
activerecord (6.1.4.1) lib/active_record/validations.rb:47:in `save’
activerecord (6.1.4.1) lib/active_record/transactions.rb:298:in `block in save’
activerecord (6.1.4.1) lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status’
activerecord (6.1.4.1) lib/active_record/connection_adapters/abstract/database_statements.rb:318:in `transaction’
activerecord (6.1.4.1) lib/active_record/transactions.rb:350:in `with_transaction_returning_status’
activerecord (6.1.4.1) lib/active_record/transactions.rb:298:in `save’
activerecord (6.1.4.1) lib/active_record/suppressor.rb:44:in `save’
activerecord (6.1.4.1) lib/active_record/persistence.rb:628:in `block in update’
activerecord (6.1.4.1) lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status’
activerecord (6.1.4.1) lib/active_record/connection_adapters/abstract/database_statements.rb:318:in `transaction’
activerecord (6.1.4.1) lib/active_record/transactions.rb:350:in `with_transaction_returning_status’
activerecord (6.1.4.1) lib/active_record/persistence.rb:626:in `update’
lib/post_creator.rb:613:in `update_user_counts’
lib/post_creator.rb:214:in `block in create’
lib/post_creator.rb:408:in `block (2 levels) in transaction’
activerecord (6.1.4.1) lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `block in transaction’
activerecord (6.1.4.1) lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction’
activesupport (6.1.4.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize’
activesupport (6.1.4.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt’
activesupport (6.1.4.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize’
activesupport (6.1.4.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt’
activesupport (6.1.4.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize’
activerecord (6.1.4.1) lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction’
activerecord (6.1.4.1) lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `transaction’
activerecord (6.1.4.1) lib/active_record/transactions.rb:209:in `transaction’
lib/post_creator.rb:407:in `block in transaction’
lib/distributed_mutex.rb:33:in `block in synchronize’
lib/distributed_mutex.rb:29:in `synchronize’
lib/distributed_mutex.rb:29:in `synchronize’
lib/distributed_mutex.rb:14:in `synchronize’
lib/post_creator.rb:406:in `transaction’
lib/post_creator.rb:204:in `create’
lib/new_post_manager.rb:285:in `perform_create_post’
lib/new_post_manager.rb:223:in `perform’
app/controllers/posts_controller.rb:197:in `create’
actionpack (6.1.4.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action’
actionpack (6.1.4.1) lib/abstract_controller/base.rb:228:in `process_action’
actionpack (6.1.4.1) lib/action_controller/metal/rendering.rb:30:in `process_action’
actionpack (6.1.4.1) lib/abstract_controller/callbacks.rb:42:in `block in process_action’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:117:in `block in run_callbacks’
app/controllers/application_controller.rb:387:in `block in with_resolved_locale’
i18n (1.9.1) lib/i18n.rb:328:in `with_locale’
app/controllers/application_controller.rb:387:in `with_resolved_locale’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:126:in `block in run_callbacks’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:137:in `run_callbacks’
actionpack (6.1.4.1) lib/abstract_controller/callbacks.rb:41:in `process_action’
actionpack (6.1.4.1) lib/action_controller/metal/rescue.rb:22:in `process_action’
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action’
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `block in instrument’
activesupport (6.1.4.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument’
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `instrument’
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:33:in `process_action’
actionpack (6.1.4.1) lib/action_controller/metal/params_wrapper.rb:249:in `process_action’
activerecord (6.1.4.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action’
actionpack (6.1.4.1) lib/abstract_controller/base.rb:165:in `process’
actionview (6.1.4.1) lib/action_view/rendering.rb:39:in `process’
rack-mini-profiler (2.3.3) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method’
actionpack (6.1.4.1) lib/action_controller/metal.rb:190:in `dispatch’
actionpack (6.1.4.1) lib/action_controller/metal.rb:254:in `dispatch’
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:50:in `dispatch’
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:33:in `serve’
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:50:in `block in serve’
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `each’
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `serve’
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:842:in `call’
lib/middleware/omniauth_bypass_middleware.rb:71:in `call’
rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call’
rack (2.2.3) lib/rack/conditional_get.rb:40:in `call’
rack (2.2.3) lib/rack/head.rb:12:in `call’
actionpack (6.1.4.1) lib/action_dispatch/http/permissions_policy.rb:22:in `call’
lib/content_security_policy/middleware.rb:12:in `call’
lib/middleware/anonymous_cache.rb:356:in `call’
rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context’
rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call’
actionpack (6.1.4.1) lib/action_dispatch/middleware/cookies.rb:689:in `call’
actionpack (6.1.4.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call’
activesupport (6.1.4.1) lib/active_support/callbacks.rb:98:in `run_callbacks’
actionpack (6.1.4.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call’
actionpack (6.1.4.1) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call’
actionpack (6.1.4.1) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call’
actionpack (6.1.4.1) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call’
logster (2.10.1) lib/logster/middleware/reporter.rb:43:in `call’
railties (6.1.4.1) lib/rails/rack/logger.rb:37:in `call_app’
railties (6.1.4.1) lib/rails/rack/logger.rb:28:in `call’
config/initializers/100-quiet_logger.rb:23:in `call’
config/initializers/100-silence_logger.rb:31:in `call’
actionpack (6.1.4.1) lib/action_dispatch/middleware/remote_ip.rb:81:in `call’
actionpack (6.1.4.1) lib/action_dispatch/middleware/request_id.rb:26:in `call’
lib/middleware/enforce_hostname.rb:23:in `call’
rack (2.2.3) lib/rack/method_override.rb:24:in `call’
actionpack (6.1.4.1) lib/action_dispatch/middleware/executor.rb:14:in `call’
rack (2.2.3) lib/rack/sendfile.rb:110:in `call’
actionpack (6.1.4.1) lib/action_dispatch/middleware/host_authorization.rb:92:in `call’
rack-mini-profiler (2.3.3) lib/mini_profiler/
sì, abbiamo fornito il super amministratore!
Solo per verificare: questo plugin è ancora funzionante o dovrei aggiungere un tag unmaintained / broken?
Ho aggiunto questo al mio file app.yml ma per qualche motivo non sta ancora installando libsodium. Cosa sto sbagliando?