fix: 修改多个处理函数的返回类型为指针类型,以提高内存使用效率并避免不必要的拷贝

This commit is contained in:
lixiangwuxian
2025-04-09 23:28:39 +08:00
parent 144034939c
commit 7f0560b56e
32 changed files with 211 additions and 210 deletions

View File

@@ -7,6 +7,7 @@ import (
"strings"
"time"
"git.lxtend.com/qqbot/action"
"git.lxtend.com/qqbot/config"
"git.lxtend.com/qqbot/constants"
"git.lxtend.com/qqbot/handler"
@@ -35,10 +36,10 @@ func init() {
go RoundCheckSteamPlaying()
}
func bindSteam(msg model.Message) model.Reply {
func bindSteam(msg model.Message) *model.Reply {
token := util.SplitN(msg.RawMsg, 2)
if len(token) < 2 {
return model.Reply{
return &model.Reply{
ReplyMsg: "请输入steamID",
ReferOriginMsg: true,
FromMsg: msg,
@@ -50,111 +51,111 @@ func bindSteam(msg model.Message) model.Reply {
token[1] = steamIdInUrl[1]
}
if valid, err := checkSteamIDValid(token[1]); !valid {
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("steamID无效: %v", err),
ReferOriginMsg: true,
FromMsg: msg,
}
} else if err != nil {
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("steamID验证失败: %v", err),
ReferOriginMsg: true,
FromMsg: msg,
}
}
if err := bindSteamUser(msg.UserId, token[1]); err != nil {
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("绑定失败: %v", err),
ReferOriginMsg: true,
FromMsg: msg,
}
}
}
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("绑定steam用户%s成功如果需要开启群内上号通知请输入 启用上号通知", token[1]),
ReferOriginMsg: true,
FromMsg: msg,
}
}
func bindSteamInGroup(msg model.Message) model.Reply {
func bindSteamInGroup(msg model.Message) *model.Reply {
if user, err := getSteamUser(msg.UserId); err != nil {
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("查询steam绑定失败: %v", err),
ReferOriginMsg: true,
FromMsg: msg,
}
} else if err := bindUserInGroup(msg.GroupInfo.GroupId, user.SteamID); err != nil {
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("绑定至群监听列表失败: %v", err),
ReferOriginMsg: true,
FromMsg: msg,
}
}
return model.Reply{
return &model.Reply{
ReplyMsg: "绑定至群监听列表成功",
ReferOriginMsg: true,
FromMsg: msg,
}
}
func unbindSteam(msg model.Message) model.Reply {
func unbindSteam(msg model.Message) *model.Reply {
if user, err := getSteamUser(msg.UserId); err != nil {
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("解绑失败: %v", err),
ReferOriginMsg: true,
FromMsg: msg,
}
} else {
if err := unbindUserInAllGroup(user.SteamID); err != nil {
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("解绑所有群监听列表失败: %v", err),
ReferOriginMsg: true,
FromMsg: msg,
}
}
if err := unbindSteamUser(msg.UserId); err != nil {
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("解绑失败: %v", err),
ReferOriginMsg: true,
FromMsg: msg,
}
}
}
return model.Reply{
return &model.Reply{
ReplyMsg: "解绑成功",
ReferOriginMsg: true,
FromMsg: msg,
}
}
func unbindSteamInGroup(msg model.Message) model.Reply {
func unbindSteamInGroup(msg model.Message) *model.Reply {
if user, err := getSteamUser(msg.UserId); err != nil {
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("群监听解绑失败: %v", err),
ReferOriginMsg: true,
FromMsg: msg,
}
} else {
if err := unbindUserInGroup(msg.GroupInfo.GroupId, user.SteamID); err != nil {
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("群监听解绑失败: %v", err),
ReferOriginMsg: true,
FromMsg: msg,
}
}
}
return model.Reply{
return &model.Reply{
ReplyMsg: "群监听解绑成功本群内将不再查询你的steam游戏状态",
ReferOriginMsg: true,
FromMsg: msg,
}
}
func checkSteamPlaying(msg model.Message) model.Reply {
func checkSteamPlaying(msg model.Message) *model.Reply {
users, err := getSteamUsersInGroup(msg.GroupInfo.GroupId)
if err != nil {
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("获取群成员steam列表失败: %v", err),
ReferOriginMsg: true,
FromMsg: msg,
@@ -166,13 +167,13 @@ func checkSteamPlaying(msg model.Message) model.Reply {
}
gameList, err := checkSteamGameStatus(steamIds)
if err != nil {
return model.Reply{
return &model.Reply{
ReplyMsg: fmt.Sprintf("获取游戏列表失败: %v", err),
ReferOriginMsg: true,
FromMsg: msg,
}
}
return model.Reply{
return &model.Reply{
ReplyMsg: gameList,
ReferOriginMsg: true,
FromMsg: msg,
@@ -285,8 +286,7 @@ func RoundCheckSteamPlaying() {
// FromMsg: model.Message{GroupInfo: model.GroupInfo{GroupId: group}},
FromMsg: model.Message{GroupInfo: model.GroupInfo{GroupId: config.ConfigManager.GetConfig().Management.ReportGroup}},
}
// action.ActionManager.SendMsg(msg)
log.Println(msg.ReplyMsg)
action.ActionManager.SendMsg(&msg)
}
}