Compare commits

..

6 Commits

4 changed files with 43 additions and 2 deletions

View File

@@ -33,6 +33,10 @@ func Plugin() {
dispatcher.RegisterHandler(func(m *dto.Message) bool {
return m.Type == types.MsgTypeSys
}, plugins.NotifyRemoveFromChatroom)
// 响应好友添加成功消息
dispatcher.RegisterHandler(func(m *dto.Message) bool {
return m.Type == types.MsgTypeSys
}, plugins.ReplyNewFriend)
// 私聊指令消息
dispatcher.RegisterHandler(func(m *dto.Message) bool {

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"go-wechat/config"
"go-wechat/plugin"
"go-wechat/service"
"go-wechat/utils"
"strings"
)
@@ -31,12 +32,20 @@ func NotifyInvitationJoinGroup(m *plugin.MessageContext) {
// @description: 被移除群聊通知到配置用户
// @param m
func NotifyRemoveFromChatroom(m *plugin.MessageContext) {
// 如果是被移出群聊,推送到配置的用户
if strings.HasPrefix(m.Content, "你被\"") && strings.HasSuffix(m.Content, "\"移出群聊") {
// 如果是被移出群聊,推送到配置的用户
// 取出群名称
groupInfo, err := service.GetFriendInfoById(m.FromUser)
if err != nil {
return
}
// 组装消息
msg := fmt.Sprintf("#移除群聊提醒\n\n群Id: %s\n群名称: %s\n事件: %s", m.FromUser, groupInfo.Nickname, m.Content)
for _, user := range config.Conf.System.NewFriendNotify.ToUser {
if user != "" {
// 发送一条新消息
utils.SendMessage(user, "", m.Content, 0)
utils.SendMessage(user, "", msg, 0)
}
}
}

View File

@@ -0,0 +1,18 @@
package plugins
import (
"go-wechat/plugin"
"go-wechat/utils"
"strings"
)
// ReplyNewFriend
// @description: 响应好友添加成功消息
// @param m
func ReplyNewFriend(m *plugin.MessageContext) {
isNewFriend := strings.HasPrefix(m.Content, "你已添加了") && strings.HasSuffix(m.Content, ",现在可以开始聊天了。")
isNewChatroom := strings.Contains(m.Content, "\"邀请你加入了群聊,群聊参与人还有:")
if isNewFriend || isNewChatroom {
utils.SendMessage(m.FromUser, m.GroupUser, "AI正在初始化请稍等几分钟初始化完成之后我将主动告知您。", 0)
}
}

View File

@@ -37,6 +37,16 @@ func GetAllFriend() (friends, groups []vo.FriendItem, err error) {
return
}
// GetFriendInfoById
// @description: 通过wxId获取好友信息
// @param wxId
// @return ent
// @return err
func GetFriendInfoById(wxId string) (ent entity.Friend, err error) {
err = client.MySQL.Where("wxid = ?", wxId).First(&ent).Error
return
}
// GetAllEnableAI
// @description: 取出所有启用了AI的好友或群组
// @return []entity.Friend