cmdExec fillter

master
dustoair 3 years ago
parent 01c074e0be
commit e57637c677

@ -8,4 +8,9 @@ var CMDList = []string{
"last", "last",
"删除图片", "删除图片",
"删除文本", "删除文本",
"eth",
"btc",
"虚拟货币",
"gold",
"黄金",
} }

@ -6,6 +6,7 @@ import (
"github.com/jinzhu/gorm" "github.com/jinzhu/gorm"
) )
// 单例模式
var ( var (
CTX = context.Background() CTX = context.Background()
RedisDb *redis.Client RedisDb *redis.Client
@ -15,3 +16,15 @@ var (
EnableAiReply = true EnableAiReply = true
EnableCmdExec = true EnableCmdExec = true
) )
// 微信变量
var (
WxCrypt *WXBizMsgCrypt
WechatCorpId string
WechatToken string //微信回调的token
WechatEncodingAesKey string
WechatSendSecret string
WechatSendAid string
WechatAccessToken string //主动发消息的token
WechatImagePath string
)

@ -1,12 +0,0 @@
package global
var (
WxCrypt *WXBizMsgCrypt
WechatCorpId string
WechatToken string //微信回调的token
WechatEncodingAesKey string
WechatSendSecret string
WechatSendAid string
WechatAccessToken string //主动发消息的token
WechatImagePath string
)

@ -9,17 +9,14 @@ import (
"net/http" "net/http"
) )
func replyText(msgContent MsgContent, timestamp, nonce string, w http.ResponseWriter) { // cmdExec 根据白名单命令来执行
var replyContent string func cmdExec(msgContent MsgContent) (cmdString string) {
if global.EnableCmdExec && utils.SliceContain(global.CMDList, msgContent.Content) && msgContent.FromUsername == "QiaoYang" { switch msgContent.Content {
//开启了命令执行功能,并且消息内容包含了命令 case "last":
log.Println("收到命令消息")
var cmdString string
if msgContent.Content == "last" {
cmdString = global.HistoryCmds[len(global.HistoryCmds)-1] cmdString = global.HistoryCmds[len(global.HistoryCmds)-1]
} else if msgContent.Content == "history" { case "history":
cmdString = utils.SlicePrint(global.HistoryCmds) cmdString = utils.SlicePrint(global.HistoryCmds)
} else if msgContent.Content == "删除图片" { case "删除图片":
//通过文本消息删除上一张图片 //通过文本消息删除上一张图片
lastImg := GetLastWechatLog(msgContent.FromUsername, "image") lastImg := GetLastWechatLog(msgContent.FromUsername, "image")
err := utils.DeleteFile(lastImg.Content) err := utils.DeleteFile(lastImg.Content)
@ -30,15 +27,17 @@ func replyText(msgContent MsgContent, timestamp, nonce string, w http.ResponseWr
log.Println("图片已删除: ", lastImg.Content) log.Println("图片已删除: ", lastImg.Content)
return return
} }
case "删除文本":
} else if msgContent.Content == "删除文本" {
//通过文本消息删除上一条文本消息 //通过文本消息删除上一条文本消息
lastText := GetLastWechatLog(msgContent.FromUsername, "text") lastText := GetLastWechatLog(msgContent.FromUsername, "text")
textMd5 := utils.Md5String(lastText.Content) textMd5 := utils.Md5String(lastText.Content)
go RecordWechatBlockWords(lastText.Content, textMd5, msgContent.FromUsername) go RecordWechatBlockWords(lastText.Content, textMd5, msgContent.FromUsername)
return return
case "eth", "btc", "虚拟货币":
} else { cmdString = "cmdString"
case "gold", "黄金":
cmdString = "cmdString"
default:
cmdString = msgContent.Content cmdString = msgContent.Content
} }
global.HistoryCmds = append(global.HistoryCmds, msgContent.Content) global.HistoryCmds = append(global.HistoryCmds, msgContent.Content)
@ -49,6 +48,51 @@ func replyText(msgContent MsgContent, timestamp, nonce string, w http.ResponseWr
replyContent = "/::D执行成功\n" + replyContent replyContent = "/::D执行成功\n" + replyContent
//aiAnswer = "执行命令:" + msgContent.Content //aiAnswer = "执行命令:" + msgContent.Content
} }
return cmdString
}
func replyText(msgContent MsgContent, timestamp, nonce string, w http.ResponseWriter) {
var replyContent string
if global.EnableCmdExec && utils.SliceContain(global.CMDList, msgContent.Content) && msgContent.FromUsername == "QiaoYang" {
//开启了命令执行功能,并且消息内容包含了命令
log.Println("收到命令消息")
cmdExec(msgContent)
//cmdString := cmdExec(msgContent)
//var cmdString string
//if msgContent.Content == "last" {
// cmdString = global.HistoryCmds[len(global.HistoryCmds)-1]
//} else if msgContent.Content == "history" {
// cmdString = utils.SlicePrint(global.HistoryCmds)
//} else if msgContent.Content == "删除图片" {
// //通过文本消息删除上一张图片
// lastImg := GetLastWechatLog(msgContent.FromUsername, "image")
// err := utils.DeleteFile(lastImg.Content)
// if err != nil {
// log.Println("删除图片失败: ", lastImg.Content)
// return
// } else {
// log.Println("图片已删除: ", lastImg.Content)
// return
// }
//
//} else if msgContent.Content == "删除文本" {
// //通过文本消息删除上一条文本消息
// lastText := GetLastWechatLog(msgContent.FromUsername, "text")
// textMd5 := utils.Md5String(lastText.Content)
// go RecordWechatBlockWords(lastText.Content, textMd5, msgContent.FromUsername)
// return
//
//} else {
// cmdString = msgContent.Content
//}
//global.HistoryCmds = append(global.HistoryCmds, msgContent.Content)
//replyContent, err := utils.CMDShellTrick(cmdString)
//if err != nil {
// replyContent = "/:,@!执行失败:\n" + msgContent.Content
//} else {
// replyContent = "/::D执行成功\n" + replyContent
// //aiAnswer = "执行命令:" + msgContent.Content
//}
} else { } else {
var replyContentAi string var replyContentAi string
if _, ok := global.EmojMap[msgContent.Content]; ok { if _, ok := global.EmojMap[msgContent.Content]; ok {

Loading…
Cancel
Save