面向开发人员的抽搐聊天机器人。
项目描述
符号机器人
基于 asyncio 的 python twitch 聊天机器人。
这个多功能的聊天机器人让对 Python 语言有一般了解的广播公司可以为他们的观众完全定制聊天体验。它作为一个框架,可以根据需要使用新的命令和媒体类型进行构建。由于其高度封装的结构,新添加的内容可以毫不费力地与其他广播公司共享。对于没有任何编程知识的广播公司,这个聊天机器人仍然提供了流行的聊天机器人(如nightbot)提供的大多数功能。
入门
- Symbot 需要
Python 3.7或更新,但仅使用标准库。 pip install symbot- 获取您的Twitch API 密钥。
- 输入您的频道名称、您的机器人名称和您的密钥
config.py。 - 输入您自己,如
"broadcaster" : "<name>"。environment.json - 为您自己和您的机器人授予
0.user_permissions.json - 熟悉
meta commands. python -m symbot
元命令
!命令
这是通过聊天管理命令的中心工具。
!command (操作) (名称) (内容) (设置)
operation必须add是edit或del。该add操作需要您输入content,同时edit可以更改命令的content和settings或仅settings。
del只需要命令的名称。
name不需要前缀。!hey工作得很好hey。
content指定命令将向您的聊天发送什么响应。它可以是任意文本,例如Hello there!,但您也可以使用特殊功能。这包括:
| 功能 | 用法 | 描述 |
|---|---|---|
| 多变的 | $v{var} |
在其中查找变量environment.json并返回其值。 |
| 柜台 | $c{var} |
在 中查找变量environment.json,将其递增并返回其新值。 |
| 争论 | $a{arg} |
指定调用命令时传递的参数。 |
| 用户 | $u{user} |
返回调用命令的用户名。 |
| 别名 | $alias{command} |
与另一个命令相同。 |
此外,您可以使用以下命令直接操作settings命令的一般性:
| 环境 | 用法 | 价值观 | 描述 |
|---|---|---|---|
| 权限级别 | -ul=val |
0,1,2,3,4 |
调用此命令所需的用户权限级别。 |
| 冷却 | -cd=val |
正整数 | 两次命令调用之间必须经过的最短时间(以秒为单位)。 |
| 启用 | -on=val |
true,false |
一般专门启用或禁用此命令。 |
请注意,这些是常规设置,与用户特定设置不同。这将在相应元命令的描述中解释。
settings是可选的。如果未指定,它们将被设置为默认值,因此除非有目的,否则不要更改它们。
| 例子 | 用法 | 回复 |
|---|---|---|
!command add !new this is a new command |
!新的 | 这是一个新命令 |
!command add !name my name is $v{broadcaster} |
!姓名 | 我叫简·多伊 |
!command add !count this command has been used $c{count} times |
!数数 | 此命令已使用 1 次 |
!command add !highfive $u{donor} gave $a{receptor} a virtual highfive |
!highfive 她自己 | 简·多伊给了自己一个虚拟的highfive |
!command add !neu $alias{!new} |
!neu | 这是一个新命令 |
!command add !cd you can do this every 5 seconds -cd=5 |
!光盘 | 您可以每 5 秒执行一次 |
!command add !cd try again in 5 seconds |
!光盘 | 请在 5 秒后重试 |
!command edit !cd try again in 10 seconds -cd=10 |
!光盘 | 请在 10 秒后重试 |
!command edit !cd -on=false |
!光盘 | |
!command del !name |
!姓名 |
!var
操纵你的environment. 有时您想通过聊天直接更改或检索变量。
!var (操作) (变量) (值)
operation必须get是set或del。只set需要你传递一个值。将尝试将新值强制转换为与旧值相同的类型。诸如此类的函数count需要特定的值类型(整数),因此更改值的类型会影响命令。
| 例子 | 用法 | 回复 |
|---|---|---|
!var get broadcaster |
广播公司有价值 Jane Doe | |
!var set count 20 |
!数数 | 此命令已使用 21 次 |
!var del count |
!数数 | 错误:未找到变量计数 |
!setcmdsetting
在 中管理您的用户设置command_settings。
!setcmdsetting (设置) (值)
对您的用户设置所做的更改仅适用于您的个人机器人实例,因此请使用!setcmdsetting而不是!command edit更改设置。这使得与其他广播公司共享命令变得更加容易。
| 环境 | 价值 | 描述 |
|---|---|---|
| 姓名 | str |
如果要更改命令的调用方式。 |
| 作者 | str |
技术上只是!purge暂时的。 |
| 权限级别 | 0,1,2,3,4 |
调用此命令所需的用户权限级别。 |
| 冷却 | int |
两次命令调用之间必须经过的最短时间(以秒为单位)。 |
| 启用 | bool |
临时启用或禁用命令。不删除它。 |
!setuserperm
在 中管理您的用户权限级别user_permissions。
!setuserperm (用户) (值)
permission levels用于控制谁可以做什么。元命令的权限级别一般为1,而标准命令的权限级别为3。权限级别2,4可用于允许使用可滥用的命令或拒绝命令垃圾邮件发送者。某些操作(例如删除命令)需要更强大的级别。
| 等级 | 团体 | 描述 |
|---|---|---|
| 0 | 广播公司 | 最强大的级别,可以完全控制一切。 |
| 1 | 版主 | 可以控制大多数元命令。 |
| 2 | 允许 | 可以控制可滥用的命令,广播公司信任此人。 |
| 3 | 随意的 | 默认用户级别。可以使用所有标准命令。 |
| 4 | 被封锁 | 被阻止使用大多数命令。 |
!清除
删除用户创建的所有命令。
!purge (用户)
如果您移开视线几分钟,并且有恶意的人创建了一堆现在需要删除的可疑命令,则存在这种情况。你会很高兴你可以用一个命令将它们全部删除。仅可用于权限级别0。
开发
如果您有兴趣在此框架中构建新事物,请注意该dev包。
commands是主要的大宗。其中包含通过聊天添加、编辑和删除的所有标准命令。命令是动态加载的自动生成的 python 模块。您可以在此处直接更改它们或手动创建新的。自动生成的命令可以很好地说明如何手动创建新命令。尽管Exceptionsfrom 命令调用不会使程序崩溃,因为它们“卡”在协程中,但最好避免它们并记录正在发生的事情。熟悉这些control元素及其提供的功能。
meta包含所有操纵命令和环境的元命令。它们比标准命令更复杂,并且是手动生成的。编写新的元命令需要了解整个结构。
media是目前最大的剩余建筑工地。未来的添加可能包含文本文件、声音文件、视频文件、投票、文本到语音、API 调用等的使用。命令可以使用媒体模块来生成效果或响应。
该框架可能需要扩展以实现更复杂的功能,并且可能会发生变化。该项目远未完成,但功能齐全。
请报告任何错误或疑虑。
未来的待办事项和命令或媒体创意
- 添加一个cli
- 添加优雅的 ctrl+C 关闭
- 添加演示模式
- 启用/禁用软件包
- 使用新的辅助控制器跟踪命令使用情况
- 正确的用户界面
- 自动设置广播者和机器人权限
- 添加 setvar 作为内容功能
- 歌曲请求
- 屏幕计数器
- 文字转语音
- 播放声音
- 播放视频
- 轮询
- 重复命令
- 正确的命令列表
- 清理环境未使用的变量
- 临时更改用户权限
- 适当的节制命令
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。