基于SmartQQ协议,使用Java开发的QQ机器人。
入口main方法位于sb/Gate
已编译文件为target/eventprocessor.jar
,运行方法:
java -jar eventprocessor.jar
然后扫描生成的qrcode.png
即可登录。
groups.txt
为启用机器人的群名称,一行一个关键字。如淀粉
将会匹配群名称中包含淀粉二字的所有群。
script
文件夹存放JavaScript脚本。
命令应以sb#
开头
sb#close
关闭机器人 (仅私聊)
sb#short <网址>
使用url.cn
将给出的网址缩短。
sb#baidu <搜索词>
使用lmbtfy.cn
生成页面并使用url.cn
缩短。
sb#emotion <语段>
使用腾讯语义识别API分析语段的积极度与消极度。
sb#say <文本>
命令机器人发送给出的文本内容。
sb#load script
重载所有脚本。
sb#load group
重载groups.txt
。
脚本应命名为<文件名>.js
放置于script
文件夹下。
脚本必须包含一个且只有一个onMessage(obj)
函数,obj
是程序传入脚本的对象。
如果你发现调用示例脚本时QQ输出乱码,多半是编码问题导致的(因为写代码是在macOS上)。Windows用户请用Notepad++将脚本编码改为ASCII
(int)obj.type
当前消息类别。1=私聊;2=群聊;3=讨论组。
(long)obj.userId
当前发消息用户的ID
(long)obj.groupId
当前发消息群的ID,无则为null
(long)obj.discussId
当前发消息讨论组的ID,无则为null
(String)obj.content
当前消息内容
(String)obj.command
当前命令内容。命令即以sb#
开头的文本,如消息内容为sb#test
则obj.command
为test
。无则为null
(String)obj.commandKey
当前命令头,无则为null
(String)obj.commandArgument
当前命令参数,无则为null。如消息内容为sb#say hello
则obj.commandKey
为say
,obj.commandArgument
为hello
(function)obj.send(String content)
通过此函数发送内容到接收消息的私聊/群/讨论组。
script
文件夹下有一些示例脚本。
example.js
输入命令sb#testscript
会发送I'm working
ha.js
膜蛤检测,检测到即发送-1s
bracket.js
自动闭合别人未闭合的括号,如遇到蛤蛤(逃
会回复)