本页面目录

1.头标注
2.内联函数
3.事件列表

1.头标注

//[event: 事件] 这里响应事件,事件列表见下文
//[rule: 规则] 匹配规则,多个规则时向下依次写多个[rule:规则]
//[cron: 定时] cron定时,如:*/1 * * * *,推荐5位域,秒位可选,6位位域也可但可能存在部分系统不兼容问题
//[admin: true或false] 是否为管理员指令 
//[disable: true或false] 禁用开关,true表示禁用,false表示可用
//[priority: 123] 优先级,数字越大表示优先级越高
//[server: xxx] 
//[bypass: true或false]是否交由旁路进行处理,即不影响其他流程的正常处理,多用于拦截所有消息的插件如拦截规则为[rule: ?]
//[imType:qq,wx] 白名单,只在qq,wx生效
//[imType+:qq,wx] 同上,不写+号默认为白名单模式
//[imType-:qq] 黑名单qq,除了qq生效
//[userId+:id1,id2] 同样支持黑白名单模式
//[groupId+:id1,id2] 同样支持黑白名单模式
以下为上传云插件所需的头注
//[tile: 名字]要与文件名相同,也可以不加,上传aut云时会自动将文件名设置为此头注
//[author: 作者]作者,可以自定义,不定义的话,上传时会增加为aut云注册的用户名,收费插件一定要填写aut云账号
//[version: 1.0.0] 版本格式:1.0.0,不定义的话,上传时会自动增加此头注,默认为1.0.0 
//[class: 分类]建议从工具类、查询类、娱乐类、餐饮类、影音类、生活类、图片类、游戏类等中选择,也可自定义
//[platform: qq,wx,tg]适用的平台 qq\wx\tg\wxmp之间选择,中间用英文逗号隔开
//[public: true] 是否公开发布?值为true 或 false,不定义的话,上传aut云时会自动设置为true
//[price: 0.5] 上架价格
//[service: 售后联系方式]售后联系方式,service不完整,将不会审核上架
//[description: 关于插件的描述] 使用方法尽量写具体

2.内联函数


call(param)//参数有version(获取当前autMan版本),machineId(获取机器码),uuid(生成随机uuid),md5(对字符串计算md5),timeFormat(定义时间格式))
示例:
version=call("name")()//获取当前autMan机器人昵称
version=call("version")()//获取当前系统版本
machineId=call("machineId")()//获取当前机器码
qqbots=call("qq_bots")()//获取当前对接到autMan的所有QQ机器人id集合
uuid=call("uuid")()//获取一个随机uuid
md5=call("md5")(str)//获取str的md5值
time=call("timeFormat")("yyyy-MM-dd hh:mm:ss")//按格式输出当前系统时间
time=call("unixTimeFormat")(second,nanosecond,"yyyy-MM-dd hh:mm:ss")//将unixtime按格式输出

cancall(param)//检查是否可调用某函数,返回布尔值

coffee()//检查autMan咖啡码是否有效

//网络请求函数
request({
	useproxy: true/false,//是否使用代理
	proxyAddr://代理地址,支持http\sock5代理。不设置则根据useproxy情况使用系统代理,设置则使用自定义的代理。
	url: "xxx",//地址
	headers:{//请求头
		"User-Agent":"xxx"
		"Content-Type":"xxx"
	},
	method: "post",//网络请求方法get,post,put,delete,head,patch
	dataType: "json",//数据类型json(json数据类型)、location(跳转页)
	body:{//请求体
		code: xxx,
	},
	formData:{//请求参数
		key1: xxx,
		key1: xxx,
		key1: xxx,
		key1: xxx,
	},
	fileData:{//post时有效,携带文件,第一个参数xxxfile1是表单的字段名,第二个参数xxxxx是需要发送的文件名或者文件路径
		"xxxfile1":"xxxxxx",
		"xxxfile2":"xxxxxx",
		"xxxfile3":"xxxxxx",
	},
	timeOut: //单位为毫秒ms,也可以都小写timeout
},function(error,response,header,body){
	//网络请求处理函数
})
//另一种使用方式
body=request()

//信息推送函数
push(
	{
		imType: 'qq',
		groupCode: 'xxxxxxxx'或者chatID: 'xxxxxxxx',
		userID: 'xxxxxxx',
		content: 'xxxxxxxx',
	}
)

//定时指令或定时消息
cron.get()//获取所有定时
cron.get(id)//获取序号为id的定时指令,id为number类型
cron.add({//添加定时指令
	cron: "*/5 * * * *",									//定时
	cmd:'export varient="abc"',								//内容
	toSelf:true,										//定时指令自处理,如果是定时发送消息,此处为false
	toOthers:"qqgroup:123,wxgroup:456,tggroup:789,qqindiv:321,wxindiv:654,tgindiv:987"	//定时消息,如果是定时自处理指令,此处为空
})
cron.update({//更新定时指令
	id:3,
	cron: "*/5 * * * *",
	cmd:'export varient="abc"',
	toSelf:true,
	toOthers:"qqgroup:123,wxgroup:456,tggroup:789,qqindiv:321,wxindiv:654,tgindiv:987"
})
cron.delete(id)//删除定时指令
//知识库
reply.get()//获取所有知识库
reply.get(id)//获取某个知识规则
reply.add({
	rules:["test1","test2"]
	content:"reply test"
})
reply.update({
	id:3
	rules:["test1","test2"]
	content:"reply test"					
})
reply.delete(id)//删除某条知识
						

waitPay(timeOut,exitCode)//等待微信支付(支持微信赞赏码、微信收款码、微信转账,暂不支持微信红包),timeout为超时时间,单位毫秒
is=atWaitPay()//判断当前是否处于等待微信支付的状态
示例
pay=waitPay(120000)//等待支付2分钟,pay为JSON数据
pay=waitPay(120000,"q")//等待支付2分钟,期间用户输入q会主动退出“等待支付”进程。

Delete()//删除用户信息

//二维码
url=encodeQR(content,size)//生成二维码,size是二维码图片大小单位像素
content=decodeQR(url)//将url二维码解析出内容

//下载网络图片
img=imageDownload(url)//下载到默认路径,url支持http网络图片路径,支持“base64://”开头的base64字符串图片,支持data:image开头的base64图片,支持本地路径的图片
img=imageDownload(url,path)//下载到指定目录
返回值:
img["suceess"]下载成功与否,
img["local"]图片本地存储位置,
img["url"]图片在autMan的网络地址,
img["base64"]图片的base64字符串,

//使用aut云1分钟图床
/*********************************************** 这个是上传base64格式图片,获取url地址,限制5M ***********************************/
username=bucketGet("cloud","username")
password=bucketGet("cloud","password")
ib=encodeURIComponent("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAXCAIAAACeQxh6AAAAMUlEQVQ4EWP8//8/AzUAEzUMAZkxahDhkBwNo9EwIhwChFWMpqPRMCIcAoRVUC0dAQAx7QMrXoq/sgAAAABJRU5ErkJggg==")
body=request({
    url: "http://aut.zhelee.cn/imgUpload",
    method: "post",
    dataType: "json",
    formData:{
        username:username,
        password:password,
        imgBase64:ib
    },
})
sendText(JSON.stringify(body))
/************************************************** 这个是上传图片file,获取url地址,限制5M************************************/
username=bucketGet("cloud","username")
password=bucketGet("cloud","password")
body=request({
    url: "http://aut.zhelee.cn/imgUpload",
    method: "post",
    dataType: "json",
    formData:{
        username:username,
        password:password,
    },
    fileData:{
        imgfile:"/root/autMan/xxxx.jpg"
    }
})
sendText(JSON.stringify(body))

//画清单图
drawList()
//无行图标清单图
img=drawList({
	text:{
		texts: msgs,
	}
})
//带行图标的清单图
img=drawList({
	icon:{
		images: icons,
	},
	text:{
		texts: msgs,
	}
})
//绘制复杂参数的清单图
img = drawList({
            //背景
            "background": {
                "color": { r: 255, g: 255, b: 255, a: 255 },//背景底色,默认为白色
                "image": "jdicons/foot.jpg"//背景图,支持本地相对路径、网络url、base64编码字符串图片(非必要)
            },
	    //行图标
            "icon": {//必需的
                "images": icons,//字符串数组,图标类型支持path本地相对路径、url网络图版、base64编码图片
            },
	    //行文字
            "text": {//必需的
                "color": { r: 0, g: 0, b: 0, a: 255 },//文字颜色,r红基色,g绿基色,b蓝基色,a透明度,非必需,默认为黑色
                "size": 48,//文字大小,非必需,默认为48
                "texts": msgs,//文字内容,必需的。
            },
	    //图头
            "head": {
                "image": "jdicons/head.jpg"//图片头(非必要)
            },
	    //图尾
            "foot": {
                "image": "jdicons/foot.jpg"//图片尾(非必要)
            }
 })
返回值img:
img["suceess"]下载成功与否,
img["local"]图片本地存储位置,
img["url"]图片在autMan的网络地址,
img["base64"]图片的base64字符串,

//以下为时间函数参数sec为unix秒数,nsec为纳秒,后面的时间格式yyyy为年,MM为月份,dd为日期,hh为12小时制,HH为24小时制,mm为分,ss为秒,如:"yyyy-MM-dd hh:mm:ss"
timeFmt(format,second,nanosecond)//按照format格式输出系统当前时间
//使用样例
timeFmt()//输出当前系统时间,格式默认"yyyy-MM-dd hh:mm:ss"
timeFmt(format)//输出时间,格式自定义,yyyy为年,MM为月份,dd为日期,hh为12小时制,HH为24小时制,mm为分,ss为秒,如:"yyyy-MM-dd hh:mm:ss"
timeFmt(format,second)//second为unix时间戳,即从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数
timeFmt(format,second,nanosecond)//nanosecond为纳秒,取值范围[0-999999999]


unixTimeFmt(sec,nsec,format)//按照format格式输入unix时间

GetUserID()//获取当前会话用户ID
GetContent()//获取当前会话用户发的信息内容
GetChatID()//获取当前会话群ID
GetImType()//获取当前会话的渠道,返回qq,wx等
ImType()//同上
GetUsername()//获取当前会话用户名
GetChatname()//获取当前会话群名称
GetMessageID()//获取当前信息ID
GetMessageByID(id)//通过信息id获取最近的消息
RecallMessage(messageID)//撤回信息,参数为信息id
notifyMasters(content)//将信息发送给管理员

//用户输入
input(waitTime,recallTime,"group")//等待用户输入,参数为等待用户输入时间(单位毫秒)、撤回“用户输入信息”的时间(单位毫秒)、group表示开放任意群成员输入,返回用户输入的信息
使用样例:
msg=input(60000)//表示等待用户输入,等待用户输入时间为60秒
msg=input(60000,60000)//表示等待用户输入(60秒),用户输入后60秒撤回,recallTime为0表示不撤回
msg=input(60000,60000,"group")//表示等待群内任意用户的输入

breakIn(content)//将信息送入对应的处理通道进行处理

//关于邮件
EmailSet({
	"host":"smtp.qq.com",
	"port":25,
	"user":"xxx@qq.com"
	"pwd":"xxxxxxx"
})
EmailSend({
	"addresses":["xxx@qq.com","xxx@qq.com"],
	"subject":"邮件标题",
	"body":"邮件内容",
})

//调试
Debug()//输出调试信息
Info()
Warn()
Error()
console.debug()
console.info()
console.warn()
console.error()
console.log()

GroupKick(userid,reject_add_request)//踢群,参数分别为用户id,是否拒绝再次加群请求
GroupBan(userid,duration)//禁言,参数分别为用户id,时长
GroupWholeBan(true/false)//true表示群禁言,false表示群解禁
GroupInviteIn(userid,chatid)//当前仅支持可爱猫、西瓜、千寻等部分微信框架
GroupNoticeSend(content)//当前仅支持go-cqhttp群内发公告
sleep(waitTime)//睡眠一段时间,单位毫秒
isAdmin()//返回当前会话是否为管理员
set(key,value)//存储key,value
param(integer)//获取匹配规则里规定的第几个匹配值
get(key)//获取otto桶key的值
bucketGet(bucket,key)//获取bucket桶的key值
bucketKeys(bucket,value)//通过值反查key,返回的是key的数组
使用样例:
bucketKeys()//返回otto存储桶内所有的key值
bucketKeys(bucket)//返回bucket存储桶内所有的key集合
bucketkeys(bucket,value)//返回bucket存储桶内所有值为value的key集合

bucketAllKeys(bucket)//获取桶内所有的key
bucketSet(bucket,key,value)//设置bucket桶的key的值为value
bucketDel(bucket,key)//删除bucket桶的key值
sendText(text)//给会话用户发送信息
image(url)//将图片url转换为CQ码格式

msg=spread(msg)//转链,当信息中含有京东、淘宝、拼多多短链时,会自动转换成自己的短链。前提是“返利排错”正常

sendImage(url)//发送图片,参数为
1.绝对路径,例如 file:///C:\\Users\Alice\Pictures\1.png,格式使用 file URI
2.网络 URL,例如 https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png
3.Base64 编码,例如 base64://iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAIAAADJt1n/AAAAKElEQVQ4EWPk5+RmIBcwkasRpG9UM4mhNxpgowFGMARGEwnBIEJVAAAdBgBNAZf+QAAAAABJRU5ErkJggg==

sendVideo(url)//发送视频
Sender//当前会话的Sender模块
fmt//控制台输出信息模块
strings//字符串模块
require("xx")//引入nodejs模块(需要主机安装nodejs)
importFs(filepath)//读取文件
importJs(filepath)//引入js文件,参数为文件路径
importDir(dir)//引入js文件夹,参数为路径

3.事件列表

以下为部分事件的对应表
	/////////////////////////QQ类事件//////////////////////////////////////////////////////
	//元数据类
	"qq-meta_event-lifecycle-connect": "QQ完成连接",
	"qq-meta_event-lifecycle-enable":  "QQ开始工作",
	"qq-meta_event-lifecycle-disable": "QQ连接失效",
	"qq-meta_event-heartbeat":"ws连接心跳事件"
	//通知类
	"qq-notice-group_increase": "QQ有人加群",
	"qq-notice-group_decrease": "QQ有人退群",

	"qq-notice-group_decrease-leave":   "QQ群有人主动退群",
	"qq-notice-group_decrease-kick":    "QQ群成员被踢",
	"qq-notice-group_decrease-kick_me": "QQ群成员登录号被踢",

	"qq-notice-group-recall":       "QQ群内消息撤回", //{"self_id":363586159,"time":1670485977,"post_type":"notice","notice_type":"group","sub_type":"recall","group_id":825897018,"user_id":79873111,"operator_id":79873111,"message_id":"MTowOgTCxFcAANg4WKS9z2ORl9cB"}
	"qq-notice-friend_recall":      "QQ好友私聊消息撤回",
	"qq-notice-group_admin-set":    "设置群管理员",
	"qq-notice-group_admin_unset":  "取消管理员",
	"qq-notice-group_upload":       "群文件上传",
	"qq-notice-group_ban-ban":      "群禁言",
	"qq-notice-group_ban-lift_ban": "解除禁言",
	//请求类
	"qq-request-friend-single": "QQ有人请求加机器人为好友", //{"self_id":363586159,"time":1670977881,"post_type":"request","request_type":"friend","sub_type":"single","user_id":3554541945,"nickname":"winBBA","source":"QQ号查找","comment":"","sex":"unknown","age":0,"flag":"~d3de01795efbedb064840"}
	"qq-request-group-add":     "QQ请求加群",

	/////////////////////////微信类事件//////////////////////////
	"wx-received-sent-pay": "微信机器人收到或发送支付(含转账、赞赏码、收款码)",