Skip to content

Commit

Permalink
beta83
Browse files Browse the repository at this point in the history
  • Loading branch information
Hoshinonyaruko committed Dec 6, 2023
1 parent 855972c commit 5612562
Show file tree
Hide file tree
Showing 7 changed files with 98 additions and 50 deletions.
18 changes: 12 additions & 6 deletions Processor/ProcessC2CMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,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 @@ -95,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 Down Expand Up @@ -169,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 @@ -186,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
18 changes: 12 additions & 6 deletions Processor/ProcessChannelDirectMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 Down Expand Up @@ -307,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 @@ -326,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
11 changes: 8 additions & 3 deletions Processor/ProcessGroupMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,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 @@ -100,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
11 changes: 8 additions & 3 deletions Processor/ProcessGuildATMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
11 changes: 8 additions & 3 deletions Processor/ProcessGuildNormalMessage.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
63 changes: 34 additions & 29 deletions Processor/Processor.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,39 +69,44 @@ type OnebotChannelMessage struct {

// 群信息事件
type OnebotGroupMessage struct {
RawMessage string `json:"raw_message"`
MessageID int `json:"message_id"`
GroupID int64 `json:"group_id"` // Can be either string or int depending on p.Settings.CompleteFields
MessageType string `json:"message_type"`
PostType string `json:"post_type"`
SelfID int64 `json:"self_id"` // Can be either string or int
Sender Sender `json:"sender"`
SubType string `json:"sub_type"`
Time int64 `json:"time"`
Avatar string `json:"avatar,omitempty"`
Echo string `json:"echo,omitempty"`
Message interface{} `json:"message"` // For array format
MessageSeq int `json:"message_seq"`
Font int `json:"font"`
UserID int64 `json:"user_id"`
RawMessage string `json:"raw_message"`
MessageID int `json:"message_id"`
GroupID int64 `json:"group_id"` // Can be either string or int depending on p.Settings.CompleteFields
MessageType string `json:"message_type"`
PostType string `json:"post_type"`
SelfID int64 `json:"self_id"` // Can be either string or int
Sender Sender `json:"sender"`
SubType string `json:"sub_type"`
Time int64 `json:"time"`
Avatar string `json:"avatar,omitempty"`
Echo string `json:"echo,omitempty"`
Message interface{} `json:"message"` // For array format
MessageSeq int `json:"message_seq"`
Font int `json:"font"`
UserID int64 `json:"user_id"`
RealMessageType string `json:"real_message_type"` //当前信息的真实类型 group group_private guild guild_private
IsBindedGroupId bool `json:"is_binded_group_id"` //当前群号是否是binded后的
IsBindedUserId bool `json:"is_binded_user_id"` //当前用户号号是否是binded后的
}

// 私聊信息事件
type OnebotPrivateMessage struct {
RawMessage string `json:"raw_message"`
MessageID int `json:"message_id"` // Can be either string or int depending on logic
MessageType string `json:"message_type"`
PostType string `json:"post_type"`
SelfID int64 `json:"self_id"` // Can be either string or int depending on logic
Sender PrivateSender `json:"sender"`
SubType string `json:"sub_type"`
Time int64 `json:"time"`
Avatar string `json:"avatar,omitempty"`
Echo string `json:"echo,omitempty"`
Message interface{} `json:"message"` // For array format
MessageSeq int `json:"message_seq"` // Optional field
Font int `json:"font"` // Optional field
UserID int64 `json:"user_id"` // Can be either string or int depending on logic
RawMessage string `json:"raw_message"`
MessageID int `json:"message_id"` // Can be either string or int depending on logic
MessageType string `json:"message_type"`
PostType string `json:"post_type"`
SelfID int64 `json:"self_id"` // Can be either string or int depending on logic
Sender PrivateSender `json:"sender"`
SubType string `json:"sub_type"`
Time int64 `json:"time"`
Avatar string `json:"avatar,omitempty"`
Echo string `json:"echo,omitempty"`
Message interface{} `json:"message"` // For array format
MessageSeq int `json:"message_seq"` // Optional field
Font int `json:"font"` // Optional field
UserID int64 `json:"user_id"` // Can be either string or int depending on logic
RealMessageType string `json:"real_message_type"` //当前信息的真实类型 group group_private guild guild_private
IsBindedUserId bool `json:"is_binded_user_id"` //当前用户号号是否是binded后的
}

type PrivateSender struct {
Expand Down
16 changes: 16 additions & 0 deletions idmap/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,22 @@ func generateRowID(id string, length int) (int64, error) {
return rowID, nil
}

// 检查id和value是否是转换关系
func CheckValue(id string, value int64) bool {
// 计算int64值的长度
length := len(strconv.FormatInt(value, 10))

// 使用generateRowID转换id
generatedValue, err := generateRowID(id, length)
if err != nil {
fmt.Println("Error:", err)
return false
}

// 比较生成的值与给定的值
return generatedValue == value
}

// 根据a储存b
func StoreID(id string) (int64, error) {
var newRow int64
Expand Down

0 comments on commit 5612562

Please sign in to comment.