为SmallD bot添加单击支持。
smalld-click的Python项目详细描述
小点击
SmallD Click是SmallD的扩展,它允许使用 ClickCLI应用程序作为不一致机器人程序。在
安装
使用pip安装:
$ pip install smalld-click
示例
^{pr2}$对于这个CLI示例,如果用户发送消息“+++hello--count=2”,那么bot将询问用户- 通过在同一个频道中发送一条信息——他们的名字是“你的名字:”。在
例如,如果用户回答“lymni”,bot将发送两次消息“Hello lymni”。在
请注意,尽管我们多次调用click.echo
,但bot只响应一条消息,而不是两条消息。
这是因为对echo的调用是缓冲的。但是,调用prompt将导致刷新此缓冲区及其
内容立即发送。在
bot等待用户消息的时间也有一个超时,如果超过超时,bot将 只需删除命令的执行。在
例如,多个命令以不同的名称运行(即没有通用的基本命令名) 参见multicommands bot。在
指南
SmallDCliRunner(smalld,cli,prefix="",name=None,timeout=60,create_message=None,executor=None)
SmallDCliRunner
是运行CLI应用程序的核心类。在
smalld
bot的SmallD
实例。在cli
用于运行命令的click.Command
实例。在prefix
每个命令调用都必须以这个字符串开头。在name
CLI应用程序的名称,默认为cli.name
。可用于更改命令的名称, 或者通过传递空字符串将其完全删除。与前缀一起使用,以确定哪些消息 将其视为对CLI应用程序的调用。在timeout
bot等待用户响应提示的时间(秒)。在create_message
为discord的create message路由创建消息负载的回调。 默认情况下,文本在有效负载的content字段中按原样发送。在executor
用于执行命令的concurrent.futures.Executor
的实例。默认情况下, 这是一个concurrent.futures.ThreadPoolExecutor
。在
此类的实例应用作上下文管理器,以修补单击函数并正确关闭 机器人停止时的执行器。在
Conversation(runner,message)
表示命令调用的状态。保存运行器实例和消息负载。 还可以管理用户和CLI应用程序之间的交互。在
每次提示后,消息都更新为用户发送的最新消息。在
get_conversation()
返回当前对话。只能在命令处理程序内部调用。在
修补功能
您可以直接使用click.echo
,和click.prompt
来发送/等待消息。在
使用hide_input=True
隐藏的提示将被发送到用户DM,并在那里继续对话。在
注意,echo和prompt将在与触发命令调用的消息相同的通道中发送消息。在
对echo的调用被缓冲。当缓冲区被刷新时,它的内容以2K块的形式发送(由discord设置的限制) 当出现提示、命令完成执行或内容时,可以自动刷新缓冲区 在缓冲区中超过2K限制。在
也可以通过将flush=True
传递给click.echo
调用来刷新缓冲区。在
致谢
由Princess Lana提出的创意。在
贡献
- Tox用于运行测试。
- 运行
tox -e
以运行安装的python版本的测试 - 运行
tox -e fmt
格式化代码
- 运行
- Conventional Commits用于提交消息和请求请求
显影
Tox用于在使用SmallD Click时设置和管理虚拟环境
要运行测试:
$ tox
要运行示例greet bot:
$ tox -e run -- examples/greet.py
- 项目
标签: