1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 19:17:38 +08:00

client: minor update

This commit is contained in:
wdvxdr 2022-02-18 18:13:55 +08:00
parent 0578942d86
commit bd6f8947ef
No known key found for this signature in database
GPG Key ID: 703F8C071DE7A1B6
4 changed files with 20 additions and 23 deletions

View File

@ -14,7 +14,6 @@ import (
"go.uber.org/atomic" "go.uber.org/atomic"
"github.com/Mrs4s/MiraiGo/binary" "github.com/Mrs4s/MiraiGo/binary"
"github.com/Mrs4s/MiraiGo/binary/jce"
"github.com/Mrs4s/MiraiGo/client/internal/auth" "github.com/Mrs4s/MiraiGo/client/internal/auth"
"github.com/Mrs4s/MiraiGo/client/internal/highway" "github.com/Mrs4s/MiraiGo/client/internal/highway"
"github.com/Mrs4s/MiraiGo/client/internal/network" "github.com/Mrs4s/MiraiGo/client/internal/network"
@ -74,8 +73,8 @@ type QQClient struct {
// timeDiff int64 // timeDiff int64
// address // address
otherSrvAddrs []string // otherSrvAddrs []string
fileStorageInfo *jce.FileStoragePushFSSvcList // fileStorageInfo *jce.FileStoragePushFSSvcList
// message state // message state
msgSvcCache *utils.Cache msgSvcCache *utils.Cache

View File

@ -3,7 +3,6 @@ package client
import ( import (
"crypto/md5" "crypto/md5"
"encoding/hex" "encoding/hex"
"fmt"
"net" "net"
"strconv" "strconv"
"strings" "strings"
@ -343,7 +342,7 @@ func decodePushReqPacket(c *QQClient, _ *network.IncomingPacketInfo, payload []b
list := &jce.FileStoragePushFSSvcList{} list := &jce.FileStoragePushFSSvcList{}
list.ReadFrom(fmtPkt) list.ReadFrom(fmtPkt)
c.Debug("got file storage svc push.") c.Debug("got file storage svc push.")
c.fileStorageInfo = list // c.fileStorageInfo = list
rsp := cmd0x6ff.C501RspBody{} rsp := cmd0x6ff.C501RspBody{}
if err := proto.Unmarshal(list.BigDataChannel.PbBuf, &rsp); err == nil && rsp.RspBody != nil { if err := proto.Unmarshal(list.BigDataChannel.PbBuf, &rsp); err == nil && rsp.RspBody != nil {
c.highwaySession.SigSession = rsp.RspBody.SigSession c.highwaySession.SigSession = rsp.RspBody.SigSession
@ -354,11 +353,14 @@ func decodePushReqPacket(c *QQClient, _ *network.IncomingPacketInfo, payload []b
c.highwaySession.AppendAddr(addr.GetIp(), addr.GetPort()) c.highwaySession.AppendAddr(addr.GetIp(), addr.GetPort())
} }
} }
if srv.GetServiceType() == 21 { /*
for _, addr := range srv.Addrs { if srv.GetServiceType() == 21 {
c.otherSrvAddrs = append(c.otherSrvAddrs, fmt.Sprintf("%v:%v", binary.UInt32ToIPV4Address(addr.GetIp()), addr.GetPort())) for _, addr := range srv.Addrs {
c.otherSrvAddrs = append(c.otherSrvAddrs, fmt.Sprintf("%v:%v", binary.UInt32ToIPV4Address(addr.GetIp()), addr.GetPort()))
}
} }
}
*/
} }
} }
} }

View File

@ -55,7 +55,7 @@ func (t *Transport) ReadResponse(head []byte) (*Response, error) {
func (t *Transport) readSSOFrame(resp *Response, payload []byte) error { func (t *Transport) readSSOFrame(resp *Response, payload []byte) error {
reader := binary.NewReader(payload) reader := binary.NewReader(payload)
headLen := reader.ReadInt32() headLen := reader.ReadInt32()
if headLen-4 > int32(reader.Len()) { if headLen < 4 || headLen-4 > int32(reader.Len()) {
return errors.WithStack(ErrPacketDropped) return errors.WithStack(ErrPacketDropped)
} }

View File

@ -1,6 +1,7 @@
package client package client
import ( import (
"bytes"
"fmt" "fmt"
"math" "math"
"time" "time"
@ -190,23 +191,18 @@ func (c *QQClient) DownloadForwardMessage(resId string) *message.ForwardElement
if multiMsg.PbItemList == nil { if multiMsg.PbItemList == nil {
return nil return nil
} }
var pv string var pv bytes.Buffer
for i := 0; i < int(math.Min(4, float64(len(multiMsg.Msg)))); i++ { for i := 0; i < int(math.Min(4, float64(len(multiMsg.Msg)))); i++ {
m := multiMsg.Msg[i] m := multiMsg.Msg[i]
pv += fmt.Sprintf(`<title size="26" color="#777777">%s: %s</title>`, sender := m.Head.GetFromNick()
func() string { if m.Head.GetMsgType() == 82 && m.Head.GroupInfo != nil {
if m.Head.GetMsgType() == 82 && m.Head.GroupInfo != nil { sender = m.Head.GroupInfo.GetGroupCard()
return m.Head.GroupInfo.GetGroupCard() }
} brief := message.ToReadableString(message.ParseMessageElems(multiMsg.Msg[i].Body.RichText.Elems))
return m.Head.GetFromNick() fmt.Fprintf(&pv, `<title size="26" color="#777777">%s: %s</title>`, sender, brief)
}(),
message.ToReadableString(
message.ParseMessageElems(multiMsg.Msg[i].Body.RichText.Elems),
),
)
} }
return genForwardTemplate( return genForwardTemplate(
resId, pv, "群聊的聊天记录", "[聊天记录]", "聊天记录", resId, pv.String(), "群聊的聊天记录", "[聊天记录]", "聊天记录",
fmt.Sprintf("查看 %d 条转发消息", len(multiMsg.Msg)), fmt.Sprintf("查看 %d 条转发消息", len(multiMsg.Msg)),
time.Now().UnixNano(), time.Now().UnixNano(),
multiMsg.PbItemList, multiMsg.PbItemList,