Skip to content

Commit

Permalink
refactor: move event processor
Browse files Browse the repository at this point in the history
  • Loading branch information
Redmomn committed Jun 28, 2024
1 parent 21b1ba6 commit 8c63901
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 32 deletions.
30 changes: 0 additions & 30 deletions client/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ package client
import (
"runtime/debug"
"sync"

"github.com/LagrangeDev/LagrangeGo/message"
)

// protected all EventHandle, since write is very rare, use
Expand Down Expand Up @@ -57,31 +55,3 @@ func (c *QQClient) onGroupMessageReceipt(id string, f ...func(*QQClient, *groupM
}
c.eventHandlers.groupMessageReceiptHandlers.LoadOrStore(id, f[0])
}

func (c *QQClient) PreProcessGroupMessageEvent(msg *message.GroupMessage) error {
for _, elem := range msg.Elements {
switch e := elem.(type) {
case *message.VoiceElement:
url, err := c.GetGroupRecordUrl(msg.GroupCode, e.Node)
if err != nil {
return err
}
e.Url = url
}
}
return nil
}

func (c *QQClient) PreProcessPrivateMessageEvent(msg *message.PrivateMessage) error {
for _, elem := range msg.Elements {
switch e := elem.(type) {
case *message.VoiceElement:
url, err := c.GetRecordUrl(e.Node)
if err != nil {
return err
}
e.Url = url
}
}
return nil
}
32 changes: 30 additions & 2 deletions client/listener.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func decodeOlPushServicePacket(c *QQClient, pkt *network.Packet) (any, error) {
switch typ {
case 166, 208: // 166 for private msg, 208 for private record
prvMsg := msgConverter.ParsePrivateMessage(&msg)
_ = c.PreProcessPrivateMessageEvent(prvMsg)
_ = c.PreprocessPrivateMessageEvent(prvMsg)
if prvMsg.Sender.Uin != c.Uin {
c.PrivateMessageEvent.dispatch(c, prvMsg)
} else {
Expand All @@ -50,7 +50,7 @@ func decodeOlPushServicePacket(c *QQClient, pkt *network.Packet) (any, error) {
return nil, nil
case 82: // group msg
grpMsg := msgConverter.ParseGroupMessage(&msg)
_ = c.PreProcessGroupMessageEvent(grpMsg)
_ = c.PreprocessGroupMessageEvent(grpMsg)
if grpMsg.Sender.Uin != c.Uin {
c.GroupMessageEvent.dispatch(c, grpMsg)
} else {
Expand Down Expand Up @@ -191,3 +191,31 @@ func decodeOlPushServicePacket(c *QQClient, pkt *network.Packet) (any, error) {
func decodeKickNTPacket(c *QQClient, pkt *network.Packet) (any, error) {
return nil, nil
}

func (c *QQClient) PreprocessGroupMessageEvent(msg *msgConverter.GroupMessage) error {
for _, elem := range msg.Elements {
switch e := elem.(type) {
case *msgConverter.VoiceElement:
url, err := c.GetGroupRecordUrl(msg.GroupCode, e.Node)
if err != nil {
return err
}
e.Url = url
}
}
return nil
}

func (c *QQClient) PreprocessPrivateMessageEvent(msg *msgConverter.PrivateMessage) error {
for _, elem := range msg.Elements {
switch e := elem.(type) {
case *msgConverter.VoiceElement:
url, err := c.GetRecordUrl(e.Node)
if err != nil {
return err
}
e.Url = url
}
}
return nil
}

0 comments on commit 8c63901

Please sign in to comment.