🐛 修复加群通知不提醒的BUG #69
@ -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 {
|
||||||
// 私聊消息 或 群聊艾特机器人并且以/开头的消息
|
// 私聊消息 或 群聊艾特机器人并且以/开头的消息
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
24
plugin/plugins/notify2configuser.go
Normal file
24
plugin/plugins/notify2configuser.go
Normal 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user