go-wxhelper/tasks/summary/summary.go

54 lines
1.5 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package summary
import (
"fmt"
"go-wechat/model/vo"
"go-wechat/service"
"go-wechat/utils"
"log"
"time"
)
// AiSummary
// @description: AI总结群聊记录
func AiSummary() {
groups, err := service.GetAllEnableSummary()
if err != nil {
log.Printf("获取启用了聊天排行榜的群组失败, 错误信息: %v", err)
return
}
for _, group := range groups {
// 记录开始时间
var start = time.Now()
// 获取对话记录
var records []vo.TextMessageItem
if records, err = service.GetTextMessagesById(group.Wxid); err != nil {
log.Printf("获取群[%s]对话记录失败, 错误信息: %v", group.Wxid, err)
continue
}
if len(records) < 100 {
log.Printf("群[%s]对话记录不足100条跳过总结", group.Wxid)
continue
}
// 组装对话记录为字符串
var replyMsg string
replyMsg, err = utils.GetAiSummary(group.Nickname, records)
if err != nil {
log.Printf("群聊记录总结失败: %v", err.Error())
_ = utils.SendMessage(group.Wxid, "", "#昨日消息总结\n\n群聊消息总结失败错误信息: "+err.Error(), 0)
continue
}
replyMsg = fmt.Sprintf("#昨日消息总结\n又是一天过去了让我们一起来看看昨儿群友们都聊了什么有趣的话题吧~\n\n%s", replyMsg)
//log.Printf("群[%s]对话记录总结成功,总结内容: %s", group.Wxid, replyMsg)
_ = utils.SendMessage(group.Wxid, "", replyMsg, 0)
// 判断耗时是否达到一分钟,不足就等待
if used := time.Now().Sub(start); used < time.Minute {
time.Sleep(time.Minute - used)
}
}
}