رخيص بشكل مثير للسخرية. لا يوجد الكثير من الأشخاص المهتمين بهذه الحالة الاستخدامية المستعدين لدفع المال مقابلها. يستغرق الأمر وقتًا للبحث في هذه الموضوعات وكتابة البرامج وصيانتها. هذا ليس مجانيًا ، وإذا لم يكن هناك العديد من العملاء ، فإن السعر يعكس ذلك.
القضية الأخرى هي: كلما انخفض السعر زاد طلب العملاء. ليس لدي الوقت الكافي للتعامل مع مشكلات الدعم والأسئلة من الأشخاص الذين دفعوا 25 دولارًا مقابل ذلك.
إذا كان لديك اقتراح حول كيفية جني الأموال وعدم التعرض للمضايقات أثناء البيع بسعر منخفض ، فيرجى إخباري.
نعم، أتذكر أنني تواصلت بشأن استخدام المكون الإضافي الخاص بهم، ويمكنني تمامًا أن أفهم سبب رغبتهم في فرض هذا السعر. أعرف أن العديد من المجتمعات يمكنها تحمل نقطة السعر هذه، لكنها ليست بالضرورة في متناول المجتمعات الصغيرة.
لقد انتهى بي الأمر بصنع حل خاص بي عن طريق الإضافة إلى روبوت Discord الخاص بي (يعتمد على Java نظرًا لأنني لا أعتقد أنه يمكنني القيام بذلك بسهولة بالكامل عبر مكون إضافي لـ Discourse، على الأقل ليس بعد)، والذي يحتوي على وظائف إضافية لبعض المنطق ثنائي الاتجاه. في المستقبل، آمل في جعل هذه الميزة متاحة للجمهور بمجرد الانتهاء من روبوت Discord الخاص بي، ولكن هذا سيعتمد على مقدار وقت الفراغ الذي لدي. إليك روبوتي أثناء العمل في حال أراد أي شخص إلقاء نظرة: https://p185.p2.n0.cdn.getcloudapp.com/items/4guZZEP1/b138570f-071c-4373-ada5-b7ed2cd63b26.mp4
أيضًا، إذا كان أي شخص مهتمًا بأن يكون مختبرًا تجريبيًا بمجرد أن أجعل هذا متاحًا للجمهور، فلا تتردد في إرسال رسالة مباشرة إليّ - ليس لدي تقدير زمني لموعد الانتهاء من شيء ما، ولكن قد أفكر في جعل هذا ميزة مستقلة إذا لزم الأمر.
هل تدرك أن إطار عمل لروبوت Discord Discourse موجود بالفعل هنا يمكنك نسخه وتعديله وتوسيعه؟ Discord Bot Construction Kit 🤖. يقوم بـ 99٪ من الأعمال الروتينية حتى تتمكن من التركيز على الجانب الوظيفي (حتى أنه يعمل على خادم Discourse الخاص بك لذا لا يلزم بنية تحتية إضافية). الميزات الحالية تعمل كدليل لأي شيء تريد إضافته.
سأقبل أيضًا طلبات السحب إذا توصلت إلى أي شيء مفيد للمجتمعات الأخرى.
أعتقد أنني رأيت ذلك - أنا فقط لست على دراية بلغة روبي، لذلك أضفت الميزة مباشرة إلى البوت الخاص بي الذي كنت أعمل عليه بالفعل لسنوات قبل استخدام ديسكورس. سأفكر بالتأكيد في تقديم طلب سحب (PR) لذلك، ولكن عندما كتبت هذه الميزة لمجتمعي كنت في عجلة من أمري، لذا كان تعلم لغة روبي خارج السؤال. سأفكر بالتأكيد في تعلم لغة روبي كلغة البرمجة التالية لي وتجربة هذا الأمر! ![]()
تعديل: شكراً أيضاً على ذكر أنه قابل للتخصيص بسهولة - لم أدرك ذلك في البداية. لقد شعرت بالرهبة عندما حاولت تعديل إضافة ديسكورس في المرة الأخيرة lol
امنح لغة روبي فرصة، إنها لغة برمجة ممتعة بالفعل ![]()
أواجه مشكلة أثناء اختبار هذه الإضافة بعد إعداد كل شيء، وأثناء الاختبار أحصل على خطأ في الأذونات.
Discordrb::Errors::NoPermission (ليس لدى البوت الإذن المطلوب للقيام بذلك!) lib/promotion.rb:136:in recalculate' app/models/group_user.rb:117:in recalculate_trust_level’
مرفق لقطة شاشة كمرجع:
هل يمكن لأحد مساعدتي هنا؟
هل أذونات بوت Discord الخاص بك مضبوطة بشكل صحيح؟ ستحتاج إلى أن يكون البوت أعلى من أي أدوار سيقوم بتعيينها، وستحتاج إلى امتلاك إذن إدارة الأدوار أو مسؤول في دور البوت.
نعم، لقد قدمنا جميع الأذونات بما في ذلك المسؤول، وإدارة الأدوار، وإدارة الألقاب.
هل هذا الدور أعلى من جميع الأدوار الأخرى التي سيتم تعيينها؟
هذا المكون الإضافي غير ممكّن على خادمنا، ولكنه يتسبب في حدوث أخطاء في السجلات.
خطأ 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/
نعم، لقد قدمنا المسؤول الخارق!
فقط للتحقق - هل لا يزال هذا المكون الإضافي يعمل أم يجب أن أضع عليه علامة unmaintained / #broken؟
لقد أضفت هذا إلى ملف app.yml الخاص بي ولكن لسبب ما لم يتم تثبيت libsodium بعد. ما الخطأ الذي أرتكبه؟