kukume / kukubot

A bot.
183 stars 36 forks source link

建议:自定义行为 #37

Closed nailu0 closed 3 years ago

nailu0 commented 3 years ago

希望机器人能够自定义一些行为,以满足用户的需求. 比如,向机器人发送/command,他就可以帮我执行某个我自定义的一个shell脚本, 用户可以把所需要的做的事情写在shell脚本中就可以了. 如果机器人还可以根据发送者的身份选择是否执行,那就更好了. 由于本人不是很熟悉Java,所以只能提一个issue了,很抱歉 :(

kukume commented 3 years ago

是把shell命令跟在指令后面让机器人执行,还是执行某些设置好的命令

nailu0 commented 3 years ago

执行某些设置好的命令,比如可以加一个配置文件,内容如下:

ALL           COMMAND1                  /path/demo1.sh
123456     COMMAND2                  /path/demo2.sh
456789     COMMAND3                 /path/demo3.sh

第一个字段表示可以执行此命令的用户,ALL就表示所有人 第二个字段表示命令名称,当用户发送/开头的消息时,机器人就会查找配置,执行相关命令,如果没找到不返回任何信息 第三个字段表示脚本所在路径。

kukume commented 3 years ago

执行命令的用户设置成管理、超管、主人限制?

nailu0 commented 3 years ago

差不多。 这个功能可以认为是机器人的一个附加功能,用户可以在不直接修改源代码的情况下自定义一些行为。 个人的一个小小的想法吧,如果有更好的实现欢迎指正。:)

kukume commented 3 years ago

需要接受脚本返回结果吗,还是只需要执行就行了

nailu0 commented 3 years ago

听起来不错,可以根据脚本的返回值确定是否正常执行。如果是0则返回一段消息,表示正常执行了,如果是非0,就返回一段消息,表示发生了错误。

kukume commented 3 years ago

只是脚本的话有点太限制了,我准备存储shell命令,如果是脚本的话直接bash xxx.sh就行了, 然后输入这个命令之后,是机器人发送脚本的输出信息,还是只是单纯的发一句脚本执行成功了?

nailu0 commented 3 years ago

如果直接这样执行会不会有安全问题?用户可以直接通过kukubot执行一些我们未定义的命令?

kukume commented 3 years ago

不是执行某些设置好的命令吗,用户只可以选择执行设置好的命令,设置将只能由机器人主人设置

nailu0 commented 3 years ago

用户可以写自己的脚本,比如python,这个脚本负责执行真正的事情,再写一个bash脚本去调用此脚本,最后kukubot只执行这个shell脚本就行了?

kukume commented 3 years ago

可以让任意用户加入脚本内容?那样不一样会有安全问题吗,比如直接来个关机。

nailu0 commented 3 years ago

控制行为逻辑的脚本应该由机器人所有者写,由他本人放到服务器中,并配置kukubot,其他用户只能执行命令,类似于/command,普通用户无法知道到底实际执行的脚本是什么,也无法修改。

kukume commented 3 years ago

嗯,命令设置由机器人主人进行设置,然后用户可以发送命令来执行。

kukume commented 3 years ago

https://img.kuku.me/images/2021/02/24/Ick4e.png 应该是可以了。

kukume commented 3 years ago

https://file.kuku.me/kuku-bot/2021-02-24/ 去这里下载最新版本试试吧