Discord Bot 构建套件 🤖

抱歉,这是老式论坛的说法,Threads 是 Discourse Topics,而不是 Discord Threads。

我很乐意为自定义功能付费,但我认为我找到了一个解决方法,只需在创建主题后移动它 :thinking: 我觉得这太简单了。

Discord threads 存在于 2 年前?天哪,我老了 :laughing: 失去时间感。

但是,是的,我想知道添加图像和提及支持是否容易 :thinking:

给我一份报价 :wink:

image


1 个赞

是的,请继续在 Discourse 上进行此对话!

我也正在实施此插件以与 Discord 服务器同步!

这是否意味着 Discord 中的角色会复制到 Discourse?还是反之?最终,无论如何都应该允许这两种选项。

1 个赞

期待您的PR

1 个赞

像我的吗?PR?什么PR?

@merefield 嗨!这项工作做得太棒了。我相信很多人和我一样,都是通过搜索插件或机器人来寻找能够以某种方式连接 Discourse 和 Discord 的工具,从而找到这篇文章的。

此时我正要放弃,准备雇佣一名开发者为我处理这件事,但我相信开源的力量,也很庆幸我先发现了这个话题。

在我帮助管理的一个 Discord 社区中,有来自不同作者的多个库,他们的社区有所重叠,因此他们使用该 Discord 和相关频道来为该库提供技术支持。

从 SEO、知识库构建和便利性的角度来看,理想的解决方案是让每个人都使用 Discourse 论坛,但在其他条件相同的情况下,人们更喜欢在 Discord 上提问,而响应方则需要找到一些手动方法将对话复制到 Discourse 中。

为了解决这种效率低下且不强迫用户接受糟糕的用户体验(例如,“欢迎来到 Discord,现在请使用 Discourse 并重复同一个问题”)的问题,我希望能够让每个库频道的帖子都有潜力在 Discourse 论坛中自动生成新主题。这会很快变得垃圾信息泛滥,所以我想让它仅在以下情况下触发:

  1. 它变成了一个线程(这意味着它是一个被实际回复过的问题)

  2. 它被授权角色(技术支持、版主、管理员等)用选定的表情符号回复

从那时起,该 Discord 线程中的任何后续回复都会被自动跟踪并作为回复发布到同一个 Discourse 父主题中。(注意:用户账户的存在并不重要——以“系统”或指定机器人的身份发送是可以接受的,只要它在帖子的正文中提及了它起源的用户名)

根据这些要求,我有几个问题:

  1. 这个话题中的机器人是否已准备好应对这种情况?

  2. 如果没有,哪些部分尚未准备好或尚未计划?(我看到线程是“正在进行中”的事情,但如果这是财务优先级的问题,我可以发布一笔丰厚的赏金来实现它)

  3. 如果需要为开发发布赏金,委托开发的合适方式是什么?要求和期望是什么(成本、时间表等)?

感谢您(以及所有人!)迄今为止所做的工作,并期待您的及时回复。

~carrot

@carrotcypher

这个免费插件由我(作为 Pavilion 的一部分)尽力维护。

没有路线图,功能开发只有在有外部赞助商时才会进行。

你的用例很有趣。

这个“机器人”依赖于 这个 Ruby gem,这是一个关键的依赖项。

它还没有在官方版本中支持多线程,但看起来主分支已经添加了一些支持,但我不知道程度如何,这本身就需要一些工作来弄清楚,也许在他们计划发布时与他们讨论。他们的文档只在每次发布时更新。仅仅在主分支上支持是不够的,他们需要更新 gem,最好是这样。

如果你对这个项目是认真的,我建议你首先与 Pavilion 的项目管理团队讨论这个项目,当然你也可以在 Marketplace 中发帖。

请访问这里并点击联系,然后按照说明操作:https://pavilion.tech/solutions/

1 个赞

@merefield 您好,我安装了该插件,但无法让机器人响应我服务器上的命令。
它正确显示了“Discourse 管理机器人已开始工作!”消息,但之后它没有任何反应。

奇怪的是,当我直接在 Discord 上给它发送消息时,它却能正常工作。我已经检查了服务器上的权限,它们似乎配置正确(我给了机器人管理员权限)。

奇怪,我在最新的 Discourse 上检查过,它确实是这样的。

你在 Discord 中输入 Ping!(注意大小写)时会发生什么?

检查一下你的日志,有没有看到任何错误消息?

它不响应 Ping!(但它在私信中有效)

日志

您的设置中的令牌似乎有些问题。

您是否输入了特殊字符,或者根本没有输入?

image

我放弃了。我认为它本来就不适合我的用例。
我不知道为什么它不起作用。我仔细地做了好几次。
也许 Discord 出了什么问题?
总之,感谢你试图帮助我。

1 个赞

您试图在功能上做什么?

是的,这是一个很好的解决方案,所需的命令是:

::DiscordBot::Bot.discord_bot.stop

这将停止 Rails 控制台会话中的附加机器人,并使当前主服务器的机器人保持运行。

@satonotdead 你可能会喜欢这个解决方案。

我已将此信息添加到 OP。

2 个赞

抱歉,我回顾了一下这里的帖子,发现我给了您错误的建议,并且我已经实现了响应 Discourse 事件的钩子,这些钩子可以在 Discord 中运行。其中一些可能对您已经有用,并且这种技术可以扩展到其他事件:

1 个赞

感谢我的赞助商,并感谢 @RGJ 的额外帮助,我为您带来一些重要更新:

  • 功能;通过扩展和改进现有的 !disccopy 命令,轻松将离散的 Discord 线程复制到 Discourse。
  • 改进:使插件与最新的 discordrb 代码(3.5.0)保持同步。
  • 功能:添加了多站点支持(感谢 @RGJ!!)。
  • 功能:如果令牌更改或启用,则重启机器人线程(因此您无需重启主机服务器)(再次感谢 @RGJ!!)。

@klausagnoletti@Fma965,通过这次 API 更新,我们终于能够通过 API 与 Discord 线程进行交互,它们本质上是额外的“频道”。

2 个赞

啊,终于好了!

添加了有效的检查,以防止机器人在不合适的进程点启动*!

您将不再在以下情况下启动新机器人:

  • 迁移数据库更改
  • 打开 rails 控制台(因此现在无需停止它)。

因此,机器人重建的聊天量减少了至少 50%,所以它现在应该只宣布自己两次 :sweat_smile:

如果此最新更改有任何问题,请告知我。

感谢 @RGJ 的建议! :pray:

\u003csup\u003e*大部分情况! :slight_smile:

1 个赞

我只是想说我最近:

  • 修复:修复了消息的自动同步 Discord → Discourse,这似乎自上次更新以来一直中断!!
  • 功能:增加了对 Discord Embed 自动同步的支持级别。

请享用!

您好,脚本做得很好!感谢您制作这个。我有几个问题……机器人多久同步一次角色中的成员?我刚刚设置了 Discourse,这是我安装的第一个插件之一。我在 www 上创建了一个组,添加了自己,如果我手动输入 !discsync,它会很好地在我的名字上添加 Discord 标签,现在如果我将自己从 www 上的组中移除,或者添加其他人……除非我在 Discord 上手动输入 !discsync,否则什么都不会发生。这是预期的,还是应该每隔几分钟同步一次,比如每 10 分钟一次?

这是手动操作的。

你可以看看这个分支:Discord Sync: sync a Discourse forum with a Discord server

欢迎提交一个更自动化的解决方案的拉取请求,或者你可以雇佣我来处理它,或者在 Marketplace 频道发布。

毕竟,它是一个“工具包” :slight_smile: