1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 11:07:40 +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"
"github.com/Mrs4s/MiraiGo/binary"
"github.com/Mrs4s/MiraiGo/binary/jce"
"github.com/Mrs4s/MiraiGo/client/internal/auth"
"github.com/Mrs4s/MiraiGo/client/internal/highway"
"github.com/Mrs4s/MiraiGo/client/internal/network"
@ -74,8 +73,8 @@ type QQClient struct {
// timeDiff int64
// address
otherSrvAddrs []string
fileStorageInfo *jce.FileStoragePushFSSvcList
// otherSrvAddrs []string
// fileStorageInfo *jce.FileStoragePushFSSvcList
// message state
msgSvcCache *utils.Cache

View File

@ -3,7 +3,6 @@ package client
import (
"crypto/md5"
"encoding/hex"
"fmt"
"net"
"strconv"
"strings"
@ -343,7 +342,7 @@ func decodePushReqPacket(c *QQClient, _ *network.IncomingPacketInfo, payload []b
list := &jce.FileStoragePushFSSvcList{}
list.ReadFrom(fmtPkt)
c.Debug("got file storage svc push.")
c.fileStorageInfo = list
// c.fileStorageInfo = list
rsp := cmd0x6ff.C501RspBody{}
if err := proto.Unmarshal(list.BigDataChannel.PbBuf, &rsp); err == nil && rsp.RspBody != nil {
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())
}
}
if srv.GetServiceType() == 21 {
for _, addr := range srv.Addrs {
c.otherSrvAddrs = append(c.otherSrvAddrs, fmt.Sprintf("%v:%v", binary.UInt32ToIPV4Address(addr.GetIp()), addr.GetPort()))
/*
if srv.GetServiceType() == 21 {
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 {
reader := binary.NewReader(payload)
headLen := reader.ReadInt32()
if headLen-4 > int32(reader.Len()) {
if headLen < 4 || headLen-4 > int32(reader.Len()) {
return errors.WithStack(ErrPacketDropped)
}

View File

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