由 Notion 提供支持的 Twitch 聊天机器人
AchoBot 是我为自己构建的开源 Twitch 聊天机器人。它允许您使用 Notion 管理聊天机器人的命令: [](https://res.cloudinary.com/practicaldev/image/fetch/s--Nv-J32S---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// user-images.g
AchoBot 是我为自己构建的开源 Twitch 聊天机器人。它允许您使用 Notion 管理聊天机器人的命令:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--Nv-J32S---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// user-images.githubusercontent.com/2507959/152531729-8b117829-9965-41a6-9455-b10dbf4cda40.png)
它依靠 Notion Databases 的强大功能来管理命令响应、权限和文档。
目录
-
回购
-
特点
-
开发
-
试试看
-
流
回购
在这里查看回购👇
pawap90/acho-bot
🐶💬 由 Notion 提供支持的 Twitch 聊天机器人
[
](https://user-images. githubusercontent.com/2507959/152519862-b1d7116e-dade-4ed8-9ac5-f9eefeeff520.png)
使用 Notion 配置您的 Twitch 聊天机器人命令!
- 特点
*从 Notion管理您的 Twitch 聊天机器人
*为每个命令分配权限
*特定用户权限
*命令查看
*脚本命令
*单账户
*状态视图
*内置命令
*占位符命令
- 快速入门
*依赖
*开发
*测试
*扩展它
*环境变量
特点
从 Notion 管理您的 Twitch 聊天机器人
在 Notion 数据库中添加、更新或删除命令。当观众调用命令时,AchoBot 将使用来自 Notion 的信息来回答您的观众。
为每个命令分配权限
该数据库包含一个Permissions
列,您可以在其中指定谁可以调用每个命令。将其留空,每个人都可以访问它 该列接受以下一个或多个值:
-
播音员
-
主持人
-
订户
-
查看器
特定用户权限
您还可以创建只能由单个特定用户调用的命令。为此,请使用值usr:<username>
,例如:usr:paulasantamaria
条指令
...
在 GitHub 上查看
特点
以下是完整的功能列表:
从 Notion 管理您的 Twitch 聊天机器人
在 Notion 数据库中添加、更新或删除命令。当观众调用命令时,AchoBot 将使用来自 Notion 的信息来回答您的观众。
为每个命令分配权限
该数据库包含一个Permissions
列,您可以在其中指定谁可以调用每个命令。将其留空,每个人都可以访问它。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--YWJFHQVv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/l0mw0ssl8od0tcv5ne97.png)
特定用户权限
您还可以创建只能由单个特定用户调用的命令。为此,请使用值usr:<username>
,例如:usr:paulasantamaria
命令视图
导航到/commands
以获取每个公共命令的列表。您的观众可以使用它来查看可用的命令。
此外,您可以导航到/commands?mode=image
以获取可以添加到 Twitch 面板的可供下载的图像。
[上的每个公共命令的表格](https://res.cloudinary.com/practicaldev/image/fetch/s--bMQMVbS1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto% 2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y2pj9tqs8xlrfl5cu4ty.png)
脚本命令
您可以在“类型”列中指定命令的类型。可用选项有:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--7lWXOTWK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/pu8lnfos1grku1bpdovr.png)
文本命令返回纯文本响应。例如:“欢迎来到直播间”。
脚本命令可以实现一些逻辑(JavaScript)并接收参数。
例如,想象以下命令!say <text>
:
(context) => {
const textToPrint = context.params.text;
return `You said: ${textToPrint}`;
}
进入全屏模式 退出全屏模式
当查看器调用它时:!say hello
输出:You said: hello
此功能是新功能,但仍有一些限制和问题。在 Notion DB 单元中编写代码并不理想 😅。
单账户
聊天机器人服务仅适用于环境变量中指定的帐户和频道。
如果任何其他帐户尝试使用聊天机器人授权端点登录,它将收到授权错误。
该服务目前并未设计用于处理多个帐户。这是一个限制,但它也使服务的托管和配置更容易。
状态视图
使用状态视图查看您的机器人的 Twitch 帐户是否已正确授权。
您可以在 OBS 中使用此视图来获取有关您的聊天机器人状态的实时反馈(它每分钟自动更新)。
内置命令
内置命令是在代码库而不是 Notion 中定义的。它们通常需要更多的逻辑和对 Notion 命令不可用的资源的访问。当前,您可以使用两个内置命令:
-
!help
打印可用命令的列表。 -
!refresh
使命令缓存失效,所以下次触发命令时,应用需要到 Notion 去检索命令,从而更新到最新版本。仅适用于广播员和版主。
占位符命令
有些命令是通过代码触发的,但在 Notion 中定义。这允许 AchoBot 对某些事件(如用户登录或订阅)做出反应,同时还允许每个用户指定他们希望 AchoBot 在每种情况下执行的操作。
现在,唯一的占位符命令是:
!welcome
:当AchoBot在流开始后立即加入聊天室时执行。如果您在机器人登录时在 Notion 中定义此命令,它可以打个招呼并在聊天中留下一些相关信息。例如,“嗨,我是 AchoBot!输入 !help 看看我能做什么”。
发展
AchoBot 在 Node.js 上运行。它是使用 TypeScript 开发的,并使用 Nodemon 来运行开发服务器。它依赖tmi.js来连接 Twitch 的聊天并与之交互。
工作原理
服务启动后,AchoBot 从 Notion(和其他来源)检索命令并将它们存储在缓存中。当查看器执行命令时,我们在缓存中搜索并执行它以生成响应:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--uvbfQult--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/yxacjea2w0q16ab1jn8n.png)
可扩展
该项目旨在易于扩展。它使用命令模式来定义命令列表。您可以根据您的目标使用不同的策略扩展此列表。了解更多:扩展 AchoBot
试试看
以下是有关如何运行 AchoBot 的详细分步指南:AchoBot 设置 - 完整指南
流
我在直播中开发了这个聊天机器人。如果您对 现场编码会议 感兴趣,请加入我,我将在其中试验 不同的技术堆栈并构建 开源软件!
👉 twitch.tv/paulasantamaria
现在,我正在使用 Svelte-kit、markdown 和 TailwindCSS 开发一个新的产品组合。
更多推荐
所有评论(0)