🤖第一个插件--复读机
在Plugins目录下新建一个lua文件如:reply.lua 推荐用vscode lua插件格式化代码
所有插件必须实现或包含这2个方法ReceiveWeChatMsg 和 ReceiveWeChatEvents
local log = require("log")--导入日志包
local json = require("json")--导入json包
local Api = require("coreApi")--导入API包
local http = require("http")--导入http包
local mysql = require("mysql")--导入mysql
--上述导入包 需要可以导入不需要也可以不导入 上述包都默认集成在框架里 无需安装任何第三方包
--第三方的原生lua包 是不支持的 go实现的lua虚拟机并非是原生
--每个插件必须实现该事件
--CurrentWxid 响应当前消息的机器人Wxid
--data数据结构 详细说明可以参照log.lua这个文件
--[[data.FromUserName,
data.ToUserName,
data.MsgType,
data.Status,
data.MsgId,
data.NewMsgId,
data.Content,
data.MsgSource,
data.PushContent,
data.ActionUserName,
data.ActionNickName
]]
function ReceiveWeChatMsg(CurrentWxid, data)
if data.FromUserName == CurrentWxid then --如果是机器人自己发送的指令
ToUserName = data.ToUserName --机器人的ToUserName 将作为回复的对象
else
ToUserName = data.FromUserName --他人的FromUserName 将作为回复的对象
end
wxid = ""
if string.find(ToUserName, "@chatroom") then --判断是否是群聊
wxid = data.ActionUserName --如果是群聊 获取一下发消息者的Wxid
if wxid == "" then
wxid = data.FromUserName
end
else --私聊
wxid = data.FromUserName
end
if string.find(data.Content, "复读机") then --判断消息中是否包含关键字
local keyWord = data.Content:gsub("复读机", "")
--替换复读机为空 提取关键字
local baseResponse =
Api.SendMsgNew(CurrentWxid, {ToUserName = ToUserName, MsgType = 1, Content = keyWord, AtUsers = ""})
--回复关键字
local str = string.format("baseResponse.Ret %d", baseResponse.Ret)
log.notice("From replay.lua Log\n%s", str) --打印一下返回值
end
return 1 --返回1继续处理后续插件 返回2中断后续插件处理
end
--每个插件必须实现该事件
function ReceiveWeChatEvents(CurrentWxid, data)
return 1 --返回1继续处理后续插件 返回2中断后续插件处理
end
function Sleep(n)
--log.notice("==========Sleep==========\n%d", n)
local t0 = os.clock()
while os.clock() - t0 <= n do
end
--log.notice("==========over Sleep==========\n%d", n)
end
Last updated