Skip to main content

面向开发人员的抽搐聊天机器人。

项目描述

符号机器人

基于 asyncio 的 python twitch 聊天机器人。

这个多功能的聊天机器人让对 Python 语言有一般了解的广播公司可以为他们的观众完全定制聊天体验。它作为一个框架,可以根据需要使用新的命令和媒体类型进行构建。由于其高度封装的结构,新添加的内容可以毫不费力地与其他广播公司共享。对于没有任何编程知识的广播公司,这个聊天机器人仍然提供了流行的聊天机器人(如nightbot)提供的大多数功能。

入门

  1. Symbot 需要Python 3.7或更新,但仅使用标准库。
  2. pip install symbot
  3. 获取您的Twitch API 密钥
  4. 输入您的频道名称、您的机器人名称和您的密钥config.py
  5. 输入您自己,如"broadcaster" : "<name>"environment.json
  6. 为您自己和您的机器人授予0.user_permissions.json
  7. 熟悉meta commands.
  8. python -m symbot

元命令


!命令

这是通过聊天管理命令的中心工具。

!command (操作) (名称) (内容) (设置)

operation必须addeditdel。该add操作需要您输入content,同时edit可以更改命令的contentsettings或仅settingsdel只需要命令的名称。

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必须getsetdel。只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 作为内容功能
  • 歌曲请求
  • 屏幕计数器
  • 文字转语音
  • 播放声音
  • 播放视频
  • 轮询
  • 重复命令
  • 正确的命令列表
  • 清理环境未使用的变量
  • 临时更改用户权限
  • 适当的节制命令

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

symbot-0.1.1.tar.gz (35.4 kB 查看哈希

已上传 source

内置分布

symbot-0.1.1-py3-none-any.whl (44.4 kB 查看哈希

已上传 py3