Merge pull request '🐛 修复加群通知不提醒的BUG' (#69) from hotfix into main
All checks were successful
BuildImage / build-image (push) Successful in 1m38s

Reviewed-on: #69
This commit is contained in:
李寻欢 2024-07-08 10:58:22 +08:00
commit c0f8169588
5 changed files with 33 additions and 25 deletions

View File

@ -23,6 +23,12 @@ func Plugin() {
return true return true
}, plugins.SaveToDb) }, plugins.SaveToDb)
// 通知邀请入群消息到配置用户
dispatcher.RegisterHandler(func(m *dto.Message) bool {
flag, _ := m.IsInvitationJoinGroup()
return flag
}, plugins.NotifyInvitationJoinGroup)
// 私聊指令消息 // 私聊指令消息
dispatcher.RegisterHandler(func(m *dto.Message) bool { dispatcher.RegisterHandler(func(m *dto.Message) bool {
// 私聊消息 或 群聊艾特机器人并且以/开头的消息 // 私聊消息 或 群聊艾特机器人并且以/开头的消息

View File

@ -209,7 +209,9 @@ func (m Message) IsInvitationJoinGroup() (flag bool, str string) {
if err := xml.Unmarshal([]byte(m.Content), &md); err != nil { if err := xml.Unmarshal([]byte(m.Content), &md); err != nil {
return return
} }
return md.AppMsg.Type == "5" && strings.Contains(md.AppMsg.Content, "邀请你加入群聊"), md.AppMsg.Des flag = md.AppMsg.Type == "5" && md.AppMsg.Title == "邀请你加入群聊"
str = strings.ReplaceAll(md.AppMsg.Des, ",进入可查看详情。", "")
return
} }
return return
} }

View File

@ -3,10 +3,8 @@ package mq
import ( import (
"encoding/json" "encoding/json"
"go-wechat/common/current" "go-wechat/common/current"
"go-wechat/config"
"go-wechat/model/dto" "go-wechat/model/dto"
"go-wechat/types" "go-wechat/types"
"go-wechat/utils"
"log" "log"
"strings" "strings"
) )
@ -39,16 +37,6 @@ func parse(msg []byte) {
} }
log.Printf("收到新微信消息\n消息来源: %s\n群成员: %s\n消息类型: %v\n消息内容: %s", m.FromUser, m.GroupUser, m.Type, m.Content) log.Printf("收到新微信消息\n消息来源: %s\n群成员: %s\n消息类型: %v\n消息内容: %s", m.FromUser, m.GroupUser, m.Type, m.Content)
// 如果是邀请进群,推送到配置的用户
if flag, dec := m.IsInvitationJoinGroup(); flag {
for _, user := range config.Conf.System.NewFriendNotify.ToUser {
if user != "" {
// 发送一条新消息
utils.SendMessage(user, "", dec, 0)
}
}
}
// 插件不为空,开始执行 // 插件不为空,开始执行
if p := current.GetRobotMessageHandler(); p != nil { if p := current.GetRobotMessageHandler(); p != nil {
p(&m) p(&m)

View File

@ -0,0 +1,24 @@
package plugins
import (
"fmt"
"go-wechat/config"
"go-wechat/plugin"
"go-wechat/utils"
)
// NotifyInvitationJoinGroup
// @description: 通知邀请入群消息到配置用户
// @param m
func NotifyInvitationJoinGroup(m *plugin.MessageContext) {
// 如果是邀请进群,推送到配置的用户
if flag, dec := m.IsInvitationJoinGroup(); flag {
for _, user := range config.Conf.System.NewFriendNotify.ToUser {
if user != "" {
// 发送一条新消息
dec = fmt.Sprintf("#邀请入群提醒\n\n%s", dec)
utils.SendMessage(user, "", dec, 0)
}
}
}
}

View File

@ -3,10 +3,8 @@ package tcpserver
import ( import (
"encoding/json" "encoding/json"
"go-wechat/common/current" "go-wechat/common/current"
"go-wechat/config"
"go-wechat/model/dto" "go-wechat/model/dto"
"go-wechat/types" "go-wechat/types"
"go-wechat/utils"
"log" "log"
"net" "net"
"strings" "strings"
@ -40,16 +38,6 @@ func parse(remoteAddr net.Addr, msg []byte) {
} }
log.Printf("%s\n消息来源: %s\n群成员: %s\n消息类型: %v\n消息内容: %s", remoteAddr, m.FromUser, m.GroupUser, m.Type, m.Content) log.Printf("%s\n消息来源: %s\n群成员: %s\n消息类型: %v\n消息内容: %s", remoteAddr, m.FromUser, m.GroupUser, m.Type, m.Content)
// 如果是邀请进群,推送到配置的用户
if flag, dec := m.IsInvitationJoinGroup(); flag {
for _, user := range config.Conf.System.NewFriendNotify.ToUser {
if user != "" {
// 发送一条新消息
utils.SendMessage(user, "", dec, 0)
}
}
}
// 插件不为空,开始执行 // 插件不为空,开始执行
if p := current.GetRobotMessageHandler(); p != nil { if p := current.GetRobotMessageHandler(); p != nil {
p(&m) p(&m)