mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +08:00
commit
8716a0b913
@ -42,6 +42,7 @@ qq-android协议的golang实现 移植于mirai
|
||||
- [x] 新好友
|
||||
- [x] 新好友请求
|
||||
- [x] 客户端离线
|
||||
- [x] 群提示 (戳一戳/运气王等)
|
||||
|
||||
#### 主动操作
|
||||
> 为防止滥用,将不支持主动邀请新成员进群
|
||||
@ -57,7 +58,7 @@ qq-android协议的golang实现 移植于mirai
|
||||
- [x] 处理被邀请加群请求
|
||||
- [x] 处理好友请求
|
||||
- [x] 撤回群消息
|
||||
- [ ] 群公告设置
|
||||
- [x] 群公告设置
|
||||
- [x] 获取群文件下载链接
|
||||
- [x] 群设置 (全体禁言/群名)
|
||||
- [x] 修改群成员Card
|
||||
@ -65,3 +66,4 @@ qq-android协议的golang实现 移植于mirai
|
||||
- [ ] ~~群成员邀请~~
|
||||
- [x] 群成员禁言/解除禁言
|
||||
- [x] T出群成员
|
||||
- [x] 戳一戳群友
|
||||
|
@ -27,6 +27,12 @@ type (
|
||||
Map map[string]map[string][]byte `jceId:"0"`
|
||||
}
|
||||
|
||||
SsoServerInfo struct {
|
||||
Server string `jceId:"1"`
|
||||
Port int32 `jceId:"2"`
|
||||
Location string `jceId:"8"`
|
||||
}
|
||||
|
||||
SvcReqRegister struct {
|
||||
IJceStruct
|
||||
Uin int64 `jceId:"0"`
|
||||
@ -358,6 +364,12 @@ func (pkt *RequestDataVersion2) ReadFrom(r *JceReader) {
|
||||
})
|
||||
}
|
||||
|
||||
func (pkt *SsoServerInfo) ReadFrom(r *JceReader) {
|
||||
pkt.Server = r.ReadString(1)
|
||||
pkt.Port = r.ReadInt32(2)
|
||||
pkt.Location = r.ReadString(8)
|
||||
}
|
||||
|
||||
func (pkt *SvcReqRegister) ToBytes() []byte {
|
||||
w := NewJceWriter()
|
||||
w.WriteJceStructRaw(pkt)
|
||||
|
@ -37,9 +37,9 @@ func (c *QQClient) buildLoginPacket() (uint16, []byte) {
|
||||
|
||||
w.Write(tlv.T18(16, uint32(c.Uin)))
|
||||
w.Write(tlv.T1(uint32(c.Uin), SystemDeviceInfo.IpAddress))
|
||||
w.Write(tlv.T106(uint32(c.Uin), 0, c.PasswordMd5, true, SystemDeviceInfo.Guid, SystemDeviceInfo.TgtgtKey))
|
||||
w.Write(tlv.T106(uint32(c.Uin), 0, uint32(SystemDeviceInfo.Protocol), c.PasswordMd5, true, SystemDeviceInfo.Guid, SystemDeviceInfo.TgtgtKey))
|
||||
w.Write(tlv.T116(184024956, 0x10400))
|
||||
w.Write(tlv.T100())
|
||||
w.Write(tlv.T100(uint32(SystemDeviceInfo.Protocol)))
|
||||
w.Write(tlv.T107(0))
|
||||
w.Write(tlv.T142("com.tencent.mobileqq"))
|
||||
w.Write(tlv.T144(
|
||||
@ -86,7 +86,7 @@ func (c *QQClient) buildLoginPacket() (uint16, []byte) {
|
||||
w.Write(tlv.T521())
|
||||
w.Write(tlv.T525(tlv.T536([]byte{0x01, 0x00})))
|
||||
})
|
||||
sso := packets.BuildSsoPacket(seq, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid)
|
||||
sso := packets.BuildSsoPacket(seq, uint32(SystemDeviceInfo.Protocol), "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid)
|
||||
packet := packets.BuildLoginPacket(c.Uin, 2, make([]byte, 16), sso, []byte{})
|
||||
return seq, packet
|
||||
}
|
||||
@ -103,7 +103,7 @@ func (c *QQClient) buildDeviceLockLoginPacket(t402 []byte) (uint16, []byte) {
|
||||
h := md5.Sum(append(append(SystemDeviceInfo.Guid, []byte("stMNokHgxZUGhsYp")...), t402...))
|
||||
w.Write(tlv.T401(h[:]))
|
||||
})
|
||||
sso := packets.BuildSsoPacket(seq, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid)
|
||||
sso := packets.BuildSsoPacket(seq, uint32(SystemDeviceInfo.Protocol), "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid)
|
||||
packet := packets.BuildLoginPacket(c.Uin, 2, make([]byte, 16), sso, []byte{})
|
||||
return seq, packet
|
||||
}
|
||||
@ -118,7 +118,7 @@ func (c *QQClient) buildCaptchaPacket(result string, sign []byte) (uint16, []byt
|
||||
w.Write(tlv.T104(c.t104))
|
||||
w.Write(tlv.T116(150470524, 66560))
|
||||
})
|
||||
sso := packets.BuildSsoPacket(seq, "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid)
|
||||
sso := packets.BuildSsoPacket(seq, uint32(SystemDeviceInfo.Protocol), "wtlogin.login", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, req, c.ksid)
|
||||
packet := packets.BuildLoginPacket(c.Uin, 2, make([]byte, 16), sso, []byte{})
|
||||
return seq, packet
|
||||
}
|
||||
@ -166,7 +166,7 @@ func (c *QQClient) buildClientRegisterPacket() (uint16, []byte) {
|
||||
Context: make(map[string]string),
|
||||
Status: make(map[string]string),
|
||||
}
|
||||
sso := packets.BuildSsoPacket(seq, "StatSvc.register", SystemDeviceInfo.IMEI, c.sigInfo.tgt, c.OutGoingPacketSessionId, pkt.ToBytes(), c.ksid)
|
||||
sso := packets.BuildSsoPacket(seq, uint32(SystemDeviceInfo.Protocol), "StatSvc.register", SystemDeviceInfo.IMEI, c.sigInfo.tgt, c.OutGoingPacketSessionId, pkt.ToBytes(), c.ksid)
|
||||
packet := packets.BuildLoginPacket(c.Uin, 1, c.sigInfo.d2Key, sso, c.sigInfo.d2)
|
||||
return seq, packet
|
||||
}
|
||||
@ -252,12 +252,12 @@ func (c *QQClient) buildFriendGroupListRequestPacket(friendStartIndex, friendLis
|
||||
}
|
||||
|
||||
// friendlist.GetTroopListReqV2
|
||||
func (c *QQClient) buildGroupListRequestPacket() (uint16, []byte) {
|
||||
func (c *QQClient) buildGroupListRequestPacket(vecCookie []byte) (uint16, []byte) {
|
||||
seq := c.nextSeq()
|
||||
req := &jce.TroopListRequest{
|
||||
Uin: c.Uin,
|
||||
GetMSFMsgFlag: 1,
|
||||
Cookies: []byte{},
|
||||
Cookies: vecCookie,
|
||||
GroupInfo: []int64{},
|
||||
GroupFlagExt: 1,
|
||||
Version: 7,
|
||||
@ -569,7 +569,7 @@ func (c *QQClient) buildImageUploadPacket(data, updKey []byte, commandId int32,
|
||||
}
|
||||
return c.nextGroupDataTransSeq()
|
||||
}(),
|
||||
Appid: 537062409,
|
||||
Appid: int32(SystemDeviceInfo.Protocol),
|
||||
Dataflag: 4096,
|
||||
CommandId: commandId,
|
||||
LocaleId: 2052,
|
||||
@ -915,6 +915,46 @@ func (c *QQClient) buildGroupMutePacket(groupCode, memberUin int64, time uint32)
|
||||
return seq, packet
|
||||
}
|
||||
|
||||
// OidbSvc.0xed3
|
||||
func (c *QQClient) buildGroupPokePacket(groupCode, target int64) (uint16, []byte) {
|
||||
seq := c.nextSeq()
|
||||
body := &oidb.DED3ReqBody{
|
||||
ToUin: target,
|
||||
GroupCode: groupCode,
|
||||
}
|
||||
b, _ := proto.Marshal(body)
|
||||
req := &oidb.OIDBSSOPkg{
|
||||
Command: 3795,
|
||||
ServiceType: 1,
|
||||
Bodybuffer: b,
|
||||
}
|
||||
payload, _ := proto.Marshal(req)
|
||||
packet := packets.BuildUniPacket(c.Uin, seq, "OidbSvc.0xed3", 1, c.OutGoingPacketSessionId, EmptyBytes, c.sigInfo.d2Key, payload)
|
||||
return seq, packet
|
||||
}
|
||||
|
||||
// OidbSvc.0x55c_1
|
||||
func (c *QQClient) buildGroupAdminSetPacket(groupCode, member int64, flag bool) (uint16, []byte) {
|
||||
seq := c.nextSeq()
|
||||
req := &oidb.OIDBSSOPkg{
|
||||
Command: 1372,
|
||||
ServiceType: 1,
|
||||
Bodybuffer: binary.NewWriterF(func(w *binary.Writer) {
|
||||
w.WriteUInt32(uint32(groupCode))
|
||||
w.WriteUInt32(uint32(member))
|
||||
w.WriteByte(func() byte {
|
||||
if flag {
|
||||
return 1
|
||||
}
|
||||
return 0
|
||||
}())
|
||||
}),
|
||||
}
|
||||
payload, _ := proto.Marshal(req)
|
||||
packet := packets.BuildUniPacket(c.Uin, seq, "OidbSvc.0x55c_1", 1, c.OutGoingPacketSessionId, EmptyBytes, c.sigInfo.d2Key, payload)
|
||||
return seq, packet
|
||||
}
|
||||
|
||||
// MultiMsg.ApplyUp
|
||||
func (c *QQClient) buildMultiApplyUpPacket(data, hash []byte, buType int32, groupUin int64) (uint16, []byte) {
|
||||
seq := c.nextSeq()
|
||||
|
@ -13,10 +13,10 @@ import (
|
||||
"math/rand"
|
||||
"net"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
"time"
|
||||
"strings"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
|
||||
@ -30,8 +30,9 @@ import (
|
||||
)
|
||||
|
||||
type QQClient struct {
|
||||
Uin int64
|
||||
PasswordMd5 [16]byte
|
||||
Uin int64
|
||||
PasswordMd5 [16]byte
|
||||
CustomServer *net.TCPAddr
|
||||
|
||||
Nickname string
|
||||
Age uint16
|
||||
@ -44,6 +45,7 @@ type QQClient struct {
|
||||
OutGoingPacketSessionId []byte
|
||||
RandomKey []byte
|
||||
Conn net.Conn
|
||||
ConnectTime time.Time
|
||||
|
||||
decoders map[string]func(*QQClient, uint16, []byte) (interface{}, error)
|
||||
handlers sync.Map
|
||||
@ -180,13 +182,13 @@ func (c *QQClient) Login() (*LoginResponse, error) {
|
||||
}
|
||||
|
||||
func (c *QQClient) GetVipInfo(target int64) (*VipInfo, error) {
|
||||
b, err := utils.HttpGetBytes(fmt.Sprintf("https://h5.vip.qq.com/p/mc/cardv2/other?platform=1&qq=%d&adtag=geren&aid=mvip.pingtai.mobileqq.androidziliaoka.fromqita",target),c.getCookiesWithDomain("h5.vip.qq.com"))
|
||||
b, err := utils.HttpGetBytes(fmt.Sprintf("https://h5.vip.qq.com/p/mc/cardv2/other?platform=1&qq=%d&adtag=geren&aid=mvip.pingtai.mobileqq.androidziliaoka.fromqita", target), c.getCookiesWithDomain("h5.vip.qq.com"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
ret := VipInfo{Uin: target};
|
||||
ret := VipInfo{Uin: target}
|
||||
b = b[bytes.Index(b, []byte(`<span class="ui-nowrap">`))+24:]
|
||||
t := b[:bytes.Index(b,[]byte(`</span>`))]
|
||||
t := b[:bytes.Index(b, []byte(`</span>`))]
|
||||
ret.Name = string(t)
|
||||
b = b[bytes.Index(b, []byte(`<small>LV</small>`))+17:]
|
||||
t = b[:bytes.Index(b, []byte(`</p>`))]
|
||||
@ -194,7 +196,7 @@ func (c *QQClient) GetVipInfo(target int64) (*VipInfo, error) {
|
||||
b = b[bytes.Index(b, []byte(`<div class="pk-line pk-line-guest">`))+35:]
|
||||
b = b[bytes.Index(b, []byte(`<p>`))+3:]
|
||||
t = b[:bytes.Index(b, []byte(`<small>倍`))]
|
||||
ret.LevelSpeed, _ = strconv.ParseFloat(string(t),64)
|
||||
ret.LevelSpeed, _ = strconv.ParseFloat(string(t), 64)
|
||||
b = b[bytes.Index(b, []byte(`<div class="pk-line pk-line-guest">`))+35:]
|
||||
b = b[bytes.Index(b, []byte(`<p>`))+3:]
|
||||
st := string(b[:bytes.Index(b, []byte(`</p>`))])
|
||||
@ -209,7 +211,7 @@ func (c *QQClient) GetVipInfo(target int64) (*VipInfo, error) {
|
||||
b = b[bytes.Index(b, []byte(`<p>`))+3:]
|
||||
t = b[:bytes.Index(b, []byte(`</p>`))]
|
||||
ret.VipGrowthTotal, _ = strconv.Atoi(string(t))
|
||||
return &ret,nil
|
||||
return &ret, nil
|
||||
}
|
||||
|
||||
func (c *QQClient) GetGroupHonorInfo(groupCode int64, honorType HonorType) (*GroupHonorInfo, error) {
|
||||
@ -296,6 +298,11 @@ func (c *QQClient) SendGroupMessage(groupCode int64, m *message.SendingMessage,
|
||||
useFram = f[0]
|
||||
}
|
||||
imgCount := m.Count(func(e message.IMessageElement) bool { return e.Type() == message.Image })
|
||||
if useFram {
|
||||
if m.Any(func(e message.IMessageElement) bool { return e.Type() == message.Reply }) {
|
||||
useFram = false
|
||||
}
|
||||
}
|
||||
msgLen := message.EstimateLength(m.Elements, 703)
|
||||
if msgLen > 5000 || imgCount > 50 {
|
||||
return nil
|
||||
@ -445,7 +452,7 @@ func (c *QQClient) GetForwardMessage(resId string) *message.ForwardMessage {
|
||||
ret.Nodes = append(ret.Nodes, &message.ForwardNode{
|
||||
SenderId: m.Head.FromUin,
|
||||
SenderName: func() string {
|
||||
if m.Head.MsgType == 82 {
|
||||
if m.Head.MsgType == 82 && m.Head.GroupInfo != nil {
|
||||
return m.Head.GroupInfo.GroupCard
|
||||
}
|
||||
return m.Head.FromNick
|
||||
@ -519,6 +526,10 @@ func (c *QQClient) sendGroupLongOrForwardMessage(groupCode int64, isLong bool, m
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *QQClient) sendGroupPoke(groupCode, target int64) {
|
||||
_, _ = c.sendAndWait(c.buildGroupPokePacket(groupCode, target))
|
||||
}
|
||||
|
||||
func (c *QQClient) RecallGroupMessage(groupCode int64, msgId, msgInternalId int32) {
|
||||
_, pkt := c.buildGroupRecallPacket(groupCode, msgId, msgInternalId)
|
||||
_ = c.send(pkt)
|
||||
@ -653,7 +664,7 @@ func (c *QQClient) ReloadGroupList() error {
|
||||
}
|
||||
|
||||
func (c *QQClient) GetGroupList() ([]*GroupInfo, error) {
|
||||
rsp, err := c.sendAndWait(c.buildGroupListRequestPacket())
|
||||
rsp, err := c.sendAndWait(c.buildGroupListRequestPacket(EmptyBytes))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -803,6 +814,10 @@ func (c *QQClient) editMemberSpecialTitle(groupCode, memberUin int64, title stri
|
||||
_, _ = c.sendAndWait(c.buildEditSpecialTitlePacket(groupCode, memberUin, title))
|
||||
}
|
||||
|
||||
func (c *QQClient) setGroupAdmin(groupCode, memberUin int64, flag bool) {
|
||||
_, _ = c.sendAndWait(c.buildGroupAdminSetPacket(groupCode, memberUin, flag))
|
||||
}
|
||||
|
||||
func (c *QQClient) updateGroupName(groupCode int64, newName string) {
|
||||
_, _ = c.sendAndWait(c.buildGroupNameUpdatePacket(groupCode, newName))
|
||||
}
|
||||
@ -853,21 +868,30 @@ var servers = []*net.TCPAddr{
|
||||
|
||||
func (c *QQClient) connect() error {
|
||||
if c.server == nil {
|
||||
addrs, err := net.LookupIP("msfwifi.3g.qq.com")
|
||||
if err == nil && len(addrs) > 0 {
|
||||
c.server = &net.TCPAddr{
|
||||
IP: addrs[rand.Intn(len(addrs))],
|
||||
Port: 8080,
|
||||
}
|
||||
if c.CustomServer != nil {
|
||||
c.server = c.CustomServer
|
||||
} else {
|
||||
c.server = servers[rand.Intn(len(servers))]
|
||||
addrs, err := net.LookupIP("msfwifi.3g.qq.com")
|
||||
if err == nil && len(addrs) > 0 {
|
||||
c.server = &net.TCPAddr{
|
||||
IP: addrs[rand.Intn(len(addrs))],
|
||||
Port: 8080,
|
||||
}
|
||||
} else {
|
||||
c.server = servers[rand.Intn(len(servers))]
|
||||
}
|
||||
}
|
||||
}
|
||||
c.Info("connect to server: %v", c.server.String())
|
||||
conn, err := net.DialTCP("tcp", nil, c.server)
|
||||
if err != nil {
|
||||
if c.CustomServer != nil {
|
||||
c.CustomServer = nil
|
||||
return c.connect()
|
||||
}
|
||||
return err
|
||||
}
|
||||
c.ConnectTime = time.Now()
|
||||
c.Conn = conn
|
||||
c.onlinePushCache = []int16{}
|
||||
return nil
|
||||
@ -932,6 +956,7 @@ func (c *QQClient) sendAndWait(seq uint16, pkt []byte) (interface{}, error) {
|
||||
case <-time.After(time.Second * 30):
|
||||
retry++
|
||||
if retry < 2 {
|
||||
c.Error("packet %v timed out. retry.", seq)
|
||||
_ = c.send(pkt)
|
||||
continue
|
||||
}
|
||||
@ -950,6 +975,12 @@ func (c *QQClient) netLoop() {
|
||||
for c.Online {
|
||||
l, err := reader.ReadInt32()
|
||||
if err == io.EOF || err == io.ErrClosedPipe {
|
||||
c.Error("connection dropped by server: %v", err)
|
||||
if c.ConnectTime.Sub(time.Now()) < time.Minute && c.CustomServer != nil {
|
||||
c.Error("custom server error.")
|
||||
c.CustomServer = nil
|
||||
c.server = nil
|
||||
}
|
||||
err = c.connect()
|
||||
if err != nil {
|
||||
break
|
||||
@ -1021,9 +1052,11 @@ func (c *QQClient) startHeartbeat() {
|
||||
func (c *QQClient) doHeartbeat() {
|
||||
if c.Online {
|
||||
seq := c.nextSeq()
|
||||
sso := packets.BuildSsoPacket(seq, "Heartbeat.Alive", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, []byte{}, c.ksid)
|
||||
sso := packets.BuildSsoPacket(seq, uint32(SystemDeviceInfo.Protocol), "Heartbeat.Alive", SystemDeviceInfo.IMEI, []byte{}, c.OutGoingPacketSessionId, []byte{}, c.ksid)
|
||||
packet := packets.BuildLoginPacket(c.Uin, 0, []byte{}, sso, []byte{})
|
||||
_, _ = c.sendAndWait(seq, packet)
|
||||
_, pkt := c.buildGetMessageRequestPacket(msg.SyncFlag_START, time.Now().Unix())
|
||||
c.send(pkt)
|
||||
time.AfterFunc(30*time.Second, c.doHeartbeat)
|
||||
}
|
||||
}
|
||||
|
@ -4,8 +4,10 @@ import (
|
||||
"encoding/hex"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/Mrs4s/MiraiGo/client/pb/notify"
|
||||
"github.com/Mrs4s/MiraiGo/client/pb/pttcenter"
|
||||
"log"
|
||||
"net"
|
||||
"strconv"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
@ -130,6 +132,24 @@ func decodePushReqPacket(c *QQClient, _ uint16, payload []byte) (interface{}, er
|
||||
jceBuf := []byte{}
|
||||
t := r.ReadInt32(1)
|
||||
r.ReadSlice(&jceBuf, 2)
|
||||
if t == 1 && len(jceBuf) > 0 {
|
||||
ssoPkt := jce.NewJceReader(jceBuf)
|
||||
servers := []jce.SsoServerInfo{}
|
||||
ssoPkt.ReadSlice(&servers, 1)
|
||||
if len(servers) > 0 {
|
||||
c.server = &net.TCPAddr{
|
||||
IP: net.ParseIP(servers[0].Server),
|
||||
Port: int(servers[0].Port),
|
||||
}
|
||||
c.Debug("got new server addr: %v location: %v", c.server.String(), servers[0].Location)
|
||||
for _, e := range c.eventHandlers.serverUpdatedHandlers {
|
||||
cover(func() {
|
||||
e(c, &ServerUpdatedEvent{Servers: servers})
|
||||
})
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
}
|
||||
seq := r.ReadInt64(3)
|
||||
_, pkt := c.buildConfPushRespPacket(t, seq, jceBuf)
|
||||
return nil, c.send(pkt)
|
||||
@ -243,6 +263,7 @@ func decodeMessageSvcPacket(c *QQClient, _ uint16, payload []byte) (interface{},
|
||||
}
|
||||
_, _ = c.sendAndWait(c.buildDeleteMessageRequestPacket(delItems))
|
||||
if rsp.SyncFlag != msg.SyncFlag_STOP {
|
||||
c.Debug("continue sync with flag: %v", rsp.SyncFlag.String())
|
||||
_, _ = c.sendAndWait(c.buildGetMessageRequestPacket(rsp.SyncFlag, time.Now().Unix()))
|
||||
}
|
||||
return nil, err
|
||||
@ -333,7 +354,9 @@ func decodeGroupListResponse(c *QQClient, _ uint16, payload []byte) (interface{}
|
||||
data := &jce.RequestDataVersion3{}
|
||||
data.ReadFrom(jce.NewJceReader(request.SBuffer))
|
||||
r := jce.NewJceReader(data.Map["GetTroopListRespV2"][1:])
|
||||
vecCookie := []byte{}
|
||||
groups := []jce.TroopNumber{}
|
||||
r.ReadSlice(&vecCookie, 4)
|
||||
r.ReadSlice(&groups, 5)
|
||||
var l []*GroupInfo
|
||||
for _, g := range groups {
|
||||
@ -348,6 +371,13 @@ func decodeGroupListResponse(c *QQClient, _ uint16, payload []byte) (interface{}
|
||||
client: c,
|
||||
})
|
||||
}
|
||||
if len(vecCookie) > 0 {
|
||||
rsp, err := c.sendAndWait(c.buildGroupListRequestPacket(vecCookie))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
l = append(l, rsp.([]*GroupInfo)...)
|
||||
}
|
||||
return l, nil
|
||||
}
|
||||
|
||||
@ -513,21 +543,49 @@ func decodeOnlinePushReqPacket(c *QQClient, seq uint16, payload []byte) (interfa
|
||||
TargetUin: target,
|
||||
Time: t,
|
||||
})
|
||||
case 0x11: // 撤回消息
|
||||
case 0x10, 0x11, 0x14: // group notify msg
|
||||
r.ReadByte()
|
||||
b := pb.NotifyMsgBody{}
|
||||
b := notify.NotifyMsgBody{}
|
||||
_ = proto.Unmarshal(r.ReadAvailable(), &b)
|
||||
if b.OptMsgRecall == nil {
|
||||
continue
|
||||
if b.OptMsgRecall != nil {
|
||||
for _, rm := range b.OptMsgRecall.RecalledMsgList {
|
||||
c.dispatchGroupMessageRecalledEvent(&GroupMessageRecalledEvent{
|
||||
GroupCode: groupId,
|
||||
OperatorUin: b.OptMsgRecall.Uin,
|
||||
AuthorUin: rm.AuthorUin,
|
||||
MessageId: rm.Seq,
|
||||
Time: rm.Time,
|
||||
})
|
||||
}
|
||||
}
|
||||
for _, rm := range b.OptMsgRecall.RecalledMsgList {
|
||||
c.dispatchGroupMessageRecalledEvent(&GroupMessageRecalledEvent{
|
||||
GroupCode: groupId,
|
||||
OperatorUin: b.OptMsgRecall.Uin,
|
||||
AuthorUin: rm.AuthorUin,
|
||||
MessageId: rm.Seq,
|
||||
Time: rm.Time,
|
||||
})
|
||||
if b.OptGeneralGrayTip != nil {
|
||||
switch b.OptGeneralGrayTip.TemplId {
|
||||
case 10043, 1136: // 戳一戳
|
||||
var sender int64 = 0
|
||||
receiver := c.Uin
|
||||
for _, templ := range b.OptGeneralGrayTip.MsgTemplParam {
|
||||
if templ.Name == "uin_str1" {
|
||||
sender, _ = strconv.ParseInt(templ.Value, 10, 64)
|
||||
}
|
||||
if templ.Name == "uin_str2" {
|
||||
receiver, _ = strconv.ParseInt(templ.Value, 10, 64)
|
||||
}
|
||||
}
|
||||
c.dispatchGroupNotifyEvent(&GroupPokeNotifyEvent{
|
||||
GroupCode: groupId,
|
||||
Sender: sender,
|
||||
Receiver: receiver,
|
||||
})
|
||||
}
|
||||
}
|
||||
if b.OptMsgRedTips != nil {
|
||||
if b.OptMsgRedTips.LuckyFlag == 1 { // 运气王提示
|
||||
c.dispatchGroupNotifyEvent(&GroupRedBagLuckyKingNotifyEvent{
|
||||
GroupCode: groupId,
|
||||
Sender: int64(b.OptMsgRedTips.SenderUin),
|
||||
LuckyKing: int64(b.OptMsgRedTips.ReceiverUin),
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package client
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/Mrs4s/MiraiGo/binary/jce"
|
||||
"strings"
|
||||
"sync"
|
||||
)
|
||||
@ -15,6 +16,8 @@ type (
|
||||
|
||||
MemberPermission int
|
||||
|
||||
ClientProtocol int
|
||||
|
||||
LoginResponse struct {
|
||||
Success bool
|
||||
Error LoginError
|
||||
@ -102,6 +105,12 @@ type (
|
||||
Member *GroupMemberInfo
|
||||
}
|
||||
|
||||
IGroupNotifyEvent interface {
|
||||
From() int64
|
||||
Name() string
|
||||
Content() string
|
||||
}
|
||||
|
||||
MemberLeaveGroupEvent struct {
|
||||
Group *GroupInfo
|
||||
Member *GroupMemberInfo
|
||||
@ -154,6 +163,10 @@ type (
|
||||
Message string
|
||||
}
|
||||
|
||||
ServerUpdatedEvent struct {
|
||||
Servers []jce.SsoServerInfo
|
||||
}
|
||||
|
||||
NewFriendEvent struct {
|
||||
Friend *FriendInfo
|
||||
}
|
||||
@ -204,6 +217,10 @@ const (
|
||||
Owner MemberPermission = iota
|
||||
Administrator
|
||||
Member
|
||||
|
||||
AndroidPhone ClientProtocol = 537062845
|
||||
AndroidPad ClientProtocol = 537062409
|
||||
AndroidWatch ClientProtocol = 537061176
|
||||
)
|
||||
|
||||
func (g *GroupInfo) UpdateName(newName string) {
|
||||
@ -246,6 +263,16 @@ func (m *GroupMemberInfo) EditCard(card string) {
|
||||
}
|
||||
}
|
||||
|
||||
func (m *GroupMemberInfo) Poke() {
|
||||
m.Group.client.sendGroupPoke(m.Group.Code, m.Uin)
|
||||
}
|
||||
|
||||
func (m *GroupMemberInfo) SetAdmin(flag bool) {
|
||||
if m.Group.OwnerUin == m.Group.client.Uin {
|
||||
m.Group.client.setGroupAdmin(m.Group.Code, m.Uin, flag)
|
||||
}
|
||||
}
|
||||
|
||||
func (m *GroupMemberInfo) EditSpecialTitle(title string) {
|
||||
if m.Group.SelfPermission() == Owner && len(title) <= 18 {
|
||||
m.Group.client.editMemberSpecialTitle(m.Group.Code, m.Uin, title)
|
||||
|
@ -24,6 +24,8 @@ type eventHandlers struct {
|
||||
newFriendHandlers []func(*QQClient, *NewFriendEvent)
|
||||
disconnectHandlers []func(*QQClient, *ClientDisconnectedEvent)
|
||||
logHandlers []func(*QQClient, *LogEvent)
|
||||
serverUpdatedHandlers []func(*QQClient, *ServerUpdatedEvent)
|
||||
notifyHandlers []func(*QQClient, IGroupNotifyEvent)
|
||||
groupMessageReceiptHandlers sync.Map
|
||||
}
|
||||
|
||||
@ -99,10 +101,18 @@ func (c *QQClient) OnDisconnected(f func(*QQClient, *ClientDisconnectedEvent)) {
|
||||
c.eventHandlers.disconnectHandlers = append(c.eventHandlers.disconnectHandlers, f)
|
||||
}
|
||||
|
||||
func (c *QQClient) OnServerUpdated(f func(*QQClient, *ServerUpdatedEvent)) {
|
||||
c.eventHandlers.serverUpdatedHandlers = append(c.eventHandlers.serverUpdatedHandlers, f)
|
||||
}
|
||||
|
||||
func (c *QQClient) OnLog(f func(*QQClient, *LogEvent)) {
|
||||
c.eventHandlers.logHandlers = append(c.eventHandlers.logHandlers, f)
|
||||
}
|
||||
|
||||
func (c *QQClient) OnGroupNotify(f func(*QQClient, IGroupNotifyEvent)) {
|
||||
c.eventHandlers.notifyHandlers = append(c.eventHandlers.notifyHandlers, f)
|
||||
}
|
||||
|
||||
func NewUinFilterPrivate(uin int64) func(*message.PrivateMessage) bool {
|
||||
return func(msg *message.PrivateMessage) bool {
|
||||
return msg.Sender.Uin == uin
|
||||
@ -289,6 +299,17 @@ func (c *QQClient) dispatchNewFriendEvent(e *NewFriendEvent) {
|
||||
}
|
||||
}
|
||||
|
||||
func (c *QQClient) dispatchGroupNotifyEvent(e IGroupNotifyEvent) {
|
||||
if e == nil {
|
||||
return
|
||||
}
|
||||
for _, f := range c.eventHandlers.notifyHandlers {
|
||||
cover(func() {
|
||||
f(c, e)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func (c *QQClient) dispatchDisconnectEvent(e *ClientDisconnectedEvent) {
|
||||
if e == nil {
|
||||
return
|
||||
|
@ -38,6 +38,7 @@ type DeviceInfo struct {
|
||||
APN []byte
|
||||
Guid []byte
|
||||
TgtgtKey []byte
|
||||
Protocol ClientProtocol
|
||||
Version *Version
|
||||
}
|
||||
|
||||
@ -57,6 +58,7 @@ type DeviceInfoFile struct {
|
||||
FingerPrint string `json:"finger_print"`
|
||||
BootId string `json:"boot_id"`
|
||||
ProcVersion string `json:"proc_version"`
|
||||
Protocol int `json:"protocol"` // 0: Pad 1: Phone 2: Watch
|
||||
IMEI string `json:"imei"`
|
||||
}
|
||||
|
||||
@ -88,6 +90,7 @@ var SystemDeviceInfo = &DeviceInfo{
|
||||
IMEI: "468356291846738",
|
||||
AndroidId: []byte("MIRAI.123456.001"),
|
||||
APN: []byte("wifi"),
|
||||
Protocol: AndroidPad,
|
||||
Version: &Version{
|
||||
Incremental: []byte("5891938"),
|
||||
Release: []byte("10"),
|
||||
@ -135,6 +138,17 @@ func (info *DeviceInfo) ToJson() []byte {
|
||||
BootId: string(info.BootId),
|
||||
ProcVersion: string(info.ProcVersion),
|
||||
IMEI: info.IMEI,
|
||||
Protocol: func() int {
|
||||
switch info.Protocol {
|
||||
case AndroidPad:
|
||||
return 0
|
||||
case AndroidPhone:
|
||||
return 1
|
||||
case AndroidWatch:
|
||||
return 2
|
||||
}
|
||||
return 0
|
||||
}(),
|
||||
}
|
||||
d, _ := json.Marshal(f)
|
||||
return d
|
||||
@ -157,6 +171,14 @@ func (info *DeviceInfo) ReadJson(d []byte) error {
|
||||
info.ProcVersion = []byte(f.ProcVersion)
|
||||
info.IMEI = f.IMEI
|
||||
info.AndroidId = SystemDeviceInfo.Display
|
||||
switch f.Protocol {
|
||||
case 1:
|
||||
info.Protocol = AndroidPhone
|
||||
case 2:
|
||||
info.Protocol = AndroidWatch
|
||||
default:
|
||||
info.Protocol = AndroidPad
|
||||
}
|
||||
SystemDeviceInfo.GenNewGuid()
|
||||
SystemDeviceInfo.GenNewTgtgtKey()
|
||||
return nil
|
||||
@ -274,15 +296,19 @@ func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
|
||||
}
|
||||
var g *message.GroupMessage
|
||||
g = &message.GroupMessage{
|
||||
Id: m.Head.MsgSeq,
|
||||
GroupCode: group.Code,
|
||||
GroupName: string(m.Head.GroupInfo.GroupName),
|
||||
Sender: sender,
|
||||
Time: m.Head.MsgTime,
|
||||
Elements: message.ParseMessageElems(m.Body.RichText.Elems),
|
||||
}
|
||||
Id: m.Head.MsgSeq,
|
||||
GroupCode: group.Code,
|
||||
GroupName: string(m.Head.GroupInfo.GroupName),
|
||||
Sender: sender,
|
||||
Time: m.Head.MsgTime,
|
||||
Elements: message.ParseMessageElems(m.Body.RichText.Elems),
|
||||
}
|
||||
// pre parse
|
||||
for _, elem := range m.Body.RichText.Elems {
|
||||
// 为什么小程序会同时通过RichText和long text发送
|
||||
if elem.LightApp != nil {
|
||||
break
|
||||
}
|
||||
// is rich long msg
|
||||
if elem.GeneralFlags != nil && elem.GeneralFlags.LongTextResid != "" {
|
||||
if f := c.GetForwardMessage(elem.GeneralFlags.LongTextResid); f != nil && len(f.Nodes) == 1 {
|
||||
|
43
client/notify.go
Normal file
43
client/notify.go
Normal file
@ -0,0 +1,43 @@
|
||||
package client
|
||||
|
||||
import "fmt"
|
||||
|
||||
type (
|
||||
// GroupPokeNotifyEvent 群内戳一戳提示事件
|
||||
GroupPokeNotifyEvent struct {
|
||||
GroupCode int64
|
||||
Sender int64
|
||||
Receiver int64
|
||||
}
|
||||
|
||||
// GroupRedBagLuckyKingNotifyEvent 群内抢红包运气王提示事件
|
||||
GroupRedBagLuckyKingNotifyEvent struct {
|
||||
GroupCode int64
|
||||
Sender int64
|
||||
LuckyKing int64
|
||||
}
|
||||
)
|
||||
|
||||
func (e *GroupPokeNotifyEvent) From() int64 {
|
||||
return e.GroupCode
|
||||
}
|
||||
|
||||
func (e *GroupPokeNotifyEvent) Name() string {
|
||||
return "戳一戳"
|
||||
}
|
||||
|
||||
func (e *GroupPokeNotifyEvent) Content() string {
|
||||
return fmt.Sprintf("%d戳了戳%d", e.Sender, e.Receiver)
|
||||
}
|
||||
|
||||
func (e *GroupRedBagLuckyKingNotifyEvent) From() int64 {
|
||||
return e.GroupCode
|
||||
}
|
||||
|
||||
func (e *GroupRedBagLuckyKingNotifyEvent) Name() string {
|
||||
return "运气王"
|
||||
}
|
||||
|
||||
func (e *GroupRedBagLuckyKingNotifyEvent) Content() string {
|
||||
return fmt.Sprintf("%d发的红包被领完, %d是运气王", e.Sender, e.LuckyKing)
|
||||
}
|
@ -2098,243 +2098,6 @@ func (x *MessageItem) GetSig() []byte {
|
||||
return nil
|
||||
}
|
||||
|
||||
type NotifyMsgBody struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
OptMsgRecall *MessageRecallReminder `protobuf:"bytes,11,opt,name=optMsgRecall,proto3" json:"optMsgRecall,omitempty"`
|
||||
ServiceType int32 `protobuf:"varint,13,opt,name=serviceType,proto3" json:"serviceType,omitempty"`
|
||||
}
|
||||
|
||||
func (x *NotifyMsgBody) Reset() {
|
||||
*x = NotifyMsgBody{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_data_proto_msgTypes[19]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *NotifyMsgBody) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*NotifyMsgBody) ProtoMessage() {}
|
||||
|
||||
func (x *NotifyMsgBody) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_data_proto_msgTypes[19]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use NotifyMsgBody.ProtoReflect.Descriptor instead.
|
||||
func (*NotifyMsgBody) Descriptor() ([]byte, []int) {
|
||||
return file_data_proto_rawDescGZIP(), []int{19}
|
||||
}
|
||||
|
||||
func (x *NotifyMsgBody) GetOptMsgRecall() *MessageRecallReminder {
|
||||
if x != nil {
|
||||
return x.OptMsgRecall
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *NotifyMsgBody) GetServiceType() int32 {
|
||||
if x != nil {
|
||||
return x.ServiceType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type MessageRecallReminder struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Uin int64 `protobuf:"varint,1,opt,name=uin,proto3" json:"uin,omitempty"`
|
||||
Nickname []byte `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"`
|
||||
RecalledMsgList []*RecalledMessageMeta `protobuf:"bytes,3,rep,name=recalledMsgList,proto3" json:"recalledMsgList,omitempty"`
|
||||
ReminderContent []byte `protobuf:"bytes,4,opt,name=reminderContent,proto3" json:"reminderContent,omitempty"`
|
||||
Userdef []byte `protobuf:"bytes,5,opt,name=userdef,proto3" json:"userdef,omitempty"`
|
||||
GroupType int32 `protobuf:"varint,6,opt,name=groupType,proto3" json:"groupType,omitempty"`
|
||||
OpType int32 `protobuf:"varint,7,opt,name=opType,proto3" json:"opType,omitempty"`
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) Reset() {
|
||||
*x = MessageRecallReminder{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_data_proto_msgTypes[20]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*MessageRecallReminder) ProtoMessage() {}
|
||||
|
||||
func (x *MessageRecallReminder) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_data_proto_msgTypes[20]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use MessageRecallReminder.ProtoReflect.Descriptor instead.
|
||||
func (*MessageRecallReminder) Descriptor() ([]byte, []int) {
|
||||
return file_data_proto_rawDescGZIP(), []int{20}
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetUin() int64 {
|
||||
if x != nil {
|
||||
return x.Uin
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetNickname() []byte {
|
||||
if x != nil {
|
||||
return x.Nickname
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetRecalledMsgList() []*RecalledMessageMeta {
|
||||
if x != nil {
|
||||
return x.RecalledMsgList
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetReminderContent() []byte {
|
||||
if x != nil {
|
||||
return x.ReminderContent
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetUserdef() []byte {
|
||||
if x != nil {
|
||||
return x.Userdef
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetGroupType() int32 {
|
||||
if x != nil {
|
||||
return x.GroupType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetOpType() int32 {
|
||||
if x != nil {
|
||||
return x.OpType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type RecalledMessageMeta struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Seq int32 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"`
|
||||
Time int32 `protobuf:"varint,2,opt,name=time,proto3" json:"time,omitempty"`
|
||||
MsgRandom int32 `protobuf:"varint,3,opt,name=msgRandom,proto3" json:"msgRandom,omitempty"`
|
||||
MsgType int32 `protobuf:"varint,4,opt,name=msgType,proto3" json:"msgType,omitempty"`
|
||||
MsgFlag int32 `protobuf:"varint,5,opt,name=msgFlag,proto3" json:"msgFlag,omitempty"`
|
||||
AuthorUin int64 `protobuf:"varint,6,opt,name=authorUin,proto3" json:"authorUin,omitempty"`
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) Reset() {
|
||||
*x = RecalledMessageMeta{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_data_proto_msgTypes[21]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*RecalledMessageMeta) ProtoMessage() {}
|
||||
|
||||
func (x *RecalledMessageMeta) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_data_proto_msgTypes[21]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use RecalledMessageMeta.ProtoReflect.Descriptor instead.
|
||||
func (*RecalledMessageMeta) Descriptor() ([]byte, []int) {
|
||||
return file_data_proto_rawDescGZIP(), []int{21}
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) GetSeq() int32 {
|
||||
if x != nil {
|
||||
return x.Seq
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) GetTime() int32 {
|
||||
if x != nil {
|
||||
return x.Time
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) GetMsgRandom() int32 {
|
||||
if x != nil {
|
||||
return x.MsgRandom
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) GetMsgType() int32 {
|
||||
if x != nil {
|
||||
return x.MsgType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) GetMsgFlag() int32 {
|
||||
if x != nil {
|
||||
return x.MsgFlag
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) GetAuthorUin() int64 {
|
||||
if x != nil {
|
||||
return x.AuthorUin
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type SubD4 struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -2346,7 +2109,7 @@ type SubD4 struct {
|
||||
func (x *SubD4) Reset() {
|
||||
*x = SubD4{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_data_proto_msgTypes[22]
|
||||
mi := &file_data_proto_msgTypes[19]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -2359,7 +2122,7 @@ func (x *SubD4) String() string {
|
||||
func (*SubD4) ProtoMessage() {}
|
||||
|
||||
func (x *SubD4) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_data_proto_msgTypes[22]
|
||||
mi := &file_data_proto_msgTypes[19]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -2372,7 +2135,7 @@ func (x *SubD4) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use SubD4.ProtoReflect.Descriptor instead.
|
||||
func (*SubD4) Descriptor() ([]byte, []int) {
|
||||
return file_data_proto_rawDescGZIP(), []int{22}
|
||||
return file_data_proto_rawDescGZIP(), []int{19}
|
||||
}
|
||||
|
||||
func (x *SubD4) GetUin() int64 {
|
||||
@ -2397,7 +2160,7 @@ type Sub8A struct {
|
||||
func (x *Sub8A) Reset() {
|
||||
*x = Sub8A{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_data_proto_msgTypes[23]
|
||||
mi := &file_data_proto_msgTypes[20]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -2410,7 +2173,7 @@ func (x *Sub8A) String() string {
|
||||
func (*Sub8A) ProtoMessage() {}
|
||||
|
||||
func (x *Sub8A) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_data_proto_msgTypes[23]
|
||||
mi := &file_data_proto_msgTypes[20]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -2423,7 +2186,7 @@ func (x *Sub8A) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Sub8A.ProtoReflect.Descriptor instead.
|
||||
func (*Sub8A) Descriptor() ([]byte, []int) {
|
||||
return file_data_proto_rawDescGZIP(), []int{23}
|
||||
return file_data_proto_rawDescGZIP(), []int{20}
|
||||
}
|
||||
|
||||
func (x *Sub8A) GetMsgInfo() []*Sub8AMsgInfo {
|
||||
@ -2480,7 +2243,7 @@ type Sub8AMsgInfo struct {
|
||||
func (x *Sub8AMsgInfo) Reset() {
|
||||
*x = Sub8AMsgInfo{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_data_proto_msgTypes[24]
|
||||
mi := &file_data_proto_msgTypes[21]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -2493,7 +2256,7 @@ func (x *Sub8AMsgInfo) String() string {
|
||||
func (*Sub8AMsgInfo) ProtoMessage() {}
|
||||
|
||||
func (x *Sub8AMsgInfo) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_data_proto_msgTypes[24]
|
||||
mi := &file_data_proto_msgTypes[21]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -2506,7 +2269,7 @@ func (x *Sub8AMsgInfo) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Sub8AMsgInfo.ProtoReflect.Descriptor instead.
|
||||
func (*Sub8AMsgInfo) Descriptor() ([]byte, []int) {
|
||||
return file_data_proto_rawDescGZIP(), []int{24}
|
||||
return file_data_proto_rawDescGZIP(), []int{21}
|
||||
}
|
||||
|
||||
func (x *Sub8AMsgInfo) GetFromUin() int64 {
|
||||
@ -2584,7 +2347,7 @@ type SubB3 struct {
|
||||
func (x *SubB3) Reset() {
|
||||
*x = SubB3{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_data_proto_msgTypes[25]
|
||||
mi := &file_data_proto_msgTypes[22]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -2597,7 +2360,7 @@ func (x *SubB3) String() string {
|
||||
func (*SubB3) ProtoMessage() {}
|
||||
|
||||
func (x *SubB3) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_data_proto_msgTypes[25]
|
||||
mi := &file_data_proto_msgTypes[22]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -2610,7 +2373,7 @@ func (x *SubB3) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use SubB3.ProtoReflect.Descriptor instead.
|
||||
func (*SubB3) Descriptor() ([]byte, []int) {
|
||||
return file_data_proto_rawDescGZIP(), []int{25}
|
||||
return file_data_proto_rawDescGZIP(), []int{22}
|
||||
}
|
||||
|
||||
func (x *SubB3) GetType() int32 {
|
||||
@ -2639,7 +2402,7 @@ type SubB3AddFrdNotify struct {
|
||||
func (x *SubB3AddFrdNotify) Reset() {
|
||||
*x = SubB3AddFrdNotify{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_data_proto_msgTypes[26]
|
||||
mi := &file_data_proto_msgTypes[23]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -2652,7 +2415,7 @@ func (x *SubB3AddFrdNotify) String() string {
|
||||
func (*SubB3AddFrdNotify) ProtoMessage() {}
|
||||
|
||||
func (x *SubB3AddFrdNotify) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_data_proto_msgTypes[26]
|
||||
mi := &file_data_proto_msgTypes[23]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -2665,7 +2428,7 @@ func (x *SubB3AddFrdNotify) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use SubB3AddFrdNotify.ProtoReflect.Descriptor instead.
|
||||
func (*SubB3AddFrdNotify) Descriptor() ([]byte, []int) {
|
||||
return file_data_proto_rawDescGZIP(), []int{26}
|
||||
return file_data_proto_rawDescGZIP(), []int{23}
|
||||
}
|
||||
|
||||
func (x *SubB3AddFrdNotify) GetUin() int64 {
|
||||
@ -2694,7 +2457,7 @@ type Sub44 struct {
|
||||
func (x *Sub44) Reset() {
|
||||
*x = Sub44{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_data_proto_msgTypes[27]
|
||||
mi := &file_data_proto_msgTypes[24]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -2707,7 +2470,7 @@ func (x *Sub44) String() string {
|
||||
func (*Sub44) ProtoMessage() {}
|
||||
|
||||
func (x *Sub44) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_data_proto_msgTypes[27]
|
||||
mi := &file_data_proto_msgTypes[24]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -2720,7 +2483,7 @@ func (x *Sub44) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Sub44.ProtoReflect.Descriptor instead.
|
||||
func (*Sub44) Descriptor() ([]byte, []int) {
|
||||
return file_data_proto_rawDescGZIP(), []int{27}
|
||||
return file_data_proto_rawDescGZIP(), []int{24}
|
||||
}
|
||||
|
||||
func (x *Sub44) GetFriendSyncMsg() *Sub44FriendSyncMsg {
|
||||
@ -2755,7 +2518,7 @@ type Sub44FriendSyncMsg struct {
|
||||
func (x *Sub44FriendSyncMsg) Reset() {
|
||||
*x = Sub44FriendSyncMsg{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_data_proto_msgTypes[28]
|
||||
mi := &file_data_proto_msgTypes[25]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -2768,7 +2531,7 @@ func (x *Sub44FriendSyncMsg) String() string {
|
||||
func (*Sub44FriendSyncMsg) ProtoMessage() {}
|
||||
|
||||
func (x *Sub44FriendSyncMsg) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_data_proto_msgTypes[28]
|
||||
mi := &file_data_proto_msgTypes[25]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -2781,7 +2544,7 @@ func (x *Sub44FriendSyncMsg) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Sub44FriendSyncMsg.ProtoReflect.Descriptor instead.
|
||||
func (*Sub44FriendSyncMsg) Descriptor() ([]byte, []int) {
|
||||
return file_data_proto_rawDescGZIP(), []int{28}
|
||||
return file_data_proto_rawDescGZIP(), []int{25}
|
||||
}
|
||||
|
||||
func (x *Sub44FriendSyncMsg) GetUin() int64 {
|
||||
@ -2869,7 +2632,7 @@ type Sub44GroupSyncMsg struct {
|
||||
func (x *Sub44GroupSyncMsg) Reset() {
|
||||
*x = Sub44GroupSyncMsg{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_data_proto_msgTypes[29]
|
||||
mi := &file_data_proto_msgTypes[26]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -2882,7 +2645,7 @@ func (x *Sub44GroupSyncMsg) String() string {
|
||||
func (*Sub44GroupSyncMsg) ProtoMessage() {}
|
||||
|
||||
func (x *Sub44GroupSyncMsg) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_data_proto_msgTypes[29]
|
||||
mi := &file_data_proto_msgTypes[26]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -2895,7 +2658,7 @@ func (x *Sub44GroupSyncMsg) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use Sub44GroupSyncMsg.ProtoReflect.Descriptor instead.
|
||||
func (*Sub44GroupSyncMsg) Descriptor() ([]byte, []int) {
|
||||
return file_data_proto_rawDescGZIP(), []int{29}
|
||||
return file_data_proto_rawDescGZIP(), []int{26}
|
||||
}
|
||||
|
||||
func (x *Sub44GroupSyncMsg) GetMsgType() int32 {
|
||||
@ -3371,139 +3134,105 @@ var file_data_proto_rawDesc = []byte{
|
||||
0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73,
|
||||
0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x05,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
|
||||
0x73, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x22, 0x6d,
|
||||
0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x64, 0x79, 0x12,
|
||||
0x3a, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x18,
|
||||
0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52,
|
||||
0x65, 0x63, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x6f,
|
||||
0x70, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x73,
|
||||
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05,
|
||||
0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xff, 0x01,
|
||||
0x0a, 0x15, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x52,
|
||||
0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63,
|
||||
0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6e, 0x69, 0x63,
|
||||
0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x65,
|
||||
0x64, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14,
|
||||
0x2e, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
|
||||
0x4d, 0x65, 0x74, 0x61, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4d, 0x73,
|
||||
0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65,
|
||||
0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f,
|
||||
0x72, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12,
|
||||
0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x64, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c,
|
||||
0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x64, 0x65, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x54, 0x79, 0x70,
|
||||
0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22,
|
||||
0xab, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73,
|
||||
0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d,
|
||||
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a,
|
||||
0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
|
||||
0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d,
|
||||
0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73,
|
||||
0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67,
|
||||
0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12,
|
||||
0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x22, 0x19, 0x0a,
|
||||
0x05, 0x53, 0x75, 0x62, 0x44, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x05, 0x53, 0x75, 0x62,
|
||||
0x38, 0x41, 0x12, 0x28, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01,
|
||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x75, 0x62, 0x38, 0x41, 0x4d, 0x73, 0x67, 0x49,
|
||||
0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05,
|
||||
0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x61, 0x70, 0x70,
|
||||
0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x05, 0x52, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x6f,
|
||||
0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
|
||||
0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64,
|
||||
0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64,
|
||||
0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x38, 0x41, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66,
|
||||
0x6f, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74,
|
||||
0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69,
|
||||
0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67,
|
||||
0x55, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69,
|
||||
0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d,
|
||||
0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
|
||||
0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6b, 0x67,
|
||||
0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75,
|
||||
0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a,
|
||||
0x06, 0x64, 0x65, 0x76, 0x53, 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64,
|
||||
0x65, 0x76, 0x53, 0x65, 0x71, 0x22, 0x59, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x42, 0x33, 0x12, 0x12,
|
||||
0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79,
|
||||
0x70, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x6d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e,
|
||||
0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x75,
|
||||
0x62, 0x42, 0x33, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52,
|
||||
0x0f, 0x6d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79,
|
||||
0x22, 0x39, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x42, 0x33, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e,
|
||||
0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18,
|
||||
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x22, 0x7a, 0x0a, 0x05, 0x53,
|
||||
0x75, 0x62, 0x34, 0x34, 0x12, 0x39, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79,
|
||||
0x6e, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x53, 0x75,
|
||||
0x62, 0x34, 0x34, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67,
|
||||
0x52, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12,
|
||||
0x36, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x75, 0x62, 0x34, 0x34, 0x47, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70,
|
||||
0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x22, 0xf0, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x34,
|
||||
0x34, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x10,
|
||||
0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e,
|
||||
0x12, 0x12, 0x0a, 0x04, 0x66, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04,
|
||||
0x66, 0x55, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54,
|
||||
0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65,
|
||||
0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04,
|
||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72,
|
||||
0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08,
|
||||
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
|
||||
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72,
|
||||
0x63, 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73,
|
||||
0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74,
|
||||
0x72, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
|
||||
0x73, 0x74, 0x72, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xd1, 0x04, 0x0a, 0x11, 0x53,
|
||||
0x75, 0x62, 0x34, 0x34, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67,
|
||||
0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73,
|
||||
0x67, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53,
|
||||
0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06,
|
||||
0x67, 0x61, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67, 0x61,
|
||||
0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x18,
|
||||
0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x12, 0x18,
|
||||
0x0a, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x42,
|
||||
0x75, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x42, 0x75, 0x66,
|
||||
0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28,
|
||||
0x0c, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73,
|
||||
0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d,
|
||||
0x73, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78,
|
||||
0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e,
|
||||
0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28,
|
||||
0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x78,
|
||||
0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x4d,
|
||||
0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63,
|
||||
0x75, 0x72, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
|
||||
0x71, 0x53, 0x72, 0x63, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65,
|
||||
0x71, 0x53, 0x72, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x72, 0x63,
|
||||
0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x71,
|
||||
0x53, 0x72, 0x63, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69,
|
||||
0x74, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69,
|
||||
0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78,
|
||||
0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x0b, 0x65, 0x78, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b,
|
||||
0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x42, 0x06,
|
||||
0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x73, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x22, 0x19,
|
||||
0x0a, 0x05, 0x53, 0x75, 0x62, 0x44, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x05, 0x53, 0x75,
|
||||
0x62, 0x38, 0x41, 0x12, 0x28, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
|
||||
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x75, 0x62, 0x38, 0x41, 0x4d, 0x73, 0x67,
|
||||
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a,
|
||||
0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x61, 0x70,
|
||||
0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6c,
|
||||
0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04,
|
||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
|
||||
0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65,
|
||||
0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65,
|
||||
0x64, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x38, 0x41, 0x4d, 0x73, 0x67, 0x49, 0x6e,
|
||||
0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05,
|
||||
0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55,
|
||||
0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73,
|
||||
0x67, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55,
|
||||
0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09,
|
||||
0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6b,
|
||||
0x67, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, 0x67, 0x4e,
|
||||
0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08,
|
||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16,
|
||||
0x0a, 0x06, 0x64, 0x65, 0x76, 0x53, 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
|
||||
0x64, 0x65, 0x76, 0x53, 0x65, 0x71, 0x22, 0x59, 0x0a, 0x05, 0x53, 0x75, 0x62, 0x42, 0x33, 0x12,
|
||||
0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74,
|
||||
0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x6d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64,
|
||||
0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53,
|
||||
0x75, 0x62, 0x42, 0x33, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79,
|
||||
0x52, 0x0f, 0x6d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66,
|
||||
0x79, 0x22, 0x39, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x42, 0x33, 0x41, 0x64, 0x64, 0x46, 0x72, 0x64,
|
||||
0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b,
|
||||
0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x22, 0x7a, 0x0a, 0x05,
|
||||
0x53, 0x75, 0x62, 0x34, 0x34, 0x12, 0x39, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53,
|
||||
0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x53,
|
||||
0x75, 0x62, 0x34, 0x34, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73,
|
||||
0x67, 0x52, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67,
|
||||
0x12, 0x36, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x53, 0x75, 0x62, 0x34, 0x34, 0x47, 0x72,
|
||||
0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75,
|
||||
0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x22, 0xf0, 0x01, 0x0a, 0x12, 0x53, 0x75, 0x62,
|
||||
0x34, 0x34, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73, 0x67, 0x12,
|
||||
0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69,
|
||||
0x6e, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x04, 0x66, 0x55, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
|
||||
0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63,
|
||||
0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18,
|
||||
0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70,
|
||||
0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
|
||||
0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a,
|
||||
0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x75,
|
||||
0x72, 0x63, 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b,
|
||||
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73,
|
||||
0x74, 0x72, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52,
|
||||
0x0a, 0x73, 0x74, 0x72, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xd1, 0x04, 0x0a, 0x11,
|
||||
0x53, 0x75, 0x62, 0x34, 0x34, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x4d, 0x73,
|
||||
0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d,
|
||||
0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67,
|
||||
0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x72, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a,
|
||||
0x06, 0x67, 0x61, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x67,
|
||||
0x61, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31,
|
||||
0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x31, 0x12,
|
||||
0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x07, 0x6f, 0x70, 0x74, 0x55, 0x69, 0x6e, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67,
|
||||
0x42, 0x75, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x42, 0x75,
|
||||
0x66, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01,
|
||||
0x28, 0x0c, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6d,
|
||||
0x73, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
|
||||
0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x63,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x63, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x4d, 0x61,
|
||||
0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x0e, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
|
||||
0x28, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x4d, 0x61,
|
||||
0x78, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x75, 0x72,
|
||||
0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b,
|
||||
0x63, 0x75, 0x72, 0x4d, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72,
|
||||
0x65, 0x71, 0x53, 0x72, 0x63, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72,
|
||||
0x65, 0x71, 0x53, 0x72, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x53, 0x72,
|
||||
0x63, 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65,
|
||||
0x71, 0x53, 0x72, 0x63, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76,
|
||||
0x69, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b,
|
||||
0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65,
|
||||
0x78, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05,
|
||||
0x52, 0x0b, 0x65, 0x78, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a,
|
||||
0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x13, 0x20, 0x01,
|
||||
0x28, 0x05, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x42,
|
||||
0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -3518,38 +3247,35 @@ func file_data_proto_rawDescGZIP() []byte {
|
||||
return file_data_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_data_proto_msgTypes = make([]protoimpl.MessageInfo, 30)
|
||||
var file_data_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
|
||||
var file_data_proto_goTypes = []interface{}{
|
||||
(*DeviceInfo)(nil), // 0: DeviceInfo
|
||||
(*RequestBody)(nil), // 1: RequestBody
|
||||
(*ConfigSeq)(nil), // 2: ConfigSeq
|
||||
(*D50ReqBody)(nil), // 3: D50ReqBody
|
||||
(*D388ReqBody)(nil), // 4: D388ReqBody
|
||||
(*D388RespBody)(nil), // 5: D388RespBody
|
||||
(*GetPttUrlReq)(nil), // 6: GetPttUrlReq
|
||||
(*GetPttUrlRsp)(nil), // 7: GetPttUrlRsp
|
||||
(*ReqDataHighwayHead)(nil), // 8: ReqDataHighwayHead
|
||||
(*RspDataHighwayHead)(nil), // 9: RspDataHighwayHead
|
||||
(*DataHighwayHead)(nil), // 10: DataHighwayHead
|
||||
(*SegHead)(nil), // 11: SegHead
|
||||
(*TryUpImgReq)(nil), // 12: TryUpImgReq
|
||||
(*TryUpImgResp)(nil), // 13: TryUpImgResp
|
||||
(*TryUpPttReq)(nil), // 14: TryUpPttReq
|
||||
(*TryUpPttResp)(nil), // 15: TryUpPttResp
|
||||
(*ImgInfo)(nil), // 16: ImgInfo
|
||||
(*DeleteMessageRequest)(nil), // 17: DeleteMessageRequest
|
||||
(*MessageItem)(nil), // 18: MessageItem
|
||||
(*NotifyMsgBody)(nil), // 19: NotifyMsgBody
|
||||
(*MessageRecallReminder)(nil), // 20: MessageRecallReminder
|
||||
(*RecalledMessageMeta)(nil), // 21: RecalledMessageMeta
|
||||
(*SubD4)(nil), // 22: SubD4
|
||||
(*Sub8A)(nil), // 23: Sub8A
|
||||
(*Sub8AMsgInfo)(nil), // 24: Sub8AMsgInfo
|
||||
(*SubB3)(nil), // 25: SubB3
|
||||
(*SubB3AddFrdNotify)(nil), // 26: SubB3AddFrdNotify
|
||||
(*Sub44)(nil), // 27: Sub44
|
||||
(*Sub44FriendSyncMsg)(nil), // 28: Sub44FriendSyncMsg
|
||||
(*Sub44GroupSyncMsg)(nil), // 29: Sub44GroupSyncMsg
|
||||
(*DeviceInfo)(nil), // 0: DeviceInfo
|
||||
(*RequestBody)(nil), // 1: RequestBody
|
||||
(*ConfigSeq)(nil), // 2: ConfigSeq
|
||||
(*D50ReqBody)(nil), // 3: D50ReqBody
|
||||
(*D388ReqBody)(nil), // 4: D388ReqBody
|
||||
(*D388RespBody)(nil), // 5: D388RespBody
|
||||
(*GetPttUrlReq)(nil), // 6: GetPttUrlReq
|
||||
(*GetPttUrlRsp)(nil), // 7: GetPttUrlRsp
|
||||
(*ReqDataHighwayHead)(nil), // 8: ReqDataHighwayHead
|
||||
(*RspDataHighwayHead)(nil), // 9: RspDataHighwayHead
|
||||
(*DataHighwayHead)(nil), // 10: DataHighwayHead
|
||||
(*SegHead)(nil), // 11: SegHead
|
||||
(*TryUpImgReq)(nil), // 12: TryUpImgReq
|
||||
(*TryUpImgResp)(nil), // 13: TryUpImgResp
|
||||
(*TryUpPttReq)(nil), // 14: TryUpPttReq
|
||||
(*TryUpPttResp)(nil), // 15: TryUpPttResp
|
||||
(*ImgInfo)(nil), // 16: ImgInfo
|
||||
(*DeleteMessageRequest)(nil), // 17: DeleteMessageRequest
|
||||
(*MessageItem)(nil), // 18: MessageItem
|
||||
(*SubD4)(nil), // 19: SubD4
|
||||
(*Sub8A)(nil), // 20: Sub8A
|
||||
(*Sub8AMsgInfo)(nil), // 21: Sub8AMsgInfo
|
||||
(*SubB3)(nil), // 22: SubB3
|
||||
(*SubB3AddFrdNotify)(nil), // 23: SubB3AddFrdNotify
|
||||
(*Sub44)(nil), // 24: Sub44
|
||||
(*Sub44FriendSyncMsg)(nil), // 25: Sub44FriendSyncMsg
|
||||
(*Sub44GroupSyncMsg)(nil), // 26: Sub44GroupSyncMsg
|
||||
}
|
||||
var file_data_proto_depIdxs = []int32{
|
||||
2, // 0: RequestBody.rpt_config_list:type_name -> ConfigSeq
|
||||
@ -3565,17 +3291,15 @@ var file_data_proto_depIdxs = []int32{
|
||||
11, // 10: RspDataHighwayHead.msgSeghead:type_name -> SegHead
|
||||
16, // 11: TryUpImgResp.msgImgInfo:type_name -> ImgInfo
|
||||
18, // 12: DeleteMessageRequest.items:type_name -> MessageItem
|
||||
20, // 13: NotifyMsgBody.optMsgRecall:type_name -> MessageRecallReminder
|
||||
21, // 14: MessageRecallReminder.recalledMsgList:type_name -> RecalledMessageMeta
|
||||
24, // 15: Sub8A.msg_info:type_name -> Sub8AMsgInfo
|
||||
26, // 16: SubB3.msgAddFrdNotify:type_name -> SubB3AddFrdNotify
|
||||
28, // 17: Sub44.friendSyncMsg:type_name -> Sub44FriendSyncMsg
|
||||
29, // 18: Sub44.groupSyncMsg:type_name -> Sub44GroupSyncMsg
|
||||
19, // [19:19] is the sub-list for method output_type
|
||||
19, // [19:19] is the sub-list for method input_type
|
||||
19, // [19:19] is the sub-list for extension type_name
|
||||
19, // [19:19] is the sub-list for extension extendee
|
||||
0, // [0:19] is the sub-list for field type_name
|
||||
21, // 13: Sub8A.msg_info:type_name -> Sub8AMsgInfo
|
||||
23, // 14: SubB3.msgAddFrdNotify:type_name -> SubB3AddFrdNotify
|
||||
25, // 15: Sub44.friendSyncMsg:type_name -> Sub44FriendSyncMsg
|
||||
26, // 16: Sub44.groupSyncMsg:type_name -> Sub44GroupSyncMsg
|
||||
17, // [17:17] is the sub-list for method output_type
|
||||
17, // [17:17] is the sub-list for method input_type
|
||||
17, // [17:17] is the sub-list for extension type_name
|
||||
17, // [17:17] is the sub-list for extension extendee
|
||||
0, // [0:17] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_data_proto_init() }
|
||||
@ -3813,42 +3537,6 @@ func file_data_proto_init() {
|
||||
}
|
||||
}
|
||||
file_data_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*NotifyMsgBody); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_data_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*MessageRecallReminder); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_data_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*RecalledMessageMeta); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_data_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*SubD4); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@ -3860,7 +3548,7 @@ func file_data_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_data_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
|
||||
file_data_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Sub8A); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@ -3872,7 +3560,7 @@ func file_data_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_data_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
|
||||
file_data_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Sub8AMsgInfo); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@ -3884,7 +3572,7 @@ func file_data_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_data_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
|
||||
file_data_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*SubB3); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@ -3896,7 +3584,7 @@ func file_data_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_data_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
|
||||
file_data_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*SubB3AddFrdNotify); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@ -3908,7 +3596,7 @@ func file_data_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_data_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
|
||||
file_data_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Sub44); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@ -3920,7 +3608,7 @@ func file_data_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_data_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
|
||||
file_data_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Sub44FriendSyncMsg); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@ -3932,7 +3620,7 @@ func file_data_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_data_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
|
||||
file_data_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Sub44GroupSyncMsg); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@ -3951,7 +3639,7 @@ func file_data_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_data_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 30,
|
||||
NumMessages: 27,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
|
@ -235,31 +235,6 @@ message MessageItem {
|
||||
bytes sig = 7;
|
||||
}
|
||||
|
||||
message NotifyMsgBody {
|
||||
MessageRecallReminder optMsgRecall = 11;
|
||||
int32 serviceType = 13;
|
||||
}
|
||||
|
||||
message MessageRecallReminder {
|
||||
int64 uin = 1;
|
||||
bytes nickname = 2;
|
||||
repeated RecalledMessageMeta recalledMsgList = 3;
|
||||
bytes reminderContent = 4;
|
||||
bytes userdef = 5;
|
||||
int32 groupType = 6;
|
||||
int32 opType = 7;
|
||||
|
||||
}
|
||||
|
||||
message RecalledMessageMeta {
|
||||
int32 seq = 1;
|
||||
int32 time = 2;
|
||||
int32 msgRandom = 3;
|
||||
int32 msgType = 4;
|
||||
int32 msgFlag = 5;
|
||||
int64 authorUin = 6;
|
||||
}
|
||||
|
||||
message SubD4 {
|
||||
int64 uin = 1;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -194,7 +194,7 @@ message Elem {
|
||||
AnonymousGroupMessage anonGroupMsg = 21;
|
||||
//QQLiveOld? qqLiveOld = 22;
|
||||
//LifeOnlineAccount? lifeOnline = 23;
|
||||
//QQWalletMsg? qqwalletMsg = 24;
|
||||
QQWalletMsg QQWalletMsg = 24;
|
||||
//CrmElem? crmElem = 25;
|
||||
//ConferenceTipsInfo? conferenceTipsInfo = 26;
|
||||
//RedBagInfo? redbagInfo = 27;
|
||||
@ -232,6 +232,58 @@ message CommonElem {
|
||||
int32 businessType = 3;
|
||||
}
|
||||
|
||||
message QQWalletMsg {
|
||||
QQWalletAioBody aioBody = 1;
|
||||
}
|
||||
|
||||
message QQWalletAioBody {
|
||||
uint64 sendUin = 1;
|
||||
QQWalletAioElem sender = 2;
|
||||
QQWalletAioElem receiver = 3;
|
||||
sint32 ChannelId = 4;
|
||||
sint32 templateId = 5;
|
||||
uint32 resend = 6;
|
||||
uint32 msgPriority = 7;
|
||||
sint32 redType = 8;
|
||||
bytes billNo = 9;
|
||||
bytes authKey = 10;
|
||||
sint32 sessionType = 11;
|
||||
sint32 msgType = 12;
|
||||
sint32 envelOpeId = 13;
|
||||
bytes name = 14;
|
||||
sint32 confType = 15;
|
||||
sint32 msgFrom = 16;
|
||||
bytes pcBody = 17;
|
||||
bytes index = 18;
|
||||
uint32 redChannel = 19;
|
||||
repeated uint64 grapUin = 20;
|
||||
bytes pbReserve = 21;
|
||||
}
|
||||
|
||||
message QQWalletAioElem{
|
||||
uint32 background = 1;
|
||||
uint32 icon = 2;
|
||||
string title = 3;
|
||||
string subtitle = 4;
|
||||
string content = 5;
|
||||
bytes linkUrl = 6;
|
||||
bytes blackStripe = 7;
|
||||
bytes notice = 8;
|
||||
uint32 titleColor = 9;
|
||||
uint32 subtitleColor = 10;
|
||||
bytes actionsPriority = 11;
|
||||
bytes jumpUrl = 12;
|
||||
bytes nativeIos = 13;
|
||||
bytes nativeAndroid = 14;
|
||||
bytes iconUrl = 15;
|
||||
uint32 contentColor = 16;
|
||||
uint32 contentBgColor = 17;
|
||||
bytes aioImageLeft = 18;
|
||||
bytes aioImageRight = 19;
|
||||
bytes cftImage = 20;
|
||||
bytes pbReserve = 21;
|
||||
}
|
||||
|
||||
message RichMsg {
|
||||
bytes template1 = 1;
|
||||
int32 serviceId = 2;
|
||||
|
896
client/pb/notify/group0x857.pb.go
Normal file
896
client/pb/notify/group0x857.pb.go
Normal file
@ -0,0 +1,896 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.25.0
|
||||
// protoc v3.11.4
|
||||
// source: group0x857.proto
|
||||
|
||||
package notify
|
||||
|
||||
import (
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// This is a compile-time assertion that a sufficiently up-to-date version
|
||||
// of the legacy proto package is being used.
|
||||
const _ = proto.ProtoPackageIsVersion4
|
||||
|
||||
type NotifyMsgBody struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
OptMsgGrayTips *AIOGrayTipsInfo `protobuf:"bytes,5,opt,name=optMsgGrayTips,proto3" json:"optMsgGrayTips,omitempty"`
|
||||
OptMsgRedTips *RedGrayTipsInfo `protobuf:"bytes,9,opt,name=optMsgRedTips,proto3" json:"optMsgRedTips,omitempty"`
|
||||
OptMsgRecall *MessageRecallReminder `protobuf:"bytes,11,opt,name=optMsgRecall,proto3" json:"optMsgRecall,omitempty"`
|
||||
OptGeneralGrayTip *GeneralGrayTipInfo `protobuf:"bytes,26,opt,name=optGeneralGrayTip,proto3" json:"optGeneralGrayTip,omitempty"`
|
||||
ServiceType int32 `protobuf:"varint,13,opt,name=serviceType,proto3" json:"serviceType,omitempty"`
|
||||
}
|
||||
|
||||
func (x *NotifyMsgBody) Reset() {
|
||||
*x = NotifyMsgBody{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_group0x857_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *NotifyMsgBody) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*NotifyMsgBody) ProtoMessage() {}
|
||||
|
||||
func (x *NotifyMsgBody) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_group0x857_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use NotifyMsgBody.ProtoReflect.Descriptor instead.
|
||||
func (*NotifyMsgBody) Descriptor() ([]byte, []int) {
|
||||
return file_group0x857_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *NotifyMsgBody) GetOptMsgGrayTips() *AIOGrayTipsInfo {
|
||||
if x != nil {
|
||||
return x.OptMsgGrayTips
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *NotifyMsgBody) GetOptMsgRedTips() *RedGrayTipsInfo {
|
||||
if x != nil {
|
||||
return x.OptMsgRedTips
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *NotifyMsgBody) GetOptMsgRecall() *MessageRecallReminder {
|
||||
if x != nil {
|
||||
return x.OptMsgRecall
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *NotifyMsgBody) GetOptGeneralGrayTip() *GeneralGrayTipInfo {
|
||||
if x != nil {
|
||||
return x.OptGeneralGrayTip
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *NotifyMsgBody) GetServiceType() int32 {
|
||||
if x != nil {
|
||||
return x.ServiceType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type AIOGrayTipsInfo struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
ShowLatest uint32 `protobuf:"varint,1,opt,name=showLatest,proto3" json:"showLatest,omitempty"`
|
||||
Content []byte `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"`
|
||||
Remind uint32 `protobuf:"varint,3,opt,name=remind,proto3" json:"remind,omitempty"`
|
||||
Brief []byte `protobuf:"bytes,4,opt,name=brief,proto3" json:"brief,omitempty"`
|
||||
ReceiverUin uint64 `protobuf:"varint,5,opt,name=receiverUin,proto3" json:"receiverUin,omitempty"`
|
||||
ReliaoAdminOpt uint32 `protobuf:"varint,6,opt,name=reliaoAdminOpt,proto3" json:"reliaoAdminOpt,omitempty"`
|
||||
}
|
||||
|
||||
func (x *AIOGrayTipsInfo) Reset() {
|
||||
*x = AIOGrayTipsInfo{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_group0x857_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *AIOGrayTipsInfo) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*AIOGrayTipsInfo) ProtoMessage() {}
|
||||
|
||||
func (x *AIOGrayTipsInfo) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_group0x857_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use AIOGrayTipsInfo.ProtoReflect.Descriptor instead.
|
||||
func (*AIOGrayTipsInfo) Descriptor() ([]byte, []int) {
|
||||
return file_group0x857_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *AIOGrayTipsInfo) GetShowLatest() uint32 {
|
||||
if x != nil {
|
||||
return x.ShowLatest
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *AIOGrayTipsInfo) GetContent() []byte {
|
||||
if x != nil {
|
||||
return x.Content
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *AIOGrayTipsInfo) GetRemind() uint32 {
|
||||
if x != nil {
|
||||
return x.Remind
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *AIOGrayTipsInfo) GetBrief() []byte {
|
||||
if x != nil {
|
||||
return x.Brief
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *AIOGrayTipsInfo) GetReceiverUin() uint64 {
|
||||
if x != nil {
|
||||
return x.ReceiverUin
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *AIOGrayTipsInfo) GetReliaoAdminOpt() uint32 {
|
||||
if x != nil {
|
||||
return x.ReliaoAdminOpt
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type GeneralGrayTipInfo struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
BusiType uint64 `protobuf:"varint,1,opt,name=busiType,proto3" json:"busiType,omitempty"`
|
||||
BusiId uint64 `protobuf:"varint,2,opt,name=busiId,proto3" json:"busiId,omitempty"`
|
||||
CtrlFlag uint32 `protobuf:"varint,3,opt,name=ctrlFlag,proto3" json:"ctrlFlag,omitempty"`
|
||||
C2CType uint32 `protobuf:"varint,4,opt,name=c2cType,proto3" json:"c2cType,omitempty"`
|
||||
ServiceType uint32 `protobuf:"varint,5,opt,name=serviceType,proto3" json:"serviceType,omitempty"`
|
||||
TemplId uint64 `protobuf:"varint,6,opt,name=templId,proto3" json:"templId,omitempty"`
|
||||
MsgTemplParam []*TemplParam `protobuf:"bytes,7,rep,name=msgTemplParam,proto3" json:"msgTemplParam,omitempty"`
|
||||
Content string `protobuf:"bytes,8,opt,name=content,proto3" json:"content,omitempty"`
|
||||
}
|
||||
|
||||
func (x *GeneralGrayTipInfo) Reset() {
|
||||
*x = GeneralGrayTipInfo{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_group0x857_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *GeneralGrayTipInfo) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*GeneralGrayTipInfo) ProtoMessage() {}
|
||||
|
||||
func (x *GeneralGrayTipInfo) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_group0x857_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use GeneralGrayTipInfo.ProtoReflect.Descriptor instead.
|
||||
func (*GeneralGrayTipInfo) Descriptor() ([]byte, []int) {
|
||||
return file_group0x857_proto_rawDescGZIP(), []int{2}
|
||||
}
|
||||
|
||||
func (x *GeneralGrayTipInfo) GetBusiType() uint64 {
|
||||
if x != nil {
|
||||
return x.BusiType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *GeneralGrayTipInfo) GetBusiId() uint64 {
|
||||
if x != nil {
|
||||
return x.BusiId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *GeneralGrayTipInfo) GetCtrlFlag() uint32 {
|
||||
if x != nil {
|
||||
return x.CtrlFlag
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *GeneralGrayTipInfo) GetC2CType() uint32 {
|
||||
if x != nil {
|
||||
return x.C2CType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *GeneralGrayTipInfo) GetServiceType() uint32 {
|
||||
if x != nil {
|
||||
return x.ServiceType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *GeneralGrayTipInfo) GetTemplId() uint64 {
|
||||
if x != nil {
|
||||
return x.TemplId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *GeneralGrayTipInfo) GetMsgTemplParam() []*TemplParam {
|
||||
if x != nil {
|
||||
return x.MsgTemplParam
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *GeneralGrayTipInfo) GetContent() string {
|
||||
if x != nil {
|
||||
return x.Content
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type TemplParam struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
|
||||
}
|
||||
|
||||
func (x *TemplParam) Reset() {
|
||||
*x = TemplParam{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_group0x857_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *TemplParam) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*TemplParam) ProtoMessage() {}
|
||||
|
||||
func (x *TemplParam) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_group0x857_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use TemplParam.ProtoReflect.Descriptor instead.
|
||||
func (*TemplParam) Descriptor() ([]byte, []int) {
|
||||
return file_group0x857_proto_rawDescGZIP(), []int{3}
|
||||
}
|
||||
|
||||
func (x *TemplParam) GetName() string {
|
||||
if x != nil {
|
||||
return x.Name
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *TemplParam) GetValue() string {
|
||||
if x != nil {
|
||||
return x.Value
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type MessageRecallReminder struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Uin int64 `protobuf:"varint,1,opt,name=uin,proto3" json:"uin,omitempty"`
|
||||
Nickname []byte `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"`
|
||||
RecalledMsgList []*RecalledMessageMeta `protobuf:"bytes,3,rep,name=recalledMsgList,proto3" json:"recalledMsgList,omitempty"`
|
||||
ReminderContent []byte `protobuf:"bytes,4,opt,name=reminderContent,proto3" json:"reminderContent,omitempty"`
|
||||
Userdef []byte `protobuf:"bytes,5,opt,name=userdef,proto3" json:"userdef,omitempty"`
|
||||
GroupType int32 `protobuf:"varint,6,opt,name=groupType,proto3" json:"groupType,omitempty"`
|
||||
OpType int32 `protobuf:"varint,7,opt,name=opType,proto3" json:"opType,omitempty"`
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) Reset() {
|
||||
*x = MessageRecallReminder{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_group0x857_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*MessageRecallReminder) ProtoMessage() {}
|
||||
|
||||
func (x *MessageRecallReminder) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_group0x857_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use MessageRecallReminder.ProtoReflect.Descriptor instead.
|
||||
func (*MessageRecallReminder) Descriptor() ([]byte, []int) {
|
||||
return file_group0x857_proto_rawDescGZIP(), []int{4}
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetUin() int64 {
|
||||
if x != nil {
|
||||
return x.Uin
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetNickname() []byte {
|
||||
if x != nil {
|
||||
return x.Nickname
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetRecalledMsgList() []*RecalledMessageMeta {
|
||||
if x != nil {
|
||||
return x.RecalledMsgList
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetReminderContent() []byte {
|
||||
if x != nil {
|
||||
return x.ReminderContent
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetUserdef() []byte {
|
||||
if x != nil {
|
||||
return x.Userdef
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetGroupType() int32 {
|
||||
if x != nil {
|
||||
return x.GroupType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *MessageRecallReminder) GetOpType() int32 {
|
||||
if x != nil {
|
||||
return x.OpType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type RecalledMessageMeta struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Seq int32 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"`
|
||||
Time int32 `protobuf:"varint,2,opt,name=time,proto3" json:"time,omitempty"`
|
||||
MsgRandom int32 `protobuf:"varint,3,opt,name=msgRandom,proto3" json:"msgRandom,omitempty"`
|
||||
MsgType int32 `protobuf:"varint,4,opt,name=msgType,proto3" json:"msgType,omitempty"`
|
||||
MsgFlag int32 `protobuf:"varint,5,opt,name=msgFlag,proto3" json:"msgFlag,omitempty"`
|
||||
AuthorUin int64 `protobuf:"varint,6,opt,name=authorUin,proto3" json:"authorUin,omitempty"`
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) Reset() {
|
||||
*x = RecalledMessageMeta{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_group0x857_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*RecalledMessageMeta) ProtoMessage() {}
|
||||
|
||||
func (x *RecalledMessageMeta) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_group0x857_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use RecalledMessageMeta.ProtoReflect.Descriptor instead.
|
||||
func (*RecalledMessageMeta) Descriptor() ([]byte, []int) {
|
||||
return file_group0x857_proto_rawDescGZIP(), []int{5}
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) GetSeq() int32 {
|
||||
if x != nil {
|
||||
return x.Seq
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) GetTime() int32 {
|
||||
if x != nil {
|
||||
return x.Time
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) GetMsgRandom() int32 {
|
||||
if x != nil {
|
||||
return x.MsgRandom
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) GetMsgType() int32 {
|
||||
if x != nil {
|
||||
return x.MsgType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) GetMsgFlag() int32 {
|
||||
if x != nil {
|
||||
return x.MsgFlag
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RecalledMessageMeta) GetAuthorUin() int64 {
|
||||
if x != nil {
|
||||
return x.AuthorUin
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type RedGrayTipsInfo struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
ShowLatest uint32 `protobuf:"varint,1,opt,name=showLatest,proto3" json:"showLatest,omitempty"`
|
||||
SenderUin uint64 `protobuf:"varint,2,opt,name=senderUin,proto3" json:"senderUin,omitempty"`
|
||||
ReceiverUin uint64 `protobuf:"varint,3,opt,name=receiverUin,proto3" json:"receiverUin,omitempty"`
|
||||
SenderRichContent string `protobuf:"bytes,4,opt,name=senderRichContent,proto3" json:"senderRichContent,omitempty"`
|
||||
ReceiverRichContent string `protobuf:"bytes,5,opt,name=receiverRichContent,proto3" json:"receiverRichContent,omitempty"`
|
||||
AuthKey []byte `protobuf:"bytes,6,opt,name=authKey,proto3" json:"authKey,omitempty"`
|
||||
MsgType int32 `protobuf:"zigzag32,7,opt,name=msgType,proto3" json:"msgType,omitempty"`
|
||||
LuckyFlag uint32 `protobuf:"varint,8,opt,name=luckyFlag,proto3" json:"luckyFlag,omitempty"`
|
||||
HideFlag uint32 `protobuf:"varint,9,opt,name=hideFlag,proto3" json:"hideFlag,omitempty"`
|
||||
}
|
||||
|
||||
func (x *RedGrayTipsInfo) Reset() {
|
||||
*x = RedGrayTipsInfo{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_group0x857_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *RedGrayTipsInfo) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*RedGrayTipsInfo) ProtoMessage() {}
|
||||
|
||||
func (x *RedGrayTipsInfo) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_group0x857_proto_msgTypes[6]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use RedGrayTipsInfo.ProtoReflect.Descriptor instead.
|
||||
func (*RedGrayTipsInfo) Descriptor() ([]byte, []int) {
|
||||
return file_group0x857_proto_rawDescGZIP(), []int{6}
|
||||
}
|
||||
|
||||
func (x *RedGrayTipsInfo) GetShowLatest() uint32 {
|
||||
if x != nil {
|
||||
return x.ShowLatest
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RedGrayTipsInfo) GetSenderUin() uint64 {
|
||||
if x != nil {
|
||||
return x.SenderUin
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RedGrayTipsInfo) GetReceiverUin() uint64 {
|
||||
if x != nil {
|
||||
return x.ReceiverUin
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RedGrayTipsInfo) GetSenderRichContent() string {
|
||||
if x != nil {
|
||||
return x.SenderRichContent
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *RedGrayTipsInfo) GetReceiverRichContent() string {
|
||||
if x != nil {
|
||||
return x.ReceiverRichContent
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *RedGrayTipsInfo) GetAuthKey() []byte {
|
||||
if x != nil {
|
||||
return x.AuthKey
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *RedGrayTipsInfo) GetMsgType() int32 {
|
||||
if x != nil {
|
||||
return x.MsgType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RedGrayTipsInfo) GetLuckyFlag() uint32 {
|
||||
if x != nil {
|
||||
return x.LuckyFlag
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *RedGrayTipsInfo) GetHideFlag() uint32 {
|
||||
if x != nil {
|
||||
return x.HideFlag
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
var File_group0x857_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_group0x857_proto_rawDesc = []byte{
|
||||
0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x30, 0x78, 0x38, 0x35, 0x37, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x22, 0xa2, 0x02, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x4d, 0x73, 0x67,
|
||||
0x42, 0x6f, 0x64, 0x79, 0x12, 0x38, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x4d, 0x73, 0x67, 0x47, 0x72,
|
||||
0x61, 0x79, 0x54, 0x69, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x41,
|
||||
0x49, 0x4f, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e,
|
||||
0x6f, 0x70, 0x74, 0x4d, 0x73, 0x67, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, 0x73, 0x12, 0x36,
|
||||
0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x18,
|
||||
0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x52, 0x65, 0x64, 0x47, 0x72, 0x61, 0x79, 0x54,
|
||||
0x69, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x4d, 0x73, 0x67, 0x52,
|
||||
0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x3a, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x4d, 0x73, 0x67,
|
||||
0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x4d,
|
||||
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6d, 0x69,
|
||||
0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x61,
|
||||
0x6c, 0x6c, 0x12, 0x41, 0x0a, 0x11, 0x6f, 0x70, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c,
|
||||
0x47, 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
|
||||
0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, 0x49, 0x6e,
|
||||
0x66, 0x6f, 0x52, 0x11, 0x6f, 0x70, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x47, 0x72,
|
||||
0x61, 0x79, 0x54, 0x69, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
|
||||
0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76,
|
||||
0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x0f, 0x41, 0x49, 0x4f, 0x47,
|
||||
0x72, 0x61, 0x79, 0x54, 0x69, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x73,
|
||||
0x68, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||
0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63,
|
||||
0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f,
|
||||
0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x12, 0x14, 0x0a,
|
||||
0x05, 0x62, 0x72, 0x69, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x72,
|
||||
0x69, 0x65, 0x66, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x55,
|
||||
0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
|
||||
0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x6f, 0x41,
|
||||
0x64, 0x6d, 0x69, 0x6e, 0x4f, 0x70, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72,
|
||||
0x65, 0x6c, 0x69, 0x61, 0x6f, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4f, 0x70, 0x74, 0x22, 0x87, 0x02,
|
||||
0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, 0x70,
|
||||
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65,
|
||||
0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x73, 0x69, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
|
||||
0x52, 0x06, 0x62, 0x75, 0x73, 0x69, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x74, 0x72, 0x6c,
|
||||
0x46, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x74, 0x72, 0x6c,
|
||||
0x46, 0x6c, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x32, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18,
|
||||
0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x32, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20,
|
||||
0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20,
|
||||
0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
|
||||
0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
|
||||
0x04, 0x52, 0x07, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x0d, 0x6d, 0x73,
|
||||
0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x07, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x0b, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x0d,
|
||||
0x6d, 0x73, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, 0x0a,
|
||||
0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
|
||||
0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x36, 0x0a, 0x0a, 0x54, 0x65, 0x6d, 0x70, 0x6c,
|
||||
0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
|
||||
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,
|
||||
0xff, 0x01, 0x0a, 0x15, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x61, 0x6c,
|
||||
0x6c, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6e,
|
||||
0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6e,
|
||||
0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x61, 0x6c,
|
||||
0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
|
||||
0x32, 0x14, 0x2e, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61,
|
||||
0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64,
|
||||
0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x69, 0x6e,
|
||||
0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c,
|
||||
0x52, 0x0f, 0x72, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
|
||||
0x74, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x64, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01,
|
||||
0x28, 0x0c, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x64, 0x65, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x67,
|
||||
0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
|
||||
0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x54,
|
||||
0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x70, 0x54, 0x79, 0x70,
|
||||
0x65, 0x22, 0xab, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4d, 0x65,
|
||||
0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x74,
|
||||
0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12,
|
||||
0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x18, 0x0a,
|
||||
0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07,
|
||||
0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c,
|
||||
0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61,
|
||||
0x67, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x06,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x22,
|
||||
0xbf, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x64, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, 0x73, 0x49,
|
||||
0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x73,
|
||||
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x61, 0x74,
|
||||
0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69,
|
||||
0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x55, 0x69, 0x6e,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72,
|
||||
0x55, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x69, 0x63,
|
||||
0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11,
|
||||
0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
|
||||
0x74, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x69, 0x63,
|
||||
0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13,
|
||||
0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74,
|
||||
0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x06,
|
||||
0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a,
|
||||
0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07,
|
||||
0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x75, 0x63, 0x6b, 0x79,
|
||||
0x46, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x75, 0x63, 0x6b,
|
||||
0x79, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x69, 0x64, 0x65, 0x46, 0x6c, 0x61,
|
||||
0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x69, 0x64, 0x65, 0x46, 0x6c, 0x61,
|
||||
0x67, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x3b, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_group0x857_proto_rawDescOnce sync.Once
|
||||
file_group0x857_proto_rawDescData = file_group0x857_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_group0x857_proto_rawDescGZIP() []byte {
|
||||
file_group0x857_proto_rawDescOnce.Do(func() {
|
||||
file_group0x857_proto_rawDescData = protoimpl.X.CompressGZIP(file_group0x857_proto_rawDescData)
|
||||
})
|
||||
return file_group0x857_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_group0x857_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
|
||||
var file_group0x857_proto_goTypes = []interface{}{
|
||||
(*NotifyMsgBody)(nil), // 0: NotifyMsgBody
|
||||
(*AIOGrayTipsInfo)(nil), // 1: AIOGrayTipsInfo
|
||||
(*GeneralGrayTipInfo)(nil), // 2: GeneralGrayTipInfo
|
||||
(*TemplParam)(nil), // 3: TemplParam
|
||||
(*MessageRecallReminder)(nil), // 4: MessageRecallReminder
|
||||
(*RecalledMessageMeta)(nil), // 5: RecalledMessageMeta
|
||||
(*RedGrayTipsInfo)(nil), // 6: RedGrayTipsInfo
|
||||
}
|
||||
var file_group0x857_proto_depIdxs = []int32{
|
||||
1, // 0: NotifyMsgBody.optMsgGrayTips:type_name -> AIOGrayTipsInfo
|
||||
6, // 1: NotifyMsgBody.optMsgRedTips:type_name -> RedGrayTipsInfo
|
||||
4, // 2: NotifyMsgBody.optMsgRecall:type_name -> MessageRecallReminder
|
||||
2, // 3: NotifyMsgBody.optGeneralGrayTip:type_name -> GeneralGrayTipInfo
|
||||
3, // 4: GeneralGrayTipInfo.msgTemplParam:type_name -> TemplParam
|
||||
5, // 5: MessageRecallReminder.recalledMsgList:type_name -> RecalledMessageMeta
|
||||
6, // [6:6] is the sub-list for method output_type
|
||||
6, // [6:6] is the sub-list for method input_type
|
||||
6, // [6:6] is the sub-list for extension type_name
|
||||
6, // [6:6] is the sub-list for extension extendee
|
||||
0, // [0:6] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_group0x857_proto_init() }
|
||||
func file_group0x857_proto_init() {
|
||||
if File_group0x857_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_group0x857_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*NotifyMsgBody); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_group0x857_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*AIOGrayTipsInfo); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_group0x857_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*GeneralGrayTipInfo); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_group0x857_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*TemplParam); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_group0x857_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*MessageRecallReminder); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_group0x857_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*RecalledMessageMeta); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_group0x857_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*RedGrayTipsInfo); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_group0x857_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 7,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_group0x857_proto_goTypes,
|
||||
DependencyIndexes: file_group0x857_proto_depIdxs,
|
||||
MessageInfos: file_group0x857_proto_msgTypes,
|
||||
}.Build()
|
||||
File_group0x857_proto = out.File
|
||||
file_group0x857_proto_rawDesc = nil
|
||||
file_group0x857_proto_goTypes = nil
|
||||
file_group0x857_proto_depIdxs = nil
|
||||
}
|
67
client/pb/notify/group0x857.proto
Normal file
67
client/pb/notify/group0x857.proto
Normal file
@ -0,0 +1,67 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option go_package = ".;notify";
|
||||
|
||||
message NotifyMsgBody {
|
||||
AIOGrayTipsInfo optMsgGrayTips = 5;
|
||||
RedGrayTipsInfo optMsgRedTips = 9;
|
||||
MessageRecallReminder optMsgRecall = 11;
|
||||
GeneralGrayTipInfo optGeneralGrayTip = 26;
|
||||
int32 serviceType = 13;
|
||||
}
|
||||
|
||||
message AIOGrayTipsInfo{
|
||||
uint32 showLatest = 1;
|
||||
bytes content = 2;
|
||||
uint32 remind = 3;
|
||||
bytes brief = 4;
|
||||
uint64 receiverUin = 5;
|
||||
uint32 reliaoAdminOpt = 6;
|
||||
}
|
||||
|
||||
message GeneralGrayTipInfo {
|
||||
uint64 busiType = 1;
|
||||
uint64 busiId = 2;
|
||||
uint32 ctrlFlag = 3;
|
||||
uint32 c2cType = 4;
|
||||
uint32 serviceType = 5;
|
||||
uint64 templId = 6;
|
||||
repeated TemplParam msgTemplParam = 7;
|
||||
string content = 8;
|
||||
}
|
||||
|
||||
message TemplParam {
|
||||
string name = 1;
|
||||
string value = 2;
|
||||
}
|
||||
|
||||
message MessageRecallReminder {
|
||||
int64 uin = 1;
|
||||
bytes nickname = 2;
|
||||
repeated RecalledMessageMeta recalledMsgList = 3;
|
||||
bytes reminderContent = 4;
|
||||
bytes userdef = 5;
|
||||
int32 groupType = 6;
|
||||
int32 opType = 7;
|
||||
}
|
||||
|
||||
message RecalledMessageMeta {
|
||||
int32 seq = 1;
|
||||
int32 time = 2;
|
||||
int32 msgRandom = 3;
|
||||
int32 msgType = 4;
|
||||
int32 msgFlag = 5;
|
||||
int64 authorUin = 6;
|
||||
}
|
||||
|
||||
message RedGrayTipsInfo {
|
||||
uint32 showLatest = 1;
|
||||
uint64 senderUin = 2;
|
||||
uint64 receiverUin = 3;
|
||||
string senderRichContent = 4;
|
||||
string receiverRichContent = 5;
|
||||
bytes authKey = 6;
|
||||
sint32 msgType = 7;
|
||||
uint32 luckyFlag = 8;
|
||||
uint32 hideFlag = 9;
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.25.0
|
||||
// protoc v3.12.3
|
||||
// protoc v3.11.4
|
||||
// source: oidb.proto
|
||||
|
||||
package oidb
|
||||
@ -1445,6 +1445,85 @@ func (x *D8FCClientInfo) GetIngClientver() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
type DED3ReqBody struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
ToUin int64 `protobuf:"varint,1,opt,name=toUin,proto3" json:"toUin,omitempty"`
|
||||
GroupCode int64 `protobuf:"varint,2,opt,name=groupCode,proto3" json:"groupCode,omitempty"`
|
||||
MsgSeq int32 `protobuf:"varint,3,opt,name=msgSeq,proto3" json:"msgSeq,omitempty"`
|
||||
MsgRand int32 `protobuf:"varint,4,opt,name=msgRand,proto3" json:"msgRand,omitempty"`
|
||||
AioUin int64 `protobuf:"varint,5,opt,name=aioUin,proto3" json:"aioUin,omitempty"`
|
||||
}
|
||||
|
||||
func (x *DED3ReqBody) Reset() {
|
||||
*x = DED3ReqBody{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_oidb_proto_msgTypes[15]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *DED3ReqBody) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*DED3ReqBody) ProtoMessage() {}
|
||||
|
||||
func (x *DED3ReqBody) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_oidb_proto_msgTypes[15]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use DED3ReqBody.ProtoReflect.Descriptor instead.
|
||||
func (*DED3ReqBody) Descriptor() ([]byte, []int) {
|
||||
return file_oidb_proto_rawDescGZIP(), []int{15}
|
||||
}
|
||||
|
||||
func (x *DED3ReqBody) GetToUin() int64 {
|
||||
if x != nil {
|
||||
return x.ToUin
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *DED3ReqBody) GetGroupCode() int64 {
|
||||
if x != nil {
|
||||
return x.GroupCode
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *DED3ReqBody) GetMsgSeq() int32 {
|
||||
if x != nil {
|
||||
return x.MsgSeq
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *DED3ReqBody) GetMsgRand() int32 {
|
||||
if x != nil {
|
||||
return x.MsgRand
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *DED3ReqBody) GetAioUin() int64 {
|
||||
if x != nil {
|
||||
return x.AioUin
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
var File_oidb_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_oidb_proto_rawDesc = []byte{
|
||||
@ -1707,8 +1786,17 @@ var file_oidb_proto_rawDesc = []byte{
|
||||
0x0a, 0x06, 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
|
||||
0x69, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x69,
|
||||
0x65, 0x6e, 0x74, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e,
|
||||
0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x76, 0x65, 0x72, 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x3b,
|
||||
0x6f, 0x69, 0x64, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x76, 0x65, 0x72, 0x22, 0x8b, 0x01, 0x0a, 0x0b, 0x44,
|
||||
0x45, 0x44, 0x33, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f,
|
||||
0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e,
|
||||
0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16,
|
||||
0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
|
||||
0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e,
|
||||
0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64,
|
||||
0x12, 0x16, 0x0a, 0x06, 0x61, 0x69, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x06, 0x61, 0x69, 0x6f, 0x55, 0x69, 0x6e, 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x3b, 0x6f, 0x69,
|
||||
0x64, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -1723,7 +1811,7 @@ func file_oidb_proto_rawDescGZIP() []byte {
|
||||
return file_oidb_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_oidb_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
|
||||
var file_oidb_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
|
||||
var file_oidb_proto_goTypes = []interface{}{
|
||||
(*OIDBSSOPkg)(nil), // 0: OIDBSSOPkg
|
||||
(*D8A0RspBody)(nil), // 1: D8A0RspBody
|
||||
@ -1740,6 +1828,7 @@ var file_oidb_proto_goTypes = []interface{}{
|
||||
(*D8FCCardNameElem)(nil), // 12: D8FCCardNameElem
|
||||
(*D8FCLevelName)(nil), // 13: D8FCLevelName
|
||||
(*D8FCClientInfo)(nil), // 14: D8FCClientInfo
|
||||
(*DED3ReqBody)(nil), // 15: DED3ReqBody
|
||||
}
|
||||
var file_oidb_proto_depIdxs = []int32{
|
||||
2, // 0: D8A0RspBody.msgKickResult:type_name -> D8A0KickResult
|
||||
@ -1945,6 +2034,18 @@ func file_oidb_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_oidb_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*DED3ReqBody); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
file_oidb_proto_msgTypes[7].OneofWrappers = []interface{}{
|
||||
(*D89AGroupinfo_Val)(nil),
|
||||
@ -1955,7 +2056,7 @@ func file_oidb_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_oidb_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 15,
|
||||
NumMessages: 16,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
|
@ -145,4 +145,12 @@ message D8FCLevelName {
|
||||
message D8FCClientInfo {
|
||||
int32 implat = 1;
|
||||
string ingClientver = 2;
|
||||
}
|
||||
|
||||
message DED3ReqBody {
|
||||
int64 toUin = 1;
|
||||
int64 groupCode = 2;
|
||||
int32 msgSeq = 3;
|
||||
int32 msgRand = 4;
|
||||
int64 aioUin = 5;
|
||||
}
|
1
go.mod
1
go.mod
@ -4,5 +4,6 @@ go 1.14
|
||||
|
||||
require (
|
||||
github.com/golang/protobuf v1.4.2
|
||||
github.com/tidwall/gjson v1.6.1
|
||||
google.golang.org/protobuf v1.25.0
|
||||
)
|
||||
|
6
go.sum
6
go.sum
@ -24,6 +24,12 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
|
||||
github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
|
||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/tidwall/gjson v1.6.1 h1:LRbvNuNuvAiISWg6gxLEFuCe72UKy5hDqhxW/8183ws=
|
||||
github.com/tidwall/gjson v1.6.1/go.mod h1:BaHyNc5bjzYkPqgLq7mdVzeiRtULKULXLgZFKsxEHI0=
|
||||
github.com/tidwall/match v1.0.1 h1:PnKP62LPNxHKTwvHHZZzdOAOCtsJTjo6dZLCwpKm5xc=
|
||||
github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E=
|
||||
github.com/tidwall/pretty v1.0.2 h1:Z7S3cePv9Jwm1KwS0513MRaoUe3S01WPbLNV40pwWZU=
|
||||
github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
|
@ -96,6 +96,19 @@ type LightAppElement struct {
|
||||
Content string
|
||||
}
|
||||
|
||||
type RedBagElement struct {
|
||||
MsgType RedBagMessageType
|
||||
Title string
|
||||
}
|
||||
|
||||
type RedBagMessageType int
|
||||
|
||||
const (
|
||||
Simple RedBagMessageType = 2
|
||||
Lucky RedBagMessageType = 3
|
||||
World RedBagMessageType = 6
|
||||
)
|
||||
|
||||
func NewText(s string) *TextElement {
|
||||
return &TextElement{Content: s}
|
||||
}
|
||||
@ -244,6 +257,10 @@ func (e *LightAppElement) Type() ElementType {
|
||||
return LightApp
|
||||
}
|
||||
|
||||
func (e *RedBagElement) Type() ElementType {
|
||||
return RedBag
|
||||
}
|
||||
|
||||
var faceMap = map[int]string{
|
||||
14: "微笑",
|
||||
1: "撇嘴",
|
||||
|
@ -6,6 +6,7 @@ import (
|
||||
"github.com/Mrs4s/MiraiGo/client/pb/msg"
|
||||
"github.com/Mrs4s/MiraiGo/utils"
|
||||
"github.com/golang/protobuf/proto"
|
||||
"github.com/tidwall/gjson"
|
||||
"math"
|
||||
"reflect"
|
||||
"regexp"
|
||||
@ -83,6 +84,7 @@ const (
|
||||
Voice
|
||||
Video
|
||||
LightApp
|
||||
RedBag
|
||||
)
|
||||
|
||||
func (s *Sender) IsAnonymous() bool {
|
||||
@ -138,6 +140,8 @@ func (msg *GroupMessage) ToString() (res string) {
|
||||
res += "[Image: " + e.ImageId + "]"
|
||||
case *AtElement:
|
||||
res += e.Display
|
||||
case *RedBagElement:
|
||||
res += "[RedBag:" + e.Title + "]"
|
||||
case *ReplyElement:
|
||||
res += "[Reply:" + strconv.FormatInt(int64(e.ReplySeq), 10) + "]"
|
||||
}
|
||||
@ -502,6 +506,15 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
|
||||
if elem.RichMsg.ServiceId == 33 {
|
||||
continue // 前面一个 elem 已经解析到链接
|
||||
}
|
||||
if isOk := strings.Contains(content, "<?xml"); isOk {
|
||||
res = append(res, NewRichXml(content, int64(elem.RichMsg.ServiceId)))
|
||||
continue
|
||||
} else {
|
||||
if gjson.Valid(content) {
|
||||
res = append(res, NewRichJson(content))
|
||||
continue
|
||||
}
|
||||
}
|
||||
res = append(res, NewText(content))
|
||||
}
|
||||
}
|
||||
@ -532,6 +545,17 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
|
||||
Md5: elem.NotOnlineImage.PicMd5,
|
||||
})
|
||||
}
|
||||
if elem.QQWalletMsg != nil && elem.QQWalletMsg.AioBody != nil {
|
||||
msgType := elem.QQWalletMsg.AioBody.MsgType
|
||||
if msgType == 2 || msgType == 3 || msgType == 6 {
|
||||
return []IMessageElement{
|
||||
&RedBagElement{
|
||||
MsgType: RedBagMessageType(msgType),
|
||||
Title: elem.QQWalletMsg.AioBody.Receiver.Title,
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
if elem.Face != nil {
|
||||
res = append(res, NewFace(elem.Face.Index))
|
||||
}
|
||||
|
@ -52,12 +52,12 @@ func BuildOicqRequestPacket(uin int64, commandId uint16, encrypt IEncryptMethod,
|
||||
return p.Bytes()
|
||||
}
|
||||
|
||||
func BuildSsoPacket(seq uint16, commandName, imei string, extData, outPacketSessionId, body, ksid []byte) []byte {
|
||||
func BuildSsoPacket(seq uint16, protocol uint32, commandName, imei string, extData, outPacketSessionId, body, ksid []byte) []byte {
|
||||
p := binary.NewWriter()
|
||||
p.WriteIntLvPacket(4, func(writer *binary.Writer) {
|
||||
writer.WriteUInt32(uint32(seq))
|
||||
writer.WriteUInt32(537062409) // Android pad (sub app id)
|
||||
writer.WriteUInt32(537062409)
|
||||
writer.WriteUInt32(protocol)
|
||||
writer.WriteUInt32(protocol)
|
||||
writer.Write([]byte{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00})
|
||||
if len(extData) == 0 || len(extData) == 4 {
|
||||
writer.WriteUInt32(0x04)
|
||||
|
@ -1,16 +1,18 @@
|
||||
package tlv
|
||||
|
||||
import "github.com/Mrs4s/MiraiGo/binary"
|
||||
import (
|
||||
"github.com/Mrs4s/MiraiGo/binary"
|
||||
)
|
||||
|
||||
func T100() []byte {
|
||||
func T100(protocol uint32) []byte {
|
||||
return binary.NewWriterF(func(w *binary.Writer) {
|
||||
w.WriteUInt16(0x100)
|
||||
w.WriteTlv(binary.NewWriterF(func(w *binary.Writer) {
|
||||
w.WriteUInt16(1)
|
||||
w.WriteUInt32(5)
|
||||
w.WriteUInt32(16)
|
||||
w.WriteUInt32(537062409) // Sub app id
|
||||
w.WriteUInt32(0) // App client version
|
||||
w.WriteUInt32(protocol)
|
||||
w.WriteUInt32(0) // App client version
|
||||
w.WriteUInt32(34869472)
|
||||
}))
|
||||
})
|
||||
|
@ -8,7 +8,7 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func T106(uin, salt uint32, passwordMd5 [16]byte, guidAvailable bool, guid, tgtgtKey []byte) []byte {
|
||||
func T106(uin, salt, protocol uint32, passwordMd5 [16]byte, guidAvailable bool, guid, tgtgtKey []byte) []byte {
|
||||
return binary.NewWriterF(func(w *binary.Writer) {
|
||||
w.WriteUInt16(0x106)
|
||||
body := binary.NewWriterF(func(w *binary.Writer) {
|
||||
@ -36,8 +36,8 @@ func T106(uin, salt uint32, passwordMd5 [16]byte, guidAvailable bool, guid, tgtg
|
||||
} else {
|
||||
w.Write(guid)
|
||||
}
|
||||
w.WriteUInt32(537062409) // sub app id (android pad)
|
||||
w.WriteUInt32(1) // password login
|
||||
w.WriteUInt32(protocol)
|
||||
w.WriteUInt32(1) // password login
|
||||
b := make([]byte, 8)
|
||||
binary2.BigEndian.PutUint64(b, uint64(uin))
|
||||
w.WriteTlv(b)
|
||||
|
Loading…
x
Reference in New Issue
Block a user