|
|
|
|
@ -9,46 +9,90 @@ import (
|
|
|
|
|
"net/http"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// cmdExec 根据白名单命令来执行
|
|
|
|
|
func cmdExec(msgContent MsgContent) (cmdString string) {
|
|
|
|
|
switch msgContent.Content {
|
|
|
|
|
case "last":
|
|
|
|
|
cmdString = global.HistoryCmds[len(global.HistoryCmds)-1]
|
|
|
|
|
case "history":
|
|
|
|
|
cmdString = utils.SlicePrint(global.HistoryCmds)
|
|
|
|
|
case "删除图片":
|
|
|
|
|
//通过文本消息删除上一张图片
|
|
|
|
|
lastImg := GetLastWechatLog(msgContent.FromUsername, "image")
|
|
|
|
|
err := utils.DeleteFile(lastImg.Content)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Println("删除图片失败: ", lastImg.Content)
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
log.Println("图片已删除: ", lastImg.Content)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
case "删除文本":
|
|
|
|
|
//通过文本消息删除上一条文本消息
|
|
|
|
|
lastText := GetLastWechatLog(msgContent.FromUsername, "text")
|
|
|
|
|
textMd5 := utils.Md5String(lastText.Content)
|
|
|
|
|
go RecordWechatBlockWords(lastText.Content, textMd5, msgContent.FromUsername)
|
|
|
|
|
return
|
|
|
|
|
case "eth", "btc", "虚拟货币":
|
|
|
|
|
cmdString = "cmdString"
|
|
|
|
|
case "gold", "黄金":
|
|
|
|
|
cmdString = "cmdString"
|
|
|
|
|
default:
|
|
|
|
|
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
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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("收到命令消息")
|
|
|
|
|
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
|
|
|
|
|
}
|
|
|
|
|
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 {
|
|
|
|
|
var replyContentAi string
|
|
|
|
|
if _, ok := global.EmojMap[msgContent.Content]; ok {
|
|
|
|
|
|