Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beta84 #226

Merged
merged 13 commits into from
Dec 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 24 additions & 13 deletions Processor/ProcessC2CMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
package Processor

import (
"fmt"
"log"
"strconv"
"time"
Expand Down Expand Up @@ -70,7 +71,7 @@ func (p *Processors) ProcessC2CMessage(data *dto.WSC2CMessageData) error {
}
}
//转换at
messageText := handlers.RevertTransformedText(data, "group_private", p.Api, p.Apiv2)
messageText := handlers.RevertTransformedText(data, "group_private", p.Api, p.Apiv2, userid64)
if messageText == "" {
mylog.Printf("信息被自定义黑白名单拦截")
return nil
Expand All @@ -82,6 +83,7 @@ func (p *Processors) ProcessC2CMessage(data *dto.WSC2CMessageData) error {
if config.GetArrayValue() {
segmentedMessages = handlers.ConvertToSegmentedMessage(data)
}
IsBindedUserId := idmap.CheckValue(data.Author.ID, userid64)
privateMsg := OnebotPrivateMessage{
RawMessage: messageText,
Message: segmentedMessages,
Expand All @@ -94,9 +96,11 @@ func (p *Processors) ProcessC2CMessage(data *dto.WSC2CMessageData) error {
Nickname: "", //这个不支持,但加机器人好友,会收到一个事件,可以对应储存获取,用idmaps可以做到.
UserID: userid64,
},
SubType: "friend",
Time: time.Now().Unix(),
Avatar: "", //todo 同上
SubType: "friend",
Time: time.Now().Unix(),
Avatar: "", //todo 同上
RealMessageType: "group_private",
IsBindedUserId: IsBindedUserId,
}
// 根据条件判断是否添加Echo字段
if config.GetTwoWayEcho() {
Expand All @@ -112,6 +116,8 @@ func (p *Processors) ProcessC2CMessage(data *dto.WSC2CMessageData) error {
echo.AddLazyMessageId(strconv.FormatInt(userid64, 10), data.ID, time.Now())
//储存类型
echo.AddMsgType(AppIDString, userid64, "group_private")
//储存当前群或频道号的类型
idmap.WriteConfigv2(fmt.Sprint(userid64), "type", "group_private")
//储存当前群或频道号的类型 私信不需要
//idmap.WriteConfigv2(data.ChannelID, "type", "group_private")

Expand All @@ -125,12 +131,6 @@ func (p *Processors) ProcessC2CMessage(data *dto.WSC2CMessageData) error {
} else {
//将私聊信息转化为群信息(特殊需求情况下)

//转换at
messageText := handlers.RevertTransformedText(data, "group_private", p.Api, p.Apiv2)
if messageText == "" {
mylog.Printf("信息被自定义黑白名单拦截")
return nil
}
//转换appid
AppIDString := strconv.FormatUint(p.Settings.AppID, 10)
//构造echo
Expand All @@ -156,6 +156,12 @@ func (p *Processors) ProcessC2CMessage(data *dto.WSC2CMessageData) error {
mylog.Fatalf("Error storing ID: %v", err)
}
}
//转换at
messageText := handlers.RevertTransformedText(data, "group_private", p.Api, p.Apiv2, userid64)
if messageText == "" {
mylog.Printf("信息被自定义黑白名单拦截")
return nil
}
//框架内指令
p.HandleFrameworkCommand(messageText, data, "group_private")
//映射str的messageID到int
Expand All @@ -166,6 +172,7 @@ func (p *Processors) ProcessC2CMessage(data *dto.WSC2CMessageData) error {
}
messageID := int(messageID64)
//todo 判断array模式 然后对Message处理成array格式
IsBindedUserId := idmap.CheckValue(data.Author.ID, userid64)
groupMsg := OnebotGroupMessage{
RawMessage: messageText,
Message: messageText,
Expand All @@ -183,9 +190,11 @@ func (p *Processors) ProcessC2CMessage(data *dto.WSC2CMessageData) error {
Area: "0",
Level: "0",
},
SubType: "normal",
Time: time.Now().Unix(),
Avatar: "",
SubType: "normal",
Time: time.Now().Unix(),
Avatar: "",
RealMessageType: "group_private",
IsBindedUserId: IsBindedUserId,
}
//根据条件判断是否增加nick和card
var CaN = config.GetCardAndNick()
Expand Down Expand Up @@ -222,6 +231,8 @@ func (p *Processors) ProcessC2CMessage(data *dto.WSC2CMessageData) error {
echo.AddMsgID(AppIDString, userid64, data.ID)
//映射类型
echo.AddMsgType(AppIDString, userid64, "group_private")
//储存当前群或频道号的类型
idmap.WriteConfigv2(fmt.Sprint(userid64), "type", "group_private")
//懒message_id池
echo.AddLazyMessageId(strconv.FormatInt(userid64, 10), data.ID, time.Now())

Expand Down
28 changes: 19 additions & 9 deletions Processor/ProcessChannelDirectMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ func (p *Processors) ProcessChannelDirectMessage(data *dto.WSDirectMessageData)
}
messageID := int(messageID64)
//转换at
messageText := handlers.RevertTransformedText(data, "guild_private", p.Api, p.Apiv2)
messageText := handlers.RevertTransformedText(data, "guild_private", p.Api, p.Apiv2, userid64)
if messageText == "" {
mylog.Printf("信息被自定义黑白名单拦截")
return nil
Expand All @@ -102,6 +102,7 @@ func (p *Processors) ProcessChannelDirectMessage(data *dto.WSDirectMessageData)
if config.GetArrayValue() {
segmentedMessages = handlers.ConvertToSegmentedMessage(data)
}
IsBindedUserId := idmap.CheckValue(data.Author.ID, userid64)
privateMsg := OnebotPrivateMessage{
RawMessage: messageText,
Message: segmentedMessages,
Expand All @@ -114,9 +115,11 @@ func (p *Processors) ProcessChannelDirectMessage(data *dto.WSDirectMessageData)
Nickname: data.Member.Nick,
UserID: userid64,
},
SubType: "friend",
Time: time.Now().Unix(),
Avatar: data.Author.Avatar,
SubType: "friend",
Time: time.Now().Unix(),
Avatar: data.Author.Avatar,
RealMessageType: "guild_private",
IsBindedUserId: IsBindedUserId,
}
// 根据条件判断是否添加Echo字段
if config.GetTwoWayEcho() {
Expand All @@ -128,6 +131,8 @@ func (p *Processors) ProcessChannelDirectMessage(data *dto.WSDirectMessageData)
//其实不需要用AppIDString,因为gensokyo是单机器人框架
echo.AddMsgID(AppIDString, userid64, data.ID)
echo.AddMsgType(AppIDString, userid64, "guild_private")
//储存当前群或频道号的类型
idmap.WriteConfigv2(fmt.Sprint(userid64), "type", "guild_private")
//懒message_id池
echo.AddLazyMessageId(strconv.FormatInt(userid64, 10), data.ID, time.Now())

Expand All @@ -150,7 +155,7 @@ func (p *Processors) ProcessChannelDirectMessage(data *dto.WSDirectMessageData)
//获取s
s := client.GetGlobalS()
//转换at
messageText := handlers.RevertTransformedText(data, "guild_private", p.Api, p.Apiv2)
messageText := handlers.RevertTransformedText(data, "guild_private", p.Api, p.Apiv2, 10000) //todo 这里未转换
if messageText == "" {
mylog.Printf("信息被自定义黑白名单拦截")
return nil
Expand Down Expand Up @@ -224,6 +229,8 @@ func (p *Processors) ProcessChannelDirectMessage(data *dto.WSDirectMessageData)
echo.AddMsgType(AppIDString, userid64, "guild_private")
//储存当前群或频道号的类型
idmap.WriteConfigv2(data.ChannelID, "type", "guild_private")
//储存当前群或频道号的类型
idmap.WriteConfigv2(fmt.Sprint(userid64), "type", "guild_private")
//todo 完善频道类型信息转换
//懒message_id池
echo.AddLazyMessageId(strconv.FormatInt(userid64, 10), data.ID, time.Now())
Expand Down Expand Up @@ -278,7 +285,7 @@ func (p *Processors) ProcessChannelDirectMessage(data *dto.WSDirectMessageData)
//直接储存 适用于私信场景私聊
idmap.WriteConfigv2(data.ChannelID, "guild_id", data.GuildID)
//转换at
messageText := handlers.RevertTransformedText(data, "guild_private", p.Api, p.Apiv2)
messageText := handlers.RevertTransformedText(data, "guild_private", p.Api, p.Apiv2, userid64)
if messageText == "" {
mylog.Printf("信息被自定义黑白名单拦截")
return nil
Expand All @@ -303,6 +310,7 @@ func (p *Processors) ProcessChannelDirectMessage(data *dto.WSDirectMessageData)
if config.GetArrayValue() {
segmentedMessages = handlers.ConvertToSegmentedMessage(data)
}
IsBindedUserId := idmap.CheckValue(data.Author.ID, userid64)
groupMsg := OnebotGroupMessage{
RawMessage: messageText,
Message: segmentedMessages,
Expand All @@ -322,9 +330,11 @@ func (p *Processors) ProcessChannelDirectMessage(data *dto.WSDirectMessageData)
Area: "",
Level: "0",
},
SubType: "normal",
Time: time.Now().Unix(),
Avatar: data.Author.Avatar,
SubType: "normal",
Time: time.Now().Unix(),
Avatar: data.Author.Avatar,
RealMessageType: "guild_private",
IsBindedUserId: IsBindedUserId,
}
// 根据条件判断是否添加Echo字段
if config.GetTwoWayEcho() {
Expand Down
32 changes: 18 additions & 14 deletions Processor/ProcessGroupMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,6 @@ func (p *Processors) ProcessGroupMessage(data *dto.WSGroupATMessageData) error {
// 获取s
s := client.GetGlobalS()

// 转换at
messageText := handlers.RevertTransformedText(data, "group", p.Api, p.Apiv2)
if messageText == "" {
mylog.Printf("信息被自定义黑白名单拦截")
return nil
}
//群没有at,但用户可以选择加一个
if config.GetAddAtGroup() {
messageText = "[CQ:at,qq=" + config.GetAppIDStr() + "] " + messageText
}

// 转换appid
AppIDString := strconv.FormatUint(p.Settings.AppID, 10)

Expand Down Expand Up @@ -66,6 +55,16 @@ func (p *Processors) ProcessGroupMessage(data *dto.WSGroupATMessageData) error {
return nil
}
}
// 转换at
messageText := handlers.RevertTransformedText(data, "group", p.Api, p.Apiv2, GroupID64)
if messageText == "" {
mylog.Printf("信息被自定义黑白名单拦截")
return nil
}
//群没有at,但用户可以选择加一个
if config.GetAddAtGroup() {
messageText = "[CQ:at,qq=" + config.GetAppIDStr() + "] " + messageText
}
//框架内指令
p.HandleFrameworkCommand(messageText, data, "group")
//映射str的messageID到int
Expand All @@ -85,6 +84,8 @@ func (p *Processors) ProcessGroupMessage(data *dto.WSGroupATMessageData) error {
if config.GetArrayValue() {
segmentedMessages = handlers.ConvertToSegmentedMessage(data)
}
IsBindedUserId := idmap.CheckValue(data.Author.ID, userid64)
IsBindedGroupId := idmap.CheckValue(data.GroupID, GroupID64)
groupMsg := OnebotGroupMessage{
RawMessage: messageText,
Message: segmentedMessages,
Expand All @@ -101,9 +102,12 @@ func (p *Processors) ProcessGroupMessage(data *dto.WSGroupATMessageData) error {
Area: "0",
Level: "0",
},
SubType: "normal",
Time: time.Now().Unix(),
Avatar: "",
SubType: "normal",
Time: time.Now().Unix(),
Avatar: "",
RealMessageType: "group",
IsBindedUserId: IsBindedUserId,
IsBindedGroupId: IsBindedGroupId,
}
//根据条件判断是否增加nick和card
var CaN = config.GetCardAndNick()
Expand Down
15 changes: 10 additions & 5 deletions Processor/ProcessGuildATMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ func (p *Processors) ProcessGuildATMessage(data *dto.WSATMessageData) error {
//获取s
s := client.GetGlobalS()
//转换at
messageText := handlers.RevertTransformedText(data, "guild", p.Api, p.Apiv2)
messageText := handlers.RevertTransformedText(data, "guild", p.Api, p.Apiv2, 10000) //todo 这里未转换
if messageText == "" {
mylog.Printf("信息被自定义黑白名单拦截")
return nil
Expand Down Expand Up @@ -151,7 +151,7 @@ func (p *Processors) ProcessGuildATMessage(data *dto.WSATMessageData) error {
//转成int再互转
idmap.WriteConfigv2(fmt.Sprint(ChannelID64), "guild_id", data.GuildID)
//转换at和图片
messageText := handlers.RevertTransformedText(data, "guild", p.Api, p.Apiv2)
messageText := handlers.RevertTransformedText(data, "guild", p.Api, p.Apiv2, ChannelID64)
if messageText == "" {
mylog.Printf("信息被自定义黑白名单拦截")
return nil
Expand All @@ -174,6 +174,8 @@ func (p *Processors) ProcessGuildATMessage(data *dto.WSATMessageData) error {
if config.GetArrayValue() {
segmentedMessages = handlers.ConvertToSegmentedMessage(data)
}
IsBindedUserId := idmap.CheckValue(data.Author.ID, userid64)
IsBindedGroupId := idmap.CheckValue(data.GroupID, ChannelID64)
groupMsg := OnebotGroupMessage{
RawMessage: messageText,
Message: segmentedMessages,
Expand All @@ -192,9 +194,12 @@ func (p *Processors) ProcessGuildATMessage(data *dto.WSATMessageData) error {
Area: "",
Level: "0",
},
SubType: "normal",
Time: time.Now().Unix(),
Avatar: data.Author.Avatar,
SubType: "normal",
Time: time.Now().Unix(),
Avatar: data.Author.Avatar,
RealMessageType: "guild",
IsBindedUserId: IsBindedUserId,
IsBindedGroupId: IsBindedGroupId,
}
// 根据条件判断是否添加Echo字段
if config.GetTwoWayEcho() {
Expand Down
15 changes: 10 additions & 5 deletions Processor/ProcessGuildNormalMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ func (p *Processors) ProcessGuildNormalMessage(data *dto.WSMessageData) error {
//获取s
s := client.GetGlobalS()
//转换at
messageText := handlers.RevertTransformedText(data, "guild", p.Api, p.Apiv2)
messageText := handlers.RevertTransformedText(data, "guild", p.Api, p.Apiv2, 10000) //这里未转换
if messageText == "" {
mylog.Printf("信息被自定义黑白名单拦截")
return nil
Expand Down Expand Up @@ -155,7 +155,7 @@ func (p *Processors) ProcessGuildNormalMessage(data *dto.WSMessageData) error {
//转成int再互转
idmap.WriteConfigv2(fmt.Sprint(ChannelID64), "guild_id", data.GuildID)
//转换at
messageText := handlers.RevertTransformedText(data, "guild", p.Api, p.Apiv2)
messageText := handlers.RevertTransformedText(data, "guild", p.Api, p.Apiv2, ChannelID64)
if messageText == "" {
mylog.Printf("信息被自定义黑白名单拦截")
return nil
Expand All @@ -178,6 +178,8 @@ func (p *Processors) ProcessGuildNormalMessage(data *dto.WSMessageData) error {
if config.GetArrayValue() {
segmentedMessages = handlers.ConvertToSegmentedMessage(data)
}
IsBindedUserId := idmap.CheckValue(data.Author.ID, userid64)
IsBindedGroupId := idmap.CheckValue(data.GroupID, ChannelID64)
groupMsg := OnebotGroupMessage{
RawMessage: messageText,
Message: segmentedMessages,
Expand All @@ -196,9 +198,12 @@ func (p *Processors) ProcessGuildNormalMessage(data *dto.WSMessageData) error {
Area: "",
Level: "0",
},
SubType: "normal",
Time: time.Now().Unix(),
Avatar: data.Author.Avatar,
SubType: "normal",
Time: time.Now().Unix(),
Avatar: data.Author.Avatar,
RealMessageType: "guild",
IsBindedUserId: IsBindedUserId,
IsBindedGroupId: IsBindedGroupId,
}
// 根据条件判断是否添加Echo字段
if config.GetTwoWayEcho() {
Expand Down
Loading
Loading