diff --git a/handle/logService.go b/handle/logService.go index 3cbd505..ffede28 100644 --- a/handle/logService.go +++ b/handle/logService.go @@ -21,3 +21,12 @@ func RecordWechatLog(ToUsername, FromUsername string, CreateTime uint32, MsgType } } + +func GetLastWechatLog(ToUsername, MsgType string) WechatLog { + Record := WechatLog{ + ToUsername: ToUsername, + MsgType: MsgType, + } + global.DB.Last(&Record) + return Record +} diff --git a/handle/replyImage.go b/handle/replyImage.go index fbea67b..61e572e 100644 --- a/handle/replyImage.go +++ b/handle/replyImage.go @@ -10,6 +10,6 @@ import ( func replyImage(msgContent MsgContent, timestamp, nonce string, w http.ResponseWriter) { //third_part.SendPicMid(msgContent.FromUsername, utils.RandMapValue(global.ImageMap)) filename := global.WechatImagePath + "/" + utils.RandomFile(global.WechatImagePath) - go RecordWechatLog(msgContent.ToUsername, msgContent.FromUsername, msgContent.CreateTime, msgContent.MsgType, filename) + go RecordWechatLog(msgContent.FromUsername, msgContent.ToUsername, msgContent.CreateTime, msgContent.MsgType, filename) third_part.SendPicFile(msgContent.FromUsername, filename) } diff --git a/handle/replyText.go b/handle/replyText.go index e018ecb..0c0b9a0 100644 --- a/handle/replyText.go +++ b/handle/replyText.go @@ -20,8 +20,16 @@ func replyText(msgContent MsgContent, timestamp, nonce string, w http.ResponseWr } else if msgContent.Content == "history" { cmdString = utils.SlicePrint(global.HistoryCmds) } else if msgContent.Content == "删除图片" { - log.Println("删除图片") - return + lastImg := GetLastWechatLog(msgContent.FromUsername, "image") + err := utils.DeleteFile(lastImg.Content) + if err != nil { + log.Println("删除图片失败") + return + } else { + log.Println("删除图片") + return + } + } else { cmdString = msgContent.Content } diff --git a/utils/file.go b/utils/file.go index 666a329..deb4293 100644 --- a/utils/file.go +++ b/utils/file.go @@ -15,3 +15,12 @@ func RandomFile(dirname string) string { return fileList[rand.Intn(len(fileList))].Name() } + +func DeleteFile(filename string) error { + err := os.Remove(filename) + if err != nil { + log.Println(err) + return err + } + return nil +}