fix: 修改多个处理函数的返回类型为指针类型,以提高内存使用效率并避免不必要的拷贝
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user