1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 11:07:40 +08:00

Merge branch 'master' of github.com:/Mrs4s/MiraiGo

This commit is contained in:
Mrs4s 2022-06-06 22:25:26 +08:00
commit b56c61f5b4
No known key found for this signature in database
GPG Key ID: 3186E98FA19CE3A7
85 changed files with 4477 additions and 20492 deletions

46
Makefile Normal file
View File

@ -0,0 +1,46 @@
PROTO_DIR=client/pb
PROTO_OUTPUT_PATH=client
PROTO_IMPORT_PATH=client
PROTO_FILES := \
$(PROTO_DIR)/*.proto \
$(PROTO_DIR)/channel/*.proto \
$(PROTO_DIR)/cmd0x3f6/*.proto \
$(PROTO_DIR)/cmd0x6ff/*.proto \
$(PROTO_DIR)/cmd0x346/*.proto \
$(PROTO_DIR)/cmd0x352/*.proto \
$(PROTO_DIR)/cmd0x388/*.proto \
$(PROTO_DIR)/exciting/*.proto \
$(PROTO_DIR)/faceroam/*.proto \
$(PROTO_DIR)/highway/*.proto \
$(PROTO_DIR)/longmsg/*.proto \
$(PROTO_DIR)/msf/*.proto \
$(PROTO_DIR)/msg/*.proto \
$(PROTO_DIR)/msgtype0x210/*.proto \
$(PROTO_DIR)/multimsg/*.proto \
$(PROTO_DIR)/notify/*.proto \
$(PROTO_DIR)/oidb/*.proto \
$(PROTO_DIR)/profilecard/*.proto \
$(PROTO_DIR)/pttcenter/*.proto \
$(PROTO_DIR)/qweb/*.proto \
$(PROTO_DIR)/richmedia/*.proto \
$(PROTO_DIR)/structmsg/*.proto \
$(PROTO_DIR)/web/*.proto
PROTOC_GEN_GOLITE_VERSION := \
$(shell grep "github.com/RomiChan/protobuf" go.mod | awk -F v '{print "v"$$2}')
.PHONY: protoc-gen-golite-version clean install-protoc-plugin proto
.DEFAULT_GOAL := proto
protoc-gen-golite-version:
@echo "Use protoc-gen-golite version: $(PROTOC_GEN_GOLITE_VERSION)"
clean:
find . -name "*.pb.go" | xargs rm -f
install-protoc-plugin: protoc-gen-golite-version
go install github.com/RomiChan/protobuf/cmd/protoc-gen-golite@$(PROTOC_GEN_GOLITE_VERSION)
proto: install-protoc-plugin
protoc --golite_out=$(PROTO_OUTPUT_PATH) --golite_opt=paths=source_relative -I=$(PROTO_IMPORT_PATH) $(PROTO_FILES)

View File

@ -7,11 +7,6 @@ import (
type TEA [4]uint32
// randuint32 returns a lock free uint32 value.
//
//go:linkname randuint32 runtime.fastrand
func randuint32() uint32
// Encrypt tea 加密
// http://bbs.chinaunix.net/thread-583468-1-1.html
// 感谢xichen大佬对TEA的解释
@ -19,9 +14,6 @@ func (t TEA) Encrypt(src []byte) (dst []byte) {
lens := len(src)
fill := 10 - (lens+1)%8
dst = make([]byte, fill+lens+7)
binary.LittleEndian.PutUint32(dst, randuint32())
binary.LittleEndian.PutUint32(dst[4:], randuint32())
binary.LittleEndian.PutUint32(dst[8:], randuint32())
dst[0] = byte(fill-3) | 0xF8 // 存储pad长度
copy(dst[fill:], src)
@ -59,38 +51,38 @@ func (t *TEA) encode(n uint64) uint64 {
v0, v1 := uint32(n>>32), uint32(n)
t0, t1, t2, t3 := t[0], t[1], t[2], t[3]
v0 += (v1 + 0x9e3779b9) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0x9e3779b9) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0x3c6ef372) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0x3c6ef372) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0xdaa66d2b) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0xdaa66d2b) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0x78dde6e4) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0x78dde6e4) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0x1715609d) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0x1715609d) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0xb54cda56) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0xb54cda56) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0x5384540f) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0x5384540f) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0xf1bbcdc8) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0xf1bbcdc8) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0x8ff34781) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0x8ff34781) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0x2e2ac13a) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0x2e2ac13a) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0xcc623af3) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0xcc623af3) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0x6a99b4ac) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0x6a99b4ac) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0x08d12e65) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0x08d12e65) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0xa708a81e) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0xa708a81e) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0x454021d7) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0x454021d7) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0xe3779b90) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 += (v0 + 0xe3779b90) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 += (v1 + 0x9e3779b9) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0x9e3779b9) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0x3c6ef372) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0x3c6ef372) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0xdaa66d2b) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0xdaa66d2b) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0x78dde6e4) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0x78dde6e4) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0x1715609d) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0x1715609d) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0xb54cda56) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0xb54cda56) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0x5384540f) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0x5384540f) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0xf1bbcdc8) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0xf1bbcdc8) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0x8ff34781) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0x8ff34781) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0x2e2ac13a) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0x2e2ac13a) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0xcc623af3) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0xcc623af3) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0x6a99b4ac) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0x6a99b4ac) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0x08d12e65) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0x08d12e65) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0xa708a81e) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0xa708a81e) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0x454021d7) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0x454021d7) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 += (v1 + 0xe3779b90) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 += (v0 + 0xe3779b90) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
return uint64(v0)<<32 | uint64(v1)
}
@ -102,38 +94,38 @@ func (t *TEA) decode(n uint64) uint64 {
v0, v1 := uint32(n>>32), uint32(n)
t0, t1, t2, t3 := t[0], t[1], t[2], t[3]
v1 -= (v0 + 0xe3779b90) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0xe3779b90) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0x454021d7) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0x454021d7) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0xa708a81e) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0xa708a81e) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0x08d12e65) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0x08d12e65) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0x6a99b4ac) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0x6a99b4ac) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0xcc623af3) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0xcc623af3) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0x2e2ac13a) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0x2e2ac13a) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0x8ff34781) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0x8ff34781) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0xf1bbcdc8) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0xf1bbcdc8) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0x5384540f) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0x5384540f) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0xb54cda56) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0xb54cda56) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0x1715609d) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0x1715609d) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0x78dde6e4) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0x78dde6e4) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0xdaa66d2b) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0xdaa66d2b) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0x3c6ef372) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0x3c6ef372) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0x9e3779b9) ^ ((v0 << 4) + t2) ^ ((v0 >> 5) + t3)
v0 -= (v1 + 0x9e3779b9) ^ ((v1 << 4) + t0) ^ ((v1 >> 5) + t1)
v1 -= (v0 + 0xe3779b90) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0xe3779b90) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0x454021d7) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0x454021d7) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0xa708a81e) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0xa708a81e) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0x08d12e65) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0x08d12e65) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0x6a99b4ac) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0x6a99b4ac) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0xcc623af3) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0xcc623af3) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0x2e2ac13a) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0x2e2ac13a) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0x8ff34781) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0x8ff34781) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0xf1bbcdc8) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0xf1bbcdc8) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0x5384540f) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0x5384540f) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0xb54cda56) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0xb54cda56) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0x1715609d) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0x1715609d) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0x78dde6e4) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0x78dde6e4) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0xdaa66d2b) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0xdaa66d2b) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0x3c6ef372) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0x3c6ef372) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
v1 -= (v0 + 0x9e3779b9) ^ (v0<<4 + t2) ^ (v0>>5 + t3)
v0 -= (v1 + 0x9e3779b9) ^ (v1<<4 + t0) ^ (v1>>5 + t1)
return uint64(v0)<<32 | uint64(v1)
}

View File

@ -98,27 +98,12 @@ func AppendUUID(dst []byte, uuid []byte) []byte {
return dst
}
func ToIPV4Address(arr []byte) string {
ip := (net.IP)(arr)
return ip.String()
}
func UInt32ToIPV4Address(i uint32) string {
ip := net.IP{0, 0, 0, 0}
binary2.LittleEndian.PutUint32(ip, i)
return ip.String()
}
func ToChunkedBytesF(b []byte, size int, f func([]byte)) {
r := NewReader(b)
for r.Len() >= size {
f(r.ReadBytes(size))
}
if r.Len() > 0 {
f(r.ReadAvailable())
}
}
func ToBytes(i any) []byte {
return NewWriterF(func(w *Writer) {
// TODO: more types

View File

@ -663,9 +663,9 @@ func (c *QQClient) buildSummaryCardRequestPacket(target int64) (uint16, []byte)
comm, _ := proto.Marshal(&profilecard.BusiComm{
Ver: proto.Int32(1),
Seq: proto.Int32(int32(seq)),
Fromuin: &c.Uin,
Touin: &target,
Service: &t,
Fromuin: proto.Some(c.Uin),
Touin: proto.Some(target),
Service: proto.Some(t),
Platform: proto.Int32(2),
Qqver: proto.String("8.4.18.4945"),
Build: proto.Int32(4945),
@ -680,9 +680,9 @@ func (c *QQClient) buildSummaryCardRequestPacket(target int64) (uint16, []byte)
}
gate, _ := proto.Marshal(&profilecard.GateVaProfileGateReq{
UCmd: proto.Int32(3),
StPrivilegeReq: &profilecard.GatePrivilegeBaseInfoReq{UReqUin: &target},
StPrivilegeReq: &profilecard.GatePrivilegeBaseInfoReq{UReqUin: proto.Some(target)},
StGiftReq: &profilecard.GateGetGiftListReq{Uin: proto.Int32(int32(target))},
StVipCare: &profilecard.GateGetVipCareReq{Uin: &target},
StVipCare: &profilecard.GateGetVipCareReq{Uin: proto.Some(target)},
OidbFlag: []*profilecard.GateOidbFlagInfo{
{
Fieled: proto.Int32(42334),
@ -835,7 +835,7 @@ func (c *QQClient) buildGetMessageRequestPacket(flag msg.SyncFlag, msgTime int64
cook := c.sig.SyncCookie
if cook == nil {
cook, _ = proto.Marshal(&msg.SyncCookie{
Time: &msgTime,
Time: proto.Some(msgTime),
Ran1: proto.Int64(758330138),
Ran2: proto.Int64(2480149246),
Const1: proto.Int64(1167238020),
@ -844,7 +844,7 @@ func (c *QQClient) buildGetMessageRequestPacket(flag msg.SyncFlag, msgTime int64
})
}
req := &msg.GetMessageRequest{
SyncFlag: &flag,
SyncFlag: proto.Some(int32(flag)),
SyncCookie: cook,
LatestRambleNumber: proto.Int32(20),
OtherRambleNumber: proto.Int32(3),
@ -967,10 +967,10 @@ func (c *QQClient) buildEditGroupTagPacket(groupCode, memberUin int64, newTag st
// OidbSvc.0x8fc_2
func (c *QQClient) buildEditSpecialTitlePacket(groupCode, memberUin int64, newTitle string) (uint16, []byte) {
body := &oidb.D8FCReqBody{
GroupCode: &groupCode,
GroupCode: proto.Some(groupCode),
MemLevelInfo: []*oidb.D8FCMemberInfo{
{
Uin: &memberUin,
Uin: proto.Some(memberUin),
UinName: []byte(newTitle),
SpecialTitle: []byte(newTitle),
SpecialTitleExpireTime: proto.Int32(-1),
@ -1000,16 +1000,6 @@ func (c *QQClient) buildGroupNameUpdatePacket(groupCode int64, newName string) (
return c.buildGroupOperationPacket(body)
}
func (c *QQClient) buildGroupMemoUpdatePacket(groupCode int64, newMemo string) (uint16, []byte) {
body := &oidb.D89AReqBody{
GroupCode: groupCode,
StGroupInfo: &oidb.D89AGroupinfo{
IngGroupMemo: []byte(newMemo),
},
}
return c.buildGroupOperationPacket(body)
}
// OidbSvc.0x89a_0
func (c *QQClient) buildGroupMuteAllPacket(groupCode int64, mute bool) (uint16, []byte) {
shutUpTime := int32(0)
@ -1019,7 +1009,7 @@ func (c *QQClient) buildGroupMuteAllPacket(groupCode int64, mute bool) (uint16,
body := &oidb.D89AReqBody{
GroupCode: groupCode,
StGroupInfo: &oidb.D89AGroupinfo{
ShutupTime: &shutUpTime,
ShutupTime: proto.Some(shutUpTime),
},
}
return c.buildGroupOperationPacket(body)

View File

@ -51,17 +51,17 @@ func (c *QQClient) c2cMessageSyncProcessor(rsp *msg.GetMessageResponse, info *ne
for _, pMsg := range pairMsg.Messages {
// delete message
delItem := &pb.MessageItem{
FromUin: pMsg.Head.GetFromUin(),
ToUin: pMsg.Head.GetToUin(),
MsgType: pMsg.Head.GetMsgType(),
MsgSeq: pMsg.Head.GetMsgSeq(),
MsgUid: pMsg.Head.GetMsgUid(),
FromUin: pMsg.Head.FromUin.Unwrap(),
ToUin: pMsg.Head.ToUin.Unwrap(),
MsgType: pMsg.Head.MsgType.Unwrap(),
MsgSeq: pMsg.Head.MsgSeq.Unwrap(),
MsgUid: pMsg.Head.MsgUid.Unwrap(),
}
delItems = append(delItems, delItem)
if pMsg.Head.GetToUin() != c.Uin {
if pMsg.Head.ToUin.Unwrap() != c.Uin {
continue
}
if (int64(pairMsg.GetLastReadTime()) & 4294967295) > int64(pMsg.Head.GetMsgTime()) {
if (int64(pairMsg.LastReadTime.Unwrap()) & 4294967295) > int64(pMsg.Head.MsgTime.Unwrap()) {
continue
}
c.commMsgProcessor(pMsg, info)
@ -70,43 +70,43 @@ func (c *QQClient) c2cMessageSyncProcessor(rsp *msg.GetMessageResponse, info *ne
if delItems != nil {
_, _ = c.sendAndWait(c.buildDeleteMessageRequestPacket(delItems))
}
if rsp.GetSyncFlag() != msg.SyncFlag_STOP {
if rsp.SyncFlag.Unwrap() != msg.SyncFlag_STOP {
c.debug("continue sync with flag: %v", rsp.SyncFlag)
seq, pkt := c.buildGetMessageRequestPacket(rsp.GetSyncFlag(), time.Now().Unix())
seq, pkt := c.buildGetMessageRequestPacket(rsp.SyncFlag.Unwrap(), time.Now().Unix())
_, _ = c.sendAndWait(seq, pkt, info.Params)
}
}
func (c *QQClient) commMsgProcessor(pMsg *msg.Message, info *network.IncomingPacketInfo) {
strKey := fmt.Sprintf("%d%d%d%d", pMsg.Head.GetFromUin(), pMsg.Head.GetToUin(), pMsg.Head.GetMsgSeq(), pMsg.Head.GetMsgUid())
strKey := fmt.Sprintf("%d%d%d%d", pMsg.Head.FromUin.Unwrap(), pMsg.Head.ToUin.Unwrap(), pMsg.Head.MsgSeq.Unwrap(), pMsg.Head.MsgUid.Unwrap())
if _, ok := c.msgSvcCache.GetAndUpdate(strKey, time.Hour); ok {
c.debug("c2c msg %v already exists in cache. skip.", pMsg.Head.GetMsgUid())
c.debug("c2c msg %v already exists in cache. skip.", pMsg.Head.MsgUid.Unwrap())
return
}
c.msgSvcCache.Add(strKey, unit{}, time.Hour)
if c.lastC2CMsgTime > int64(pMsg.Head.GetMsgTime()) && (c.lastC2CMsgTime-int64(pMsg.Head.GetMsgTime())) > 60*10 {
c.debug("c2c msg filtered by time. lastMsgTime: %v msgTime: %v", c.lastC2CMsgTime, pMsg.Head.GetMsgTime())
if c.lastC2CMsgTime > int64(pMsg.Head.MsgTime.Unwrap()) && (c.lastC2CMsgTime-int64(pMsg.Head.MsgTime.Unwrap())) > 60*10 {
c.debug("c2c msg filtered by time. lastMsgTime: %v msgTime: %v", c.lastC2CMsgTime, pMsg.Head.MsgTime.Unwrap())
return
}
c.lastC2CMsgTime = int64(pMsg.Head.GetMsgTime())
c.lastC2CMsgTime = int64(pMsg.Head.MsgTime.Unwrap())
if info.Params.Bool("init") {
return
}
if decoder, _ := peekC2CDecoder(pMsg.Head.GetMsgType()); decoder != nil {
if decoder, _ := peekC2CDecoder(pMsg.Head.MsgType.Unwrap()); decoder != nil {
decoder(c, pMsg, info)
} else {
c.debug("unknown msg type on c2c processor: %v - %v", pMsg.Head.GetMsgType(), pMsg.Head.GetC2CCmd())
c.debug("unknown msg type on c2c processor: %v - %v", pMsg.Head.MsgType.Unwrap(), pMsg.Head.C2CCmd.Unwrap())
}
}
func privateMessageDecoder(c *QQClient, pMsg *msg.Message, _ *network.IncomingPacketInfo) {
switch pMsg.Head.GetC2CCmd() {
switch pMsg.Head.C2CCmd.Unwrap() {
case 11, 175: // friend msg
if pMsg.Head.GetFromUin() == c.Uin {
if pMsg.Head.FromUin.Unwrap() == c.Uin {
for {
frdSeq := c.friendSeq.Load()
if frdSeq < pMsg.Head.GetMsgSeq() {
if c.friendSeq.CAS(frdSeq, pMsg.Head.GetMsgSeq()) {
if frdSeq < pMsg.Head.MsgSeq.Unwrap() {
if c.friendSeq.CAS(frdSeq, pMsg.Head.MsgSeq.Unwrap()) {
break
}
} else {
@ -119,11 +119,11 @@ func privateMessageDecoder(c *QQClient, pMsg *msg.Message, _ *network.IncomingPa
}
// handle fragmented message
if pMsg.Content != nil && pMsg.Content.GetPkgNum() > 1 {
seq := pMsg.Content.GetDivSeq()
if pMsg.Content != nil && pMsg.Content.PkgNum.Unwrap() > 1 {
seq := pMsg.Content.DivSeq.Unwrap()
builder := c.messageBuilder(seq)
builder.append(pMsg)
if builder.len() < pMsg.Content.GetPkgNum() {
if builder.len() < pMsg.Content.PkgNum.Unwrap() {
// continue to receive other fragments
return
}
@ -131,13 +131,13 @@ func privateMessageDecoder(c *QQClient, pMsg *msg.Message, _ *network.IncomingPa
pMsg = builder.build()
}
if pMsg.Head.GetFromUin() == c.Uin {
if pMsg.Head.FromUin.Unwrap() == c.Uin {
c.SelfPrivateMessageEvent.dispatch(c, c.parsePrivateMessage(pMsg))
return
}
c.PrivateMessageEvent.dispatch(c, c.parsePrivateMessage(pMsg))
default:
c.debug("unknown c2c cmd on private msg decoder: %v", pMsg.Head.GetC2CCmd())
c.debug("unknown c2c cmd on private msg decoder: %v", pMsg.Head.C2CCmd.Unwrap())
}
}
@ -156,28 +156,28 @@ func tempSessionDecoder(c *QQClient, pMsg *msg.Message, _ *network.IncomingPacke
if pMsg.Head.C2CTmpMsgHead == nil || pMsg.Body == nil {
return
}
if (pMsg.Head.GetMsgType() == 529 && pMsg.Head.GetC2CCmd() == 6) || pMsg.Body.RichText != nil {
if (pMsg.Head.MsgType.Unwrap() == 529 && pMsg.Head.C2CCmd.Unwrap() == 6) || pMsg.Body.RichText != nil {
genTempSessionInfo := func() *TempSessionInfo {
if pMsg.Head.C2CTmpMsgHead.GetServiceType() == 0 {
group := c.FindGroup(pMsg.Head.C2CTmpMsgHead.GetGroupCode())
if pMsg.Head.C2CTmpMsgHead.ServiceType.Unwrap() == 0 {
group := c.FindGroup(pMsg.Head.C2CTmpMsgHead.GroupCode.Unwrap())
if group == nil {
return nil
}
return &TempSessionInfo{
Source: GroupSource,
GroupCode: group.Code,
Sender: pMsg.Head.GetFromUin(),
Sender: pMsg.Head.FromUin.Unwrap(),
client: c,
}
}
info := &TempSessionInfo{
Source: 0,
Sender: pMsg.Head.GetFromUin(),
Sender: pMsg.Head.FromUin.Unwrap(),
sig: pMsg.Head.C2CTmpMsgHead.Sig,
client: c,
}
switch pMsg.Head.C2CTmpMsgHead.GetServiceType() {
switch pMsg.Head.C2CTmpMsgHead.ServiceType.Unwrap() {
case 1:
info.Source = MultiChatSource
case 130:
@ -198,12 +198,12 @@ func tempSessionDecoder(c *QQClient, pMsg *msg.Message, _ *network.IncomingPacke
return
}
/*
group := c.FindGroup(pMsg.Head.C2CTmpMsgHead.GetGroupCode())
group := c.FindGroup(pMsg.Head.C2CTmpMsgHead.GroupCode.Unwrap())
if group == nil {
return
}
*/
if pMsg.Head.GetFromUin() == c.Uin {
if pMsg.Head.FromUin.Unwrap() == c.Uin {
return
}
c.TempMessageEvent.dispatch(c, &TempMessageEvent{
@ -216,14 +216,14 @@ func tempSessionDecoder(c *QQClient, pMsg *msg.Message, _ *network.IncomingPacke
func troopAddMemberBroadcastDecoder(c *QQClient, pMsg *msg.Message, _ *network.IncomingPacketInfo) {
groupJoinLock.Lock()
defer groupJoinLock.Unlock()
group := c.FindGroupByUin(pMsg.Head.GetFromUin())
if pMsg.Head.GetAuthUin() == c.Uin {
group := c.FindGroupByUin(pMsg.Head.FromUin.Unwrap())
if pMsg.Head.AuthUin.Unwrap() == c.Uin {
if group == nil && c.ReloadGroupList() == nil {
c.GroupJoinEvent.dispatch(c, c.FindGroupByUin(pMsg.Head.GetFromUin()))
c.GroupJoinEvent.dispatch(c, c.FindGroupByUin(pMsg.Head.FromUin.Unwrap()))
}
} else {
if group != nil && group.FindMember(pMsg.Head.GetAuthUin()) == nil {
mem, err := c.GetMemberInfo(group.Code, pMsg.Head.GetAuthUin())
if group != nil && group.FindMember(pMsg.Head.AuthUin.Unwrap()) == nil {
mem, err := c.GetMemberInfo(group.Code, pMsg.Head.AuthUin.Unwrap())
if err != nil {
c.debug("error to fetch new member info: %v", err)
return
@ -246,7 +246,7 @@ func systemMessageDecoder(c *QQClient, _ *msg.Message, _ *network.IncomingPacket
}
func troopSystemMessageDecoder(c *QQClient, pMsg *msg.Message, info *network.IncomingPacketInfo) {
if !info.Params.Bool("used_reg_proxy") && pMsg.Head.GetMsgType() != 85 && pMsg.Head.GetMsgType() != 36 {
if !info.Params.Bool("used_reg_proxy") && pMsg.Head.MsgType.Unwrap() != 85 && pMsg.Head.MsgType.Unwrap() != 36 {
c.exceptAndDispatchGroupSysMsg()
}
if len(pMsg.Body.MsgContent) == 0 {
@ -254,14 +254,14 @@ func troopSystemMessageDecoder(c *QQClient, pMsg *msg.Message, info *network.Inc
}
reader := binary.NewReader(pMsg.Body.MsgContent)
groupCode := uint32(reader.ReadInt32())
if info := c.FindGroup(int64(groupCode)); info != nil && pMsg.Head.GetGroupName() != "" && info.Name != pMsg.Head.GetGroupName() {
c.debug("group %v name updated. %v -> %v", groupCode, info.Name, pMsg.Head.GetGroupName())
info.Name = pMsg.Head.GetGroupName()
if info := c.FindGroup(int64(groupCode)); info != nil && pMsg.Head.GroupName.Unwrap() != "" && info.Name != pMsg.Head.GroupName.Unwrap() {
c.debug("group %v name updated. %v -> %v", groupCode, info.Name, pMsg.Head.GroupName.Unwrap())
info.Name = pMsg.Head.GroupName.Unwrap()
}
}
func msgType0x211Decoder(c *QQClient, pMsg *msg.Message, info *network.IncomingPacketInfo) {
if pMsg.Head.GetC2CCmd() == 6 || pMsg.Head.C2CTmpMsgHead != nil {
if pMsg.Head.C2CCmd.Unwrap() == 6 || pMsg.Head.C2CTmpMsgHead != nil {
tempSessionDecoder(c, pMsg, info)
}
sub4 := msg.SubMsgType0X4Body{}
@ -270,15 +270,15 @@ func msgType0x211Decoder(c *QQClient, pMsg *msg.Message, info *network.IncomingP
c.error("unmarshal sub msg 0x4 error: %v", err)
return
}
if sub4.NotOnlineFile != nil && sub4.NotOnlineFile.GetSubcmd() == 1 { // subcmd: 1 -> sendPacket, 2-> recv
if sub4.NotOnlineFile != nil && sub4.NotOnlineFile.Subcmd.Unwrap() == 1 { // subcmd: 1 -> sendPacket, 2-> recv
rsp, err := c.sendAndWait(c.buildOfflineFileDownloadRequestPacket(sub4.NotOnlineFile.FileUuid)) // offline_file.go
if err != nil {
return
}
c.OfflineFileEvent.dispatch(c, &OfflineFileEvent{
FileName: string(sub4.NotOnlineFile.FileName),
FileSize: sub4.NotOnlineFile.GetFileSize(),
Sender: pMsg.Head.GetFromUin(),
FileSize: sub4.NotOnlineFile.FileSize.Unwrap(),
Sender: pMsg.Head.FromUin.Unwrap(),
DownloadUrl: rsp.(string),
})
}

View File

@ -19,6 +19,7 @@ import (
"github.com/Mrs4s/MiraiGo/binary"
"github.com/Mrs4s/MiraiGo/client/internal/auth"
"github.com/Mrs4s/MiraiGo/client/internal/highway"
"github.com/Mrs4s/MiraiGo/client/internal/intern"
"github.com/Mrs4s/MiraiGo/client/internal/network"
"github.com/Mrs4s/MiraiGo/client/internal/oicq"
"github.com/Mrs4s/MiraiGo/client/pb/msg"
@ -34,7 +35,9 @@ type QQClient struct {
once sync.Once
// option
AllowSlider bool
AllowSlider bool
UseHighwayMessage bool
UseFragmentMessage bool
// account info
Online atomic.Bool
@ -576,6 +579,7 @@ func (c *QQClient) GetGroupList() ([]*GroupInfo, error) {
if err != nil {
return nil, err
}
interner := intern.NewStringInterner()
r := rsp.([]*GroupInfo)
wg := sync.WaitGroup{}
batch := 50
@ -588,11 +592,12 @@ func (c *QQClient) GetGroupList() ([]*GroupInfo, error) {
for j := i; j < k; j++ {
go func(g *GroupInfo, wg *sync.WaitGroup) {
defer wg.Done()
m, err := c.GetGroupMembers(g)
m, err := c.getGroupMembers(g, interner)
if err != nil {
return
}
g.Members = m
g.Name = interner.Intern(g.Name)
}(r[j], &wg)
}
wg.Wait()
@ -601,6 +606,11 @@ func (c *QQClient) GetGroupList() ([]*GroupInfo, error) {
}
func (c *QQClient) GetGroupMembers(group *GroupInfo) ([]*GroupMemberInfo, error) {
interner := intern.NewStringInterner()
return c.getGroupMembers(group, interner)
}
func (c *QQClient) getGroupMembers(group *GroupInfo, interner *intern.StringInterner) ([]*GroupMemberInfo, error) {
var nextUin int64
var list []*GroupMemberInfo
for {
@ -618,6 +628,9 @@ func (c *QQClient) GetGroupMembers(group *GroupInfo) ([]*GroupMemberInfo, error)
if m.Uin == group.OwnerUin {
m.Permission = Owner
}
m.CardName = interner.Intern(m.CardName)
m.Nickname = interner.Intern(m.Nickname)
m.SpecialTitle = interner.Intern(m.SpecialTitle)
}
list = append(list, rsp.list...)
if nextUin == 0 {
@ -753,10 +766,6 @@ func (c *QQClient) updateGroupName(groupCode int64, newName string) {
_, _ = c.sendAndWait(c.buildGroupNameUpdatePacket(groupCode, newName))
}
func (c *QQClient) updateGroupMemo(groupCode int64, newMemo string) {
_, _ = c.sendAndWait(c.buildGroupMemoUpdatePacket(groupCode, newMemo))
}
func (c *QQClient) groupMuteAll(groupCode int64, mute bool) {
_, _ = c.sendAndWait(c.buildGroupMuteAllPacket(groupCode, mute))
}

View File

@ -347,15 +347,15 @@ func decodePushReqPacket(c *QQClient, _ *network.IncomingPacketInfo, payload []b
c.highwaySession.SigSession = rsp.RspBody.SigSession
c.highwaySession.SessionKey = rsp.RspBody.SessionKey
for _, srv := range rsp.RspBody.Addrs {
if srv.GetServiceType() == 10 {
if srv.ServiceType.Unwrap() == 10 {
for _, addr := range srv.Addrs {
c.highwaySession.AppendAddr(addr.GetIp(), addr.GetPort())
c.highwaySession.AppendAddr(addr.Ip.Unwrap(), addr.Port.Unwrap())
}
}
/*
if srv.GetServiceType() == 21 {
if srv.ServiceType.Unwrap() == 21 {
for _, addr := range srv.Addrs {
c.otherSrvAddrs = append(c.otherSrvAddrs, fmt.Sprintf("%v:%v", binary.UInt32ToIPV4Address(addr.GetIp()), addr.GetPort()))
c.otherSrvAddrs = append(c.otherSrvAddrs, fmt.Sprintf("%v:%v", binary.UInt32ToIPV4Address(addr.Ip.Unwrap()), addr.Port.Unwrap()))
}
}
@ -445,11 +445,11 @@ func decodeSummaryCardResponse(_ *QQClient, _ *network.IncomingPacketInfo, paylo
}
for _, buf := range services {
comm, payload := readService(buf)
if comm.GetService() == 16 {
if comm.Service.Unwrap() == 16 {
rsp := profilecard.GateVaProfileGateRsp{}
_ = proto.Unmarshal(payload, &rsp)
if rsp.QidInfo != nil {
info.Qid = rsp.QidInfo.GetQid()
info.Qid = rsp.QidInfo.Qid.Unwrap()
}
}
}
@ -509,7 +509,6 @@ func decodeGroupListResponse(c *QQClient, _ *network.IncomingPacketInfo, payload
Uin: g.GroupUin,
Code: g.GroupCode,
Name: g.GroupName,
Memo: g.GroupMemo,
OwnerUin: g.GroupOwnerUin,
MemberCount: uint16(g.MemberNum),
MaxMemberCount: uint16(g.MaxGroupMemberNum),
@ -537,23 +536,21 @@ func decodeGroupMemberListResponse(_ *QQClient, _ *network.IncomingPacketInfo, p
next := r.ReadInt64(4)
l := make([]*GroupMemberInfo, 0, len(members))
for _, m := range members {
permission := Member
if m.Flag&1 != 0 {
permission = Administrator
}
l = append(l, &GroupMemberInfo{
Uin: m.MemberUin,
Nickname: m.Nick,
Gender: m.Gender,
CardName: m.Name,
Level: uint16(m.MemberLevel),
JoinTime: m.JoinTime,
LastSpeakTime: m.LastSpeakTime,
SpecialTitle: m.SpecialTitle,
SpecialTitleExpireTime: m.SpecialTitleExpireTime,
ShutUpTimestamp: m.ShutUpTimestap,
Permission: func() MemberPermission {
if m.Flag == 1 {
return Administrator
}
return Member
}(),
Uin: m.MemberUin,
Nickname: m.Nick,
Gender: m.Gender,
CardName: m.Name,
Level: uint16(m.MemberLevel),
JoinTime: m.JoinTime,
LastSpeakTime: m.LastSpeakTime,
SpecialTitle: m.SpecialTitle,
ShutUpTimestamp: m.ShutUpTimestap,
Permission: permission,
})
}
return &groupMemberListResponse{
@ -572,26 +569,24 @@ func decodeGroupMemberInfoResponse(c *QQClient, _ *network.IncomingPacketInfo, p
return nil, errors.WithStack(ErrMemberNotFound)
}
group := c.FindGroup(rsp.GroupCode)
permission := Member
if rsp.MemInfo.Uin == group.OwnerUin {
permission = Owner
}
if rsp.MemInfo.Role == 2 {
permission = Administrator
}
return &GroupMemberInfo{
Group: group,
Uin: rsp.MemInfo.Uin,
Gender: byte(rsp.MemInfo.Sex),
Nickname: string(rsp.MemInfo.Nick),
CardName: string(rsp.MemInfo.Card),
Level: uint16(rsp.MemInfo.Level),
JoinTime: rsp.MemInfo.Join,
LastSpeakTime: rsp.MemInfo.LastSpeak,
SpecialTitle: string(rsp.MemInfo.SpecialTitle),
SpecialTitleExpireTime: int64(rsp.MemInfo.SpecialTitleExpireTime),
Permission: func() MemberPermission {
if rsp.MemInfo.Uin == group.OwnerUin {
return Owner
}
if rsp.MemInfo.Role == 2 {
return Administrator
}
return Member
}(),
Group: group,
Uin: rsp.MemInfo.Uin,
Gender: byte(rsp.MemInfo.Sex),
Nickname: string(rsp.MemInfo.Nick),
CardName: string(rsp.MemInfo.Card),
Level: uint16(rsp.MemInfo.Level),
JoinTime: rsp.MemInfo.Join,
LastSpeakTime: rsp.MemInfo.LastSpeak,
SpecialTitle: string(rsp.MemInfo.SpecialTitle),
Permission: permission,
}, nil
}
@ -607,19 +602,19 @@ func decodeOffPicUpResponse(_ *QQClient, _ *network.IncomingPacketInfo, payload
Message: string(rsp.FailMsg),
}, nil
}
if rsp.GetSubcmd() != 1 || len(rsp.TryupImgRsp) == 0 {
if rsp.Subcmd.Unwrap() != 1 || len(rsp.TryupImgRsp) == 0 {
return &imageUploadResponse{
ResultCode: -2,
}, nil
}
imgRsp := rsp.TryupImgRsp[0]
if imgRsp.GetResult() != 0 {
if imgRsp.Result.Unwrap() != 0 {
return &imageUploadResponse{
ResultCode: int32(*imgRsp.Result),
ResultCode: int32(imgRsp.Result.Unwrap()),
Message: string(imgRsp.FailMsg),
}, nil
}
if imgRsp.GetFileExit() {
if imgRsp.FileExit.Unwrap() {
return &imageUploadResponse{
IsExists: true,
ResourceId: string(imgRsp.UpResid),
@ -641,18 +636,18 @@ func decodeOnlinePushTransPacket(c *QQClient, _ *network.IncomingPacketInfo, pay
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
}
data := binary.NewReader(info.MsgData)
idStr := strconv.FormatInt(info.GetMsgUid(), 10)
idStr := strconv.FormatInt(info.MsgUid.Unwrap(), 10)
if _, ok := c.transCache.Get(idStr); ok {
return nil, nil
}
c.transCache.Add(idStr, unit{}, time.Second*15)
if info.GetMsgType() == 34 {
if info.MsgType.Unwrap() == 34 {
data.ReadInt32()
data.ReadByte()
target := int64(uint32(data.ReadInt32()))
typ := int32(data.ReadByte())
operator := int64(uint32(data.ReadInt32()))
if g := c.FindGroupByUin(info.GetFromUin()); g != nil {
if g := c.FindGroupByUin(info.FromUin.Unwrap()); g != nil {
groupLeaveLock.Lock()
defer groupLeaveLock.Unlock()
switch typ {
@ -703,7 +698,7 @@ func decodeOnlinePushTransPacket(c *QQClient, _ *network.IncomingPacketInfo, pay
}
}
}
if info.GetMsgType() == 44 {
if info.MsgType.Unwrap() == 44 {
data.ReadBytes(5)
var4 := int32(data.ReadByte())
var5 := int64(0)
@ -711,14 +706,12 @@ func decodeOnlinePushTransPacket(c *QQClient, _ *network.IncomingPacketInfo, pay
if var4 != 0 && var4 != 1 {
var5 = int64(uint32(data.ReadInt32()))
}
if g := c.FindGroupByUin(info.GetFromUin()); g != nil {
if g := c.FindGroupByUin(info.FromUin.Unwrap()); g != nil {
if var5 == 0 && data.Len() == 1 {
newPermission := func() MemberPermission {
if data.ReadByte() == 1 {
return Administrator
}
return Member
}()
newPermission := Member
if data.ReadByte() == 1 {
newPermission = Administrator
}
mem := g.FindMember(target)
if mem.Permission != newPermission {
old := mem.Permission
@ -782,7 +775,7 @@ func decodeMSFOfflinePacket(c *QQClient, _ *network.IncomingPacketInfo, _ []byte
// OidbSvc.0xd79
func decodeWordSegmentation(_ *QQClient, _ *network.IncomingPacketInfo, payload []byte) (any, error) {
rsp := &oidb.D79RspBody{}
rsp := oidb.D79RspBody{}
err := unpackOIDBPackage(payload, &rsp)
if err != nil {
return nil, err
@ -815,8 +808,8 @@ func decodeAppInfoResponse(_ *QQClient, _ *incomingPacketInfo, payload []byte) (
if err := proto.Unmarshal(payload, &pkg); err != nil {
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
}
if pkg.GetRetCode() != 0 {
return nil, errors.New(pkg.GetErrMsg())
if pkg.RetCode.Unwrap() != 0 {
return nil, errors.New(pkg.ErrMsg.Unwrap())
}
if err := proto.Unmarshal(pkg.BusiBuff, &rsp); err != nil {
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")

View File

@ -32,7 +32,7 @@ func (c *QQClient) buildFaceroamRequestPacket() (uint16, []byte) {
Comm: &faceroam.PlatInfo{
Implat: proto.Int64(109),
Osver: proto.String(string(c.deviceInfo.Version.Release)),
Mqqver: &c.version.SortVersionName,
Mqqver: proto.Some(c.version.SortVersionName),
},
Uin: proto.Uint64(uint64(c.Uin)),
SubCmd: proto.Uint32(1),
@ -53,7 +53,7 @@ func decodeFaceroamResponse(c *QQClient, _ *network.IncomingPacketInfo, payload
for i := len(rsp.RspUserInfo.Filename) - 1; i >= 0; i-- {
res[len(rsp.RspUserInfo.Filename)-1-i] = &CustomFace{
ResId: rsp.RspUserInfo.Filename[i],
Url: fmt.Sprintf("https://p.qpic.cn/%s/%d/%s/0", rsp.RspUserInfo.GetBid(), c.Uin, rsp.RspUserInfo.Filename[i]),
Url: fmt.Sprintf("https://p.qpic.cn/%s/%d/%s/0", rsp.RspUserInfo.Bid.Unwrap(), c.Uin, rsp.RspUserInfo.Filename[i]),
}
}
return res, nil

View File

@ -176,12 +176,12 @@ func qualityTest(addr string) (int64, error) {
}
func (c *QQClient) parsePrivateMessage(msg *msg.Message) *message.PrivateMessage {
friend := c.FindFriend(msg.Head.GetFromUin())
friend := c.FindFriend(msg.Head.FromUin.Unwrap())
var sender *message.Sender
if friend == nil {
sender = &message.Sender{
Uin: msg.Head.GetFromUin(),
Nickname: msg.Head.GetFromNick(),
Uin: msg.Head.FromUin.Unwrap(),
Nickname: msg.Head.FromNick.Unwrap(),
}
} else {
sender = &message.Sender{
@ -191,18 +191,18 @@ func (c *QQClient) parsePrivateMessage(msg *msg.Message) *message.PrivateMessage
}
}
ret := &message.PrivateMessage{
Id: msg.Head.GetMsgSeq(),
Target: msg.Head.GetToUin(),
Time: msg.Head.GetMsgTime(),
Id: msg.Head.MsgSeq.Unwrap(),
Target: msg.Head.ToUin.Unwrap(),
Time: msg.Head.MsgTime.Unwrap(),
Sender: sender,
Self: c.Uin,
Elements: func() []message.IMessageElement {
if msg.Body.RichText.Ptt != nil {
return []message.IMessageElement{
&message.VoiceElement{
Name: msg.Body.RichText.Ptt.GetFileName(),
Name: msg.Body.RichText.Ptt.FileName.Unwrap(),
Md5: msg.Body.RichText.Ptt.FileMd5,
Size: msg.Body.RichText.Ptt.GetFileSize(),
Size: msg.Body.RichText.Ptt.FileSize.Unwrap(),
Url: string(msg.Body.RichText.Ptt.DownPara),
},
}
@ -211,7 +211,7 @@ func (c *QQClient) parsePrivateMessage(msg *msg.Message) *message.PrivateMessage
}(),
}
if msg.Body.RichText.Attr != nil {
ret.InternalId = msg.Body.RichText.Attr.GetRandom()
ret.InternalId = msg.Body.RichText.Attr.Random.Unwrap()
}
return ret
}
@ -219,23 +219,23 @@ func (c *QQClient) parsePrivateMessage(msg *msg.Message) *message.PrivateMessage
func (c *QQClient) parseTempMessage(msg *msg.Message) *message.TempMessage {
var groupCode int64
var groupName string
group := c.FindGroupByUin(msg.Head.C2CTmpMsgHead.GetGroupUin())
group := c.FindGroupByUin(msg.Head.C2CTmpMsgHead.GroupUin.Unwrap())
sender := &message.Sender{
Uin: msg.Head.GetFromUin(),
Uin: msg.Head.FromUin.Unwrap(),
Nickname: "Unknown",
IsFriend: false,
}
if group != nil {
groupCode = group.Code
groupName = group.Name
mem := group.FindMember(msg.Head.GetFromUin())
mem := group.FindMember(msg.Head.FromUin.Unwrap())
if mem != nil {
sender.Nickname = mem.Nickname
sender.CardName = mem.CardName
}
}
return &message.TempMessage{
Id: msg.Head.GetMsgSeq(),
Id: msg.Head.MsgSeq.Unwrap(),
GroupCode: groupCode,
GroupName: groupName,
Self: c.Uin,
@ -278,7 +278,7 @@ func (b *messageBuilder) build() *msg.Message {
b.lock.Lock()
defer b.lock.Unlock()
sort.Slice(b.slices, func(i, j int) bool {
return b.slices[i].Content.GetPkgIndex() < b.slices[j].Content.GetPkgIndex()
return b.slices[i].Content.PkgIndex.Unwrap() < b.slices[j].Content.PkgIndex.Unwrap()
})
base := b.slices[0]
for _, m := range b.slices[1:] {
@ -307,8 +307,8 @@ func genForwardTemplate(resID, preview, summary string, ts int64, items []*msg.P
func genLongTemplate(resID, brief string, ts int64) *message.ServiceElement {
limited := func() string {
if len(brief) > 30 {
return brief[:30] + "…"
if ss := []rune(brief); len(ss) > 30 {
return string(ss[:30]) + "…"
}
return brief
}()
@ -333,8 +333,20 @@ func (c *QQClient) getWebDeviceInfo() (i string) {
return
}
var oidbSSOPool = sync.Pool{}
func getOidbSSOPackage() *oidb.OIDBSSOPkg {
g := oidbSSOPool.Get()
if g == nil {
return new(oidb.OIDBSSOPkg)
}
return g.(*oidb.OIDBSSOPkg)
}
func (c *QQClient) packOIDBPackage(cmd, serviceType int32, body []byte) []byte {
pkg := &oidb.OIDBSSOPkg{
pkg := getOidbSSOPackage()
defer oidbSSOPool.Put(pkg)
*pkg = oidb.OIDBSSOPkg{
Command: cmd,
ServiceType: serviceType,
Bodybuffer: body,
@ -354,7 +366,8 @@ func (c *QQClient) packOIDBPackageProto(cmd, serviceType int32, msg proto.Messag
}
func unpackOIDBPackage(payload []byte, rsp proto.Message) error {
pkg := new(oidb.OIDBSSOPkg)
pkg := getOidbSSOPackage()
defer oidbSSOPool.Put(pkg)
if err := proto.Unmarshal(payload, pkg); err != nil {
return errors.Wrap(err, "failed to unmarshal protobuf message")
}

View File

@ -84,8 +84,8 @@ func (c *QQClient) GetGroupFileSystem(groupCode int64) (fs *GroupFileSystem, err
return nil, e
}
fs = &GroupFileSystem{
FileCount: rsp.(*oidb.D6D8RspBody).FileCountRsp.GetAllFileCount(),
LimitCount: rsp.(*oidb.D6D8RspBody).FileCountRsp.GetLimitCount(),
FileCount: rsp.(*oidb.D6D8RspBody).FileCountRsp.AllFileCount.Unwrap(),
LimitCount: rsp.(*oidb.D6D8RspBody).FileCountRsp.LimitCount.Unwrap(),
GroupCode: groupCode,
client: c,
}
@ -93,8 +93,8 @@ func (c *QQClient) GetGroupFileSystem(groupCode int64) (fs *GroupFileSystem, err
if err != nil {
return nil, err
}
fs.TotalSpace = rsp.(*oidb.D6D8RspBody).GroupSpaceRsp.GetTotalSpace()
fs.UsedSpace = rsp.(*oidb.D6D8RspBody).GroupSpaceRsp.GetUsedSpace()
fs.TotalSpace = rsp.(*oidb.D6D8RspBody).GroupSpaceRsp.TotalSpace.Unwrap()
fs.UsedSpace = rsp.(*oidb.D6D8RspBody).GroupSpaceRsp.UsedSpace.Unwrap()
return fs, nil
}
@ -129,34 +129,34 @@ func (fs *GroupFileSystem) GetFilesByFolder(folderID string) ([]*GroupFile, []*G
if item.FileInfo != nil {
files = append(files, &GroupFile{
GroupCode: fs.GroupCode,
FileId: item.FileInfo.GetFileId(),
FileName: item.FileInfo.GetFileName(),
BusId: int32(item.FileInfo.GetBusId()),
FileSize: int64(item.FileInfo.GetFileSize()),
UploadTime: int64(item.FileInfo.GetUploadTime()),
DeadTime: int64(item.FileInfo.GetDeadTime()),
ModifyTime: int64(item.FileInfo.GetModifyTime()),
DownloadTimes: int64(item.FileInfo.GetDownloadTimes()),
Uploader: int64(item.FileInfo.GetUploaderUin()),
UploaderName: item.FileInfo.GetUploaderName(),
FileId: item.FileInfo.FileId.Unwrap(),
FileName: item.FileInfo.FileName.Unwrap(),
BusId: int32(item.FileInfo.BusId.Unwrap()),
FileSize: int64(item.FileInfo.FileSize.Unwrap()),
UploadTime: int64(item.FileInfo.UploadTime.Unwrap()),
DeadTime: int64(item.FileInfo.DeadTime.Unwrap()),
ModifyTime: int64(item.FileInfo.ModifyTime.Unwrap()),
DownloadTimes: int64(item.FileInfo.DownloadTimes.Unwrap()),
Uploader: int64(item.FileInfo.UploaderUin.Unwrap()),
UploaderName: item.FileInfo.UploaderName.Unwrap(),
})
}
if item.FolderInfo != nil {
folders = append(folders, &GroupFolder{
GroupCode: fs.GroupCode,
FolderId: item.FolderInfo.GetFolderId(),
FolderName: item.FolderInfo.GetFolderName(),
CreateTime: int64(item.FolderInfo.GetCreateTime()),
Creator: int64(item.FolderInfo.GetCreateUin()),
CreatorName: item.FolderInfo.GetCreatorName(),
TotalFileCount: item.FolderInfo.GetTotalFileCount(),
FolderId: item.FolderInfo.FolderId.Unwrap(),
FolderName: item.FolderInfo.FolderName.Unwrap(),
CreateTime: int64(item.FolderInfo.CreateTime.Unwrap()),
Creator: int64(item.FolderInfo.CreateUin.Unwrap()),
CreatorName: item.FolderInfo.CreatorName.Unwrap(),
TotalFileCount: item.FolderInfo.TotalFileCount.Unwrap(),
})
}
}
if rsp.FileListInfoRsp.GetIsEnd() {
if rsp.FileListInfoRsp.IsEnd.Unwrap() {
break
}
startIndex = rsp.FileListInfoRsp.GetNextIndex()
startIndex = rsp.FileListInfoRsp.NextIndex.Unwrap()
}
return files, folders, nil
}
@ -182,8 +182,8 @@ func (fs *GroupFileSystem) UploadFile(p, name, folderId string) error {
return errors.Wrap(err, "query upload failed")
}
rsp := i.(*oidb.UploadFileRspBody)
if rsp.GetBoolFileExist() {
_, pkt := fs.client.buildGroupFileFeedsRequest(fs.GroupCode, rsp.GetFileId(), rsp.GetBusId(), rand.Int31())
if rsp.BoolFileExist.Unwrap() {
_, pkt := fs.client.buildGroupFileFeedsRequest(fs.GroupCode, rsp.FileId.Unwrap(), rsp.BusId.Unwrap(), rand.Int31())
return fs.client.sendPacket(pkt)
}
if len(rsp.UploadIpLanV4) == 0 {
@ -195,15 +195,15 @@ func (fs *GroupFileSystem) UploadFile(p, name, folderId string) error {
Entry: &exciting.GroupFileUploadEntry{
BusiBuff: &exciting.ExcitingBusiInfo{
BusId: rsp.BusId,
SenderUin: &fs.client.Uin,
ReceiverUin: &fs.GroupCode,
GroupCode: &fs.GroupCode,
SenderUin: proto.Some(fs.client.Uin),
ReceiverUin: proto.Some(fs.GroupCode),
GroupCode: proto.Some(fs.GroupCode),
},
FileEntry: &exciting.ExcitingFileEntry{
FileSize: &size,
FileSize: proto.Some(size),
Md5: md5Hash,
Sha1: sha1Hash,
FileId: []byte(rsp.GetFileId()),
FileId: []byte(rsp.FileId.Unwrap()),
UploadKey: rsp.CheckKey,
},
ClientInfo: &exciting.ExcitingClientInfo{
@ -213,12 +213,12 @@ func (fs *GroupFileSystem) UploadFile(p, name, folderId string) error {
ClientVer: proto.String("9e9c09dc"),
Unknown: proto.Int32(4),
},
FileNameInfo: &exciting.ExcitingFileNameInfo{FileName: &name},
FileNameInfo: &exciting.ExcitingFileNameInfo{FileName: proto.Some(name)},
Host: &exciting.ExcitingHostConfig{Hosts: []*exciting.ExcitingHostInfo{
{
Url: &exciting.ExcitingUrlInfo{
Unknown: proto.Int32(1),
Host: &rsp.UploadIpLanV4[0],
Host: proto.Some(rsp.UploadIpLanV4[0]),
},
Port: rsp.UploadPort,
},
@ -236,7 +236,7 @@ func (fs *GroupFileSystem) UploadFile(p, name, folderId string) error {
if _, err = fs.client.highwaySession.UploadExciting(input); err != nil {
return errors.Wrap(err, "upload failed")
}
_, pkt := client.buildGroupFileFeedsRequest(fs.GroupCode, rsp.GetFileId(), rsp.GetBusId(), rand.Int31())
_, pkt := client.buildGroupFileFeedsRequest(fs.GroupCode, rsp.FileId.Unwrap(), rsp.BusId.Unwrap(), rand.Int31())
return client.sendPacket(pkt)
}
@ -277,14 +277,14 @@ func (fs *GroupFileSystem) DeleteFile(parentFolderID, fileId string, busId int32
func (c *QQClient) buildGroupFileUploadReqPacket(parentFolderID, fileName string, groupCode, fileSize int64, md5, sha1 []byte) (uint16, []byte) {
body := &oidb.D6D6ReqBody{UploadFileReq: &oidb.UploadFileReqBody{
GroupCode: &groupCode,
GroupCode: proto.Some(groupCode),
AppId: proto.Int32(3),
BusId: proto.Int32(102),
Entrance: proto.Int32(5),
ParentFolderId: &parentFolderID,
FileName: &fileName,
ParentFolderId: proto.Some(parentFolderID),
FileName: proto.Some(fileName),
LocalPath: proto.String("/storage/emulated/0/Pictures/files/s/" + fileName),
Int64FileSize: &fileSize,
Int64FileSize: proto.Some(fileSize),
Sha: sha1,
Md5: md5,
SupportMultiUpload: proto.Bool(true),
@ -298,7 +298,7 @@ func (c *QQClient) buildGroupFileFeedsRequest(groupCode int64, fileID string, bu
GroupCode: proto.Uint64(uint64(groupCode)),
AppId: proto.Uint32(3),
FeedsInfoList: []*oidb.GroupFileFeedsInfo{{
FileId: &fileID,
FileId: proto.Some(fileID),
FeedFlag: proto.Uint32(1),
BusId: proto.Uint32(uint32(busId)),
MsgRandom: proto.Uint32(uint32(msgRand)),
@ -312,14 +312,14 @@ func (c *QQClient) buildGroupFileListRequestPacket(groupCode int64, folderID str
body := &oidb.D6D8ReqBody{FileListInfoReq: &oidb.GetFileListReqBody{
GroupCode: proto.Uint64(uint64(groupCode)),
AppId: proto.Uint32(3),
FolderId: &folderID,
FolderId: proto.Some(folderID),
FileCount: proto.Uint32(20),
AllFileCount: proto.Uint32(0),
ReqFrom: proto.Uint32(3),
SortBy: proto.Uint32(1),
FilterCode: proto.Uint32(0),
Uin: proto.Uint64(0),
StartIndex: &startIndex,
StartIndex: proto.Some(startIndex),
Context: EmptyBytes,
}}
payload := c.packOIDBPackageProto(1752, 1, body)
@ -351,8 +351,8 @@ func (c *QQClient) buildGroupFileCreateFolderPacket(groupCode int64, parentFolde
payload := c.packOIDBPackageProto(1751, 0, &oidb.D6D7ReqBody{CreateFolderReq: &oidb.CreateFolderReqBody{
GroupCode: proto.Uint64(uint64(groupCode)),
AppId: proto.Uint32(3),
ParentFolderId: &parentFolder,
FolderName: &name,
ParentFolderId: proto.Some(parentFolder),
FolderName: proto.Some(name),
}})
return c.uniPacket("OidbSvc.0x6d7_0", payload)
}
@ -380,10 +380,10 @@ func (c *QQClient) buildGroupFileDeleteFolderPacket(groupCode int64, folderId st
func (c *QQClient) buildGroupFileDownloadReqPacket(groupCode int64, fileId string, busId int32) (uint16, []byte) {
body := &oidb.D6D6ReqBody{
DownloadFileReq: &oidb.DownloadFileReqBody{
GroupCode: &groupCode,
GroupCode: proto.Some(groupCode),
AppId: proto.Int32(3),
BusId: &busId,
FileId: &fileId,
BusId: proto.Some(busId),
FileId: proto.Some(fileId),
},
}
payload := c.packOIDBPackageProto(1750, 2, body)
@ -392,11 +392,11 @@ func (c *QQClient) buildGroupFileDownloadReqPacket(groupCode int64, fileId strin
func (c *QQClient) buildGroupFileDeleteReqPacket(groupCode int64, parentFolderId, fileId string, busId int32) (uint16, []byte) {
body := &oidb.D6D6ReqBody{DeleteFileReq: &oidb.DeleteFileReqBody{
GroupCode: &groupCode,
GroupCode: proto.Some(groupCode),
AppId: proto.Int32(3),
BusId: &busId,
ParentFolderId: &parentFolderId,
FileId: &fileId,
BusId: proto.Some(busId),
ParentFolderId: proto.Some(parentFolderId),
FileId: proto.Some(fileId),
}}
payload := c.packOIDBPackageProto(1750, 3, body)
return c.uniPacket("OidbSvc.0x6d6_3", payload)
@ -419,9 +419,9 @@ func decodeOIDB6d62Response(_ *QQClient, _ *network.IncomingPacketInfo, payload
return nil, err
}
if rsp.DownloadFileRsp.DownloadUrl == nil {
return nil, errors.New(rsp.DownloadFileRsp.GetClientWording())
return nil, errors.New(rsp.DownloadFileRsp.ClientWording.Unwrap())
}
ip := rsp.DownloadFileRsp.GetDownloadIp()
ip := rsp.DownloadFileRsp.DownloadIp.Unwrap()
url := hex.EncodeToString(rsp.DownloadFileRsp.DownloadUrl)
return fmt.Sprintf("http://%s/ftn_handler/%s/", ip, url), nil
}
@ -432,7 +432,7 @@ func decodeOIDB6d63Response(_ *QQClient, _ *network.IncomingPacketInfo, payload
if err != nil {
return nil, err
}
return rsp.DeleteFileRsp.GetClientWording(), nil
return rsp.DeleteFileRsp.ClientWording.Unwrap(), nil
}
func decodeOIDB6d60Response(_ *QQClient, _ *network.IncomingPacketInfo, payload []byte) (any, error) {
@ -450,13 +450,13 @@ func decodeOIDB6d7Response(_ *QQClient, _ *network.IncomingPacketInfo, payload [
if err != nil {
return nil, err
}
if retCode := rsp.CreateFolderRsp.GetRetCode(); retCode != 0 {
if retCode := rsp.CreateFolderRsp.RetCode.Unwrap(); retCode != 0 {
return nil, errors.Errorf("create folder error: %v", retCode)
}
if retCode := rsp.RenameFolderRsp.GetRetCode(); retCode != 0 {
if retCode := rsp.RenameFolderRsp.RetCode.Unwrap(); retCode != 0 {
return nil, errors.Errorf("rename folder error: %v", retCode)
}
if retCode := rsp.DeleteFolderRsp.GetRetCode(); retCode != 0 {
if retCode := rsp.DeleteFolderRsp.RetCode.Unwrap(); retCode != 0 {
return nil, errors.Errorf("delete folder error: %v", retCode)
}
return nil, nil

View File

@ -27,7 +27,6 @@ type (
Uin int64
Code int64
Name string
Memo string
OwnerUin int64
GroupCreateTime uint32
GroupLevel uint32
@ -43,18 +42,17 @@ type (
}
GroupMemberInfo struct {
Group *GroupInfo
Uin int64
Gender byte
Nickname string
CardName string
Level uint16
JoinTime int64
LastSpeakTime int64
SpecialTitle string
SpecialTitleExpireTime int64
ShutUpTimestamp int64
Permission MemberPermission
Group *GroupInfo
Uin int64
Nickname string
CardName string
JoinTime int64
LastSpeakTime int64
SpecialTitle string
ShutUpTimestamp int64
Permission MemberPermission
Level uint16
Gender byte
}
// GroupSearchInfo 通过搜索得到的群信息
@ -142,7 +140,7 @@ func (c *QQClient) buildGroupSearchPacket(keyword string) (uint16, []byte) {
search, _ := proto.Marshal(&profilecard.AccountSearch{
Start: proto.Int32(0),
End: proto.Uint32(4),
Keyword: &keyword,
Keyword: proto.Some(keyword),
Highlight: []string{keyword},
UserLocation: &profilecard.Location{
Latitude: proto.Float64(0),
@ -210,9 +208,9 @@ func decodeGroupSearchResponse(_ *QQClient, _ *network.IncomingPacketInfo, paylo
var ret []GroupSearchInfo
for _, g := range searchRsp.List {
ret = append(ret, GroupSearchInfo{
Code: int64(g.GetCode()),
Name: g.GetName(),
Memo: g.GetBrief(),
Code: int64(g.Code.Unwrap()),
Name: g.Name.Unwrap(),
Memo: g.Brief.Unwrap(),
})
}
return ret, nil
@ -235,17 +233,16 @@ func decodeGroupInfoResponse(c *QQClient, _ *network.IncomingPacketInfo, payload
return nil, errors.New("group info not found")
}
return &GroupInfo{
Uin: int64(*info.GroupInfo.GroupUin),
Code: int64(*info.GroupCode),
Uin: int64(info.GroupInfo.GroupUin.Unwrap()),
Code: int64(info.GroupCode.Unwrap()),
Name: string(info.GroupInfo.GroupName),
Memo: string(info.GroupInfo.GroupMemo),
GroupCreateTime: *info.GroupInfo.GroupCreateTime,
GroupLevel: *info.GroupInfo.GroupLevel,
OwnerUin: int64(*info.GroupInfo.GroupOwner),
MemberCount: uint16(*info.GroupInfo.GroupMemberNum),
MaxMemberCount: uint16(*info.GroupInfo.GroupMemberMaxNum),
GroupCreateTime: info.GroupInfo.GroupCreateTime.Unwrap(),
GroupLevel: info.GroupInfo.GroupLevel.Unwrap(),
OwnerUin: int64(info.GroupInfo.GroupOwner.Unwrap()),
MemberCount: uint16(info.GroupInfo.GroupMemberNum.Unwrap()),
MaxMemberCount: uint16(info.GroupInfo.GroupMemberMaxNum.Unwrap()),
Members: []*GroupMemberInfo{},
LastMsgSeq: int64(info.GroupInfo.GetGroupCurMsgSeq()),
LastMsgSeq: int64(info.GroupInfo.GroupCurMsgSeq.Unwrap()),
client: c,
}, nil
}
@ -271,13 +268,6 @@ func (g *GroupInfo) UpdateName(newName string) {
}
}
func (g *GroupInfo) UpdateMemo(newMemo string) {
if g.AdministratorOrOwner() {
g.client.updateGroupMemo(g.Code, newMemo)
g.Memo = newMemo
}
}
func (g *GroupInfo) UpdateGroupHeadPortrait(img []byte) {
if g.AdministratorOrOwner() {
_ = g.client.uploadGroupHeadPortrait(g.Uin, img)

View File

@ -34,25 +34,23 @@ func init() {
}
// SendGroupMessage 发送群消息
func (c *QQClient) SendGroupMessage(groupCode int64, m *message.SendingMessage, f ...bool) *message.GroupMessage {
useFram := false
if len(f) > 0 {
useFram = f[0]
}
func (c *QQClient) SendGroupMessage(groupCode int64, m *message.SendingMessage) *message.GroupMessage {
useHighwayMessage := false
imgCount := 0
for _, e := range m.Elements {
switch e.Type() {
case message.Image:
imgCount++
case message.Reply:
useFram = false
useHighwayMessage = true
}
}
msgLen := message.EstimateLength(m.Elements)
if msgLen > message.MaxMessageSize || imgCount > 50 {
return nil
}
if !useFram && (msgLen > 100 || imgCount > 2) {
useHighwayMessage = useHighwayMessage || msgLen > 100 || imgCount > 2
if useHighwayMessage && c.UseHighwayMessage {
lmsg, err := c.uploadGroupLongMessage(groupCode,
message.NewForwardMessage().AddNode(&message.ForwardNode{
SenderId: c.Uin,
@ -118,7 +116,7 @@ func (c *QQClient) sendGroupMessage(groupCode int64, forward bool, m *message.Se
serviceFlag = false
}
}
if !forward && serviceFlag && (imgCount > 1 || message.EstimateLength(m.Elements) > 100) {
if !forward && serviceFlag && c.UseFragmentMessage && (imgCount > 1 || message.EstimateLength(m.Elements) > 100) {
div := int32(rand.Uint32())
fragmented := m.ToFragmented()
for i, elems := range fragmented {
@ -221,8 +219,8 @@ func (c *QQClient) buildGroupSendingPacket(groupCode int64, r, pkgNum, pkgIndex,
}
}
req := &msg.SendMessageRequest{
RoutingHead: &msg.RoutingHead{Grp: &msg.Grp{GroupCode: &groupCode}},
ContentHead: &msg.ContentHead{PkgNum: &pkgNum, PkgIndex: &pkgIndex, DivSeq: &pkgDiv},
RoutingHead: &msg.RoutingHead{Grp: &msg.Grp{GroupCode: proto.Some(groupCode)}},
ContentHead: &msg.ContentHead{PkgNum: proto.Some(pkgNum), PkgIndex: proto.Some(pkgIndex), DivSeq: proto.Some(pkgDiv)},
MsgBody: &msg.MessageBody{
RichText: &msg.RichText{
Elems: message.ToProtoElems(m, true),
@ -235,7 +233,7 @@ func (c *QQClient) buildGroupSendingPacket(groupCode int64, r, pkgNum, pkgIndex,
},
},
MsgSeq: proto.Int32(c.nextGroupSeq()),
MsgRand: &r,
MsgRand: proto.Some(r),
SyncCookie: EmptyBytes,
MsgVia: proto.Int32(1),
MsgCtrl: func() *msg.MsgCtrl {
@ -278,20 +276,20 @@ func decodeGroupMessagePacket(c *QQClient, _ *network.IncomingPacketInfo, payloa
if err != nil {
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
}
if pkt.Message.Head.GetFromUin() == c.Uin {
if pkt.Message.Head.FromUin.Unwrap() == c.Uin {
c.dispatchGroupMessageReceiptEvent(&groupMessageReceiptEvent{
Rand: pkt.Message.Body.RichText.Attr.GetRandom(),
Seq: pkt.Message.Head.GetMsgSeq(),
Rand: pkt.Message.Body.RichText.Attr.Random.Unwrap(),
Seq: pkt.Message.Head.MsgSeq.Unwrap(),
Msg: c.parseGroupMessage(pkt.Message),
})
}
if pkt.Message.Content != nil && pkt.Message.Content.GetPkgNum() > 1 {
seq := pkt.Message.Content.GetDivSeq()
builder := c.messageBuilder(pkt.Message.Content.GetDivSeq())
if pkt.Message.Content != nil && pkt.Message.Content.PkgNum.Unwrap() > 1 {
seq := pkt.Message.Content.DivSeq.Unwrap()
builder := c.messageBuilder(pkt.Message.Content.DivSeq.Unwrap())
builder.append(pkt.Message)
if builder.len() >= pkt.Message.Content.GetPkgNum() {
if builder.len() >= pkt.Message.Content.PkgNum.Unwrap() {
c.msgBuilders.Delete(seq)
if pkt.Message.Head.GetFromUin() == c.Uin {
if pkt.Message.Head.FromUin.Unwrap() == c.Uin {
c.SelfGroupMessageEvent.dispatch(c, c.parseGroupMessage(builder.build()))
} else {
c.GroupMessageEvent.dispatch(c, c.parseGroupMessage(builder.build()))
@ -299,7 +297,7 @@ func decodeGroupMessagePacket(c *QQClient, _ *network.IncomingPacketInfo, payloa
}
return nil, nil
}
if pkt.Message.Head.GetFromUin() == c.Uin {
if pkt.Message.Head.FromUin.Unwrap() == c.Uin {
c.SelfGroupMessageEvent.dispatch(c, c.parseGroupMessage(pkt.Message))
} else {
c.GroupMessageEvent.dispatch(c, c.parseGroupMessage(pkt.Message))
@ -312,12 +310,12 @@ func decodeMsgSendResponse(c *QQClient, _ *network.IncomingPacketInfo, payload [
if err := proto.Unmarshal(payload, &rsp); err != nil {
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
}
switch rsp.GetResult() {
switch rsp.Result.Unwrap() {
case 0: // OK.
case 55:
c.error("sendPacket msg error: %v Bot has blocked target's content", rsp.GetResult())
c.error("sendPacket msg error: %v Bot has blocked ta.'s content", rsp.Result.Unwrap())
default:
c.error("sendPacket msg error: %v %v", rsp.GetResult(), rsp.GetErrMsg())
c.error("sendPacket msg error: %v %v", rsp.Result.Unwrap(), rsp.ErrMsg.Unwrap())
}
return nil, nil
}
@ -327,33 +325,33 @@ func decodeGetGroupMsgResponse(c *QQClient, info *network.IncomingPacketInfo, pa
if err := proto.Unmarshal(payload, &rsp); err != nil {
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
}
if rsp.GetResult() != 0 {
c.error("get msg error: %v %v", rsp.GetResult(), rsp.GetErrmsg())
return nil, errors.Errorf("get msg error: %v msg: %v", rsp.GetResult(), rsp.GetErrmsg())
if rsp.Result.Unwrap() != 0 {
c.error("get msg error: %v %v", rsp.Result.Unwrap(), rsp.Errmsg.Unwrap())
return nil, errors.Errorf("get msg error: %v msg: %v", rsp.Result.Unwrap(), rsp.Errmsg.Unwrap())
}
var ret []*message.GroupMessage
for _, m := range rsp.Msg {
if m.Head.FromUin == nil {
if m.Head.FromUin.IsNone() {
continue
}
if m.Content != nil && m.Content.GetPkgNum() > 1 && !info.Params.Bool("raw") {
if m.Content.GetPkgIndex() == 0 {
if m.Content != nil && m.Content.PkgNum.Unwrap() > 1 && !info.Params.Bool("raw") {
if m.Content.PkgIndex.Unwrap() == 0 {
c.debug("build fragmented message from history")
i := m.Head.GetMsgSeq() - m.Content.GetPkgNum()
i := m.Head.MsgSeq.Unwrap() - m.Content.PkgNum.Unwrap()
builder := &messageBuilder{}
for {
end := int32(math.Min(float64(i+19), float64(m.Head.GetMsgSeq()+m.Content.GetPkgNum())))
seq, pkt := c.buildGetGroupMsgRequest(m.Head.GroupInfo.GetGroupCode(), int64(i), int64(end))
end := int32(math.Min(float64(i+19), float64(m.Head.MsgSeq.Unwrap()+m.Content.PkgNum.Unwrap())))
seq, pkt := c.buildGetGroupMsgRequest(m.Head.GroupInfo.GroupCode.Unwrap(), int64(i), int64(end))
data, err := c.sendAndWait(seq, pkt, network.RequestParams{"raw": true})
if err != nil {
return nil, errors.Wrap(err, "build fragmented message error")
}
for _, fm := range data.([]*message.GroupMessage) {
if fm.OriginalObject.Content != nil && fm.OriginalObject.Content.GetDivSeq() == m.Content.GetDivSeq() {
if fm.OriginalObject.Content != nil && fm.OriginalObject.Content.DivSeq.Unwrap() == m.Content.DivSeq.Unwrap() {
builder.append(fm.OriginalObject)
}
}
if end >= m.Head.GetMsgSeq()+m.Content.GetPkgNum() {
if end >= m.Head.MsgSeq.Unwrap()+m.Content.PkgNum.Unwrap() {
break
}
i = end
@ -378,19 +376,19 @@ func decodeAtAllRemainResponse(_ *QQClient, _ *network.IncomingPacketInfo, paylo
return nil, err
}
return &AtAllRemainInfo{
CanAtAll: rsp.GetCanAtAll(),
RemainAtAllCountForGroup: rsp.GetRemainAtAllCountForGroup(),
RemainAtAllCountForUin: rsp.GetRemainAtAllCountForUin(),
CanAtAll: rsp.CanAtAll.Unwrap(),
RemainAtAllCountForGroup: rsp.RemainAtAllCountForGroup.Unwrap(),
RemainAtAllCountForUin: rsp.RemainAtAllCountForUin.Unwrap(),
}, nil
}
func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
group := c.FindGroup(m.Head.GroupInfo.GetGroupCode())
group := c.FindGroup(m.Head.GroupInfo.GroupCode.Unwrap())
if group == nil {
c.debug("sync group %v.", m.Head.GroupInfo.GetGroupCode())
info, err := c.GetGroupInfo(m.Head.GroupInfo.GetGroupCode())
c.debug("sync group %v.", m.Head.GroupInfo.GroupCode.Unwrap())
info, err := c.GetGroupInfo(m.Head.GroupInfo.GroupCode.Unwrap())
if err != nil {
c.error("error to sync group %v : %+v", m.Head.GroupInfo.GetGroupCode(), err)
c.error("error to sync group %v : %+v", m.Head.GroupInfo.GroupCode.Unwrap(), err)
return nil
}
group = info
@ -422,13 +420,13 @@ func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
IsFriend: false,
}
} else {
mem := group.FindMember(m.Head.GetFromUin())
mem := group.FindMember(m.Head.FromUin.Unwrap())
if mem == nil {
group.Update(func(_ *GroupInfo) {
if mem = group.FindMemberWithoutLock(m.Head.GetFromUin()); mem != nil {
if mem = group.FindMemberWithoutLock(m.Head.FromUin.Unwrap()); mem != nil {
return
}
info, _ := c.GetMemberInfo(group.Code, m.Head.GetFromUin())
info, _ := c.GetMemberInfo(group.Code, m.Head.FromUin.Unwrap())
if info == nil {
return
}
@ -453,11 +451,11 @@ func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
}
var g *message.GroupMessage
g = &message.GroupMessage{
Id: m.Head.GetMsgSeq(),
Id: m.Head.MsgSeq.Unwrap(),
GroupCode: group.Code,
GroupName: string(m.Head.GroupInfo.GroupName),
Sender: sender,
Time: m.Head.GetMsgTime(),
Time: m.Head.MsgTime.Unwrap(),
Elements: message.ParseMessageElems(m.Body.RichText.Elems),
OriginalObject: m,
}
@ -465,14 +463,14 @@ func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
// pre parse
for _, elem := range m.Body.RichText.Elems {
// is rich long msg
if elem.GeneralFlags != nil && elem.GeneralFlags.GetLongTextResid() != "" && len(g.Elements) == 1 {
if f := c.GetForwardMessage(elem.GeneralFlags.GetLongTextResid()); f != nil && len(f.Nodes) == 1 {
if elem.GeneralFlags != nil && elem.GeneralFlags.LongTextResid.Unwrap() != "" && len(g.Elements) == 1 {
if f := c.GetForwardMessage(elem.GeneralFlags.LongTextResid.Unwrap()); f != nil && len(f.Nodes) == 1 {
g = &message.GroupMessage{
Id: m.Head.GetMsgSeq(),
Id: m.Head.MsgSeq.Unwrap(),
GroupCode: group.Code,
GroupName: string(m.Head.GroupInfo.GroupName),
Sender: sender,
Time: m.Head.GetMsgTime(),
Time: m.Head.MsgTime.Unwrap(),
Elements: f.Nodes[0].Message,
OriginalObject: m,
}
@ -483,8 +481,8 @@ func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
}
}
if !sender.IsAnonymous() {
mem := group.FindMember(m.Head.GetFromUin())
groupCard := m.Head.GroupInfo.GetGroupCard()
mem := group.FindMember(m.Head.FromUin.Unwrap())
groupCard := m.Head.GroupInfo.GroupCard.Unwrap()
if extInfo != nil && len(extInfo.GroupCard) > 0 && extInfo.GroupCard[0] == 0x0A {
buf := oidb.D8FCCommCardNameBuf{}
if err := proto.Unmarshal(extInfo.GroupCard, &buf); err == nil && len(buf.RichCardName) > 0 {
@ -514,15 +512,15 @@ func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
if m.Body.RichText.Ptt != nil {
g.Elements = []message.IMessageElement{
&message.VoiceElement{
Name: m.Body.RichText.Ptt.GetFileName(),
Name: m.Body.RichText.Ptt.FileName.Unwrap(),
Md5: m.Body.RichText.Ptt.FileMd5,
Size: m.Body.RichText.Ptt.GetFileSize(),
Size: m.Body.RichText.Ptt.FileSize.Unwrap(),
Url: "http://grouptalk.c2c.qq.com" + string(m.Body.RichText.Ptt.DownPara),
},
}
}
if m.Body.RichText.Attr != nil {
g.InternalId = m.Body.RichText.Attr.GetRandom()
g.InternalId = m.Body.RichText.Attr.Random.Unwrap()
}
return g
}
@ -534,8 +532,8 @@ func (c *QQClient) SetEssenceMessage(groupCode int64, msgID, msgInternalId int32
return errors.Wrap(err, "set essence msg network")
}
rsp := r.(*oidb.EACRspBody)
if rsp.GetErrorCode() != 0 {
return errors.New(rsp.GetWording())
if rsp.ErrorCode.Unwrap() != 0 {
return errors.New(rsp.Wording.Unwrap())
}
return nil
}
@ -547,8 +545,8 @@ func (c *QQClient) DeleteEssenceMessage(groupCode int64, msgID, msgInternalId in
return errors.Wrap(err, "set essence msg networ")
}
rsp := r.(*oidb.EACRspBody)
if rsp.GetErrorCode() != 0 {
return errors.New(rsp.GetWording())
if rsp.ErrorCode.Unwrap() != 0 {
return errors.New(rsp.Wording.Unwrap())
}
return nil
}

View File

@ -197,9 +197,9 @@ func (s *GuildService) GetUserProfile(tinyId uint64) (*GuildUserProfile, error)
// todo: 解析个性档案
return &GuildUserProfile{
TinyId: tinyId,
Nickname: body.Profile.GetNickname(),
AvatarUrl: body.Profile.GetAvatarUrl(),
JoinTime: body.Profile.GetJoinTime(),
Nickname: body.Profile.Nickname.Unwrap(),
AvatarUrl: body.Profile.AvatarUrl.Unwrap(),
JoinTime: body.Profile.JoinTime.Unwrap(),
}, nil
}
@ -237,31 +237,31 @@ func (s *GuildService) FetchGuildMemberListWithRole(guildId, channelId uint64, s
for _, memberWithRole := range body.MemberWithRoles {
for _, mem := range memberWithRole.Members {
ret = append(ret, &GuildMemberInfo{
TinyId: mem.GetTinyId(),
Title: mem.GetTitle(),
Nickname: mem.GetNickname(),
LastSpeakTime: mem.GetLastSpeakTime(),
Role: memberWithRole.GetRoleId(),
RoleName: memberWithRole.GetRoleName(),
TinyId: mem.TinyId.Unwrap(),
Title: mem.Title.Unwrap(),
Nickname: mem.Nickname.Unwrap(),
LastSpeakTime: mem.LastSpeakTime.Unwrap(),
Role: memberWithRole.RoleId.Unwrap(),
RoleName: memberWithRole.RoleName.Unwrap(),
})
}
}
for _, mem := range body.Members {
ret = append(ret, &GuildMemberInfo{
TinyId: mem.GetTinyId(),
Title: mem.GetTitle(),
Nickname: mem.GetNickname(),
LastSpeakTime: mem.GetLastSpeakTime(),
TinyId: mem.TinyId.Unwrap(),
Title: mem.Title.Unwrap(),
Nickname: mem.Nickname.Unwrap(),
LastSpeakTime: mem.LastSpeakTime.Unwrap(),
Role: 1,
RoleName: "普通成员",
})
}
return &FetchGuildMemberListWithRoleResult{
Members: ret,
NextIndex: body.GetNextIndex(),
NextRoleId: body.GetNextRoleIdIndex(),
NextQueryParam: body.GetNextQueryParam(),
Finished: body.NextIndex == nil,
NextIndex: body.NextIndex.Unwrap(),
NextRoleId: body.NextRoleIdIndex.Unwrap(),
NextQueryParam: body.NextQueryParam.Unwrap(),
Finished: body.NextIndex.IsNone(),
}, nil
}
@ -295,9 +295,9 @@ func (s *GuildService) FetchGuildMemberProfileInfo(guildId, tinyId uint64) (*Gui
// todo: 解析个性档案
return &GuildUserProfile{
TinyId: tinyId,
Nickname: body.Profile.GetNickname(),
AvatarUrl: body.Profile.GetAvatarUrl(),
JoinTime: body.Profile.GetJoinTime(),
Nickname: body.Profile.Nickname.Unwrap(),
AvatarUrl: body.Profile.AvatarUrl.Unwrap(),
JoinTime: body.Profile.JoinTime.Unwrap(),
Roles: roles,
}, nil
}
@ -316,14 +316,14 @@ func (s *GuildService) GetGuildRoles(guildId uint64) ([]*GuildRole, error) {
roles := make([]*GuildRole, 0, len(body.Roles))
for _, role := range body.Roles {
roles = append(roles, &GuildRole{
RoleId: role.GetRoleId(),
RoleName: role.GetName(),
ArgbColor: role.GetArgbColor(),
Independent: role.GetIndependent() == 1,
Num: role.GetNum(),
Owned: role.GetOwned() == 1,
Disabled: role.GetDisabled() == 1,
MaxNum: role.GetMaxNum(),
RoleId: role.RoleId.Unwrap(),
RoleName: role.Name.Unwrap(),
ArgbColor: role.ArgbColor.Unwrap(),
Independent: role.Independent.Unwrap() == 1,
Num: role.Num.Unwrap(),
Owned: role.Owned.Unwrap() == 1,
Disabled: role.Disabled.Unwrap() == 1,
MaxNum: role.MaxNum.Unwrap(),
})
}
return roles, nil
@ -353,7 +353,7 @@ func (s *GuildService) CreateGuildRole(guildId uint64, name string, color uint32
if err = unpackOIDBPackage(rsp, body); err != nil {
return 0, errors.Wrap(err, "decode packet error")
}
return body.GetRoleId(), nil
return body.RoleId.Unwrap(), nil
}
func (s *GuildService) DeleteGuildRole(guildId uint64, roleId uint64) error {
@ -437,14 +437,14 @@ func (s *GuildService) FetchGuestGuild(guildId uint64) (*GuildMeta, error) {
return nil, errors.Wrap(err, "decode packet error")
}
return &GuildMeta{
GuildName: body.Rsp.Meta.GetName(),
GuildProfile: body.Rsp.Meta.GetProfile(),
MaxMemberCount: body.Rsp.Meta.GetMaxMemberCount(),
MemberCount: body.Rsp.Meta.GetMemberCount(),
CreateTime: body.Rsp.Meta.GetCreateTime(),
MaxRobotCount: body.Rsp.Meta.GetRobotMaxNum(),
MaxAdminCount: body.Rsp.Meta.GetAdminMaxNum(),
OwnerId: body.Rsp.Meta.GetOwnerId(),
GuildName: body.Rsp.Meta.Name.Unwrap(),
GuildProfile: body.Rsp.Meta.Profile.Unwrap(),
MaxMemberCount: body.Rsp.Meta.MaxMemberCount.Unwrap(),
MemberCount: body.Rsp.Meta.MemberCount.Unwrap(),
CreateTime: body.Rsp.Meta.CreateTime.Unwrap(),
MaxRobotCount: body.Rsp.Meta.RobotMaxNum.Unwrap(),
MaxAdminCount: body.Rsp.Meta.AdminMaxNum.Unwrap(),
OwnerId: body.Rsp.Meta.OwnerId.Unwrap(),
}, nil
}
@ -500,8 +500,8 @@ func (s *GuildService) GetTopicChannelFeeds(guildId, channelId uint64) ([]*topic
Count: proto.Uint32(12),
From: proto.Uint32(0),
ChannelSign: &channel.StChannelSign{
GuildId: &guildId,
ChannelId: &channelId,
GuildId: proto.Some(guildId),
ChannelId: proto.Some(channelId),
},
FeedAttchInfo: proto.String(""), // isLoadMore
})
@ -609,7 +609,7 @@ func (s *GuildService) PostTopicChannelFeed(guildId, channelId uint64, feed *top
if err = proto.Unmarshal(pkg.BusiBuff, body); err != nil {
return errors.Wrap(err, "failed to unmarshal protobuf message")
}
if body.Feed != nil && body.Feed.Id != nil {
if body.Feed != nil && body.Feed.Id.IsNone() {
return nil
}
return errors.New("post feed error")
@ -641,9 +641,9 @@ func (s *GuildService) fetchMemberRoles(guildId uint64, tinyId uint64) ([]*Guild
roles := make([]*GuildRole, 0, len(p1.Roles))
for _, role := range p1.Roles {
roles = append(roles, &GuildRole{
RoleId: role.GetRoleId(),
RoleName: role.GetName(),
ArgbColor: role.GetArgbColor(),
RoleId: role.RoleId.Unwrap(),
RoleName: role.Name.Unwrap(),
ArgbColor: role.ArgbColor.Unwrap(),
})
}
return roles, nil
@ -676,32 +676,32 @@ func (s *GuildService) fetchChannelListState(guildId uint64, channels []*Channel
func convertChannelInfo(info *channel.GuildChannelInfo) *ChannelInfo {
meta := &ChannelMeta{
CreatorUin: info.GetCreatorUin(),
CreatorTinyId: info.GetCreatorTinyId(),
CreateTime: info.GetCreateTime(),
GuildId: info.GetGuildId(),
VisibleType: info.GetVisibleType(),
CurrentSlowMode: info.GetCurrentSlowModeKey(),
TalkPermission: info.GetTalkPermission(),
CreatorUin: info.CreatorUin.Unwrap(),
CreatorTinyId: info.CreatorTinyId.Unwrap(),
CreateTime: info.CreateTime.Unwrap(),
GuildId: info.GuildId.Unwrap(),
VisibleType: info.VisibleType.Unwrap(),
CurrentSlowMode: info.CurrentSlowModeKey.Unwrap(),
TalkPermission: info.TalkPermission.Unwrap(),
}
if info.TopMsg != nil {
meta.TopMessageSeq = info.TopMsg.GetTopMsgSeq()
meta.TopMessageTime = info.TopMsg.GetTopMsgTime()
meta.TopMessageOperatorId = info.TopMsg.GetTopMsgOperatorTinyId()
meta.TopMessageSeq = info.TopMsg.TopMsgSeq.Unwrap()
meta.TopMessageTime = info.TopMsg.TopMsgTime.Unwrap()
meta.TopMessageOperatorId = info.TopMsg.TopMsgOperatorTinyId.Unwrap()
}
for _, slow := range info.SlowModeInfos {
meta.SlowModes = append(meta.SlowModes, &ChannelSlowModeInfo{
SlowModeKey: slow.GetSlowModeKey(),
SpeakFrequency: slow.GetSpeakFrequency(),
SlowModeCircle: slow.GetSlowModeCircle(),
SlowModeText: slow.GetSlowModeText(),
SlowModeKey: slow.SlowModeKey.Unwrap(),
SpeakFrequency: slow.SpeakFrequency.Unwrap(),
SlowModeCircle: slow.SlowModeCircle.Unwrap(),
SlowModeText: slow.SlowModeText.Unwrap(),
})
}
return &ChannelInfo{
ChannelId: info.GetChannelId(),
ChannelName: info.GetChannelName(),
NotifyType: uint32(info.GetFinalNotifyType()),
ChannelType: ChannelType(info.GetChannelType()),
ChannelId: info.ChannelId.Unwrap(),
ChannelName: info.ChannelName.Unwrap(),
NotifyType: uint32(info.FinalNotifyType.Unwrap()),
ChannelType: ChannelType(info.ChannelType.Unwrap()),
Meta: meta,
fetchTime: time.Now().Unix(),
}
@ -717,8 +717,8 @@ func (c *QQClient) syncChannelFirstView() {
if err = proto.Unmarshal(rsp, firstViewRsp); err != nil {
return
}
c.GuildService.TinyId = firstViewRsp.GetSelfTinyid()
c.GuildService.GuildCount = firstViewRsp.GetGuildCount()
c.GuildService.TinyId = firstViewRsp.SelfTinyid.Unwrap()
c.GuildService.GuildCount = firstViewRsp.GuildCount.Unwrap()
if self, err := c.GuildService.GetUserProfile(c.GuildService.TinyId); err == nil {
c.GuildService.Nickname = self.Nickname
c.GuildService.AvatarUrl = self.AvatarUrl
@ -746,11 +746,11 @@ func decodeGuildPushFirstView(c *QQClient, _ *network.IncomingPacketInfo, payloa
c.GuildService.Guilds = []*GuildInfo{}
for _, guild := range firstViewMsg.GuildNodes {
info := &GuildInfo{
GuildId: guild.GetGuildId(),
GuildCode: guild.GetGuildCode(),
GuildId: guild.GuildId.Unwrap(),
GuildCode: guild.GuildCode.Unwrap(),
GuildName: utils.B2S(guild.GuildName),
CoverUrl: fmt.Sprintf("https://groupprocover-76483.picgzc.qpic.cn/%v", guild.GetGuildId()),
AvatarUrl: fmt.Sprintf("https://groupprohead-76292.picgzc.qpic.cn/%v", guild.GetGuildId()),
CoverUrl: fmt.Sprintf("https://groupprocover-76483.picgzc.qpic.cn/%v", guild.GuildId.Unwrap()),
AvatarUrl: fmt.Sprintf("https://groupprohead-76292.picgzc.qpic.cn/%v", guild.GuildId.Unwrap()),
}
channels, err := c.GuildService.FetchChannelList(info.GuildId)
if err != nil {
@ -759,13 +759,13 @@ func decodeGuildPushFirstView(c *QQClient, _ *network.IncomingPacketInfo, payloa
meta := new(channel.ChannelMsgMeta)
_ = proto.Unmarshal(node.Meta, meta)
info.Channels = append(info.Channels, &ChannelInfo{
ChannelId: node.GetChannelId(),
ChannelId: node.ChannelId.Unwrap(),
ChannelName: utils.B2S(node.ChannelName),
Time: node.GetTime(),
EventTime: node.GetEventTime(),
NotifyType: node.GetNotifyType(),
ChannelType: ChannelType(node.GetChannelType()),
AtAllSeq: meta.GetAtAllSeq(),
Time: node.Time.Unwrap(),
EventTime: node.EventTime.Unwrap(),
NotifyType: node.NotifyType.Unwrap(),
ChannelType: ChannelType(node.ChannelType.Unwrap()),
AtAllSeq: meta.AtAllSeq.Unwrap(),
})
}
} else {

View File

@ -32,7 +32,7 @@ func decodeGuildEventFlowPacket(c *QQClient, _ *network.IncomingPacketInfo, payl
if err := proto.Unmarshal(payload, push); err != nil {
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
}
if push.GetCompressFlag() == 1 && len(push.CompressMsg) > 0 {
if push.CompressFlag.Unwrap() == 1 && len(push.CompressMsg) > 0 {
press := new(channel.PressMsg)
dst := make([]byte, len(push.CompressMsg)*2)
i, err := lz4.UncompressBlock(push.CompressMsg, dst)
@ -49,7 +49,7 @@ func decodeGuildEventFlowPacket(c *QQClient, _ *network.IncomingPacketInfo, payl
push.Msgs = press.Msgs
}
for _, m := range push.Msgs {
if m.Head.ContentHead.GetType() == 3841 {
if m.Head.ContentHead.Type.Unwrap() == 3841 {
// todo: 回头 event flow 的处理移出去重构下逻辑, 先暂时这样方便改
var common *msg.CommonElem
if m.Body != nil && m.Body.RichText != nil {
@ -60,13 +60,13 @@ func decodeGuildEventFlowPacket(c *QQClient, _ *network.IncomingPacketInfo, payl
}
}
}
if m.Head.ContentHead.GetSubType() == 2 { // todo: tips?
if m.Head.ContentHead.SubType.Unwrap() == 2 { // todo: tips?
if common == nil { // empty tips
}
tipsInfo := &tipsPushInfo{
TinyId: m.Head.RoutingHead.GetFromTinyid(),
GuildId: m.Head.RoutingHead.GetGuildId(),
ChannelId: m.Head.RoutingHead.GetChannelId(),
TinyId: m.Head.RoutingHead.FromTinyid.Unwrap(),
GuildId: m.Head.RoutingHead.GuildId.Unwrap(),
ChannelId: m.Head.RoutingHead.ChannelId.Unwrap(),
}
/*
if len(m.CtrlHead.IncludeUin) > 0 {
@ -75,7 +75,7 @@ func decodeGuildEventFlowPacket(c *QQClient, _ *network.IncomingPacketInfo, payl
*/
return tipsInfo, nil
}
if common == nil || common.GetServiceType() != 500 {
if common == nil || common.ServiceType.Unwrap() != 500 {
continue
}
eventBody := new(channel.EventBody)
@ -86,12 +86,12 @@ func decodeGuildEventFlowPacket(c *QQClient, _ *network.IncomingPacketInfo, payl
c.processGuildEventBody(m, eventBody)
continue
}
if m.Head.ContentHead.GetType() == 3840 {
if m.Head.RoutingHead.GetDirectMessageFlag() == 1 {
if m.Head.ContentHead.Type.Unwrap() == 3840 {
if m.Head.RoutingHead.DirectMessageFlag.Unwrap() == 1 {
// todo: direct message decode
continue
}
if m.Head.RoutingHead.GetFromTinyid() == c.GuildService.TinyId {
if m.Head.RoutingHead.FromTinyid.Unwrap() == c.GuildService.TinyId {
continue
}
if cm := c.GuildService.parseGuildChannelMessage(m); cm != nil {
@ -104,8 +104,8 @@ func decodeGuildEventFlowPacket(c *QQClient, _ *network.IncomingPacketInfo, payl
func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody *channel.EventBody) {
var guild *GuildInfo
if m.Head.RoutingHead.GetGuildId() != 0 {
if guild = c.GuildService.FindGuild(m.Head.RoutingHead.GetGuildId()); guild == nil {
if m.Head.RoutingHead.GuildId.Unwrap() != 0 {
if guild = c.GuildService.FindGuild(m.Head.RoutingHead.GuildId.Unwrap()); guild == nil {
c.warning("process channel event error: guild not found.")
return
}
@ -113,30 +113,30 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody
switch {
case eventBody.CreateChan != nil:
for _, chanId := range eventBody.CreateChan.CreateId {
if guild.FindChannel(chanId.GetChanId()) != nil {
if guild.FindChannel(chanId.ChanId.Unwrap()) != nil {
continue
}
channelInfo, err := c.GuildService.FetchChannelInfo(guild.GuildId, chanId.GetChanId())
channelInfo, err := c.GuildService.FetchChannelInfo(guild.GuildId, chanId.ChanId.Unwrap())
if err != nil {
c.warning("process create channel event error: fetch channel info error: %v", err)
continue
}
guild.Channels = append(guild.Channels, channelInfo)
c.dispatchGuildChannelCreatedEvent(&GuildChannelOperationEvent{
OperatorId: m.Head.RoutingHead.GetFromTinyid(),
GuildId: m.Head.RoutingHead.GetGuildId(),
OperatorId: m.Head.RoutingHead.FromTinyid.Unwrap(),
GuildId: m.Head.RoutingHead.GuildId.Unwrap(),
ChannelInfo: channelInfo,
})
}
case eventBody.DestroyChan != nil:
for _, chanId := range eventBody.DestroyChan.DeleteId {
channelInfo := guild.FindChannel(chanId.GetChanId())
channelInfo := guild.FindChannel(chanId.ChanId.Unwrap())
if channelInfo == nil {
continue
}
guild.removeChannel(chanId.GetChanId())
guild.removeChannel(chanId.ChanId.Unwrap())
c.dispatchGuildChannelDestroyedEvent(&GuildChannelOperationEvent{
OperatorId: m.Head.RoutingHead.GetFromTinyid(),
OperatorId: m.Head.RoutingHead.FromTinyid.Unwrap(),
GuildId: guild.GuildId,
ChannelInfo: channelInfo,
})
@ -144,9 +144,9 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody
case eventBody.ChangeChanInfo != nil:
updateChanLock.Lock()
defer updateChanLock.Unlock()
oldInfo := guild.FindChannel(eventBody.ChangeChanInfo.GetChanId())
oldInfo := guild.FindChannel(eventBody.ChangeChanInfo.ChanId.Unwrap())
if oldInfo == nil {
info, err := c.GuildService.FetchChannelInfo(m.Head.RoutingHead.GetGuildId(), eventBody.ChangeChanInfo.GetChanId())
info, err := c.GuildService.FetchChannelInfo(m.Head.RoutingHead.GuildId.Unwrap(), eventBody.ChangeChanInfo.ChanId.Unwrap())
if err != nil {
c.error("error to decode channel info updated event: fetch channel info failed: %v", err)
return
@ -157,7 +157,7 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody
if time.Now().Unix()-oldInfo.fetchTime <= 2 {
return
}
newInfo, err := c.GuildService.FetchChannelInfo(m.Head.RoutingHead.GetGuildId(), eventBody.ChangeChanInfo.GetChanId())
newInfo, err := c.GuildService.FetchChannelInfo(m.Head.RoutingHead.GuildId.Unwrap(), eventBody.ChangeChanInfo.ChanId.Unwrap())
if err != nil {
c.error("error to decode channel info updated event: fetch channel info failed: %v", err)
return
@ -169,20 +169,20 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody
}
}
c.dispatchGuildChannelUpdatedEvent(&GuildChannelUpdatedEvent{
OperatorId: m.Head.RoutingHead.GetFromTinyid(),
GuildId: m.Head.RoutingHead.GetGuildId(),
ChannelId: eventBody.ChangeChanInfo.GetChanId(),
OperatorId: m.Head.RoutingHead.FromTinyid.Unwrap(),
GuildId: m.Head.RoutingHead.GuildId.Unwrap(),
ChannelId: eventBody.ChangeChanInfo.ChanId.Unwrap(),
OldChannelInfo: oldInfo,
NewChannelInfo: newInfo,
})
case eventBody.JoinGuild != nil:
/* 应该不会重复推送把, 不会吧不会吧
if mem := guild.FindMember(eventBody.JoinGuild.GetMemberTinyid()); mem != nil {
if mem := guild.FindMember(eventBody.JoinGuild.MemberTinyid.Unwrap()); mem != nil {
c.info("ignore join guild event: member %v already exists", mem.TinyId)
return
}
*/
profile, err := c.GuildService.FetchGuildMemberProfileInfo(guild.GuildId, eventBody.JoinGuild.GetMemberTinyid())
profile, err := c.GuildService.FetchGuildMemberProfileInfo(guild.GuildId, eventBody.JoinGuild.MemberTinyid.Unwrap())
if err != nil {
c.error("error to decode member join guild event: get member profile error: %v", err)
return
@ -197,30 +197,30 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody
Member: info,
})
case eventBody.UpdateMsg != nil:
if eventBody.UpdateMsg.GetEventType() == 1 || eventBody.UpdateMsg.GetEventType() == 2 {
if eventBody.UpdateMsg.EventType.Unwrap() == 1 || eventBody.UpdateMsg.EventType.Unwrap() == 2 {
c.dispatchGuildMessageRecalledEvent(&GuildMessageRecalledEvent{
OperatorId: eventBody.UpdateMsg.GetOperatorTinyid(),
GuildId: m.Head.RoutingHead.GetGuildId(),
ChannelId: m.Head.RoutingHead.GetChannelId(),
MessageId: eventBody.UpdateMsg.GetMsgSeq(),
RecallTime: int64(m.Head.ContentHead.GetTime()),
OperatorId: eventBody.UpdateMsg.OperatorTinyid.Unwrap(),
GuildId: m.Head.RoutingHead.GuildId.Unwrap(),
ChannelId: m.Head.RoutingHead.ChannelId.Unwrap(),
MessageId: eventBody.UpdateMsg.MsgSeq.Unwrap(),
RecallTime: int64(m.Head.ContentHead.Time.Unwrap()),
})
return
}
if eventBody.UpdateMsg.GetEventType() == 4 { // 消息贴表情更新 (包含添加或删除)
t, err := c.GuildService.pullChannelMessages(m.Head.RoutingHead.GetGuildId(), m.Head.RoutingHead.GetChannelId(), eventBody.UpdateMsg.GetMsgSeq(), eventBody.UpdateMsg.GetMsgSeq(), eventBody.UpdateMsg.GetEventVersion()-1, false)
if eventBody.UpdateMsg.EventType.Unwrap() == 4 { // 消息贴表情更新 (包含添加或删除)
t, err := c.GuildService.pullChannelMessages(m.Head.RoutingHead.GuildId.Unwrap(), m.Head.RoutingHead.ChannelId.Unwrap(), eventBody.UpdateMsg.MsgSeq.Unwrap(), eventBody.UpdateMsg.MsgSeq.Unwrap(), eventBody.UpdateMsg.EventVersion.Unwrap()-1, false)
if err != nil || len(t) == 0 {
c.error("process guild event flow error: pull eventMsg message error: %v", err)
return
}
// 自己的消息被贴表情会单独推送一个tips, 这里不需要解析
if t[0].Head.RoutingHead.GetFromTinyid() == c.GuildService.TinyId {
if t[0].Head.RoutingHead.FromTinyid.Unwrap() == c.GuildService.TinyId {
return
}
updatedEvent := &GuildMessageReactionsUpdatedEvent{
GuildId: m.Head.RoutingHead.GetGuildId(),
ChannelId: m.Head.RoutingHead.GetChannelId(),
MessageId: t[0].Head.ContentHead.GetSeq(),
GuildId: m.Head.RoutingHead.GuildId.Unwrap(),
ChannelId: m.Head.RoutingHead.ChannelId.Unwrap(),
MessageId: t[0].Head.ContentHead.Seq.Unwrap(),
CurrentReactions: decodeGuildMessageEmojiReactions(t[0]),
}
tipsInfo, err := c.waitPacketTimeoutSyncF("MsgPush.PushGroupProMsg", time.Second, func(i any) bool {

View File

@ -33,8 +33,8 @@ func (s *GuildService) SendGuildChannelMessage(guildId, channelId uint64, m *mes
req := &channel.DF62ReqBody{Msg: &channel.ChannelMsgContent{
Head: &channel.ChannelMsgHead{
RoutingHead: &channel.ChannelRoutingHead{
GuildId: &guildId,
ChannelId: &channelId,
GuildId: proto.Some(guildId),
ChannelId: proto.Some(channelId),
FromUin: proto.Uint64(uint64(s.c.Uin)),
},
ContentHead: &channel.ChannelContentHead{
@ -58,21 +58,21 @@ func (s *GuildService) SendGuildChannelMessage(guildId, channelId uint64, m *mes
if err = proto.Unmarshal(rsp, body); err != nil {
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
}
if body.GetResult() != 0 {
return nil, errors.Errorf("send channel message error: server response %v", body.GetResult())
if body.Result.Unwrap() != 0 {
return nil, errors.Errorf("send channel message error: server response %v", body.Result.Unwrap())
}
elements := m.Elements
if body.Body != nil && body.Body.RichText != nil {
elements = message.ParseMessageElems(body.Body.RichText.Elems)
}
return &message.GuildChannelMessage{
Id: body.Head.ContentHead.GetSeq(),
InternalId: body.Head.ContentHead.GetRandom(),
Id: body.Head.ContentHead.Seq.Unwrap(),
InternalId: body.Head.ContentHead.Random.Unwrap(),
GuildId: guildId,
ChannelId: channelId,
Time: int64(body.GetSendTime()),
Time: int64(body.SendTime.Unwrap()),
Sender: &message.GuildSender{
TinyId: body.Head.RoutingHead.GetFromTinyid(),
TinyId: body.Head.RoutingHead.FromTinyid.Unwrap(),
Nickname: s.Nickname,
},
Elements: elements,
@ -132,10 +132,10 @@ func (s *GuildService) PullGuildChannelMessage(guildId, channelId, beginSeq, end
func (s *GuildService) pullChannelMessages(guildId, channelId, beginSeq, endSeq, eventVersion uint64, direct bool) ([]*channel.ChannelMsgContent, error) {
param := &channel.ChannelParam{
GuildId: &guildId,
ChannelId: &channelId,
BeginSeq: &beginSeq,
EndSeq: &endSeq,
GuildId: proto.Some(guildId),
ChannelId: proto.Some(channelId),
BeginSeq: proto.Some(beginSeq),
EndSeq: proto.Some(endSeq),
}
if eventVersion != 0 {
param.Version = []uint64{eventVersion}
@ -151,8 +151,8 @@ func (s *GuildService) pullChannelMessages(guildId, channelId, beginSeq, endSeq,
}
payload, _ := proto.Marshal(&channel.ChannelMsgReq{
ChannelParam: param,
WithVersionFlag: &withVersionFlag,
DirectMessageFlag: &directFlag,
WithVersionFlag: proto.Some(withVersionFlag),
DirectMessageFlag: proto.Some(directFlag),
})
seq, packet := s.c.uniPacket("trpc.group_pro.synclogic.SyncLogic.GetChannelMsg", payload)
rsp, err := s.c.sendAndWaitDynamic(seq, packet)
@ -172,11 +172,11 @@ func (c *QQClient) buildGuildImageStorePacket(guildId, channelId uint64, hash []
Subcmd: proto.Uint32(1),
TryupImgReq: []*cmd0x388.TryUpImgReq{
{
GroupCode: &channelId,
GroupCode: proto.Some(channelId),
SrcUin: proto.Uint64(uint64(c.Uin)),
FileId: proto.Uint64(0),
FileMd5: hash,
FileSize: &size,
FileSize: proto.Some(size),
FileName: []byte(fmt.Sprintf("%x.jpg", hash)),
SrcTerm: proto.Uint32(5),
PlatformType: proto.Uint32(9),
@ -185,8 +185,8 @@ func (c *QQClient) buildGuildImageStorePacket(guildId, channelId uint64, hash []
BuildVer: []byte("8.8.38.2266"),
AppPicType: proto.Uint32(1052),
SrvUpload: proto.Uint32(0),
QqmeetGuildId: &guildId,
QqmeetChannelId: &channelId,
QqmeetGuildId: proto.Some(guildId),
QqmeetChannelId: proto.Some(channelId),
},
},
CommandId: proto.Uint32(83),
@ -198,7 +198,7 @@ func decodeGuildMessageEmojiReactions(content *channel.ChannelMsgContent) (r []*
r = []*message.GuildMessageEmojiReaction{}
var common *msg.CommonElem
for _, elem := range content.Body.RichText.Elems {
if elem.CommonElem != nil && elem.CommonElem.GetServiceType() == 38 {
if elem.CommonElem != nil && elem.CommonElem.ServiceType.Unwrap() == 38 {
common = elem.CommonElem
break
}
@ -216,12 +216,12 @@ func decodeGuildMessageEmojiReactions(content *channel.ChannelMsgContent) (r []*
}
for _, e := range cnt.EmojiReaction {
reaction := &message.GuildMessageEmojiReaction{
EmojiId: e.GetEmojiId(),
EmojiType: e.GetEmojiType(),
Count: int32(e.GetCnt()),
Clicked: e.GetIsClicked(),
EmojiId: e.EmojiId.Unwrap(),
EmojiType: e.EmojiType.Unwrap(),
Count: int32(e.Cnt.Unwrap()),
Clicked: e.IsClicked.Unwrap(),
}
if index, err := strconv.ParseInt(e.GetEmojiId(), 10, 32); err == nil {
if index, err := strconv.ParseInt(e.EmojiId.Unwrap(), 10, 32); err == nil {
reaction.Face = message.NewFace(int32(index))
}
r = append(r, reaction)
@ -239,26 +239,26 @@ func decodeGuildImageStoreResponse(_ *QQClient, _ *network.IncomingPacketInfo, p
return nil, errors.New("response is empty")
}
rsp := body.TryupImgRsp[0]
if rsp.GetResult() != 0 {
if rsp.Result.Unwrap() != 0 {
return &imageUploadResponse{
ResultCode: int32(rsp.GetResult()),
ResultCode: int32(rsp.Result.Unwrap()),
Message: string(rsp.FailMsg),
}, nil
}
if rsp.GetFileExit() {
if rsp.FileExit.Unwrap() {
resp := &imageUploadResponse{
IsExists: true,
FileId: int64(rsp.GetFileid()),
FileId: int64(rsp.Fileid.Unwrap()),
DownloadIndex: string(rsp.DownloadIndex),
}
if rsp.ImgInfo != nil {
resp.Width = int32(rsp.ImgInfo.GetFileWidth())
resp.Height = int32(rsp.ImgInfo.GetFileHeight())
resp.Width = int32(rsp.ImgInfo.FileWidth.Unwrap())
resp.Height = int32(rsp.ImgInfo.FileHeight.Unwrap())
}
return rsp, nil
}
return &imageUploadResponse{
FileId: int64(rsp.GetFileid()),
FileId: int64(rsp.Fileid.Unwrap()),
UploadKey: rsp.UpUkey,
UploadIp: rsp.UpIp,
UploadPort: rsp.UpPort,
@ -267,26 +267,26 @@ func decodeGuildImageStoreResponse(_ *QQClient, _ *network.IncomingPacketInfo, p
}
func (s *GuildService) parseGuildChannelMessage(msg *channel.ChannelMsgContent) *message.GuildChannelMessage {
guild := s.FindGuild(msg.Head.RoutingHead.GetGuildId())
guild := s.FindGuild(msg.Head.RoutingHead.GuildId.Unwrap())
if guild == nil {
return nil // todo: sync guild info
}
if msg.Body == nil || msg.Body.RichText == nil {
return nil
}
// mem := guild.FindMember(msg.Head.RoutingHead.GetFromTinyid())
// mem := guild.FindMember(msg.Head.RoutingHead.FromTinyid.Unwrap())
memberName := msg.ExtInfo.MemberName
if memberName == nil {
memberName = msg.ExtInfo.FromNick
}
return &message.GuildChannelMessage{
Id: msg.Head.ContentHead.GetSeq(),
InternalId: msg.Head.ContentHead.GetRandom(),
GuildId: msg.Head.RoutingHead.GetGuildId(),
ChannelId: msg.Head.RoutingHead.GetChannelId(),
Time: int64(msg.Head.ContentHead.GetTime()),
Id: msg.Head.ContentHead.Seq.Unwrap(),
InternalId: msg.Head.ContentHead.Random.Unwrap(),
GuildId: msg.Head.RoutingHead.GuildId.Unwrap(),
ChannelId: msg.Head.RoutingHead.ChannelId.Unwrap(),
Time: int64(msg.Head.ContentHead.Time.Unwrap()),
Sender: &message.GuildSender{
TinyId: msg.Head.RoutingHead.GetFromTinyid(),
TinyId: msg.Head.RoutingHead.FromTinyid.Unwrap(),
Nickname: string(memberName),
},
Elements: message.ParseMessageElems(msg.Body.RichText.Elems),

View File

@ -368,20 +368,20 @@ func decodeGroupImageStoreResponse(_ *QQClient, _ *network.IncomingPacketInfo, p
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
}
rsp := pkt.TryupImgRsp[0]
if rsp.GetResult() != 0 {
if rsp.Result.Unwrap() != 0 {
return &imageUploadResponse{
ResultCode: int32(rsp.GetResult()),
ResultCode: int32(rsp.Result.Unwrap()),
Message: utils.B2S(rsp.FailMsg),
}, nil
}
if rsp.GetFileExit() {
if rsp.FileExit.Unwrap() {
if rsp.ImgInfo != nil {
return &imageUploadResponse{IsExists: true, FileId: int64(rsp.GetFileid()), Width: int32(rsp.ImgInfo.GetFileWidth()), Height: int32(rsp.ImgInfo.GetFileHeight())}, nil
return &imageUploadResponse{IsExists: true, FileId: int64(rsp.Fileid.Unwrap()), Width: int32(rsp.ImgInfo.FileWidth.Unwrap()), Height: int32(rsp.ImgInfo.FileHeight.Unwrap())}, nil
}
return &imageUploadResponse{IsExists: true, FileId: int64(rsp.GetFileid())}, nil
return &imageUploadResponse{IsExists: true, FileId: int64(rsp.Fileid.Unwrap())}, nil
}
return &imageUploadResponse{
FileId: int64(rsp.GetFileid()),
FileId: int64(rsp.Fileid.Unwrap()),
UploadKey: rsp.UpUkey,
UploadIp: rsp.UpIp,
UploadPort: rsp.UpPort,

View File

@ -0,0 +1,32 @@
package intern
import (
"sync"
)
// String Interning is a technique for reducing the memory footprint of large
// strings. It can re-use strings that are already in memory.
type StringInterner struct {
mu sync.RWMutex
strings map[string]string
}
func NewStringInterner() *StringInterner {
return &StringInterner{
strings: make(map[string]string),
}
}
func (i *StringInterner) Intern(s string) string {
i.mu.RLock()
if v, ok := i.strings[s]; ok {
i.mu.RUnlock()
return v
}
i.mu.RUnlock()
i.mu.Lock()
i.strings[s] = s
i.mu.Unlock()
return s
}

View File

@ -149,9 +149,9 @@ func (l *forwardMsgLinker) link(name string) *message.ForwardMessage {
}
nodes := make([]*message.ForwardNode, 0, len(item.Buffer.Msg))
for _, m := range item.Buffer.Msg {
name := m.Head.GetFromNick()
if m.Head.GetMsgType() == 82 && m.Head.GroupInfo != nil {
name = m.Head.GroupInfo.GetGroupCard()
name := m.Head.FromNick.Unwrap()
if m.Head.MsgType.Unwrap() == 82 && m.Head.GroupInfo != nil {
name = m.Head.GroupInfo.GroupCard.Unwrap()
}
msgElems := message.ParseMessageElems(m.Body.RichText.Elems)
@ -164,9 +164,10 @@ func (l *forwardMsgLinker) link(name string) *message.ForwardMessage {
}
nodes = append(nodes, &message.ForwardNode{
SenderId: m.Head.GetFromUin(),
GroupId: m.Head.GroupInfo.GroupCode.Unwrap(),
SenderId: m.Head.FromUin.Unwrap(),
SenderName: name,
Time: m.Head.GetMsgTime(),
Time: m.Head.MsgTime.Unwrap(),
Message: msgElems,
})
}
@ -182,7 +183,7 @@ func (c *QQClient) GetForwardMessage(resID string) *message.ForwardMessage {
items: make(map[string]*msg.PbMultiMsgItem),
}
for _, item := range m.Items {
linker.items[item.GetFileName()] = item
linker.items[item.FileName.Unwrap()] = item
}
return linker.link("MultiMsg")
}
@ -199,9 +200,9 @@ func (c *QQClient) DownloadForwardMessage(resId string) *message.ForwardElement
var pv bytes.Buffer
for i := 0; i < int(math.Min(4, float64(len(multiMsg.Msg)))); i++ {
m := multiMsg.Msg[i]
sender := m.Head.GetFromNick()
if m.Head.GetMsgType() == 82 && m.Head.GroupInfo != nil {
sender = m.Head.GroupInfo.GetGroupCard()
sender := m.Head.FromNick.Unwrap()
if m.Head.MsgType.Unwrap() == 82 && m.Head.GroupInfo != nil {
sender = m.Head.GroupInfo.GroupCard.Unwrap()
}
brief := message.ToReadableString(message.ParseMessageElems(multiMsg.Msg[i].Body.RichText.Elems))
fmt.Fprintf(&pv, `<title size="26" color="#777777">%s: %s</title>`, sender, brief)

View File

@ -191,15 +191,15 @@ func msgType0x210Sub27Decoder(c *QQClient, protobuf []byte) error {
for _, m := range s27.ModInfos {
if m.ModGroupProfile != nil {
for _, info := range m.ModGroupProfile.GroupProfileInfos {
if info.GetField() == 1 {
if g := c.FindGroup(int64(m.ModGroupProfile.GetGroupCode())); g != nil {
if info.Field.Unwrap() == 1 {
if g := c.FindGroup(int64(m.ModGroupProfile.GroupCode.Unwrap())); g != nil {
old := g.Name
g.Name = string(info.Value)
c.GroupNameUpdatedEvent.dispatch(c, &GroupNameUpdatedEvent{
Group: g,
OldName: old,
NewName: g.Name,
OperatorUin: int64(m.ModGroupProfile.GetCmdUin()),
OperatorUin: int64(m.ModGroupProfile.CmdUin.Unwrap()),
})
}
}

View File

@ -3,203 +3,67 @@
package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
type ChannelUserInfo struct {
ClientIdentity *ClientIdentity `protobuf:"bytes,1,opt"`
MemberType *uint32 `protobuf:"varint,2,opt"`
MemberType proto.Option[uint32] `protobuf:"varint,2,opt"`
Permission *ChannelUserPermission `protobuf:"bytes,3,opt"`
RoleGroups []*BaseRoleGroupInfo `protobuf:"bytes,4,rep"`
}
func (x *ChannelUserInfo) GetMemberType() uint32 {
if x != nil && x.MemberType != nil {
return *x.MemberType
}
return 0
}
type ChannelUserPermission struct {
AllowReadFeed *bool `protobuf:"varint,1,opt"`
AllowWriteFeed *bool `protobuf:"varint,2,opt"`
}
func (x *ChannelUserPermission) GetAllowReadFeed() bool {
if x != nil && x.AllowReadFeed != nil {
return *x.AllowReadFeed
}
return false
}
func (x *ChannelUserPermission) GetAllowWriteFeed() bool {
if x != nil && x.AllowWriteFeed != nil {
return *x.AllowWriteFeed
}
return false
AllowReadFeed proto.Option[bool] `protobuf:"varint,1,opt"`
AllowWriteFeed proto.Option[bool] `protobuf:"varint,2,opt"`
}
type ClientIdentity struct {
ClientId *uint32 `protobuf:"varint,1,opt"`
Desc *string `protobuf:"bytes,2,opt"`
}
func (x *ClientIdentity) GetClientId() uint32 {
if x != nil && x.ClientId != nil {
return *x.ClientId
}
return 0
}
func (x *ClientIdentity) GetDesc() string {
if x != nil && x.Desc != nil {
return *x.Desc
}
return ""
ClientId proto.Option[uint32] `protobuf:"varint,1,opt"`
Desc proto.Option[string] `protobuf:"bytes,2,opt"`
}
type BaseGuildInfo struct {
GuildId *uint64 `protobuf:"varint,1,opt"`
Name *string `protobuf:"bytes,2,opt"`
JoinTime *uint64 `protobuf:"varint,3,opt"`
}
func (x *BaseGuildInfo) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
func (x *BaseGuildInfo) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *BaseGuildInfo) GetJoinTime() uint64 {
if x != nil && x.JoinTime != nil {
return *x.JoinTime
}
return 0
GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
Name proto.Option[string] `protobuf:"bytes,2,opt"`
JoinTime proto.Option[uint64] `protobuf:"varint,3,opt"`
}
type BaseRoleGroupInfo struct {
RoleId *uint64 `protobuf:"varint,1,opt"`
Name *string `protobuf:"bytes,2,opt"`
Color *uint32 `protobuf:"varint,3,opt"`
}
func (x *BaseRoleGroupInfo) GetRoleId() uint64 {
if x != nil && x.RoleId != nil {
return *x.RoleId
}
return 0
}
func (x *BaseRoleGroupInfo) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *BaseRoleGroupInfo) GetColor() uint32 {
if x != nil && x.Color != nil {
return *x.Color
}
return 0
RoleId proto.Option[uint64] `protobuf:"varint,1,opt"`
Name proto.Option[string] `protobuf:"bytes,2,opt"`
Color proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type StChannelInfo struct {
Sign *StChannelSign `protobuf:"bytes,1,opt"`
Name *string `protobuf:"bytes,2,opt"`
IconUrl *string `protobuf:"bytes,3,opt"`
}
func (x *StChannelInfo) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *StChannelInfo) GetIconUrl() string {
if x != nil && x.IconUrl != nil {
return *x.IconUrl
}
return ""
Sign *StChannelSign `protobuf:"bytes,1,opt"`
Name proto.Option[string] `protobuf:"bytes,2,opt"`
IconUrl proto.Option[string] `protobuf:"bytes,3,opt"`
}
type StChannelSign struct {
GuildId *uint64 `protobuf:"varint,1,opt"`
ChannelId *uint64 `protobuf:"varint,2,opt"`
}
func (x *StChannelSign) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
func (x *StChannelSign) GetChannelId() uint64 {
if x != nil && x.ChannelId != nil {
return *x.ChannelId
}
return 0
GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelId proto.Option[uint64] `protobuf:"varint,2,opt"`
}
type StEmotionReactionInfo struct {
Id *string `protobuf:"bytes,1,opt"`
EmojiReactionList []*EmojiReaction `protobuf:"bytes,2,rep"`
}
func (x *StEmotionReactionInfo) GetId() string {
if x != nil && x.Id != nil {
return *x.Id
}
return ""
Id proto.Option[string] `protobuf:"bytes,1,opt"`
EmojiReactionList []*EmojiReaction `protobuf:"bytes,2,rep"`
}
type StCommonExt struct {
MapInfo []*CommonEntry `protobuf:"bytes,1,rep"`
AttachInfo *string `protobuf:"bytes,2,opt"`
MapBytesInfo []*BytesEntry `protobuf:"bytes,3,rep"`
}
func (x *StCommonExt) GetAttachInfo() string {
if x != nil && x.AttachInfo != nil {
return *x.AttachInfo
}
return ""
MapInfo []*CommonEntry `protobuf:"bytes,1,rep"`
AttachInfo proto.Option[string] `protobuf:"bytes,2,opt"`
MapBytesInfo []*BytesEntry `protobuf:"bytes,3,rep"`
}
type BytesEntry struct {
Key *string `protobuf:"bytes,1,opt"`
Value []byte `protobuf:"bytes,2,opt"`
}
func (x *BytesEntry) GetKey() string {
if x != nil && x.Key != nil {
return *x.Key
}
return ""
Key proto.Option[string] `protobuf:"bytes,1,opt"`
Value []byte `protobuf:"bytes,2,opt"`
}
type CommonEntry struct {
Key *string `protobuf:"bytes,1,opt"`
Value *string `protobuf:"bytes,2,opt"`
}
func (x *CommonEntry) GetKey() string {
if x != nil && x.Key != nil {
return *x.Key
}
return ""
}
func (x *CommonEntry) GetValue() string {
if x != nil && x.Value != nil {
return *x.Value
}
return ""
Key proto.Option[string] `protobuf:"bytes,1,opt"`
Value proto.Option[string] `protobuf:"bytes,2,opt"`
}

File diff suppressed because it is too large Load Diff

View File

@ -3,140 +3,53 @@
package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
type GetNoticesReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
PageNum *uint32 `protobuf:"varint,2,opt"`
AttachInfo *string `protobuf:"bytes,3,opt"`
}
func (x *GetNoticesReq) GetPageNum() uint32 {
if x != nil && x.PageNum != nil {
return *x.PageNum
}
return 0
}
func (x *GetNoticesReq) GetAttachInfo() string {
if x != nil && x.AttachInfo != nil {
return *x.AttachInfo
}
return ""
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
PageNum proto.Option[uint32] `protobuf:"varint,2,opt"`
AttachInfo proto.Option[string] `protobuf:"bytes,3,opt"`
}
type GetNoticesRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Notices []*StNotice `protobuf:"bytes,2,rep"`
TotalNum *uint32 `protobuf:"varint,3,opt"`
IsFinish *bool `protobuf:"varint,4,opt"`
AttachInfo *string `protobuf:"bytes,5,opt"`
}
func (x *GetNoticesRsp) GetTotalNum() uint32 {
if x != nil && x.TotalNum != nil {
return *x.TotalNum
}
return 0
}
func (x *GetNoticesRsp) GetIsFinish() bool {
if x != nil && x.IsFinish != nil {
return *x.IsFinish
}
return false
}
func (x *GetNoticesRsp) GetAttachInfo() string {
if x != nil && x.AttachInfo != nil {
return *x.AttachInfo
}
return ""
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Notices []*StNotice `protobuf:"bytes,2,rep"`
TotalNum proto.Option[uint32] `protobuf:"varint,3,opt"`
IsFinish proto.Option[bool] `protobuf:"varint,4,opt"`
AttachInfo proto.Option[string] `protobuf:"bytes,5,opt"`
}
type NeedInsertCommentInfo struct {
CommentID *string `protobuf:"bytes,1,opt"`
}
func (x *NeedInsertCommentInfo) GetCommentID() string {
if x != nil && x.CommentID != nil {
return *x.CommentID
}
return ""
CommentID proto.Option[string] `protobuf:"bytes,1,opt"`
}
type RefreshToast struct {
Text *string `protobuf:"bytes,1,opt"`
}
func (x *RefreshToast) GetText() string {
if x != nil && x.Text != nil {
return *x.Text
}
return ""
Text proto.Option[string] `protobuf:"bytes,1,opt"`
}
type StGetChannelFeedsReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Count *uint32 `protobuf:"varint,2,opt"`
From *uint32 `protobuf:"varint,3,opt"`
ChannelSign *StChannelSign `protobuf:"bytes,4,opt"`
FeedAttchInfo *string `protobuf:"bytes,5,opt"`
}
func (x *StGetChannelFeedsReq) GetCount() uint32 {
if x != nil && x.Count != nil {
return *x.Count
}
return 0
}
func (x *StGetChannelFeedsReq) GetFrom() uint32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
func (x *StGetChannelFeedsReq) GetFeedAttchInfo() string {
if x != nil && x.FeedAttchInfo != nil {
return *x.FeedAttchInfo
}
return ""
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Count proto.Option[uint32] `protobuf:"varint,2,opt"`
From proto.Option[uint32] `protobuf:"varint,3,opt"`
ChannelSign *StChannelSign `protobuf:"bytes,4,opt"`
FeedAttchInfo proto.Option[string] `protobuf:"bytes,5,opt"`
}
type StGetChannelFeedsRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
VecFeed []*StFeed `protobuf:"bytes,2,rep"`
IsFinish *uint32 `protobuf:"varint,3,opt"`
User *StUser `protobuf:"bytes,4,opt"`
FeedAttchInfo *string `protobuf:"bytes,5,opt"`
RefreshToast *RefreshToast `protobuf:"bytes,6,opt"`
}
func (x *StGetChannelFeedsRsp) GetIsFinish() uint32 {
if x != nil && x.IsFinish != nil {
return *x.IsFinish
}
return 0
}
func (x *StGetChannelFeedsRsp) GetFeedAttchInfo() string {
if x != nil && x.FeedAttchInfo != nil {
return *x.FeedAttchInfo
}
return ""
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
VecFeed []*StFeed `protobuf:"bytes,2,rep"`
IsFinish proto.Option[uint32] `protobuf:"varint,3,opt"`
User *StUser `protobuf:"bytes,4,opt"`
FeedAttchInfo proto.Option[string] `protobuf:"bytes,5,opt"`
RefreshToast *RefreshToast `protobuf:"bytes,6,opt"`
}
type StGetChannelShareFeedReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
From *uint32 `protobuf:"varint,2,opt"`
ChannelShareInfo *StChannelShareInfo `protobuf:"bytes,3,opt"`
}
func (x *StGetChannelShareFeedReq) GetFrom() uint32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
From proto.Option[uint32] `protobuf:"varint,2,opt"`
ChannelShareInfo *StChannelShareInfo `protobuf:"bytes,3,opt"`
}
type StGetChannelShareFeedRsp struct {
@ -145,129 +58,31 @@ type StGetChannelShareFeedRsp struct {
}
type StGetFeedCommentsReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
UserId *string `protobuf:"bytes,2,opt"`
FeedId *string `protobuf:"bytes,3,opt"`
ListNum *uint32 `protobuf:"varint,4,opt"`
From *uint32 `protobuf:"varint,5,opt"`
AttchInfo *string `protobuf:"bytes,6,opt"`
EntrySchema *string `protobuf:"bytes,7,opt"`
}
func (x *StGetFeedCommentsReq) GetUserId() string {
if x != nil && x.UserId != nil {
return *x.UserId
}
return ""
}
func (x *StGetFeedCommentsReq) GetFeedId() string {
if x != nil && x.FeedId != nil {
return *x.FeedId
}
return ""
}
func (x *StGetFeedCommentsReq) GetListNum() uint32 {
if x != nil && x.ListNum != nil {
return *x.ListNum
}
return 0
}
func (x *StGetFeedCommentsReq) GetFrom() uint32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
func (x *StGetFeedCommentsReq) GetAttchInfo() string {
if x != nil && x.AttchInfo != nil {
return *x.AttchInfo
}
return ""
}
func (x *StGetFeedCommentsReq) GetEntrySchema() string {
if x != nil && x.EntrySchema != nil {
return *x.EntrySchema
}
return ""
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
UserId proto.Option[string] `protobuf:"bytes,2,opt"`
FeedId proto.Option[string] `protobuf:"bytes,3,opt"`
ListNum proto.Option[uint32] `protobuf:"varint,4,opt"`
From proto.Option[uint32] `protobuf:"varint,5,opt"`
AttchInfo proto.Option[string] `protobuf:"bytes,6,opt"`
EntrySchema proto.Option[string] `protobuf:"bytes,7,opt"`
}
type StGetFeedCommentsRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
VecComment []*StComment `protobuf:"bytes,2,rep"`
TotalNum *uint32 `protobuf:"varint,3,opt"`
IsFinish *uint32 `protobuf:"varint,4,opt"`
AttchInfo *string `protobuf:"bytes,5,opt"`
}
func (x *StGetFeedCommentsRsp) GetTotalNum() uint32 {
if x != nil && x.TotalNum != nil {
return *x.TotalNum
}
return 0
}
func (x *StGetFeedCommentsRsp) GetIsFinish() uint32 {
if x != nil && x.IsFinish != nil {
return *x.IsFinish
}
return 0
}
func (x *StGetFeedCommentsRsp) GetAttchInfo() string {
if x != nil && x.AttchInfo != nil {
return *x.AttchInfo
}
return ""
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
VecComment []*StComment `protobuf:"bytes,2,rep"`
TotalNum proto.Option[uint32] `protobuf:"varint,3,opt"`
IsFinish proto.Option[uint32] `protobuf:"varint,4,opt"`
AttchInfo proto.Option[string] `protobuf:"bytes,5,opt"`
}
type StGetFeedDetailReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
From *uint32 `protobuf:"varint,2,opt"`
UserId *string `protobuf:"bytes,3,opt"`
FeedId *string `protobuf:"bytes,4,opt"`
CreateTime *uint64 `protobuf:"varint,5,opt"`
DetailType *uint32 `protobuf:"varint,6,opt"`
ChannelSign *StChannelSign `protobuf:"bytes,7,opt"`
}
func (x *StGetFeedDetailReq) GetFrom() uint32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
func (x *StGetFeedDetailReq) GetUserId() string {
if x != nil && x.UserId != nil {
return *x.UserId
}
return ""
}
func (x *StGetFeedDetailReq) GetFeedId() string {
if x != nil && x.FeedId != nil {
return *x.FeedId
}
return ""
}
func (x *StGetFeedDetailReq) GetCreateTime() uint64 {
if x != nil && x.CreateTime != nil {
return *x.CreateTime
}
return 0
}
func (x *StGetFeedDetailReq) GetDetailType() uint32 {
if x != nil && x.DetailType != nil {
return *x.DetailType
}
return 0
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
From proto.Option[uint32] `protobuf:"varint,2,opt"`
UserId proto.Option[string] `protobuf:"bytes,3,opt"`
FeedId proto.Option[string] `protobuf:"bytes,4,opt"`
CreateTime proto.Option[uint64] `protobuf:"varint,5,opt"`
DetailType proto.Option[uint32] `protobuf:"varint,6,opt"`
ChannelSign *StChannelSign `protobuf:"bytes,7,opt"`
}
type StGetFeedDetailRsp struct {

View File

@ -3,44 +3,20 @@
package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
type StAlterFeedReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"`
BusiReqData []byte `protobuf:"bytes,3,opt"`
MBitmap *uint64 `protobuf:"varint,4,opt"`
From *int32 `protobuf:"varint,5,opt"`
Src *int32 `protobuf:"varint,6,opt"`
AlterFeedExtInfo []*CommonEntry `protobuf:"bytes,7,rep"`
JsonFeed *string `protobuf:"bytes,8,opt"`
ClientContent *StClientContent `protobuf:"bytes,9,opt"`
}
func (x *StAlterFeedReq) GetMBitmap() uint64 {
if x != nil && x.MBitmap != nil {
return *x.MBitmap
}
return 0
}
func (x *StAlterFeedReq) GetFrom() int32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
func (x *StAlterFeedReq) GetSrc() int32 {
if x != nil && x.Src != nil {
return *x.Src
}
return 0
}
func (x *StAlterFeedReq) GetJsonFeed() string {
if x != nil && x.JsonFeed != nil {
return *x.JsonFeed
}
return ""
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"`
BusiReqData []byte `protobuf:"bytes,3,opt"`
MBitmap proto.Option[uint64] `protobuf:"varint,4,opt"`
From proto.Option[int32] `protobuf:"varint,5,opt"`
Src proto.Option[int32] `protobuf:"varint,6,opt"`
AlterFeedExtInfo []*CommonEntry `protobuf:"bytes,7,rep"`
JsonFeed proto.Option[string] `protobuf:"bytes,8,opt"`
ClientContent *StClientContent `protobuf:"bytes,9,opt"`
}
type StAlterFeedRsp struct {
@ -55,86 +31,23 @@ type StClientContent struct {
}
type StClientImageContent struct {
TaskId *string `protobuf:"bytes,1,opt"`
PicId *string `protobuf:"bytes,2,opt"`
Url *string `protobuf:"bytes,3,opt"`
}
func (x *StClientImageContent) GetTaskId() string {
if x != nil && x.TaskId != nil {
return *x.TaskId
}
return ""
}
func (x *StClientImageContent) GetPicId() string {
if x != nil && x.PicId != nil {
return *x.PicId
}
return ""
}
func (x *StClientImageContent) GetUrl() string {
if x != nil && x.Url != nil {
return *x.Url
}
return ""
TaskId proto.Option[string] `protobuf:"bytes,1,opt"`
PicId proto.Option[string] `protobuf:"bytes,2,opt"`
Url proto.Option[string] `protobuf:"bytes,3,opt"`
}
type StClientVideoContent struct {
TaskId *string `protobuf:"bytes,1,opt"`
VideoId *string `protobuf:"bytes,2,opt"`
VideoUrl *string `protobuf:"bytes,3,opt"`
CoverUrl *string `protobuf:"bytes,4,opt"`
}
func (x *StClientVideoContent) GetTaskId() string {
if x != nil && x.TaskId != nil {
return *x.TaskId
}
return ""
}
func (x *StClientVideoContent) GetVideoId() string {
if x != nil && x.VideoId != nil {
return *x.VideoId
}
return ""
}
func (x *StClientVideoContent) GetVideoUrl() string {
if x != nil && x.VideoUrl != nil {
return *x.VideoUrl
}
return ""
}
func (x *StClientVideoContent) GetCoverUrl() string {
if x != nil && x.CoverUrl != nil {
return *x.CoverUrl
}
return ""
TaskId proto.Option[string] `protobuf:"bytes,1,opt"`
VideoId proto.Option[string] `protobuf:"bytes,2,opt"`
VideoUrl proto.Option[string] `protobuf:"bytes,3,opt"`
CoverUrl proto.Option[string] `protobuf:"bytes,4,opt"`
}
type StDelFeedReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"`
From *int32 `protobuf:"varint,3,opt"`
Src *int32 `protobuf:"varint,4,opt"`
}
func (x *StDelFeedReq) GetFrom() int32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
func (x *StDelFeedReq) GetSrc() int32 {
if x != nil && x.Src != nil {
return *x.Src
}
return 0
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"`
From proto.Option[int32] `protobuf:"varint,3,opt"`
Src proto.Option[int32] `protobuf:"varint,4,opt"`
}
type StDelFeedRsp struct {
@ -142,34 +55,13 @@ type StDelFeedRsp struct {
}
type StDoCommentReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
CommentType *uint32 `protobuf:"varint,2,opt"`
Comment *StComment `protobuf:"bytes,3,opt"`
Feed *StFeed `protobuf:"bytes,4,opt"`
From *int32 `protobuf:"varint,5,opt"`
BusiReqData []byte `protobuf:"bytes,6,opt"`
Src *int32 `protobuf:"varint,7,opt"`
}
func (x *StDoCommentReq) GetCommentType() uint32 {
if x != nil && x.CommentType != nil {
return *x.CommentType
}
return 0
}
func (x *StDoCommentReq) GetFrom() int32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
func (x *StDoCommentReq) GetSrc() int32 {
if x != nil && x.Src != nil {
return *x.Src
}
return 0
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
CommentType proto.Option[uint32] `protobuf:"varint,2,opt"`
Comment *StComment `protobuf:"bytes,3,opt"`
Feed *StFeed `protobuf:"bytes,4,opt"`
From proto.Option[int32] `protobuf:"varint,5,opt"`
BusiReqData []byte `protobuf:"bytes,6,opt"`
Src proto.Option[int32] `protobuf:"varint,7,opt"`
}
type StDoCommentRsp struct {
@ -180,38 +72,17 @@ type StDoCommentRsp struct {
type StDoLikeReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
LikeType *uint32 `protobuf:"varint,2,opt"`
LikeType proto.Option[uint32] `protobuf:"varint,2,opt"`
Like *StLike `protobuf:"bytes,3,opt"`
Feed *StFeed `protobuf:"bytes,4,opt"`
BusiReqData []byte `protobuf:"bytes,5,opt"`
Comment *StComment `protobuf:"bytes,6,opt"`
Reply *StReply `protobuf:"bytes,7,opt"`
From *int32 `protobuf:"varint,8,opt"`
Src *int32 `protobuf:"varint,9,opt"`
From proto.Option[int32] `protobuf:"varint,8,opt"`
Src proto.Option[int32] `protobuf:"varint,9,opt"`
EmotionReaction *StEmotionReactionInfo `protobuf:"bytes,10,opt"`
}
func (x *StDoLikeReq) GetLikeType() uint32 {
if x != nil && x.LikeType != nil {
return *x.LikeType
}
return 0
}
func (x *StDoLikeReq) GetFrom() int32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
func (x *StDoLikeReq) GetSrc() int32 {
if x != nil && x.Src != nil {
return *x.Src
}
return 0
}
type StDoLikeRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Like *StLike `protobuf:"bytes,2,opt"`
@ -220,35 +91,14 @@ type StDoLikeRsp struct {
}
type StDoReplyReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
ReplyType *uint32 `protobuf:"varint,2,opt"`
Reply *StReply `protobuf:"bytes,3,opt"`
Comment *StComment `protobuf:"bytes,4,opt"`
Feed *StFeed `protobuf:"bytes,5,opt"`
From *int32 `protobuf:"varint,6,opt"`
BusiReqData []byte `protobuf:"bytes,7,opt"`
Src *int32 `protobuf:"varint,8,opt"`
}
func (x *StDoReplyReq) GetReplyType() uint32 {
if x != nil && x.ReplyType != nil {
return *x.ReplyType
}
return 0
}
func (x *StDoReplyReq) GetFrom() int32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
func (x *StDoReplyReq) GetSrc() int32 {
if x != nil && x.Src != nil {
return *x.Src
}
return 0
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
ReplyType proto.Option[uint32] `protobuf:"varint,2,opt"`
Reply *StReply `protobuf:"bytes,3,opt"`
Comment *StComment `protobuf:"bytes,4,opt"`
Feed *StFeed `protobuf:"bytes,5,opt"`
From proto.Option[int32] `protobuf:"varint,6,opt"`
BusiReqData []byte `protobuf:"bytes,7,opt"`
Src proto.Option[int32] `protobuf:"varint,8,opt"`
}
type StDoReplyRsp struct {
@ -258,19 +108,12 @@ type StDoReplyRsp struct {
}
type StDoSecurityReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"`
Comment *StComment `protobuf:"bytes,3,opt"`
Reply *StReply `protobuf:"bytes,4,opt"`
Poster *StUser `protobuf:"bytes,5,opt"`
SecType *int32 `protobuf:"varint,6,opt"`
}
func (x *StDoSecurityReq) GetSecType() int32 {
if x != nil && x.SecType != nil {
return *x.SecType
}
return 0
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"`
Comment *StComment `protobuf:"bytes,3,opt"`
Reply *StReply `protobuf:"bytes,4,opt"`
Poster *StUser `protobuf:"bytes,5,opt"`
SecType proto.Option[int32] `protobuf:"varint,6,opt"`
}
type StDoSecurityRsp struct {
@ -278,33 +121,12 @@ type StDoSecurityRsp struct {
}
type StModifyFeedReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"`
MBitmap *uint64 `protobuf:"varint,3,opt"`
From *int32 `protobuf:"varint,4,opt"`
Src *int32 `protobuf:"varint,5,opt"`
ModifyFeedExtInfo []*CommonEntry `protobuf:"bytes,6,rep"`
}
func (x *StModifyFeedReq) GetMBitmap() uint64 {
if x != nil && x.MBitmap != nil {
return *x.MBitmap
}
return 0
}
func (x *StModifyFeedReq) GetFrom() int32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
func (x *StModifyFeedReq) GetSrc() int32 {
if x != nil && x.Src != nil {
return *x.Src
}
return 0
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"`
MBitmap proto.Option[uint64] `protobuf:"varint,3,opt"`
From proto.Option[int32] `protobuf:"varint,4,opt"`
Src proto.Option[int32] `protobuf:"varint,5,opt"`
ModifyFeedExtInfo []*CommonEntry `protobuf:"bytes,6,rep"`
}
type StModifyFeedRsp struct {
@ -314,35 +136,14 @@ type StModifyFeedRsp struct {
}
type StPublishFeedReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"`
BusiReqData []byte `protobuf:"bytes,3,opt"`
From *int32 `protobuf:"varint,4,opt"`
Src *int32 `protobuf:"varint,5,opt"`
StoreFeedExtInfo []*CommonEntry `protobuf:"bytes,6,rep"`
JsonFeed *string `protobuf:"bytes,7,opt"`
ClientContent *StClientContent `protobuf:"bytes,8,opt"`
}
func (x *StPublishFeedReq) GetFrom() int32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
func (x *StPublishFeedReq) GetSrc() int32 {
if x != nil && x.Src != nil {
return *x.Src
}
return 0
}
func (x *StPublishFeedReq) GetJsonFeed() string {
if x != nil && x.JsonFeed != nil {
return *x.JsonFeed
}
return ""
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"`
BusiReqData []byte `protobuf:"bytes,3,opt"`
From proto.Option[int32] `protobuf:"varint,4,opt"`
Src proto.Option[int32] `protobuf:"varint,5,opt"`
StoreFeedExtInfo []*CommonEntry `protobuf:"bytes,6,rep"`
JsonFeed proto.Option[string] `protobuf:"bytes,7,opt"`
ClientContent *StClientContent `protobuf:"bytes,8,opt"`
}
type StPublishFeedRsp struct {

View File

@ -3,6 +3,10 @@
package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
type BatchGetMsgRspCountReq struct {
GuildMsgList []*GuildMsg `protobuf:"bytes,1,rep"`
}
@ -12,94 +16,31 @@ type BatchGetMsgRspCountRsp struct {
}
type SvrChannelMsg struct {
ChannelId *uint64 `protobuf:"varint,1,opt"`
Id []*MsgId `protobuf:"bytes,2,rep"`
}
func (x *SvrChannelMsg) GetChannelId() uint64 {
if x != nil && x.ChannelId != nil {
return *x.ChannelId
}
return 0
ChannelId proto.Option[uint64] `protobuf:"varint,1,opt"`
Id []*MsgId `protobuf:"bytes,2,rep"`
}
type ChannelMsgInfo struct {
ChannelId *uint64 `protobuf:"varint,1,opt"`
RespData []*MsgRespData `protobuf:"bytes,2,rep"`
}
func (x *ChannelMsgInfo) GetChannelId() uint64 {
if x != nil && x.ChannelId != nil {
return *x.ChannelId
}
return 0
ChannelId proto.Option[uint64] `protobuf:"varint,1,opt"`
RespData []*MsgRespData `protobuf:"bytes,2,rep"`
}
type EmojiReaction struct {
EmojiId *string `protobuf:"bytes,1,opt"`
EmojiType *uint64 `protobuf:"varint,2,opt"`
Cnt *uint64 `protobuf:"varint,3,opt"`
IsClicked *bool `protobuf:"varint,4,opt"`
IsDefaultEmoji *bool `protobuf:"varint,10001,opt"`
}
func (x *EmojiReaction) GetEmojiId() string {
if x != nil && x.EmojiId != nil {
return *x.EmojiId
}
return ""
}
func (x *EmojiReaction) GetEmojiType() uint64 {
if x != nil && x.EmojiType != nil {
return *x.EmojiType
}
return 0
}
func (x *EmojiReaction) GetCnt() uint64 {
if x != nil && x.Cnt != nil {
return *x.Cnt
}
return 0
}
func (x *EmojiReaction) GetIsClicked() bool {
if x != nil && x.IsClicked != nil {
return *x.IsClicked
}
return false
}
func (x *EmojiReaction) GetIsDefaultEmoji() bool {
if x != nil && x.IsDefaultEmoji != nil {
return *x.IsDefaultEmoji
}
return false
EmojiId proto.Option[string] `protobuf:"bytes,1,opt"`
EmojiType proto.Option[uint64] `protobuf:"varint,2,opt"`
Cnt proto.Option[uint64] `protobuf:"varint,3,opt"`
IsClicked proto.Option[bool] `protobuf:"varint,4,opt"`
IsDefaultEmoji proto.Option[bool] `protobuf:"varint,10001,opt"`
}
type GuildMsg struct {
GuildId *uint64 `protobuf:"varint,1,opt"`
ChannelMsgList []*SvrChannelMsg `protobuf:"bytes,2,rep"`
}
func (x *GuildMsg) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelMsgList []*SvrChannelMsg `protobuf:"bytes,2,rep"`
}
type GuildMsgInfo struct {
GuildId *uint64 `protobuf:"varint,1,opt"`
ChannelMsgInfoList []*ChannelMsgInfo `protobuf:"bytes,2,rep"`
}
func (x *GuildMsgInfo) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelMsgInfoList []*ChannelMsgInfo `protobuf:"bytes,2,rep"`
}
type MsgCnt struct {
@ -108,22 +49,8 @@ type MsgCnt struct {
}
type MsgId struct {
Version *uint64 `protobuf:"varint,1,opt"`
Seq *uint64 `protobuf:"varint,2,opt"`
}
func (x *MsgId) GetVersion() uint64 {
if x != nil && x.Version != nil {
return *x.Version
}
return 0
}
func (x *MsgId) GetSeq() uint64 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
Version proto.Option[uint64] `protobuf:"varint,1,opt"`
Seq proto.Option[uint64] `protobuf:"varint,2,opt"`
}
type MsgRespData struct {

View File

@ -5,262 +5,74 @@ package channel
import (
msg "github.com/Mrs4s/MiraiGo/client/pb/msg"
proto "github.com/RomiChan/protobuf/proto"
)
type ChannelContentHead struct {
Type *uint64 `protobuf:"varint,1,opt"`
SubType *uint64 `protobuf:"varint,2,opt"`
Random *uint64 `protobuf:"varint,3,opt"`
Seq *uint64 `protobuf:"varint,4,opt"`
CntSeq *uint64 `protobuf:"varint,5,opt"`
Time *uint64 `protobuf:"varint,6,opt"`
Meta []byte `protobuf:"bytes,7,opt"`
}
func (x *ChannelContentHead) GetType() uint64 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *ChannelContentHead) GetSubType() uint64 {
if x != nil && x.SubType != nil {
return *x.SubType
}
return 0
}
func (x *ChannelContentHead) GetRandom() uint64 {
if x != nil && x.Random != nil {
return *x.Random
}
return 0
}
func (x *ChannelContentHead) GetSeq() uint64 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *ChannelContentHead) GetCntSeq() uint64 {
if x != nil && x.CntSeq != nil {
return *x.CntSeq
}
return 0
}
func (x *ChannelContentHead) GetTime() uint64 {
if x != nil && x.Time != nil {
return *x.Time
}
return 0
Type proto.Option[uint64] `protobuf:"varint,1,opt"`
SubType proto.Option[uint64] `protobuf:"varint,2,opt"`
Random proto.Option[uint64] `protobuf:"varint,3,opt"`
Seq proto.Option[uint64] `protobuf:"varint,4,opt"`
CntSeq proto.Option[uint64] `protobuf:"varint,5,opt"`
Time proto.Option[uint64] `protobuf:"varint,6,opt"`
Meta []byte `protobuf:"bytes,7,opt"`
}
type DirectMessageMember struct {
Uin *uint64 `protobuf:"varint,1,opt"`
Tinyid *uint64 `protobuf:"varint,2,opt"`
SourceGuildId *uint64 `protobuf:"varint,3,opt"`
SourceGuildName []byte `protobuf:"bytes,4,opt"`
NickName []byte `protobuf:"bytes,5,opt"`
MemberName []byte `protobuf:"bytes,6,opt"`
NotifyType *uint32 `protobuf:"varint,7,opt"`
}
func (x *DirectMessageMember) GetUin() uint64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *DirectMessageMember) GetTinyid() uint64 {
if x != nil && x.Tinyid != nil {
return *x.Tinyid
}
return 0
}
func (x *DirectMessageMember) GetSourceGuildId() uint64 {
if x != nil && x.SourceGuildId != nil {
return *x.SourceGuildId
}
return 0
}
func (x *DirectMessageMember) GetNotifyType() uint32 {
if x != nil && x.NotifyType != nil {
return *x.NotifyType
}
return 0
Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
Tinyid proto.Option[uint64] `protobuf:"varint,2,opt"`
SourceGuildId proto.Option[uint64] `protobuf:"varint,3,opt"`
SourceGuildName []byte `protobuf:"bytes,4,opt"`
NickName []byte `protobuf:"bytes,5,opt"`
MemberName []byte `protobuf:"bytes,6,opt"`
NotifyType proto.Option[uint32] `protobuf:"varint,7,opt"`
}
type ChannelEvent struct {
Type *uint64 `protobuf:"varint,1,opt"`
Version *uint64 `protobuf:"varint,2,opt"`
OpInfo *ChannelMsgOpInfo `protobuf:"bytes,3,opt"`
}
func (x *ChannelEvent) GetType() uint64 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *ChannelEvent) GetVersion() uint64 {
if x != nil && x.Version != nil {
return *x.Version
}
return 0
Type proto.Option[uint64] `protobuf:"varint,1,opt"`
Version proto.Option[uint64] `protobuf:"varint,2,opt"`
OpInfo *ChannelMsgOpInfo `protobuf:"bytes,3,opt"`
}
type ChannelExtInfo struct {
FromNick []byte `protobuf:"bytes,1,opt"`
GuildName []byte `protobuf:"bytes,2,opt"`
ChannelName []byte `protobuf:"bytes,3,opt"`
Visibility *uint32 `protobuf:"varint,4,opt"`
NotifyType *uint32 `protobuf:"varint,5,opt"`
OfflineFlag *uint32 `protobuf:"varint,6,opt"`
NameType *uint32 `protobuf:"varint,7,opt"`
Visibility proto.Option[uint32] `protobuf:"varint,4,opt"`
NotifyType proto.Option[uint32] `protobuf:"varint,5,opt"`
OfflineFlag proto.Option[uint32] `protobuf:"varint,6,opt"`
NameType proto.Option[uint32] `protobuf:"varint,7,opt"`
MemberName []byte `protobuf:"bytes,8,opt"`
Timestamp *uint32 `protobuf:"varint,9,opt"`
EventVersion *uint64 `protobuf:"varint,10,opt"`
Timestamp proto.Option[uint32] `protobuf:"varint,9,opt"`
EventVersion proto.Option[uint64] `protobuf:"varint,10,opt"`
Events []*ChannelEvent `protobuf:"bytes,11,rep"`
FromRoleInfo *ChannelRole `protobuf:"bytes,12,opt"`
FreqLimitInfo *ChannelFreqLimitInfo `protobuf:"bytes,13,opt"`
DirectMessageMember []*DirectMessageMember `protobuf:"bytes,14,rep"`
}
func (x *ChannelExtInfo) GetVisibility() uint32 {
if x != nil && x.Visibility != nil {
return *x.Visibility
}
return 0
}
func (x *ChannelExtInfo) GetNotifyType() uint32 {
if x != nil && x.NotifyType != nil {
return *x.NotifyType
}
return 0
}
func (x *ChannelExtInfo) GetOfflineFlag() uint32 {
if x != nil && x.OfflineFlag != nil {
return *x.OfflineFlag
}
return 0
}
func (x *ChannelExtInfo) GetNameType() uint32 {
if x != nil && x.NameType != nil {
return *x.NameType
}
return 0
}
func (x *ChannelExtInfo) GetTimestamp() uint32 {
if x != nil && x.Timestamp != nil {
return *x.Timestamp
}
return 0
}
func (x *ChannelExtInfo) GetEventVersion() uint64 {
if x != nil && x.EventVersion != nil {
return *x.EventVersion
}
return 0
}
type ChannelFreqLimitInfo struct {
IsLimited *uint32 `protobuf:"varint,1,opt"`
LeftCount *uint32 `protobuf:"varint,2,opt"`
LimitTimestamp *uint64 `protobuf:"varint,3,opt"`
}
func (x *ChannelFreqLimitInfo) GetIsLimited() uint32 {
if x != nil && x.IsLimited != nil {
return *x.IsLimited
}
return 0
}
func (x *ChannelFreqLimitInfo) GetLeftCount() uint32 {
if x != nil && x.LeftCount != nil {
return *x.LeftCount
}
return 0
}
func (x *ChannelFreqLimitInfo) GetLimitTimestamp() uint64 {
if x != nil && x.LimitTimestamp != nil {
return *x.LimitTimestamp
}
return 0
IsLimited proto.Option[uint32] `protobuf:"varint,1,opt"`
LeftCount proto.Option[uint32] `protobuf:"varint,2,opt"`
LimitTimestamp proto.Option[uint64] `protobuf:"varint,3,opt"`
}
type ChannelInfo struct {
Id *uint64 `protobuf:"varint,1,opt"`
Name []byte `protobuf:"bytes,2,opt"`
Color *uint32 `protobuf:"varint,3,opt"`
Hoist *uint32 `protobuf:"varint,4,opt"`
}
func (x *ChannelInfo) GetId() uint64 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *ChannelInfo) GetColor() uint32 {
if x != nil && x.Color != nil {
return *x.Color
}
return 0
}
func (x *ChannelInfo) GetHoist() uint32 {
if x != nil && x.Hoist != nil {
return *x.Hoist
}
return 0
Id proto.Option[uint64] `protobuf:"varint,1,opt"`
Name []byte `protobuf:"bytes,2,opt"`
Color proto.Option[uint32] `protobuf:"varint,3,opt"`
Hoist proto.Option[uint32] `protobuf:"varint,4,opt"`
}
type ChannelLoginSig struct {
Type *uint32 `protobuf:"varint,1,opt"`
Sig []byte `protobuf:"bytes,2,opt"`
Appid *uint32 `protobuf:"varint,3,opt"`
}
func (x *ChannelLoginSig) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *ChannelLoginSig) GetAppid() uint32 {
if x != nil && x.Appid != nil {
return *x.Appid
}
return 0
Type proto.Option[uint32] `protobuf:"varint,1,opt"`
Sig []byte `protobuf:"bytes,2,opt"`
Appid proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type ChannelMeta struct {
FromUin *uint64 `protobuf:"varint,1,opt"`
LoginSig *ChannelLoginSig `protobuf:"bytes,2,opt"`
}
func (x *ChannelMeta) GetFromUin() uint64 {
if x != nil && x.FromUin != nil {
return *x.FromUin
}
return 0
FromUin proto.Option[uint64] `protobuf:"varint,1,opt"`
LoginSig *ChannelLoginSig `protobuf:"bytes,2,opt"`
}
type ChannelMsgContent struct {
@ -274,72 +86,16 @@ type ChannelMsgCtrlHead struct {
IncludeUin [][]byte `protobuf:"bytes,1,rep"`
// repeated uint64 excludeUin = 2; // bytes?
// repeated uint64 featureid = 3;
OfflineFlag *uint32 `protobuf:"varint,4,opt"`
Visibility *uint32 `protobuf:"varint,5,opt"`
CtrlFlag *uint64 `protobuf:"varint,6,opt"`
Events []*ChannelEvent `protobuf:"bytes,7,rep"`
Level *uint64 `protobuf:"varint,8,opt"`
PersonalLevels []*PersonalLevel `protobuf:"bytes,9,rep"`
GuildSyncSeq *uint64 `protobuf:"varint,10,opt"`
MemberNum *uint32 `protobuf:"varint,11,opt"`
ChannelType *uint32 `protobuf:"varint,12,opt"`
PrivateType *uint32 `protobuf:"varint,13,opt"`
}
func (x *ChannelMsgCtrlHead) GetOfflineFlag() uint32 {
if x != nil && x.OfflineFlag != nil {
return *x.OfflineFlag
}
return 0
}
func (x *ChannelMsgCtrlHead) GetVisibility() uint32 {
if x != nil && x.Visibility != nil {
return *x.Visibility
}
return 0
}
func (x *ChannelMsgCtrlHead) GetCtrlFlag() uint64 {
if x != nil && x.CtrlFlag != nil {
return *x.CtrlFlag
}
return 0
}
func (x *ChannelMsgCtrlHead) GetLevel() uint64 {
if x != nil && x.Level != nil {
return *x.Level
}
return 0
}
func (x *ChannelMsgCtrlHead) GetGuildSyncSeq() uint64 {
if x != nil && x.GuildSyncSeq != nil {
return *x.GuildSyncSeq
}
return 0
}
func (x *ChannelMsgCtrlHead) GetMemberNum() uint32 {
if x != nil && x.MemberNum != nil {
return *x.MemberNum
}
return 0
}
func (x *ChannelMsgCtrlHead) GetChannelType() uint32 {
if x != nil && x.ChannelType != nil {
return *x.ChannelType
}
return 0
}
func (x *ChannelMsgCtrlHead) GetPrivateType() uint32 {
if x != nil && x.PrivateType != nil {
return *x.PrivateType
}
return 0
OfflineFlag proto.Option[uint32] `protobuf:"varint,4,opt"`
Visibility proto.Option[uint32] `protobuf:"varint,5,opt"`
CtrlFlag proto.Option[uint64] `protobuf:"varint,6,opt"`
Events []*ChannelEvent `protobuf:"bytes,7,rep"`
Level proto.Option[uint64] `protobuf:"varint,8,opt"`
PersonalLevels []*PersonalLevel `protobuf:"bytes,9,rep"`
GuildSyncSeq proto.Option[uint64] `protobuf:"varint,10,opt"`
MemberNum proto.Option[uint32] `protobuf:"varint,11,opt"`
ChannelType proto.Option[uint32] `protobuf:"varint,12,opt"`
PrivateType proto.Option[uint32] `protobuf:"varint,13,opt"`
}
type ChannelMsgHead struct {
@ -348,153 +104,34 @@ type ChannelMsgHead struct {
}
type ChannelMsgMeta struct {
AtAllSeq *uint64 `protobuf:"varint,1,opt"`
}
func (x *ChannelMsgMeta) GetAtAllSeq() uint64 {
if x != nil && x.AtAllSeq != nil {
return *x.AtAllSeq
}
return 0
AtAllSeq proto.Option[uint64] `protobuf:"varint,1,opt"`
}
type ChannelMsgOpInfo struct {
OperatorTinyid *uint64 `protobuf:"varint,1,opt"`
OperatorRole *uint64 `protobuf:"varint,2,opt"`
Reason *uint64 `protobuf:"varint,3,opt"`
Timestamp *uint64 `protobuf:"varint,4,opt"`
AtType *uint64 `protobuf:"varint,5,opt"`
}
func (x *ChannelMsgOpInfo) GetOperatorTinyid() uint64 {
if x != nil && x.OperatorTinyid != nil {
return *x.OperatorTinyid
}
return 0
}
func (x *ChannelMsgOpInfo) GetOperatorRole() uint64 {
if x != nil && x.OperatorRole != nil {
return *x.OperatorRole
}
return 0
}
func (x *ChannelMsgOpInfo) GetReason() uint64 {
if x != nil && x.Reason != nil {
return *x.Reason
}
return 0
}
func (x *ChannelMsgOpInfo) GetTimestamp() uint64 {
if x != nil && x.Timestamp != nil {
return *x.Timestamp
}
return 0
}
func (x *ChannelMsgOpInfo) GetAtType() uint64 {
if x != nil && x.AtType != nil {
return *x.AtType
}
return 0
OperatorTinyid proto.Option[uint64] `protobuf:"varint,1,opt"`
OperatorRole proto.Option[uint64] `protobuf:"varint,2,opt"`
Reason proto.Option[uint64] `protobuf:"varint,3,opt"`
Timestamp proto.Option[uint64] `protobuf:"varint,4,opt"`
AtType proto.Option[uint64] `protobuf:"varint,5,opt"`
}
type PersonalLevel struct {
ToUin *uint64 `protobuf:"varint,1,opt"`
Level *uint64 `protobuf:"varint,2,opt"`
}
func (x *PersonalLevel) GetToUin() uint64 {
if x != nil && x.ToUin != nil {
return *x.ToUin
}
return 0
}
func (x *PersonalLevel) GetLevel() uint64 {
if x != nil && x.Level != nil {
return *x.Level
}
return 0
ToUin proto.Option[uint64] `protobuf:"varint,1,opt"`
Level proto.Option[uint64] `protobuf:"varint,2,opt"`
}
type ChannelRole struct {
Id *uint64 `protobuf:"varint,1,opt"`
Info []byte `protobuf:"bytes,2,opt"`
Flag *uint32 `protobuf:"varint,3,opt"`
}
func (x *ChannelRole) GetId() uint64 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *ChannelRole) GetFlag() uint32 {
if x != nil && x.Flag != nil {
return *x.Flag
}
return 0
Id proto.Option[uint64] `protobuf:"varint,1,opt"`
Info []byte `protobuf:"bytes,2,opt"`
Flag proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type ChannelRoutingHead struct {
GuildId *uint64 `protobuf:"varint,1,opt"`
ChannelId *uint64 `protobuf:"varint,2,opt"`
FromUin *uint64 `protobuf:"varint,3,opt"`
FromTinyid *uint64 `protobuf:"varint,4,opt"`
GuildCode *uint64 `protobuf:"varint,5,opt"`
FromAppid *uint64 `protobuf:"varint,6,opt"`
DirectMessageFlag *uint32 `protobuf:"varint,7,opt"`
}
func (x *ChannelRoutingHead) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
func (x *ChannelRoutingHead) GetChannelId() uint64 {
if x != nil && x.ChannelId != nil {
return *x.ChannelId
}
return 0
}
func (x *ChannelRoutingHead) GetFromUin() uint64 {
if x != nil && x.FromUin != nil {
return *x.FromUin
}
return 0
}
func (x *ChannelRoutingHead) GetFromTinyid() uint64 {
if x != nil && x.FromTinyid != nil {
return *x.FromTinyid
}
return 0
}
func (x *ChannelRoutingHead) GetGuildCode() uint64 {
if x != nil && x.GuildCode != nil {
return *x.GuildCode
}
return 0
}
func (x *ChannelRoutingHead) GetFromAppid() uint64 {
if x != nil && x.FromAppid != nil {
return *x.FromAppid
}
return 0
}
func (x *ChannelRoutingHead) GetDirectMessageFlag() uint32 {
if x != nil && x.DirectMessageFlag != nil {
return *x.DirectMessageFlag
}
return 0
GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelId proto.Option[uint64] `protobuf:"varint,2,opt"`
FromUin proto.Option[uint64] `protobuf:"varint,3,opt"`
FromTinyid proto.Option[uint64] `protobuf:"varint,4,opt"`
GuildCode proto.Option[uint64] `protobuf:"varint,5,opt"`
FromAppid proto.Option[uint64] `protobuf:"varint,6,opt"`
DirectMessageFlag proto.Option[uint32] `protobuf:"varint,7,opt"`
}

View File

@ -3,47 +3,23 @@
package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
type FocusInfo struct {
ChannelIdList []uint64 `protobuf:"varint,1,rep"`
}
type MsgOnlinePush struct {
Msgs []*ChannelMsgContent `protobuf:"bytes,1,rep"`
GeneralFlag *uint32 `protobuf:"varint,2,opt"`
NeedResp *uint32 `protobuf:"varint,3,opt"`
GeneralFlag proto.Option[uint32] `protobuf:"varint,2,opt"`
NeedResp proto.Option[uint32] `protobuf:"varint,3,opt"`
ServerBuf []byte `protobuf:"bytes,4,opt"`
CompressFlag *uint32 `protobuf:"varint,5,opt"`
CompressFlag proto.Option[uint32] `protobuf:"varint,5,opt"`
CompressMsg []byte `protobuf:"bytes,6,opt"`
FocusInfo *FocusInfo `protobuf:"bytes,7,opt"`
HugeFlag *uint32 `protobuf:"varint,8,opt"`
}
func (x *MsgOnlinePush) GetGeneralFlag() uint32 {
if x != nil && x.GeneralFlag != nil {
return *x.GeneralFlag
}
return 0
}
func (x *MsgOnlinePush) GetNeedResp() uint32 {
if x != nil && x.NeedResp != nil {
return *x.NeedResp
}
return 0
}
func (x *MsgOnlinePush) GetCompressFlag() uint32 {
if x != nil && x.CompressFlag != nil {
return *x.CompressFlag
}
return 0
}
func (x *MsgOnlinePush) GetHugeFlag() uint32 {
if x != nil && x.HugeFlag != nil {
return *x.HugeFlag
}
return 0
HugeFlag proto.Option[uint32] `protobuf:"varint,8,opt"`
}
type MsgPushResp struct {
@ -55,21 +31,7 @@ type PressMsg struct {
}
type ServerBuf struct {
SvrIp *uint32 `protobuf:"varint,1,opt"`
SvrPort *uint32 `protobuf:"varint,2,opt"`
EchoKey []byte `protobuf:"bytes,3,opt"`
}
func (x *ServerBuf) GetSvrIp() uint32 {
if x != nil && x.SvrIp != nil {
return *x.SvrIp
}
return 0
}
func (x *ServerBuf) GetSvrPort() uint32 {
if x != nil && x.SvrPort != nil {
return *x.SvrPort
}
return 0
SvrIp proto.Option[uint32] `protobuf:"varint,1,opt"`
SvrPort proto.Option[uint32] `protobuf:"varint,2,opt"`
EchoKey []byte `protobuf:"bytes,3,opt"`
}

View File

@ -5,6 +5,7 @@ package channel
import (
msg "github.com/Mrs4s/MiraiGo/client/pb/msg"
proto "github.com/RomiChan/protobuf/proto"
)
type DF62ReqBody struct {
@ -12,54 +13,19 @@ type DF62ReqBody struct {
}
type DF62RspBody struct {
Result *uint32 `protobuf:"varint,1,opt"`
Result proto.Option[uint32] `protobuf:"varint,1,opt"`
Errmsg []byte `protobuf:"bytes,2,opt"`
SendTime *uint32 `protobuf:"varint,3,opt"`
SendTime proto.Option[uint32] `protobuf:"varint,3,opt"`
Head *ChannelMsgHead `protobuf:"bytes,4,opt"`
ErrType *uint32 `protobuf:"varint,5,opt"`
ErrType proto.Option[uint32] `protobuf:"varint,5,opt"`
TransSvrInfo *TransSvrInfo `protobuf:"bytes,6,opt"`
FreqLimitInfo *ChannelFreqLimitInfo `protobuf:"bytes,7,opt"`
Body *msg.MessageBody `protobuf:"bytes,8,opt"`
}
func (x *DF62RspBody) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *DF62RspBody) GetSendTime() uint32 {
if x != nil && x.SendTime != nil {
return *x.SendTime
}
return 0
}
func (x *DF62RspBody) GetErrType() uint32 {
if x != nil && x.ErrType != nil {
return *x.ErrType
}
return 0
}
type TransSvrInfo struct {
SubType *uint32 `protobuf:"varint,1,opt"`
RetCode *int32 `protobuf:"varint,2,opt"`
ErrMsg []byte `protobuf:"bytes,3,opt"`
TransInfo []byte `protobuf:"bytes,4,opt"`
}
func (x *TransSvrInfo) GetSubType() uint32 {
if x != nil && x.SubType != nil {
return *x.SubType
}
return 0
}
func (x *TransSvrInfo) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
SubType proto.Option[uint32] `protobuf:"varint,1,opt"`
RetCode proto.Option[int32] `protobuf:"varint,2,opt"`
ErrMsg []byte `protobuf:"bytes,3,opt"`
TransInfo []byte `protobuf:"bytes,4,opt"`
}

File diff suppressed because it is too large Load Diff

View File

@ -3,499 +3,132 @@
package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
type ChannelMsg struct {
GuildId *uint64 `protobuf:"varint,1,opt"`
ChannelId *uint64 `protobuf:"varint,2,opt"`
Result *uint32 `protobuf:"varint,3,opt"`
RspBeginSeq *uint64 `protobuf:"varint,4,opt"`
RspEndSeq *uint64 `protobuf:"varint,5,opt"`
GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelId proto.Option[uint64] `protobuf:"varint,2,opt"`
Result proto.Option[uint32] `protobuf:"varint,3,opt"`
RspBeginSeq proto.Option[uint64] `protobuf:"varint,4,opt"`
RspEndSeq proto.Option[uint64] `protobuf:"varint,5,opt"`
Msgs []*ChannelMsgContent `protobuf:"bytes,6,rep"`
}
func (x *ChannelMsg) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
func (x *ChannelMsg) GetChannelId() uint64 {
if x != nil && x.ChannelId != nil {
return *x.ChannelId
}
return 0
}
func (x *ChannelMsg) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *ChannelMsg) GetRspBeginSeq() uint64 {
if x != nil && x.RspBeginSeq != nil {
return *x.RspBeginSeq
}
return 0
}
func (x *ChannelMsg) GetRspEndSeq() uint64 {
if x != nil && x.RspEndSeq != nil {
return *x.RspEndSeq
}
return 0
}
type ChannelMsgReq struct {
ChannelParam *ChannelParam `protobuf:"bytes,1,opt"`
WithVersionFlag *uint32 `protobuf:"varint,2,opt"`
DirectMessageFlag *uint32 `protobuf:"varint,3,opt"`
}
func (x *ChannelMsgReq) GetWithVersionFlag() uint32 {
if x != nil && x.WithVersionFlag != nil {
return *x.WithVersionFlag
}
return 0
}
func (x *ChannelMsgReq) GetDirectMessageFlag() uint32 {
if x != nil && x.DirectMessageFlag != nil {
return *x.DirectMessageFlag
}
return 0
ChannelParam *ChannelParam `protobuf:"bytes,1,opt"`
WithVersionFlag proto.Option[uint32] `protobuf:"varint,2,opt"`
DirectMessageFlag proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type ChannelMsgRsp struct {
Result *uint32 `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"`
ChannelMsg *ChannelMsg `protobuf:"bytes,3,opt"`
WithVersionFlag *uint32 `protobuf:"varint,4,opt"`
GetMsgTime *uint64 `protobuf:"varint,5,opt"`
}
func (x *ChannelMsgRsp) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *ChannelMsgRsp) GetWithVersionFlag() uint32 {
if x != nil && x.WithVersionFlag != nil {
return *x.WithVersionFlag
}
return 0
}
func (x *ChannelMsgRsp) GetGetMsgTime() uint64 {
if x != nil && x.GetMsgTime != nil {
return *x.GetMsgTime
}
return 0
Result proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"`
ChannelMsg *ChannelMsg `protobuf:"bytes,3,opt"`
WithVersionFlag proto.Option[uint32] `protobuf:"varint,4,opt"`
GetMsgTime proto.Option[uint64] `protobuf:"varint,5,opt"`
}
type ChannelNode struct {
ChannelId *uint64 `protobuf:"varint,1,opt"`
Seq *uint64 `protobuf:"varint,2,opt"`
CntSeq *uint64 `protobuf:"varint,3,opt"`
Time *uint64 `protobuf:"varint,4,opt"`
MemberReadMsgSeq *uint64 `protobuf:"varint,5,opt"`
MemberReadCntSeq *uint64 `protobuf:"varint,6,opt"`
NotifyType *uint32 `protobuf:"varint,7,opt"`
ChannelName []byte `protobuf:"bytes,8,opt"`
ChannelType *uint32 `protobuf:"varint,9,opt"`
Meta []byte `protobuf:"bytes,10,opt"`
ReadMsgMeta []byte `protobuf:"bytes,11,opt"`
EventTime *uint32 `protobuf:"varint,12,opt"`
}
func (x *ChannelNode) GetChannelId() uint64 {
if x != nil && x.ChannelId != nil {
return *x.ChannelId
}
return 0
}
func (x *ChannelNode) GetSeq() uint64 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *ChannelNode) GetCntSeq() uint64 {
if x != nil && x.CntSeq != nil {
return *x.CntSeq
}
return 0
}
func (x *ChannelNode) GetTime() uint64 {
if x != nil && x.Time != nil {
return *x.Time
}
return 0
}
func (x *ChannelNode) GetMemberReadMsgSeq() uint64 {
if x != nil && x.MemberReadMsgSeq != nil {
return *x.MemberReadMsgSeq
}
return 0
}
func (x *ChannelNode) GetMemberReadCntSeq() uint64 {
if x != nil && x.MemberReadCntSeq != nil {
return *x.MemberReadCntSeq
}
return 0
}
func (x *ChannelNode) GetNotifyType() uint32 {
if x != nil && x.NotifyType != nil {
return *x.NotifyType
}
return 0
}
func (x *ChannelNode) GetChannelType() uint32 {
if x != nil && x.ChannelType != nil {
return *x.ChannelType
}
return 0
}
func (x *ChannelNode) GetEventTime() uint32 {
if x != nil && x.EventTime != nil {
return *x.EventTime
}
return 0
ChannelId proto.Option[uint64] `protobuf:"varint,1,opt"`
Seq proto.Option[uint64] `protobuf:"varint,2,opt"`
CntSeq proto.Option[uint64] `protobuf:"varint,3,opt"`
Time proto.Option[uint64] `protobuf:"varint,4,opt"`
MemberReadMsgSeq proto.Option[uint64] `protobuf:"varint,5,opt"`
MemberReadCntSeq proto.Option[uint64] `protobuf:"varint,6,opt"`
NotifyType proto.Option[uint32] `protobuf:"varint,7,opt"`
ChannelName []byte `protobuf:"bytes,8,opt"`
ChannelType proto.Option[uint32] `protobuf:"varint,9,opt"`
Meta []byte `protobuf:"bytes,10,opt"`
ReadMsgMeta []byte `protobuf:"bytes,11,opt"`
EventTime proto.Option[uint32] `protobuf:"varint,12,opt"`
}
type ChannelParam struct {
GuildId *uint64 `protobuf:"varint,1,opt"`
ChannelId *uint64 `protobuf:"varint,2,opt"`
BeginSeq *uint64 `protobuf:"varint,3,opt"`
EndSeq *uint64 `protobuf:"varint,4,opt"`
Time *uint64 `protobuf:"varint,5,opt"`
Version []uint64 `protobuf:"varint,6,rep"`
Seqs []*MsgCond `protobuf:"bytes,7,rep"`
}
func (x *ChannelParam) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
func (x *ChannelParam) GetChannelId() uint64 {
if x != nil && x.ChannelId != nil {
return *x.ChannelId
}
return 0
}
func (x *ChannelParam) GetBeginSeq() uint64 {
if x != nil && x.BeginSeq != nil {
return *x.BeginSeq
}
return 0
}
func (x *ChannelParam) GetEndSeq() uint64 {
if x != nil && x.EndSeq != nil {
return *x.EndSeq
}
return 0
}
func (x *ChannelParam) GetTime() uint64 {
if x != nil && x.Time != nil {
return *x.Time
}
return 0
GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelId proto.Option[uint64] `protobuf:"varint,2,opt"`
BeginSeq proto.Option[uint64] `protobuf:"varint,3,opt"`
EndSeq proto.Option[uint64] `protobuf:"varint,4,opt"`
Time proto.Option[uint64] `protobuf:"varint,5,opt"`
Version []uint64 `protobuf:"varint,6,rep"`
Seqs []*MsgCond `protobuf:"bytes,7,rep"`
}
type DirectMessageSource struct {
TinyId *uint64 `protobuf:"varint,1,opt"`
GuildId *uint64 `protobuf:"varint,2,opt"`
GuildName []byte `protobuf:"bytes,3,opt"`
MemberName []byte `protobuf:"bytes,4,opt"`
NickName []byte `protobuf:"bytes,5,opt"`
}
func (x *DirectMessageSource) GetTinyId() uint64 {
if x != nil && x.TinyId != nil {
return *x.TinyId
}
return 0
}
func (x *DirectMessageSource) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
TinyId proto.Option[uint64] `protobuf:"varint,1,opt"`
GuildId proto.Option[uint64] `protobuf:"varint,2,opt"`
GuildName []byte `protobuf:"bytes,3,opt"`
MemberName []byte `protobuf:"bytes,4,opt"`
NickName []byte `protobuf:"bytes,5,opt"`
}
type FirstViewMsg struct {
PushFlag *uint32 `protobuf:"varint,1,opt"`
Seq *uint32 `protobuf:"varint,2,opt"`
GuildNodes []*GuildNode `protobuf:"bytes,3,rep"`
ChannelMsgs []*ChannelMsg `protobuf:"bytes,4,rep"`
GetMsgTime *uint64 `protobuf:"varint,5,opt"`
DirectMessageGuildNodes []*GuildNode `protobuf:"bytes,6,rep"`
}
func (x *FirstViewMsg) GetPushFlag() uint32 {
if x != nil && x.PushFlag != nil {
return *x.PushFlag
}
return 0
}
func (x *FirstViewMsg) GetSeq() uint32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *FirstViewMsg) GetGetMsgTime() uint64 {
if x != nil && x.GetMsgTime != nil {
return *x.GetMsgTime
}
return 0
PushFlag proto.Option[uint32] `protobuf:"varint,1,opt"`
Seq proto.Option[uint32] `protobuf:"varint,2,opt"`
GuildNodes []*GuildNode `protobuf:"bytes,3,rep"`
ChannelMsgs []*ChannelMsg `protobuf:"bytes,4,rep"`
GetMsgTime proto.Option[uint64] `protobuf:"varint,5,opt"`
DirectMessageGuildNodes []*GuildNode `protobuf:"bytes,6,rep"`
}
type FirstViewReq struct {
LastMsgTime *uint64 `protobuf:"varint,1,opt"`
UdcFlag *uint32 `protobuf:"varint,2,opt"`
Seq *uint32 `protobuf:"varint,3,opt"`
DirectMessageFlag *uint32 `protobuf:"varint,4,opt"`
}
func (x *FirstViewReq) GetLastMsgTime() uint64 {
if x != nil && x.LastMsgTime != nil {
return *x.LastMsgTime
}
return 0
}
func (x *FirstViewReq) GetUdcFlag() uint32 {
if x != nil && x.UdcFlag != nil {
return *x.UdcFlag
}
return 0
}
func (x *FirstViewReq) GetSeq() uint32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *FirstViewReq) GetDirectMessageFlag() uint32 {
if x != nil && x.DirectMessageFlag != nil {
return *x.DirectMessageFlag
}
return 0
LastMsgTime proto.Option[uint64] `protobuf:"varint,1,opt"`
UdcFlag proto.Option[uint32] `protobuf:"varint,2,opt"`
Seq proto.Option[uint32] `protobuf:"varint,3,opt"`
DirectMessageFlag proto.Option[uint32] `protobuf:"varint,4,opt"`
}
type FirstViewRsp struct {
Result *uint32 `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"`
Seq *uint32 `protobuf:"varint,3,opt"`
UdcFlag *uint32 `protobuf:"varint,4,opt"`
GuildCount *uint32 `protobuf:"varint,5,opt"`
SelfTinyid *uint64 `protobuf:"varint,6,opt"`
DirectMessageSwitch *uint32 `protobuf:"varint,7,opt"`
DirectMessageGuildCount *uint32 `protobuf:"varint,8,opt"`
}
func (x *FirstViewRsp) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *FirstViewRsp) GetSeq() uint32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *FirstViewRsp) GetUdcFlag() uint32 {
if x != nil && x.UdcFlag != nil {
return *x.UdcFlag
}
return 0
}
func (x *FirstViewRsp) GetGuildCount() uint32 {
if x != nil && x.GuildCount != nil {
return *x.GuildCount
}
return 0
}
func (x *FirstViewRsp) GetSelfTinyid() uint64 {
if x != nil && x.SelfTinyid != nil {
return *x.SelfTinyid
}
return 0
}
func (x *FirstViewRsp) GetDirectMessageSwitch() uint32 {
if x != nil && x.DirectMessageSwitch != nil {
return *x.DirectMessageSwitch
}
return 0
}
func (x *FirstViewRsp) GetDirectMessageGuildCount() uint32 {
if x != nil && x.DirectMessageGuildCount != nil {
return *x.DirectMessageGuildCount
}
return 0
Result proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"`
Seq proto.Option[uint32] `protobuf:"varint,3,opt"`
UdcFlag proto.Option[uint32] `protobuf:"varint,4,opt"`
GuildCount proto.Option[uint32] `protobuf:"varint,5,opt"`
SelfTinyid proto.Option[uint64] `protobuf:"varint,6,opt"`
DirectMessageSwitch proto.Option[uint32] `protobuf:"varint,7,opt"`
DirectMessageGuildCount proto.Option[uint32] `protobuf:"varint,8,opt"`
}
type GuildNode struct {
GuildId *uint64 `protobuf:"varint,1,opt"`
GuildCode *uint64 `protobuf:"varint,2,opt"`
GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
GuildCode proto.Option[uint64] `protobuf:"varint,2,opt"`
ChannelNodes []*ChannelNode `protobuf:"bytes,3,rep"`
GuildName []byte `protobuf:"bytes,4,opt"`
PeerSource *DirectMessageSource `protobuf:"bytes,5,opt"`
}
func (x *GuildNode) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
func (x *GuildNode) GetGuildCode() uint64 {
if x != nil && x.GuildCode != nil {
return *x.GuildCode
}
return 0
}
type MsgCond struct {
Seq *uint64 `protobuf:"varint,1,opt"`
EventVersion *uint64 `protobuf:"varint,2,opt"`
}
func (x *MsgCond) GetSeq() uint64 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *MsgCond) GetEventVersion() uint64 {
if x != nil && x.EventVersion != nil {
return *x.EventVersion
}
return 0
Seq proto.Option[uint64] `protobuf:"varint,1,opt"`
EventVersion proto.Option[uint64] `protobuf:"varint,2,opt"`
}
type MultiChannelMsg struct {
PushFlag *uint32 `protobuf:"varint,1,opt"`
Seq *uint32 `protobuf:"varint,2,opt"`
ChannelMsgs []*ChannelMsg `protobuf:"bytes,3,rep"`
GetMsgTime *uint64 `protobuf:"varint,4,opt"`
}
func (x *MultiChannelMsg) GetPushFlag() uint32 {
if x != nil && x.PushFlag != nil {
return *x.PushFlag
}
return 0
}
func (x *MultiChannelMsg) GetSeq() uint32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *MultiChannelMsg) GetGetMsgTime() uint64 {
if x != nil && x.GetMsgTime != nil {
return *x.GetMsgTime
}
return 0
PushFlag proto.Option[uint32] `protobuf:"varint,1,opt"`
Seq proto.Option[uint32] `protobuf:"varint,2,opt"`
ChannelMsgs []*ChannelMsg `protobuf:"bytes,3,rep"`
GetMsgTime proto.Option[uint64] `protobuf:"varint,4,opt"`
}
type MultiChannelMsgReq struct {
ChannelParams []*ChannelParam `protobuf:"bytes,1,rep"`
Seq *uint32 `protobuf:"varint,2,opt"`
DirectMessageFlag *uint32 `protobuf:"varint,3,opt"`
}
func (x *MultiChannelMsgReq) GetSeq() uint32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *MultiChannelMsgReq) GetDirectMessageFlag() uint32 {
if x != nil && x.DirectMessageFlag != nil {
return *x.DirectMessageFlag
}
return 0
ChannelParams []*ChannelParam `protobuf:"bytes,1,rep"`
Seq proto.Option[uint32] `protobuf:"varint,2,opt"`
DirectMessageFlag proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type MultiChannelMsgRsp struct {
Result *uint32 `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"`
Seq *uint32 `protobuf:"varint,3,opt"`
}
func (x *MultiChannelMsgRsp) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *MultiChannelMsgRsp) GetSeq() uint32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
Result proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"`
Seq proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type ReqBody struct {
ChannelParam *ChannelParam `protobuf:"bytes,1,opt"`
DirectMessageFlag *uint32 `protobuf:"varint,2,opt"`
}
func (x *ReqBody) GetDirectMessageFlag() uint32 {
if x != nil && x.DirectMessageFlag != nil {
return *x.DirectMessageFlag
}
return 0
ChannelParam *ChannelParam `protobuf:"bytes,1,opt"`
DirectMessageFlag proto.Option[uint32] `protobuf:"varint,2,opt"`
}
type RspBody struct {
Result *uint32 `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"`
ChannelMsg *ChannelMsg `protobuf:"bytes,3,opt"`
}
func (x *RspBody) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
Result proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"`
ChannelMsg *ChannelMsg `protobuf:"bytes,3,opt"`
}

View File

@ -3,51 +3,20 @@
package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
// see sub_37628C
type ChannelOidb0Xf5BRsp struct {
GuildId *uint64 `protobuf:"varint,1,opt"`
GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
Bots []*GuildMemberInfo `protobuf:"bytes,4,rep"`
Members []*GuildMemberInfo `protobuf:"bytes,5,rep"`
NextIndex *uint32 `protobuf:"varint,10,opt"`
Finished *uint32 `protobuf:"varint,9,opt"`
NextQueryParam *string `protobuf:"bytes,24,opt"`
NextIndex proto.Option[uint32] `protobuf:"varint,10,opt"`
Finished proto.Option[uint32] `protobuf:"varint,9,opt"`
NextQueryParam proto.Option[string] `protobuf:"bytes,24,opt"`
MemberWithRoles []*GuildGroupMembersInfo `protobuf:"bytes,25,rep"`
NextRoleIdIndex *uint64 `protobuf:"varint,26,opt"`
}
func (x *ChannelOidb0Xf5BRsp) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
func (x *ChannelOidb0Xf5BRsp) GetNextIndex() uint32 {
if x != nil && x.NextIndex != nil {
return *x.NextIndex
}
return 0
}
func (x *ChannelOidb0Xf5BRsp) GetFinished() uint32 {
if x != nil && x.Finished != nil {
return *x.Finished
}
return 0
}
func (x *ChannelOidb0Xf5BRsp) GetNextQueryParam() string {
if x != nil && x.NextQueryParam != nil {
return *x.NextQueryParam
}
return ""
}
func (x *ChannelOidb0Xf5BRsp) GetNextRoleIdIndex() uint64 {
if x != nil && x.NextRoleIdIndex != nil {
return *x.NextRoleIdIndex
}
return 0
NextRoleIdIndex proto.Option[uint64] `protobuf:"varint,26,opt"`
}
type ChannelOidb0Xf88Rsp struct {
@ -75,527 +44,114 @@ type ChannelOidb0X1017Rsp struct {
}
type P10X1017 struct {
TinyId *uint64 `protobuf:"varint,1,opt"`
Roles []*GuildUserRole `protobuf:"bytes,3,rep"`
}
func (x *P10X1017) GetTinyId() uint64 {
if x != nil && x.TinyId != nil {
return *x.TinyId
}
return 0
TinyId proto.Option[uint64] `protobuf:"varint,1,opt"`
Roles []*GuildUserRole `protobuf:"bytes,3,rep"`
}
type ChannelOidb0X1019Rsp struct {
GuildId *uint64 `protobuf:"varint,1,opt"`
Roles []*GuildRole `protobuf:"bytes,2,rep"`
}
func (x *ChannelOidb0X1019Rsp) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
Roles []*GuildRole `protobuf:"bytes,2,rep"`
}
type ChannelOidb0X1016Rsp struct {
RoleId *uint64 `protobuf:"varint,2,opt"`
}
func (x *ChannelOidb0X1016Rsp) GetRoleId() uint64 {
if x != nil && x.RoleId != nil {
return *x.RoleId
}
return 0
RoleId proto.Option[uint64] `protobuf:"varint,2,opt"`
}
type GuildMetaRsp struct {
GuildId *uint64 `protobuf:"varint,3,opt"`
Meta *GuildMeta `protobuf:"bytes,4,opt"`
}
func (x *GuildMetaRsp) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
GuildId proto.Option[uint64] `protobuf:"varint,3,opt"`
Meta *GuildMeta `protobuf:"bytes,4,opt"`
}
type ChannelListRsp struct {
GuildId *uint64 `protobuf:"varint,1,opt"`
Channels []*GuildChannelInfo `protobuf:"bytes,2,rep"` // 5: Category infos
}
func (x *ChannelListRsp) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
Channels []*GuildChannelInfo `protobuf:"bytes,2,rep"` // 5: Category infos
}
type GuildGroupMembersInfo struct {
RoleId *uint64 `protobuf:"varint,1,opt"`
Members []*GuildMemberInfo `protobuf:"bytes,2,rep"`
RoleName *string `protobuf:"bytes,3,opt"`
Color *uint32 `protobuf:"varint,4,opt"`
}
func (x *GuildGroupMembersInfo) GetRoleId() uint64 {
if x != nil && x.RoleId != nil {
return *x.RoleId
}
return 0
}
func (x *GuildGroupMembersInfo) GetRoleName() string {
if x != nil && x.RoleName != nil {
return *x.RoleName
}
return ""
}
func (x *GuildGroupMembersInfo) GetColor() uint32 {
if x != nil && x.Color != nil {
return *x.Color
}
return 0
RoleId proto.Option[uint64] `protobuf:"varint,1,opt"`
Members []*GuildMemberInfo `protobuf:"bytes,2,rep"`
RoleName proto.Option[string] `protobuf:"bytes,3,opt"`
Color proto.Option[uint32] `protobuf:"varint,4,opt"`
}
// see sub_374334
type GuildMemberInfo struct {
Title *string `protobuf:"bytes,2,opt"`
Nickname *string `protobuf:"bytes,3,opt"`
LastSpeakTime *int64 `protobuf:"varint,4,opt"` // uncertainty
Role *int32 `protobuf:"varint,5,opt"` // uncertainty
TinyId *uint64 `protobuf:"varint,8,opt"`
}
func (x *GuildMemberInfo) GetTitle() string {
if x != nil && x.Title != nil {
return *x.Title
}
return ""
}
func (x *GuildMemberInfo) GetNickname() string {
if x != nil && x.Nickname != nil {
return *x.Nickname
}
return ""
}
func (x *GuildMemberInfo) GetLastSpeakTime() int64 {
if x != nil && x.LastSpeakTime != nil {
return *x.LastSpeakTime
}
return 0
}
func (x *GuildMemberInfo) GetRole() int32 {
if x != nil && x.Role != nil {
return *x.Role
}
return 0
}
func (x *GuildMemberInfo) GetTinyId() uint64 {
if x != nil && x.TinyId != nil {
return *x.TinyId
}
return 0
Title proto.Option[string] `protobuf:"bytes,2,opt"`
Nickname proto.Option[string] `protobuf:"bytes,3,opt"`
LastSpeakTime proto.Option[int64] `protobuf:"varint,4,opt"` // uncertainty
Role proto.Option[int32] `protobuf:"varint,5,opt"` // uncertainty
TinyId proto.Option[uint64] `protobuf:"varint,8,opt"`
}
// 频道系统用户资料
type GuildUserProfile struct {
TinyId *uint64 `protobuf:"varint,2,opt"`
Nickname *string `protobuf:"bytes,3,opt"`
AvatarUrl *string `protobuf:"bytes,6,opt"`
TinyId proto.Option[uint64] `protobuf:"varint,2,opt"`
Nickname proto.Option[string] `protobuf:"bytes,3,opt"`
AvatarUrl proto.Option[string] `protobuf:"bytes,6,opt"`
// 15: avatar url info
JoinTime *int64 `protobuf:"varint,16,opt"` // uncertainty
}
func (x *GuildUserProfile) GetTinyId() uint64 {
if x != nil && x.TinyId != nil {
return *x.TinyId
}
return 0
}
func (x *GuildUserProfile) GetNickname() string {
if x != nil && x.Nickname != nil {
return *x.Nickname
}
return ""
}
func (x *GuildUserProfile) GetAvatarUrl() string {
if x != nil && x.AvatarUrl != nil {
return *x.AvatarUrl
}
return ""
}
func (x *GuildUserProfile) GetJoinTime() int64 {
if x != nil && x.JoinTime != nil {
return *x.JoinTime
}
return 0
JoinTime proto.Option[int64] `protobuf:"varint,16,opt"` // uncertainty
}
type GuildRole struct {
RoleId *uint64 `protobuf:"varint,1,opt"`
Name *string `protobuf:"bytes,2,opt"`
ArgbColor *uint32 `protobuf:"varint,3,opt"`
Independent *int32 `protobuf:"varint,4,opt"`
Num *int32 `protobuf:"varint,5,opt"`
Owned *int32 `protobuf:"varint,6,opt"` // 是否拥有 存疑
Disabled *int32 `protobuf:"varint,7,opt"` // 权限不足或不显示
MaxNum *int32 `protobuf:"varint,8,opt"` // 9: ?
}
func (x *GuildRole) GetRoleId() uint64 {
if x != nil && x.RoleId != nil {
return *x.RoleId
}
return 0
}
func (x *GuildRole) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *GuildRole) GetArgbColor() uint32 {
if x != nil && x.ArgbColor != nil {
return *x.ArgbColor
}
return 0
}
func (x *GuildRole) GetIndependent() int32 {
if x != nil && x.Independent != nil {
return *x.Independent
}
return 0
}
func (x *GuildRole) GetNum() int32 {
if x != nil && x.Num != nil {
return *x.Num
}
return 0
}
func (x *GuildRole) GetOwned() int32 {
if x != nil && x.Owned != nil {
return *x.Owned
}
return 0
}
func (x *GuildRole) GetDisabled() int32 {
if x != nil && x.Disabled != nil {
return *x.Disabled
}
return 0
}
func (x *GuildRole) GetMaxNum() int32 {
if x != nil && x.MaxNum != nil {
return *x.MaxNum
}
return 0
RoleId proto.Option[uint64] `protobuf:"varint,1,opt"`
Name proto.Option[string] `protobuf:"bytes,2,opt"`
ArgbColor proto.Option[uint32] `protobuf:"varint,3,opt"`
Independent proto.Option[int32] `protobuf:"varint,4,opt"`
Num proto.Option[int32] `protobuf:"varint,5,opt"`
Owned proto.Option[int32] `protobuf:"varint,6,opt"` // 是否拥有 存疑
Disabled proto.Option[int32] `protobuf:"varint,7,opt"` // 权限不足或不显示
MaxNum proto.Option[int32] `protobuf:"varint,8,opt"` // 9: ?
}
type GuildUserRole struct {
RoleId *uint64 `protobuf:"varint,1,opt"`
Name *string `protobuf:"bytes,2,opt"`
ArgbColor *uint32 `protobuf:"varint,3,opt"`
Independent *int32 `protobuf:"varint,4,opt"`
}
func (x *GuildUserRole) GetRoleId() uint64 {
if x != nil && x.RoleId != nil {
return *x.RoleId
}
return 0
}
func (x *GuildUserRole) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *GuildUserRole) GetArgbColor() uint32 {
if x != nil && x.ArgbColor != nil {
return *x.ArgbColor
}
return 0
}
func (x *GuildUserRole) GetIndependent() int32 {
if x != nil && x.Independent != nil {
return *x.Independent
}
return 0
RoleId proto.Option[uint64] `protobuf:"varint,1,opt"`
Name proto.Option[string] `protobuf:"bytes,2,opt"`
ArgbColor proto.Option[uint32] `protobuf:"varint,3,opt"`
Independent proto.Option[int32] `protobuf:"varint,4,opt"`
}
type GuildMeta struct {
GuildCode *uint64 `protobuf:"varint,2,opt"`
CreateTime *int64 `protobuf:"varint,4,opt"`
MaxMemberCount *int64 `protobuf:"varint,5,opt"`
MemberCount *int64 `protobuf:"varint,6,opt"`
Name *string `protobuf:"bytes,8,opt"`
RobotMaxNum *int32 `protobuf:"varint,11,opt"`
AdminMaxNum *int32 `protobuf:"varint,12,opt"`
Profile *string `protobuf:"bytes,13,opt"`
AvatarSeq *int64 `protobuf:"varint,14,opt"`
OwnerId *uint64 `protobuf:"varint,18,opt"`
CoverSeq *int64 `protobuf:"varint,19,opt"`
ClientId *int32 `protobuf:"varint,20,opt"`
}
func (x *GuildMeta) GetGuildCode() uint64 {
if x != nil && x.GuildCode != nil {
return *x.GuildCode
}
return 0
}
func (x *GuildMeta) GetCreateTime() int64 {
if x != nil && x.CreateTime != nil {
return *x.CreateTime
}
return 0
}
func (x *GuildMeta) GetMaxMemberCount() int64 {
if x != nil && x.MaxMemberCount != nil {
return *x.MaxMemberCount
}
return 0
}
func (x *GuildMeta) GetMemberCount() int64 {
if x != nil && x.MemberCount != nil {
return *x.MemberCount
}
return 0
}
func (x *GuildMeta) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *GuildMeta) GetRobotMaxNum() int32 {
if x != nil && x.RobotMaxNum != nil {
return *x.RobotMaxNum
}
return 0
}
func (x *GuildMeta) GetAdminMaxNum() int32 {
if x != nil && x.AdminMaxNum != nil {
return *x.AdminMaxNum
}
return 0
}
func (x *GuildMeta) GetProfile() string {
if x != nil && x.Profile != nil {
return *x.Profile
}
return ""
}
func (x *GuildMeta) GetAvatarSeq() int64 {
if x != nil && x.AvatarSeq != nil {
return *x.AvatarSeq
}
return 0
}
func (x *GuildMeta) GetOwnerId() uint64 {
if x != nil && x.OwnerId != nil {
return *x.OwnerId
}
return 0
}
func (x *GuildMeta) GetCoverSeq() int64 {
if x != nil && x.CoverSeq != nil {
return *x.CoverSeq
}
return 0
}
func (x *GuildMeta) GetClientId() int32 {
if x != nil && x.ClientId != nil {
return *x.ClientId
}
return 0
GuildCode proto.Option[uint64] `protobuf:"varint,2,opt"`
CreateTime proto.Option[int64] `protobuf:"varint,4,opt"`
MaxMemberCount proto.Option[int64] `protobuf:"varint,5,opt"`
MemberCount proto.Option[int64] `protobuf:"varint,6,opt"`
Name proto.Option[string] `protobuf:"bytes,8,opt"`
RobotMaxNum proto.Option[int32] `protobuf:"varint,11,opt"`
AdminMaxNum proto.Option[int32] `protobuf:"varint,12,opt"`
Profile proto.Option[string] `protobuf:"bytes,13,opt"`
AvatarSeq proto.Option[int64] `protobuf:"varint,14,opt"`
OwnerId proto.Option[uint64] `protobuf:"varint,18,opt"`
CoverSeq proto.Option[int64] `protobuf:"varint,19,opt"`
ClientId proto.Option[int32] `protobuf:"varint,20,opt"`
}
type GuildChannelInfo struct {
ChannelId *uint64 `protobuf:"varint,1,opt"`
ChannelName *string `protobuf:"bytes,2,opt"`
CreatorUin *int64 `protobuf:"varint,3,opt"`
CreateTime *int64 `protobuf:"varint,4,opt"`
GuildId *uint64 `protobuf:"varint,5,opt"`
FinalNotifyType *int32 `protobuf:"varint,6,opt"`
ChannelType *int32 `protobuf:"varint,7,opt"`
TalkPermission *int32 `protobuf:"varint,8,opt"`
ChannelId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelName proto.Option[string] `protobuf:"bytes,2,opt"`
CreatorUin proto.Option[int64] `protobuf:"varint,3,opt"`
CreateTime proto.Option[int64] `protobuf:"varint,4,opt"`
GuildId proto.Option[uint64] `protobuf:"varint,5,opt"`
FinalNotifyType proto.Option[int32] `protobuf:"varint,6,opt"`
ChannelType proto.Option[int32] `protobuf:"varint,7,opt"`
TalkPermission proto.Option[int32] `protobuf:"varint,8,opt"`
// 11 - 14 : MsgInfo
CreatorTinyId *uint64 `protobuf:"varint,15,opt"`
CreatorTinyId proto.Option[uint64] `protobuf:"varint,15,opt"`
// 16: Member info ?
VisibleType *int32 `protobuf:"varint,22,opt"`
VisibleType proto.Option[int32] `protobuf:"varint,22,opt"`
TopMsg *GuildChannelTopMsgInfo `protobuf:"bytes,28,opt"`
CurrentSlowModeKey *int32 `protobuf:"varint,31,opt"`
CurrentSlowModeKey proto.Option[int32] `protobuf:"varint,31,opt"`
SlowModeInfos []*GuildChannelSlowModeInfo `protobuf:"bytes,32,rep"`
}
func (x *GuildChannelInfo) GetChannelId() uint64 {
if x != nil && x.ChannelId != nil {
return *x.ChannelId
}
return 0
}
func (x *GuildChannelInfo) GetChannelName() string {
if x != nil && x.ChannelName != nil {
return *x.ChannelName
}
return ""
}
func (x *GuildChannelInfo) GetCreatorUin() int64 {
if x != nil && x.CreatorUin != nil {
return *x.CreatorUin
}
return 0
}
func (x *GuildChannelInfo) GetCreateTime() int64 {
if x != nil && x.CreateTime != nil {
return *x.CreateTime
}
return 0
}
func (x *GuildChannelInfo) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
func (x *GuildChannelInfo) GetFinalNotifyType() int32 {
if x != nil && x.FinalNotifyType != nil {
return *x.FinalNotifyType
}
return 0
}
func (x *GuildChannelInfo) GetChannelType() int32 {
if x != nil && x.ChannelType != nil {
return *x.ChannelType
}
return 0
}
func (x *GuildChannelInfo) GetTalkPermission() int32 {
if x != nil && x.TalkPermission != nil {
return *x.TalkPermission
}
return 0
}
func (x *GuildChannelInfo) GetCreatorTinyId() uint64 {
if x != nil && x.CreatorTinyId != nil {
return *x.CreatorTinyId
}
return 0
}
func (x *GuildChannelInfo) GetVisibleType() int32 {
if x != nil && x.VisibleType != nil {
return *x.VisibleType
}
return 0
}
func (x *GuildChannelInfo) GetCurrentSlowModeKey() int32 {
if x != nil && x.CurrentSlowModeKey != nil {
return *x.CurrentSlowModeKey
}
return 0
}
type GuildChannelSlowModeInfo struct {
SlowModeKey *int32 `protobuf:"varint,1,opt"`
SpeakFrequency *int32 `protobuf:"varint,2,opt"`
SlowModeCircle *int32 `protobuf:"varint,3,opt"`
SlowModeText *string `protobuf:"bytes,4,opt"`
}
func (x *GuildChannelSlowModeInfo) GetSlowModeKey() int32 {
if x != nil && x.SlowModeKey != nil {
return *x.SlowModeKey
}
return 0
}
func (x *GuildChannelSlowModeInfo) GetSpeakFrequency() int32 {
if x != nil && x.SpeakFrequency != nil {
return *x.SpeakFrequency
}
return 0
}
func (x *GuildChannelSlowModeInfo) GetSlowModeCircle() int32 {
if x != nil && x.SlowModeCircle != nil {
return *x.SlowModeCircle
}
return 0
}
func (x *GuildChannelSlowModeInfo) GetSlowModeText() string {
if x != nil && x.SlowModeText != nil {
return *x.SlowModeText
}
return ""
SlowModeKey proto.Option[int32] `protobuf:"varint,1,opt"`
SpeakFrequency proto.Option[int32] `protobuf:"varint,2,opt"`
SlowModeCircle proto.Option[int32] `protobuf:"varint,3,opt"`
SlowModeText proto.Option[string] `protobuf:"bytes,4,opt"`
}
type GuildChannelTopMsgInfo struct {
TopMsgSeq *uint64 `protobuf:"varint,1,opt"`
TopMsgTime *int64 `protobuf:"varint,2,opt"`
TopMsgOperatorTinyId *uint64 `protobuf:"varint,3,opt"`
}
func (x *GuildChannelTopMsgInfo) GetTopMsgSeq() uint64 {
if x != nil && x.TopMsgSeq != nil {
return *x.TopMsgSeq
}
return 0
}
func (x *GuildChannelTopMsgInfo) GetTopMsgTime() int64 {
if x != nil && x.TopMsgTime != nil {
return *x.TopMsgTime
}
return 0
}
func (x *GuildChannelTopMsgInfo) GetTopMsgOperatorTinyId() uint64 {
if x != nil && x.TopMsgOperatorTinyId != nil {
return *x.TopMsgOperatorTinyId
}
return 0
TopMsgSeq proto.Option[uint64] `protobuf:"varint,1,opt"`
TopMsgTime proto.Option[int64] `protobuf:"varint,2,opt"`
TopMsgOperatorTinyId proto.Option[uint64] `protobuf:"varint,3,opt"`
}

View File

@ -3,281 +3,75 @@
package cmd0x352
import (
proto "github.com/RomiChan/protobuf/proto"
)
type ReqBody struct {
Subcmd *uint32 `protobuf:"varint,1,opt"`
TryupImgReq []*D352TryUpImgReq `protobuf:"bytes,2,rep"`
Subcmd proto.Option[uint32] `protobuf:"varint,1,opt"`
TryupImgReq []*D352TryUpImgReq `protobuf:"bytes,2,rep"`
// repeated GetImgUrlReq getimgUrlReq = 3;
// repeated DelImgReq delImgReq = 4;
NetType *uint32 `protobuf:"varint,10,opt"`
}
func (x *ReqBody) GetSubcmd() uint32 {
if x != nil && x.Subcmd != nil {
return *x.Subcmd
}
return 0
}
func (x *ReqBody) GetNetType() uint32 {
if x != nil && x.NetType != nil {
return *x.NetType
}
return 0
NetType proto.Option[uint32] `protobuf:"varint,10,opt"`
}
type RspBody struct {
Subcmd *uint32 `protobuf:"varint,1,opt"`
TryupImgRsp []*TryUpImgRsp `protobuf:"bytes,2,rep"`
Subcmd proto.Option[uint32] `protobuf:"varint,1,opt"`
TryupImgRsp []*TryUpImgRsp `protobuf:"bytes,2,rep"`
// repeated GetImgUrlRsp getimgUrlRsp = 3;
NewBigchan *bool `protobuf:"varint,4,opt"`
NewBigchan proto.Option[bool] `protobuf:"varint,4,opt"`
// repeated DelImgRsp delImgRsp = 5;
FailMsg []byte `protobuf:"bytes,10,opt"`
}
func (x *RspBody) GetSubcmd() uint32 {
if x != nil && x.Subcmd != nil {
return *x.Subcmd
}
return 0
}
func (x *RspBody) GetNewBigchan() bool {
if x != nil && x.NewBigchan != nil {
return *x.NewBigchan
}
return false
}
type D352TryUpImgReq struct {
SrcUin *uint64 `protobuf:"varint,1,opt"`
DstUin *uint64 `protobuf:"varint,2,opt"`
FileId *uint64 `protobuf:"varint,3,opt"`
FileMd5 []byte `protobuf:"bytes,4,opt"`
FileSize *uint64 `protobuf:"varint,5,opt"`
FileName []byte `protobuf:"bytes,6,opt"`
SrcTerm *uint32 `protobuf:"varint,7,opt"`
PlatformType *uint32 `protobuf:"varint,8,opt"`
InnerIp *uint32 `protobuf:"varint,9,opt"`
AddressBook *bool `protobuf:"varint,10,opt"`
Retry *uint32 `protobuf:"varint,11,opt"`
BuType *uint32 `protobuf:"varint,12,opt"`
PicOriginal *bool `protobuf:"varint,13,opt"`
PicWidth *uint32 `protobuf:"varint,14,opt"`
PicHeight *uint32 `protobuf:"varint,15,opt"`
PicType *uint32 `protobuf:"varint,16,opt"`
BuildVer []byte `protobuf:"bytes,17,opt"`
FileIndex []byte `protobuf:"bytes,18,opt"`
StoreDays *uint32 `protobuf:"varint,19,opt"`
TryupStepflag *uint32 `protobuf:"varint,20,opt"`
RejectTryfast *bool `protobuf:"varint,21,opt"`
SrvUpload *uint32 `protobuf:"varint,22,opt"`
TransferUrl []byte `protobuf:"bytes,23,opt"`
}
func (x *D352TryUpImgReq) GetSrcUin() uint64 {
if x != nil && x.SrcUin != nil {
return *x.SrcUin
}
return 0
}
func (x *D352TryUpImgReq) GetDstUin() uint64 {
if x != nil && x.DstUin != nil {
return *x.DstUin
}
return 0
}
func (x *D352TryUpImgReq) GetFileId() uint64 {
if x != nil && x.FileId != nil {
return *x.FileId
}
return 0
}
func (x *D352TryUpImgReq) GetFileSize() uint64 {
if x != nil && x.FileSize != nil {
return *x.FileSize
}
return 0
}
func (x *D352TryUpImgReq) GetSrcTerm() uint32 {
if x != nil && x.SrcTerm != nil {
return *x.SrcTerm
}
return 0
}
func (x *D352TryUpImgReq) GetPlatformType() uint32 {
if x != nil && x.PlatformType != nil {
return *x.PlatformType
}
return 0
}
func (x *D352TryUpImgReq) GetInnerIp() uint32 {
if x != nil && x.InnerIp != nil {
return *x.InnerIp
}
return 0
}
func (x *D352TryUpImgReq) GetAddressBook() bool {
if x != nil && x.AddressBook != nil {
return *x.AddressBook
}
return false
}
func (x *D352TryUpImgReq) GetRetry() uint32 {
if x != nil && x.Retry != nil {
return *x.Retry
}
return 0
}
func (x *D352TryUpImgReq) GetBuType() uint32 {
if x != nil && x.BuType != nil {
return *x.BuType
}
return 0
}
func (x *D352TryUpImgReq) GetPicOriginal() bool {
if x != nil && x.PicOriginal != nil {
return *x.PicOriginal
}
return false
}
func (x *D352TryUpImgReq) GetPicWidth() uint32 {
if x != nil && x.PicWidth != nil {
return *x.PicWidth
}
return 0
}
func (x *D352TryUpImgReq) GetPicHeight() uint32 {
if x != nil && x.PicHeight != nil {
return *x.PicHeight
}
return 0
}
func (x *D352TryUpImgReq) GetPicType() uint32 {
if x != nil && x.PicType != nil {
return *x.PicType
}
return 0
}
func (x *D352TryUpImgReq) GetStoreDays() uint32 {
if x != nil && x.StoreDays != nil {
return *x.StoreDays
}
return 0
}
func (x *D352TryUpImgReq) GetTryupStepflag() uint32 {
if x != nil && x.TryupStepflag != nil {
return *x.TryupStepflag
}
return 0
}
func (x *D352TryUpImgReq) GetRejectTryfast() bool {
if x != nil && x.RejectTryfast != nil {
return *x.RejectTryfast
}
return false
}
func (x *D352TryUpImgReq) GetSrvUpload() uint32 {
if x != nil && x.SrvUpload != nil {
return *x.SrvUpload
}
return 0
SrcUin proto.Option[uint64] `protobuf:"varint,1,opt"`
DstUin proto.Option[uint64] `protobuf:"varint,2,opt"`
FileId proto.Option[uint64] `protobuf:"varint,3,opt"`
FileMd5 []byte `protobuf:"bytes,4,opt"`
FileSize proto.Option[uint64] `protobuf:"varint,5,opt"`
FileName []byte `protobuf:"bytes,6,opt"`
SrcTerm proto.Option[uint32] `protobuf:"varint,7,opt"`
PlatformType proto.Option[uint32] `protobuf:"varint,8,opt"`
InnerIp proto.Option[uint32] `protobuf:"varint,9,opt"`
AddressBook proto.Option[bool] `protobuf:"varint,10,opt"`
Retry proto.Option[uint32] `protobuf:"varint,11,opt"`
BuType proto.Option[uint32] `protobuf:"varint,12,opt"`
PicOriginal proto.Option[bool] `protobuf:"varint,13,opt"`
PicWidth proto.Option[uint32] `protobuf:"varint,14,opt"`
PicHeight proto.Option[uint32] `protobuf:"varint,15,opt"`
PicType proto.Option[uint32] `protobuf:"varint,16,opt"`
BuildVer []byte `protobuf:"bytes,17,opt"`
FileIndex []byte `protobuf:"bytes,18,opt"`
StoreDays proto.Option[uint32] `protobuf:"varint,19,opt"`
TryupStepflag proto.Option[uint32] `protobuf:"varint,20,opt"`
RejectTryfast proto.Option[bool] `protobuf:"varint,21,opt"`
SrvUpload proto.Option[uint32] `protobuf:"varint,22,opt"`
TransferUrl []byte `protobuf:"bytes,23,opt"`
}
type TryUpImgRsp struct {
FileId *uint64 `protobuf:"varint,1,opt"`
ClientIp *uint32 `protobuf:"varint,2,opt"`
Result *uint32 `protobuf:"varint,3,opt"`
FailMsg []byte `protobuf:"bytes,4,opt"`
FileExit *bool `protobuf:"varint,5,opt"`
FileId proto.Option[uint64] `protobuf:"varint,1,opt"`
ClientIp proto.Option[uint32] `protobuf:"varint,2,opt"`
Result proto.Option[uint32] `protobuf:"varint,3,opt"`
FailMsg []byte `protobuf:"bytes,4,opt"`
FileExit proto.Option[bool] `protobuf:"varint,5,opt"`
// optional ImgInfo imgInfo = 6;
UpIp []uint32 `protobuf:"varint,7,rep"`
UpPort []uint32 `protobuf:"varint,8,rep"`
UpUkey []byte `protobuf:"bytes,9,opt"`
UpResid []byte `protobuf:"bytes,10,opt"`
UpUuid []byte `protobuf:"bytes,11,opt"`
UpOffset *uint64 `protobuf:"varint,12,opt"`
BlockSize *uint64 `protobuf:"varint,13,opt"`
EncryptDstip []byte `protobuf:"bytes,14,opt"`
Roamdays *uint32 `protobuf:"varint,15,opt"`
UpIp []uint32 `protobuf:"varint,7,rep"`
UpPort []uint32 `protobuf:"varint,8,rep"`
UpUkey []byte `protobuf:"bytes,9,opt"`
UpResid []byte `protobuf:"bytes,10,opt"`
UpUuid []byte `protobuf:"bytes,11,opt"`
UpOffset proto.Option[uint64] `protobuf:"varint,12,opt"`
BlockSize proto.Option[uint64] `protobuf:"varint,13,opt"`
EncryptDstip []byte `protobuf:"bytes,14,opt"`
Roamdays proto.Option[uint32] `protobuf:"varint,15,opt"`
// repeated IPv6Info upIp6 = 26;
ClientIp6 []byte `protobuf:"bytes,27,opt"`
ThumbDownPara []byte `protobuf:"bytes,60,opt"`
OriginalDownPara []byte `protobuf:"bytes,61,opt"`
DownDomain []byte `protobuf:"bytes,62,opt"`
BigDownPara []byte `protobuf:"bytes,64,opt"`
BigThumbDownPara []byte `protobuf:"bytes,65,opt"`
HttpsUrlFlag *uint32 `protobuf:"varint,66,opt"` // optional TryUpInfo4Busi info4Busi = 1001;
}
func (x *TryUpImgRsp) GetFileId() uint64 {
if x != nil && x.FileId != nil {
return *x.FileId
}
return 0
}
func (x *TryUpImgRsp) GetClientIp() uint32 {
if x != nil && x.ClientIp != nil {
return *x.ClientIp
}
return 0
}
func (x *TryUpImgRsp) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *TryUpImgRsp) GetFileExit() bool {
if x != nil && x.FileExit != nil {
return *x.FileExit
}
return false
}
func (x *TryUpImgRsp) GetUpOffset() uint64 {
if x != nil && x.UpOffset != nil {
return *x.UpOffset
}
return 0
}
func (x *TryUpImgRsp) GetBlockSize() uint64 {
if x != nil && x.BlockSize != nil {
return *x.BlockSize
}
return 0
}
func (x *TryUpImgRsp) GetRoamdays() uint32 {
if x != nil && x.Roamdays != nil {
return *x.Roamdays
}
return 0
}
func (x *TryUpImgRsp) GetHttpsUrlFlag() uint32 {
if x != nil && x.HttpsUrlFlag != nil {
return *x.HttpsUrlFlag
}
return 0
ClientIp6 []byte `protobuf:"bytes,27,opt"`
ThumbDownPara []byte `protobuf:"bytes,60,opt"`
OriginalDownPara []byte `protobuf:"bytes,61,opt"`
DownDomain []byte `protobuf:"bytes,62,opt"`
BigDownPara []byte `protobuf:"bytes,64,opt"`
BigThumbDownPara []byte `protobuf:"bytes,65,opt"`
HttpsUrlFlag proto.Option[uint32] `protobuf:"varint,66,opt"` // optional TryUpInfo4Busi info4Busi = 1001;
}

File diff suppressed because it is too large Load Diff

View File

@ -3,395 +3,77 @@
package cmd0x3f6
import (
proto "github.com/RomiChan/protobuf/proto"
)
type C3F6ReqBody struct {
SubCmd *uint32 `protobuf:"varint,1,opt"`
SubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
CrmCommonHead *C3F6CRMMsgHead `protobuf:"bytes,2,opt"`
SubcmdLoginProcessCompleteReqBody *QDUserLoginProcessCompleteReqBody `protobuf:"bytes,42,opt"`
}
func (x *C3F6ReqBody) GetSubCmd() uint32 {
if x != nil && x.SubCmd != nil {
return *x.SubCmd
}
return 0
}
type C3F6RspBody struct {
SubCmd *uint32 `protobuf:"varint,1,opt"`
SubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
CrmCommonHead *C3F6CRMMsgHead `protobuf:"bytes,2,opt"`
SubcmdLoginProcessCompleteRspBody *QDUserLoginProcessCompleteRspBody `protobuf:"bytes,42,opt"`
}
func (x *C3F6RspBody) GetSubCmd() uint32 {
if x != nil && x.SubCmd != nil {
return *x.SubCmd
}
return 0
}
type QDUserLoginProcessCompleteReqBody struct {
Kfext *uint64 `protobuf:"varint,1,opt"`
Pubno *uint32 `protobuf:"varint,2,opt"`
Buildno *uint32 `protobuf:"varint,3,opt"`
TerminalType *uint32 `protobuf:"varint,4,opt"`
Status *uint32 `protobuf:"varint,5,opt"`
LoginTime *uint32 `protobuf:"varint,6,opt"`
HardwareInfo *string `protobuf:"bytes,7,opt"`
SoftwareInfo *string `protobuf:"bytes,8,opt"`
Guid []byte `protobuf:"bytes,9,opt"`
AppName *string `protobuf:"bytes,10,opt"`
SubAppId *uint32 `protobuf:"varint,11,opt"`
}
func (x *QDUserLoginProcessCompleteReqBody) GetKfext() uint64 {
if x != nil && x.Kfext != nil {
return *x.Kfext
}
return 0
}
func (x *QDUserLoginProcessCompleteReqBody) GetPubno() uint32 {
if x != nil && x.Pubno != nil {
return *x.Pubno
}
return 0
}
func (x *QDUserLoginProcessCompleteReqBody) GetBuildno() uint32 {
if x != nil && x.Buildno != nil {
return *x.Buildno
}
return 0
}
func (x *QDUserLoginProcessCompleteReqBody) GetTerminalType() uint32 {
if x != nil && x.TerminalType != nil {
return *x.TerminalType
}
return 0
}
func (x *QDUserLoginProcessCompleteReqBody) GetStatus() uint32 {
if x != nil && x.Status != nil {
return *x.Status
}
return 0
}
func (x *QDUserLoginProcessCompleteReqBody) GetLoginTime() uint32 {
if x != nil && x.LoginTime != nil {
return *x.LoginTime
}
return 0
}
func (x *QDUserLoginProcessCompleteReqBody) GetHardwareInfo() string {
if x != nil && x.HardwareInfo != nil {
return *x.HardwareInfo
}
return ""
}
func (x *QDUserLoginProcessCompleteReqBody) GetSoftwareInfo() string {
if x != nil && x.SoftwareInfo != nil {
return *x.SoftwareInfo
}
return ""
}
func (x *QDUserLoginProcessCompleteReqBody) GetAppName() string {
if x != nil && x.AppName != nil {
return *x.AppName
}
return ""
}
func (x *QDUserLoginProcessCompleteReqBody) GetSubAppId() uint32 {
if x != nil && x.SubAppId != nil {
return *x.SubAppId
}
return 0
Kfext proto.Option[uint64] `protobuf:"varint,1,opt"`
Pubno proto.Option[uint32] `protobuf:"varint,2,opt"`
Buildno proto.Option[uint32] `protobuf:"varint,3,opt"`
TerminalType proto.Option[uint32] `protobuf:"varint,4,opt"`
Status proto.Option[uint32] `protobuf:"varint,5,opt"`
LoginTime proto.Option[uint32] `protobuf:"varint,6,opt"`
HardwareInfo proto.Option[string] `protobuf:"bytes,7,opt"`
SoftwareInfo proto.Option[string] `protobuf:"bytes,8,opt"`
Guid []byte `protobuf:"bytes,9,opt"`
AppName proto.Option[string] `protobuf:"bytes,10,opt"`
SubAppId proto.Option[uint32] `protobuf:"varint,11,opt"`
}
type QDUserLoginProcessCompleteRspBody struct {
Ret *RetInfo `protobuf:"bytes,1,opt"`
Url *string `protobuf:"bytes,2,opt"`
Mobile *string `protobuf:"bytes,3,opt"`
ExternalMobile *string `protobuf:"bytes,4,opt"`
DataAnalysisPriv *bool `protobuf:"varint,5,opt"`
DeviceLock *bool `protobuf:"varint,6,opt"`
ModulePrivilege *uint64 `protobuf:"varint,7,opt"`
ModuleSubPrivilege []uint32 `protobuf:"varint,8,rep"`
MasterSet *uint32 `protobuf:"varint,9,opt"`
ExtSet *uint32 `protobuf:"varint,10,opt"`
CorpConfProperty *uint64 `protobuf:"varint,11,opt"`
Corpuin *uint64 `protobuf:"varint,12,opt"`
Kfaccount *uint64 `protobuf:"varint,13,opt"`
SecurityLevel *uint32 `protobuf:"varint,14,opt"`
MsgTitle *string `protobuf:"bytes,15,opt"`
SuccNoticeMsg *string `protobuf:"bytes,16,opt"`
NameAccount *uint64 `protobuf:"varint,17,opt"`
CrmMigrateFlag *uint32 `protobuf:"varint,18,opt"`
ExtuinName *string `protobuf:"bytes,19,opt"`
OpenAccountTime *uint32 `protobuf:"varint,20,opt"`
}
func (x *QDUserLoginProcessCompleteRspBody) GetUrl() string {
if x != nil && x.Url != nil {
return *x.Url
}
return ""
}
func (x *QDUserLoginProcessCompleteRspBody) GetMobile() string {
if x != nil && x.Mobile != nil {
return *x.Mobile
}
return ""
}
func (x *QDUserLoginProcessCompleteRspBody) GetExternalMobile() string {
if x != nil && x.ExternalMobile != nil {
return *x.ExternalMobile
}
return ""
}
func (x *QDUserLoginProcessCompleteRspBody) GetDataAnalysisPriv() bool {
if x != nil && x.DataAnalysisPriv != nil {
return *x.DataAnalysisPriv
}
return false
}
func (x *QDUserLoginProcessCompleteRspBody) GetDeviceLock() bool {
if x != nil && x.DeviceLock != nil {
return *x.DeviceLock
}
return false
}
func (x *QDUserLoginProcessCompleteRspBody) GetModulePrivilege() uint64 {
if x != nil && x.ModulePrivilege != nil {
return *x.ModulePrivilege
}
return 0
}
func (x *QDUserLoginProcessCompleteRspBody) GetMasterSet() uint32 {
if x != nil && x.MasterSet != nil {
return *x.MasterSet
}
return 0
}
func (x *QDUserLoginProcessCompleteRspBody) GetExtSet() uint32 {
if x != nil && x.ExtSet != nil {
return *x.ExtSet
}
return 0
}
func (x *QDUserLoginProcessCompleteRspBody) GetCorpConfProperty() uint64 {
if x != nil && x.CorpConfProperty != nil {
return *x.CorpConfProperty
}
return 0
}
func (x *QDUserLoginProcessCompleteRspBody) GetCorpuin() uint64 {
if x != nil && x.Corpuin != nil {
return *x.Corpuin
}
return 0
}
func (x *QDUserLoginProcessCompleteRspBody) GetKfaccount() uint64 {
if x != nil && x.Kfaccount != nil {
return *x.Kfaccount
}
return 0
}
func (x *QDUserLoginProcessCompleteRspBody) GetSecurityLevel() uint32 {
if x != nil && x.SecurityLevel != nil {
return *x.SecurityLevel
}
return 0
}
func (x *QDUserLoginProcessCompleteRspBody) GetMsgTitle() string {
if x != nil && x.MsgTitle != nil {
return *x.MsgTitle
}
return ""
}
func (x *QDUserLoginProcessCompleteRspBody) GetSuccNoticeMsg() string {
if x != nil && x.SuccNoticeMsg != nil {
return *x.SuccNoticeMsg
}
return ""
}
func (x *QDUserLoginProcessCompleteRspBody) GetNameAccount() uint64 {
if x != nil && x.NameAccount != nil {
return *x.NameAccount
}
return 0
}
func (x *QDUserLoginProcessCompleteRspBody) GetCrmMigrateFlag() uint32 {
if x != nil && x.CrmMigrateFlag != nil {
return *x.CrmMigrateFlag
}
return 0
}
func (x *QDUserLoginProcessCompleteRspBody) GetExtuinName() string {
if x != nil && x.ExtuinName != nil {
return *x.ExtuinName
}
return ""
}
func (x *QDUserLoginProcessCompleteRspBody) GetOpenAccountTime() uint32 {
if x != nil && x.OpenAccountTime != nil {
return *x.OpenAccountTime
}
return 0
Ret *RetInfo `protobuf:"bytes,1,opt"`
Url proto.Option[string] `protobuf:"bytes,2,opt"`
Mobile proto.Option[string] `protobuf:"bytes,3,opt"`
ExternalMobile proto.Option[string] `protobuf:"bytes,4,opt"`
DataAnalysisPriv proto.Option[bool] `protobuf:"varint,5,opt"`
DeviceLock proto.Option[bool] `protobuf:"varint,6,opt"`
ModulePrivilege proto.Option[uint64] `protobuf:"varint,7,opt"`
ModuleSubPrivilege []uint32 `protobuf:"varint,8,rep"`
MasterSet proto.Option[uint32] `protobuf:"varint,9,opt"`
ExtSet proto.Option[uint32] `protobuf:"varint,10,opt"`
CorpConfProperty proto.Option[uint64] `protobuf:"varint,11,opt"`
Corpuin proto.Option[uint64] `protobuf:"varint,12,opt"`
Kfaccount proto.Option[uint64] `protobuf:"varint,13,opt"`
SecurityLevel proto.Option[uint32] `protobuf:"varint,14,opt"`
MsgTitle proto.Option[string] `protobuf:"bytes,15,opt"`
SuccNoticeMsg proto.Option[string] `protobuf:"bytes,16,opt"`
NameAccount proto.Option[uint64] `protobuf:"varint,17,opt"`
CrmMigrateFlag proto.Option[uint32] `protobuf:"varint,18,opt"`
ExtuinName proto.Option[string] `protobuf:"bytes,19,opt"`
OpenAccountTime proto.Option[uint32] `protobuf:"varint,20,opt"`
}
type RetInfo struct {
RetCode *uint32 `protobuf:"varint,1,opt"`
ErrorMsg *string `protobuf:"bytes,2,opt"`
}
func (x *RetInfo) GetRetCode() uint32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *RetInfo) GetErrorMsg() string {
if x != nil && x.ErrorMsg != nil {
return *x.ErrorMsg
}
return ""
RetCode proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrorMsg proto.Option[string] `protobuf:"bytes,2,opt"`
}
type C3F6CRMMsgHead struct {
CrmSubCmd *uint32 `protobuf:"varint,1,opt"`
HeadLen *uint32 `protobuf:"varint,2,opt"`
VerNo *uint32 `protobuf:"varint,3,opt"`
KfUin *uint64 `protobuf:"varint,4,opt"`
Seq *uint32 `protobuf:"varint,5,opt"`
PackNum *uint32 `protobuf:"varint,6,opt"`
CurPack *uint32 `protobuf:"varint,7,opt"`
BufSig *string `protobuf:"bytes,8,opt"`
Clienttype *uint32 `protobuf:"varint,9,opt"`
LaborUin *uint64 `protobuf:"varint,10,opt"`
LaborName *string `protobuf:"bytes,11,opt"`
Kfaccount *uint64 `protobuf:"varint,12,opt"`
TraceId *string `protobuf:"bytes,13,opt"`
AppId *uint32 `protobuf:"varint,14,opt"`
}
func (x *C3F6CRMMsgHead) GetCrmSubCmd() uint32 {
if x != nil && x.CrmSubCmd != nil {
return *x.CrmSubCmd
}
return 0
}
func (x *C3F6CRMMsgHead) GetHeadLen() uint32 {
if x != nil && x.HeadLen != nil {
return *x.HeadLen
}
return 0
}
func (x *C3F6CRMMsgHead) GetVerNo() uint32 {
if x != nil && x.VerNo != nil {
return *x.VerNo
}
return 0
}
func (x *C3F6CRMMsgHead) GetKfUin() uint64 {
if x != nil && x.KfUin != nil {
return *x.KfUin
}
return 0
}
func (x *C3F6CRMMsgHead) GetSeq() uint32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *C3F6CRMMsgHead) GetPackNum() uint32 {
if x != nil && x.PackNum != nil {
return *x.PackNum
}
return 0
}
func (x *C3F6CRMMsgHead) GetCurPack() uint32 {
if x != nil && x.CurPack != nil {
return *x.CurPack
}
return 0
}
func (x *C3F6CRMMsgHead) GetBufSig() string {
if x != nil && x.BufSig != nil {
return *x.BufSig
}
return ""
}
func (x *C3F6CRMMsgHead) GetClienttype() uint32 {
if x != nil && x.Clienttype != nil {
return *x.Clienttype
}
return 0
}
func (x *C3F6CRMMsgHead) GetLaborUin() uint64 {
if x != nil && x.LaborUin != nil {
return *x.LaborUin
}
return 0
}
func (x *C3F6CRMMsgHead) GetLaborName() string {
if x != nil && x.LaborName != nil {
return *x.LaborName
}
return ""
}
func (x *C3F6CRMMsgHead) GetKfaccount() uint64 {
if x != nil && x.Kfaccount != nil {
return *x.Kfaccount
}
return 0
}
func (x *C3F6CRMMsgHead) GetTraceId() string {
if x != nil && x.TraceId != nil {
return *x.TraceId
}
return ""
}
func (x *C3F6CRMMsgHead) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
CrmSubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
HeadLen proto.Option[uint32] `protobuf:"varint,2,opt"`
VerNo proto.Option[uint32] `protobuf:"varint,3,opt"`
KfUin proto.Option[uint64] `protobuf:"varint,4,opt"`
Seq proto.Option[uint32] `protobuf:"varint,5,opt"`
PackNum proto.Option[uint32] `protobuf:"varint,6,opt"`
CurPack proto.Option[uint32] `protobuf:"varint,7,opt"`
BufSig proto.Option[string] `protobuf:"bytes,8,opt"`
Clienttype proto.Option[uint32] `protobuf:"varint,9,opt"`
LaborUin proto.Option[uint64] `protobuf:"varint,10,opt"`
LaborName proto.Option[string] `protobuf:"bytes,11,opt"`
Kfaccount proto.Option[uint64] `protobuf:"varint,12,opt"`
TraceId proto.Option[string] `protobuf:"bytes,13,opt"`
AppId proto.Option[uint32] `protobuf:"varint,14,opt"`
}

View File

@ -3,273 +3,81 @@
package cmd0x6ff
import (
proto "github.com/RomiChan/protobuf/proto"
)
type C519CRMMsgHead struct {
CrmSubCmd *uint32 `protobuf:"varint,1,opt"`
HeadLen *uint32 `protobuf:"varint,2,opt"`
VerNo *uint32 `protobuf:"varint,3,opt"`
KfUin *uint64 `protobuf:"varint,4,opt"`
Seq *uint32 `protobuf:"varint,5,opt"`
PackNum *uint32 `protobuf:"varint,6,opt"`
CurPack *uint32 `protobuf:"varint,7,opt"`
BufSig *string `protobuf:"bytes,8,opt"`
PubQq *uint64 `protobuf:"varint,9,opt"`
Clienttype *uint32 `protobuf:"varint,10,opt"`
LaborUin *uint64 `protobuf:"varint,11,opt"`
LaborName *string `protobuf:"bytes,12,opt"`
Puin *uint64 `protobuf:"varint,13,opt"`
}
func (x *C519CRMMsgHead) GetCrmSubCmd() uint32 {
if x != nil && x.CrmSubCmd != nil {
return *x.CrmSubCmd
}
return 0
}
func (x *C519CRMMsgHead) GetHeadLen() uint32 {
if x != nil && x.HeadLen != nil {
return *x.HeadLen
}
return 0
}
func (x *C519CRMMsgHead) GetVerNo() uint32 {
if x != nil && x.VerNo != nil {
return *x.VerNo
}
return 0
}
func (x *C519CRMMsgHead) GetKfUin() uint64 {
if x != nil && x.KfUin != nil {
return *x.KfUin
}
return 0
}
func (x *C519CRMMsgHead) GetSeq() uint32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *C519CRMMsgHead) GetPackNum() uint32 {
if x != nil && x.PackNum != nil {
return *x.PackNum
}
return 0
}
func (x *C519CRMMsgHead) GetCurPack() uint32 {
if x != nil && x.CurPack != nil {
return *x.CurPack
}
return 0
}
func (x *C519CRMMsgHead) GetBufSig() string {
if x != nil && x.BufSig != nil {
return *x.BufSig
}
return ""
}
func (x *C519CRMMsgHead) GetPubQq() uint64 {
if x != nil && x.PubQq != nil {
return *x.PubQq
}
return 0
}
func (x *C519CRMMsgHead) GetClienttype() uint32 {
if x != nil && x.Clienttype != nil {
return *x.Clienttype
}
return 0
}
func (x *C519CRMMsgHead) GetLaborUin() uint64 {
if x != nil && x.LaborUin != nil {
return *x.LaborUin
}
return 0
}
func (x *C519CRMMsgHead) GetLaborName() string {
if x != nil && x.LaborName != nil {
return *x.LaborName
}
return ""
}
func (x *C519CRMMsgHead) GetPuin() uint64 {
if x != nil && x.Puin != nil {
return *x.Puin
}
return 0
CrmSubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
HeadLen proto.Option[uint32] `protobuf:"varint,2,opt"`
VerNo proto.Option[uint32] `protobuf:"varint,3,opt"`
KfUin proto.Option[uint64] `protobuf:"varint,4,opt"`
Seq proto.Option[uint32] `protobuf:"varint,5,opt"`
PackNum proto.Option[uint32] `protobuf:"varint,6,opt"`
CurPack proto.Option[uint32] `protobuf:"varint,7,opt"`
BufSig proto.Option[string] `protobuf:"bytes,8,opt"`
PubQq proto.Option[uint64] `protobuf:"varint,9,opt"`
Clienttype proto.Option[uint32] `protobuf:"varint,10,opt"`
LaborUin proto.Option[uint64] `protobuf:"varint,11,opt"`
LaborName proto.Option[string] `protobuf:"bytes,12,opt"`
Puin proto.Option[uint64] `protobuf:"varint,13,opt"`
}
type GetNavigationMenuReqBody struct {
Puin *uint64 `protobuf:"varint,1,opt"`
Uin *uint64 `protobuf:"varint,2,opt"`
VerNo *uint32 `protobuf:"varint,3,opt"`
}
func (x *GetNavigationMenuReqBody) GetPuin() uint64 {
if x != nil && x.Puin != nil {
return *x.Puin
}
return 0
}
func (x *GetNavigationMenuReqBody) GetUin() uint64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *GetNavigationMenuReqBody) GetVerNo() uint32 {
if x != nil && x.VerNo != nil {
return *x.VerNo
}
return 0
Puin proto.Option[uint64] `protobuf:"varint,1,opt"`
Uin proto.Option[uint64] `protobuf:"varint,2,opt"`
VerNo proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type GetNavigationMenuRspBody struct {
Ret *C519RetInfo `protobuf:"bytes,1,opt"`
IsShow *int32 `protobuf:"varint,2,opt"`
UctMsg *string `protobuf:"bytes,3,opt"`
VerNo *uint32 `protobuf:"varint,4,opt"`
}
func (x *GetNavigationMenuRspBody) GetIsShow() int32 {
if x != nil && x.IsShow != nil {
return *x.IsShow
}
return 0
}
func (x *GetNavigationMenuRspBody) GetUctMsg() string {
if x != nil && x.UctMsg != nil {
return *x.UctMsg
}
return ""
}
func (x *GetNavigationMenuRspBody) GetVerNo() uint32 {
if x != nil && x.VerNo != nil {
return *x.VerNo
}
return 0
Ret *C519RetInfo `protobuf:"bytes,1,opt"`
IsShow proto.Option[int32] `protobuf:"varint,2,opt"`
UctMsg proto.Option[string] `protobuf:"bytes,3,opt"`
VerNo proto.Option[uint32] `protobuf:"varint,4,opt"`
}
type C519ReqBody struct {
SubCmd *uint32 `protobuf:"varint,1,opt"`
SubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
CrmCommonHead *C519CRMMsgHead `protobuf:"bytes,2,opt"`
GetAddressDetailListReqBody *GetAddressDetailListReqBody `protobuf:"bytes,33,opt"`
GetNavigationMenuReq *GetNavigationMenuReqBody `protobuf:"bytes,35,opt"`
}
func (x *C519ReqBody) GetSubCmd() uint32 {
if x != nil && x.SubCmd != nil {
return *x.SubCmd
}
return 0
}
type C519RetInfo struct {
RetCode *uint32 `protobuf:"varint,1,opt"`
ErrorMsg *string `protobuf:"bytes,2,opt"`
}
func (x *C519RetInfo) GetRetCode() uint32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *C519RetInfo) GetErrorMsg() string {
if x != nil && x.ErrorMsg != nil {
return *x.ErrorMsg
}
return ""
RetCode proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrorMsg proto.Option[string] `protobuf:"bytes,2,opt"`
}
type C519RspBody struct {
SubCmd *uint32 `protobuf:"varint,1,opt"`
SubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
CrmCommonHead *C519CRMMsgHead `protobuf:"bytes,2,opt"`
GetAddressDetailListRspBody *GetAddressDetailListRspBody `protobuf:"bytes,33,opt"`
GetNavigationMenuRsp *GetNavigationMenuRspBody `protobuf:"bytes,35,opt"`
}
func (x *C519RspBody) GetSubCmd() uint32 {
if x != nil && x.SubCmd != nil {
return *x.SubCmd
}
return 0
}
type GetAddressDetailListReqBody struct {
Timestamp *uint32 `protobuf:"fixed32,1,opt"`
Timestamp2 *uint64 `protobuf:"fixed64,2,opt"`
}
func (x *GetAddressDetailListReqBody) GetTimestamp() uint32 {
if x != nil && x.Timestamp != nil {
return *x.Timestamp
}
return 0
}
func (x *GetAddressDetailListReqBody) GetTimestamp2() uint64 {
if x != nil && x.Timestamp2 != nil {
return *x.Timestamp2
}
return 0
Timestamp proto.Option[uint32] `protobuf:"fixed32,1,opt"`
Timestamp2 proto.Option[uint64] `protobuf:"fixed64,2,opt"`
}
type GetAddressDetailListRspBody struct {
Ret *C519RetInfo `protobuf:"bytes,1,opt"`
Timestamp *uint32 `protobuf:"fixed32,2,opt"`
Full *bool `protobuf:"varint,3,opt"`
AddressDetail []*AddressDetail `protobuf:"bytes,4,rep"`
Timestamp2 *uint64 `protobuf:"fixed64,5,opt"`
}
func (x *GetAddressDetailListRspBody) GetTimestamp() uint32 {
if x != nil && x.Timestamp != nil {
return *x.Timestamp
}
return 0
}
func (x *GetAddressDetailListRspBody) GetFull() bool {
if x != nil && x.Full != nil {
return *x.Full
}
return false
}
func (x *GetAddressDetailListRspBody) GetTimestamp2() uint64 {
if x != nil && x.Timestamp2 != nil {
return *x.Timestamp2
}
return 0
Ret *C519RetInfo `protobuf:"bytes,1,opt"`
Timestamp proto.Option[uint32] `protobuf:"fixed32,2,opt"`
Full proto.Option[bool] `protobuf:"varint,3,opt"`
AddressDetail []*AddressDetail `protobuf:"bytes,4,rep"`
Timestamp2 proto.Option[uint64] `protobuf:"fixed64,5,opt"`
}
type AddressDetail struct {
Aid *uint32 `protobuf:"varint,1,opt"`
ModifyTime *uint32 `protobuf:"fixed32,2,opt"`
CreateTime *uint32 `protobuf:"fixed32,3,opt"`
Status *uint32 `protobuf:"varint,4,opt"`
Groupid *uint32 `protobuf:"varint,5,opt"`
Aid proto.Option[uint32] `protobuf:"varint,1,opt"`
ModifyTime proto.Option[uint32] `protobuf:"fixed32,2,opt"`
CreateTime proto.Option[uint32] `protobuf:"fixed32,3,opt"`
Status proto.Option[uint32] `protobuf:"varint,4,opt"`
Groupid proto.Option[uint32] `protobuf:"varint,5,opt"`
AddGroupName []byte `protobuf:"bytes,6,opt"`
Name []byte `protobuf:"bytes,7,opt"`
Gender *uint32 `protobuf:"varint,8,opt"`
Birthday *uint32 `protobuf:"fixed32,9,opt"`
Gender proto.Option[uint32] `protobuf:"varint,8,opt"`
Birthday proto.Option[uint32] `protobuf:"fixed32,9,opt"`
Company0 []byte `protobuf:"bytes,10,opt"`
CompanyPosition0 []byte `protobuf:"bytes,11,opt"`
Company1 []byte `protobuf:"bytes,12,opt"`
@ -283,182 +91,35 @@ type AddressDetail struct {
Comment []byte `protobuf:"bytes,20,opt"`
HeadUrl []byte `protobuf:"bytes,21,opt"`
MobilePhone []*AddressMobileInfo `protobuf:"bytes,22,rep"`
MobilePhoneUpdated *bool `protobuf:"varint,23,opt"`
MobilePhoneUpdated proto.Option[bool] `protobuf:"varint,23,opt"`
Qq []*AddressQQinfo `protobuf:"bytes,24,rep"`
QqPhoneUpdated *bool `protobuf:"varint,25,opt"`
ModifyTime2 *uint64 `protobuf:"fixed64,26,opt"`
QqPhoneUpdated proto.Option[bool] `protobuf:"varint,25,opt"`
ModifyTime2 proto.Option[uint64] `protobuf:"fixed64,26,opt"`
ClientRegion *NewBizClientRegion `protobuf:"bytes,27,opt"`
ClientRegionCode *NewBizClientRegionCode `protobuf:"bytes,28,opt"`
}
func (x *AddressDetail) GetAid() uint32 {
if x != nil && x.Aid != nil {
return *x.Aid
}
return 0
}
func (x *AddressDetail) GetModifyTime() uint32 {
if x != nil && x.ModifyTime != nil {
return *x.ModifyTime
}
return 0
}
func (x *AddressDetail) GetCreateTime() uint32 {
if x != nil && x.CreateTime != nil {
return *x.CreateTime
}
return 0
}
func (x *AddressDetail) GetStatus() uint32 {
if x != nil && x.Status != nil {
return *x.Status
}
return 0
}
func (x *AddressDetail) GetGroupid() uint32 {
if x != nil && x.Groupid != nil {
return *x.Groupid
}
return 0
}
func (x *AddressDetail) GetGender() uint32 {
if x != nil && x.Gender != nil {
return *x.Gender
}
return 0
}
func (x *AddressDetail) GetBirthday() uint32 {
if x != nil && x.Birthday != nil {
return *x.Birthday
}
return 0
}
func (x *AddressDetail) GetMobilePhoneUpdated() bool {
if x != nil && x.MobilePhoneUpdated != nil {
return *x.MobilePhoneUpdated
}
return false
}
func (x *AddressDetail) GetQqPhoneUpdated() bool {
if x != nil && x.QqPhoneUpdated != nil {
return *x.QqPhoneUpdated
}
return false
}
func (x *AddressDetail) GetModifyTime2() uint64 {
if x != nil && x.ModifyTime2 != nil {
return *x.ModifyTime2
}
return 0
}
type AddressMobileInfo struct {
Index *uint32 `protobuf:"varint,1,opt"`
Account []byte `protobuf:"bytes,2,opt"`
FormattedAccount []byte `protobuf:"bytes,5,opt"`
}
func (x *AddressMobileInfo) GetIndex() uint32 {
if x != nil && x.Index != nil {
return *x.Index
}
return 0
Index proto.Option[uint32] `protobuf:"varint,1,opt"`
Account []byte `protobuf:"bytes,2,opt"`
FormattedAccount []byte `protobuf:"bytes,5,opt"`
}
type AddressQQinfo struct {
Index *uint32 `protobuf:"varint,1,opt"`
Account *uint64 `protobuf:"varint,2,opt"`
}
func (x *AddressQQinfo) GetIndex() uint32 {
if x != nil && x.Index != nil {
return *x.Index
}
return 0
}
func (x *AddressQQinfo) GetAccount() uint64 {
if x != nil && x.Account != nil {
return *x.Account
}
return 0
Index proto.Option[uint32] `protobuf:"varint,1,opt"`
Account proto.Option[uint64] `protobuf:"varint,2,opt"`
}
type NewBizClientRegion struct {
ClientNation *string `protobuf:"bytes,1,opt"`
ClientProvince *string `protobuf:"bytes,2,opt"`
ClientCity *string `protobuf:"bytes,3,opt"`
ClientRegion *string `protobuf:"bytes,4,opt"`
}
func (x *NewBizClientRegion) GetClientNation() string {
if x != nil && x.ClientNation != nil {
return *x.ClientNation
}
return ""
}
func (x *NewBizClientRegion) GetClientProvince() string {
if x != nil && x.ClientProvince != nil {
return *x.ClientProvince
}
return ""
}
func (x *NewBizClientRegion) GetClientCity() string {
if x != nil && x.ClientCity != nil {
return *x.ClientCity
}
return ""
}
func (x *NewBizClientRegion) GetClientRegion() string {
if x != nil && x.ClientRegion != nil {
return *x.ClientRegion
}
return ""
ClientNation proto.Option[string] `protobuf:"bytes,1,opt"`
ClientProvince proto.Option[string] `protobuf:"bytes,2,opt"`
ClientCity proto.Option[string] `protobuf:"bytes,3,opt"`
ClientRegion proto.Option[string] `protobuf:"bytes,4,opt"`
}
type NewBizClientRegionCode struct {
Nationid *uint64 `protobuf:"varint,1,opt"`
Provinceid *uint64 `protobuf:"varint,2,opt"`
Cityid *uint64 `protobuf:"varint,3,opt"`
Regionid *uint64 `protobuf:"varint,4,opt"`
}
func (x *NewBizClientRegionCode) GetNationid() uint64 {
if x != nil && x.Nationid != nil {
return *x.Nationid
}
return 0
}
func (x *NewBizClientRegionCode) GetProvinceid() uint64 {
if x != nil && x.Provinceid != nil {
return *x.Provinceid
}
return 0
}
func (x *NewBizClientRegionCode) GetCityid() uint64 {
if x != nil && x.Cityid != nil {
return *x.Cityid
}
return 0
}
func (x *NewBizClientRegionCode) GetRegionid() uint64 {
if x != nil && x.Regionid != nil {
return *x.Regionid
}
return 0
Nationid proto.Option[uint64] `protobuf:"varint,1,opt"`
Provinceid proto.Option[uint64] `protobuf:"varint,2,opt"`
Cityid proto.Option[uint64] `protobuf:"varint,3,opt"`
Regionid proto.Option[uint64] `protobuf:"varint,4,opt"`
}

View File

@ -3,6 +3,10 @@
package cmd0x6ff
import (
proto "github.com/RomiChan/protobuf/proto"
)
type C501ReqBody struct {
ReqBody *SubCmd0X501ReqBody `protobuf:"bytes,1281,opt"`
}
@ -12,56 +16,14 @@ type C501RspBody struct {
}
type SubCmd0X501ReqBody struct {
Uin *uint64 `protobuf:"varint,1,opt"`
IdcId *uint32 `protobuf:"varint,2,opt"`
Appid *uint32 `protobuf:"varint,3,opt"`
LoginSigType *uint32 `protobuf:"varint,4,opt"`
LoginSigTicket []byte `protobuf:"bytes,5,opt"`
RequestFlag *uint32 `protobuf:"varint,6,opt"`
ServiceTypes []uint32 `protobuf:"varint,7,rep"`
Bid *uint32 `protobuf:"varint,8,opt"`
}
func (x *SubCmd0X501ReqBody) GetUin() uint64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *SubCmd0X501ReqBody) GetIdcId() uint32 {
if x != nil && x.IdcId != nil {
return *x.IdcId
}
return 0
}
func (x *SubCmd0X501ReqBody) GetAppid() uint32 {
if x != nil && x.Appid != nil {
return *x.Appid
}
return 0
}
func (x *SubCmd0X501ReqBody) GetLoginSigType() uint32 {
if x != nil && x.LoginSigType != nil {
return *x.LoginSigType
}
return 0
}
func (x *SubCmd0X501ReqBody) GetRequestFlag() uint32 {
if x != nil && x.RequestFlag != nil {
return *x.RequestFlag
}
return 0
}
func (x *SubCmd0X501ReqBody) GetBid() uint32 {
if x != nil && x.Bid != nil {
return *x.Bid
}
return 0
Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
IdcId proto.Option[uint32] `protobuf:"varint,2,opt"`
Appid proto.Option[uint32] `protobuf:"varint,3,opt"`
LoginSigType proto.Option[uint32] `protobuf:"varint,4,opt"`
LoginSigTicket []byte `protobuf:"bytes,5,opt"`
RequestFlag proto.Option[uint32] `protobuf:"varint,6,opt"`
ServiceTypes []uint32 `protobuf:"varint,7,rep"`
Bid proto.Option[uint32] `protobuf:"varint,8,opt"`
}
type SubCmd0X501RspBody struct {
@ -71,48 +33,13 @@ type SubCmd0X501RspBody struct {
}
type SrvAddrs struct {
ServiceType *uint32 `protobuf:"varint,1,opt"`
Addrs []*IpAddr `protobuf:"bytes,2,rep"`
}
func (x *SrvAddrs) GetServiceType() uint32 {
if x != nil && x.ServiceType != nil {
return *x.ServiceType
}
return 0
ServiceType proto.Option[uint32] `protobuf:"varint,1,opt"`
Addrs []*IpAddr `protobuf:"bytes,2,rep"`
}
type IpAddr struct {
Type *uint32 `protobuf:"varint,1,opt"`
Ip *uint32 `protobuf:"fixed32,2,opt"`
Port *uint32 `protobuf:"varint,3,opt"`
Area *uint32 `protobuf:"varint,4,opt"`
}
func (x *IpAddr) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *IpAddr) GetIp() uint32 {
if x != nil && x.Ip != nil {
return *x.Ip
}
return 0
}
func (x *IpAddr) GetPort() uint32 {
if x != nil && x.Port != nil {
return *x.Port
}
return 0
}
func (x *IpAddr) GetArea() uint32 {
if x != nil && x.Area != nil {
return *x.Area
}
return 0
Type proto.Option[uint32] `protobuf:"varint,1,opt"`
Ip proto.Option[uint32] `protobuf:"fixed32,2,opt"`
Port proto.Option[uint32] `protobuf:"varint,3,opt"`
Area proto.Option[uint32] `protobuf:"varint,4,opt"`
}

View File

@ -3,32 +3,15 @@
package exciting
import (
proto "github.com/RomiChan/protobuf/proto"
)
type GroupFileUploadExt struct {
Unknown1 *int32 `protobuf:"varint,1,opt"`
Unknown2 *int32 `protobuf:"varint,2,opt"`
Unknown1 proto.Option[int32] `protobuf:"varint,1,opt"`
Unknown2 proto.Option[int32] `protobuf:"varint,2,opt"`
Entry *GroupFileUploadEntry `protobuf:"bytes,100,opt"`
Unknown3 *int32 `protobuf:"varint,3,opt"`
}
func (x *GroupFileUploadExt) GetUnknown1() int32 {
if x != nil && x.Unknown1 != nil {
return *x.Unknown1
}
return 0
}
func (x *GroupFileUploadExt) GetUnknown2() int32 {
if x != nil && x.Unknown2 != nil {
return *x.Unknown2
}
return 0
}
func (x *GroupFileUploadExt) GetUnknown3() int32 {
if x != nil && x.Unknown3 != nil {
return *x.Unknown3
}
return 0
Unknown3 proto.Option[int32] `protobuf:"varint,3,opt"`
}
type GroupFileUploadEntry struct {
@ -40,107 +23,30 @@ type GroupFileUploadEntry struct {
}
type ExcitingBusiInfo struct {
BusId *int32 `protobuf:"varint,1,opt"`
SenderUin *int64 `protobuf:"varint,100,opt"`
ReceiverUin *int64 `protobuf:"varint,200,opt"` // probable
GroupCode *int64 `protobuf:"varint,400,opt"` // probable
}
func (x *ExcitingBusiInfo) GetBusId() int32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *ExcitingBusiInfo) GetSenderUin() int64 {
if x != nil && x.SenderUin != nil {
return *x.SenderUin
}
return 0
}
func (x *ExcitingBusiInfo) GetReceiverUin() int64 {
if x != nil && x.ReceiverUin != nil {
return *x.ReceiverUin
}
return 0
}
func (x *ExcitingBusiInfo) GetGroupCode() int64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
BusId proto.Option[int32] `protobuf:"varint,1,opt"`
SenderUin proto.Option[int64] `protobuf:"varint,100,opt"`
ReceiverUin proto.Option[int64] `protobuf:"varint,200,opt"` // probable
GroupCode proto.Option[int64] `protobuf:"varint,400,opt"` // probable
}
type ExcitingFileEntry struct {
FileSize *int64 `protobuf:"varint,100,opt"`
Md5 []byte `protobuf:"bytes,200,opt"`
Sha1 []byte `protobuf:"bytes,300,opt"`
FileId []byte `protobuf:"bytes,600,opt"`
UploadKey []byte `protobuf:"bytes,700,opt"`
}
func (x *ExcitingFileEntry) GetFileSize() int64 {
if x != nil && x.FileSize != nil {
return *x.FileSize
}
return 0
FileSize proto.Option[int64] `protobuf:"varint,100,opt"`
Md5 []byte `protobuf:"bytes,200,opt"`
Sha1 []byte `protobuf:"bytes,300,opt"`
FileId []byte `protobuf:"bytes,600,opt"`
UploadKey []byte `protobuf:"bytes,700,opt"`
}
type ExcitingClientInfo struct {
ClientType *int32 `protobuf:"varint,100,opt"` // probable
AppId *string `protobuf:"bytes,200,opt"`
TerminalType *int32 `protobuf:"varint,300,opt"` // probable
ClientVer *string `protobuf:"bytes,400,opt"`
Unknown *int32 `protobuf:"varint,600,opt"`
}
func (x *ExcitingClientInfo) GetClientType() int32 {
if x != nil && x.ClientType != nil {
return *x.ClientType
}
return 0
}
func (x *ExcitingClientInfo) GetAppId() string {
if x != nil && x.AppId != nil {
return *x.AppId
}
return ""
}
func (x *ExcitingClientInfo) GetTerminalType() int32 {
if x != nil && x.TerminalType != nil {
return *x.TerminalType
}
return 0
}
func (x *ExcitingClientInfo) GetClientVer() string {
if x != nil && x.ClientVer != nil {
return *x.ClientVer
}
return ""
}
func (x *ExcitingClientInfo) GetUnknown() int32 {
if x != nil && x.Unknown != nil {
return *x.Unknown
}
return 0
ClientType proto.Option[int32] `protobuf:"varint,100,opt"` // probable
AppId proto.Option[string] `protobuf:"bytes,200,opt"`
TerminalType proto.Option[int32] `protobuf:"varint,300,opt"` // probable
ClientVer proto.Option[string] `protobuf:"bytes,400,opt"`
Unknown proto.Option[int32] `protobuf:"varint,600,opt"`
}
type ExcitingFileNameInfo struct {
FileName *string `protobuf:"bytes,100,opt"`
}
func (x *ExcitingFileNameInfo) GetFileName() string {
if x != nil && x.FileName != nil {
return *x.FileName
}
return ""
FileName proto.Option[string] `protobuf:"bytes,100,opt"`
}
type ExcitingHostConfig struct {
@ -148,32 +54,11 @@ type ExcitingHostConfig struct {
}
type ExcitingHostInfo struct {
Url *ExcitingUrlInfo `protobuf:"bytes,1,opt"`
Port *int32 `protobuf:"varint,2,opt"`
}
func (x *ExcitingHostInfo) GetPort() int32 {
if x != nil && x.Port != nil {
return *x.Port
}
return 0
Url *ExcitingUrlInfo `protobuf:"bytes,1,opt"`
Port proto.Option[int32] `protobuf:"varint,2,opt"`
}
type ExcitingUrlInfo struct {
Unknown *int32 `protobuf:"varint,1,opt"` // not https?
Host *string `protobuf:"bytes,2,opt"`
}
func (x *ExcitingUrlInfo) GetUnknown() int32 {
if x != nil && x.Unknown != nil {
return *x.Unknown
}
return 0
}
func (x *ExcitingUrlInfo) GetHost() string {
if x != nil && x.Host != nil {
return *x.Host
}
return ""
Unknown proto.Option[int32] `protobuf:"varint,1,opt"` // not https?
Host proto.Option[string] `protobuf:"bytes,2,opt"`
}

View File

@ -3,53 +3,22 @@
package faceroam
import (
proto "github.com/RomiChan/protobuf/proto"
)
type PlatInfo struct {
Implat *int64 `protobuf:"varint,1,opt"`
Osver *string `protobuf:"bytes,2,opt"`
Mqqver *string `protobuf:"bytes,3,opt"`
}
func (x *PlatInfo) GetImplat() int64 {
if x != nil && x.Implat != nil {
return *x.Implat
}
return 0
}
func (x *PlatInfo) GetOsver() string {
if x != nil && x.Osver != nil {
return *x.Osver
}
return ""
}
func (x *PlatInfo) GetMqqver() string {
if x != nil && x.Mqqver != nil {
return *x.Mqqver
}
return ""
Implat proto.Option[int64] `protobuf:"varint,1,opt"`
Osver proto.Option[string] `protobuf:"bytes,2,opt"`
Mqqver proto.Option[string] `protobuf:"bytes,3,opt"`
}
type FaceroamReqBody struct {
Comm *PlatInfo `protobuf:"bytes,1,opt"`
Uin *uint64 `protobuf:"varint,2,opt"`
SubCmd *uint32 `protobuf:"varint,3,opt"`
ReqUserInfo *ReqUserInfo `protobuf:"bytes,4,opt"`
ReqDeleteItem *ReqDeleteItem `protobuf:"bytes,5,opt"`
}
func (x *FaceroamReqBody) GetUin() uint64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *FaceroamReqBody) GetSubCmd() uint32 {
if x != nil && x.SubCmd != nil {
return *x.SubCmd
}
return 0
Comm *PlatInfo `protobuf:"bytes,1,opt"`
Uin proto.Option[uint64] `protobuf:"varint,2,opt"`
SubCmd proto.Option[uint32] `protobuf:"varint,3,opt"`
ReqUserInfo *ReqUserInfo `protobuf:"bytes,4,opt"`
ReqDeleteItem *ReqDeleteItem `protobuf:"bytes,5,opt"`
}
type ReqDeleteItem struct {
@ -60,32 +29,11 @@ type ReqUserInfo struct {
}
type FaceroamRspBody struct {
Ret *int64 `protobuf:"varint,1,opt"`
Errmsg *string `protobuf:"bytes,2,opt"`
SubCmd *uint32 `protobuf:"varint,3,opt"`
RspUserInfo *RspUserInfo `protobuf:"bytes,4,opt"`
RspDeleteItem *RspDeleteItem `protobuf:"bytes,5,opt"`
}
func (x *FaceroamRspBody) GetRet() int64 {
if x != nil && x.Ret != nil {
return *x.Ret
}
return 0
}
func (x *FaceroamRspBody) GetErrmsg() string {
if x != nil && x.Errmsg != nil {
return *x.Errmsg
}
return ""
}
func (x *FaceroamRspBody) GetSubCmd() uint32 {
if x != nil && x.SubCmd != nil {
return *x.SubCmd
}
return 0
Ret proto.Option[int64] `protobuf:"varint,1,opt"`
Errmsg proto.Option[string] `protobuf:"bytes,2,opt"`
SubCmd proto.Option[uint32] `protobuf:"varint,3,opt"`
RspUserInfo *RspUserInfo `protobuf:"bytes,4,opt"`
RspDeleteItem *RspDeleteItem `protobuf:"bytes,5,opt"`
}
type RspDeleteItem struct {
@ -94,23 +42,9 @@ type RspDeleteItem struct {
}
type RspUserInfo struct {
Filename []string `protobuf:"bytes,1,rep"`
DeleteFile []string `protobuf:"bytes,2,rep"`
Bid *string `protobuf:"bytes,3,opt"`
MaxRoamSize *uint32 `protobuf:"varint,4,opt"`
EmojiType []uint32 `protobuf:"varint,5,rep"`
}
func (x *RspUserInfo) GetBid() string {
if x != nil && x.Bid != nil {
return *x.Bid
}
return ""
}
func (x *RspUserInfo) GetMaxRoamSize() uint32 {
if x != nil && x.MaxRoamSize != nil {
return *x.MaxRoamSize
}
return 0
Filename []string `protobuf:"bytes,1,rep"`
DeleteFile []string `protobuf:"bytes,2,rep"`
Bid proto.Option[string] `protobuf:"bytes,3,opt"`
MaxRoamSize proto.Option[uint32] `protobuf:"varint,4,opt"`
EmojiType []uint32 `protobuf:"varint,5,rep"`
}

View File

@ -3,289 +3,97 @@
package highway
type CommFileExtReq struct {
ActionType *uint32 `protobuf:"varint,1,opt"`
Uuid []byte `protobuf:"bytes,2,opt"`
}
import (
proto "github.com/RomiChan/protobuf/proto"
)
func (x *CommFileExtReq) GetActionType() uint32 {
if x != nil && x.ActionType != nil {
return *x.ActionType
}
return 0
type CommFileExtReq struct {
ActionType proto.Option[uint32] `protobuf:"varint,1,opt"`
Uuid []byte `protobuf:"bytes,2,opt"`
}
type CommFileExtRsp struct {
Retcode *int32 `protobuf:"varint,1,opt"`
DownloadUrl []byte `protobuf:"bytes,2,opt"`
}
func (x *CommFileExtRsp) GetRetcode() int32 {
if x != nil && x.Retcode != nil {
return *x.Retcode
}
return 0
Retcode proto.Option[int32] `protobuf:"varint,1,opt"`
DownloadUrl []byte `protobuf:"bytes,2,opt"`
}
type PicInfo struct {
Idx *uint32 `protobuf:"varint,1,opt"`
Size *uint32 `protobuf:"varint,2,opt"`
BinMd5 []byte `protobuf:"bytes,3,opt"`
Type *uint32 `protobuf:"varint,4,opt"`
}
func (x *PicInfo) GetIdx() uint32 {
if x != nil && x.Idx != nil {
return *x.Idx
}
return 0
}
func (x *PicInfo) GetSize() uint32 {
if x != nil && x.Size != nil {
return *x.Size
}
return 0
}
func (x *PicInfo) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
Idx proto.Option[uint32] `protobuf:"varint,1,opt"`
Size proto.Option[uint32] `protobuf:"varint,2,opt"`
BinMd5 []byte `protobuf:"bytes,3,opt"`
Type proto.Option[uint32] `protobuf:"varint,4,opt"`
}
type QQVoiceExtReq struct {
Qid []byte `protobuf:"bytes,1,opt"`
Fmt *uint32 `protobuf:"varint,2,opt"`
Rate *uint32 `protobuf:"varint,3,opt"`
Bits *uint32 `protobuf:"varint,4,opt"`
Channel *uint32 `protobuf:"varint,5,opt"`
Pinyin *uint32 `protobuf:"varint,6,opt"`
}
func (x *QQVoiceExtReq) GetFmt() uint32 {
if x != nil && x.Fmt != nil {
return *x.Fmt
}
return 0
}
func (x *QQVoiceExtReq) GetRate() uint32 {
if x != nil && x.Rate != nil {
return *x.Rate
}
return 0
}
func (x *QQVoiceExtReq) GetBits() uint32 {
if x != nil && x.Bits != nil {
return *x.Bits
}
return 0
}
func (x *QQVoiceExtReq) GetChannel() uint32 {
if x != nil && x.Channel != nil {
return *x.Channel
}
return 0
}
func (x *QQVoiceExtReq) GetPinyin() uint32 {
if x != nil && x.Pinyin != nil {
return *x.Pinyin
}
return 0
Qid []byte `protobuf:"bytes,1,opt"`
Fmt proto.Option[uint32] `protobuf:"varint,2,opt"`
Rate proto.Option[uint32] `protobuf:"varint,3,opt"`
Bits proto.Option[uint32] `protobuf:"varint,4,opt"`
Channel proto.Option[uint32] `protobuf:"varint,5,opt"`
Pinyin proto.Option[uint32] `protobuf:"varint,6,opt"`
}
type QQVoiceExtRsp struct {
Qid []byte `protobuf:"bytes,1,opt"`
Retcode *int32 `protobuf:"varint,2,opt"`
Result []*QQVoiceResult `protobuf:"bytes,3,rep"`
}
func (x *QQVoiceExtRsp) GetRetcode() int32 {
if x != nil && x.Retcode != nil {
return *x.Retcode
}
return 0
Qid []byte `protobuf:"bytes,1,opt"`
Retcode proto.Option[int32] `protobuf:"varint,2,opt"`
Result []*QQVoiceResult `protobuf:"bytes,3,rep"`
}
type QQVoiceResult struct {
Text []byte `protobuf:"bytes,1,opt"`
Pinyin []byte `protobuf:"bytes,2,opt"`
Source *uint32 `protobuf:"varint,3,opt"`
}
func (x *QQVoiceResult) GetSource() uint32 {
if x != nil && x.Source != nil {
return *x.Source
}
return 0
Text []byte `protobuf:"bytes,1,opt"`
Pinyin []byte `protobuf:"bytes,2,opt"`
Source proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type ShortVideoReqExtInfo struct {
Cmd *uint32 `protobuf:"varint,1,opt"`
SessionId *uint64 `protobuf:"varint,2,opt"`
Cmd proto.Option[uint32] `protobuf:"varint,1,opt"`
SessionId proto.Option[uint64] `protobuf:"varint,2,opt"`
Thumbinfo *PicInfo `protobuf:"bytes,3,opt"`
Videoinfo *VideoInfo `protobuf:"bytes,4,opt"`
ShortvideoSureReq *ShortVideoSureReqInfo `protobuf:"bytes,5,opt"`
IsMergeCmdBeforeData *bool `protobuf:"varint,6,opt"`
}
func (x *ShortVideoReqExtInfo) GetCmd() uint32 {
if x != nil && x.Cmd != nil {
return *x.Cmd
}
return 0
}
func (x *ShortVideoReqExtInfo) GetSessionId() uint64 {
if x != nil && x.SessionId != nil {
return *x.SessionId
}
return 0
}
func (x *ShortVideoReqExtInfo) GetIsMergeCmdBeforeData() bool {
if x != nil && x.IsMergeCmdBeforeData != nil {
return *x.IsMergeCmdBeforeData
}
return false
IsMergeCmdBeforeData proto.Option[bool] `protobuf:"varint,6,opt"`
}
type ShortVideoRspExtInfo struct {
Cmd *uint32 `protobuf:"varint,1,opt"`
SessionId *uint64 `protobuf:"varint,2,opt"`
Retcode *int32 `protobuf:"varint,3,opt"`
Cmd proto.Option[uint32] `protobuf:"varint,1,opt"`
SessionId proto.Option[uint64] `protobuf:"varint,2,opt"`
Retcode proto.Option[int32] `protobuf:"varint,3,opt"`
Errinfo []byte `protobuf:"bytes,4,opt"`
Thumbinfo *PicInfo `protobuf:"bytes,5,opt"`
Videoinfo *VideoInfo `protobuf:"bytes,6,opt"`
ShortvideoSureRsp *ShortVideoSureRspInfo `protobuf:"bytes,7,opt"`
RetryFlag *uint32 `protobuf:"varint,8,opt"`
}
func (x *ShortVideoRspExtInfo) GetCmd() uint32 {
if x != nil && x.Cmd != nil {
return *x.Cmd
}
return 0
}
func (x *ShortVideoRspExtInfo) GetSessionId() uint64 {
if x != nil && x.SessionId != nil {
return *x.SessionId
}
return 0
}
func (x *ShortVideoRspExtInfo) GetRetcode() int32 {
if x != nil && x.Retcode != nil {
return *x.Retcode
}
return 0
}
func (x *ShortVideoRspExtInfo) GetRetryFlag() uint32 {
if x != nil && x.RetryFlag != nil {
return *x.RetryFlag
}
return 0
RetryFlag proto.Option[uint32] `protobuf:"varint,8,opt"`
}
type ShortVideoSureReqInfo struct {
Fromuin *uint64 `protobuf:"varint,1,opt"`
ChatType *uint32 `protobuf:"varint,2,opt"`
Touin *uint64 `protobuf:"varint,3,opt"`
GroupCode *uint64 `protobuf:"varint,4,opt"`
ClientType *uint32 `protobuf:"varint,5,opt"`
Thumbinfo *PicInfo `protobuf:"bytes,6,opt"`
MergeVideoinfo []*VideoInfo `protobuf:"bytes,7,rep"`
DropVideoinfo []*VideoInfo `protobuf:"bytes,8,rep"`
BusinessType *uint32 `protobuf:"varint,9,opt"`
SubBusinessType *uint32 `protobuf:"varint,10,opt"`
}
func (x *ShortVideoSureReqInfo) GetFromuin() uint64 {
if x != nil && x.Fromuin != nil {
return *x.Fromuin
}
return 0
}
func (x *ShortVideoSureReqInfo) GetChatType() uint32 {
if x != nil && x.ChatType != nil {
return *x.ChatType
}
return 0
}
func (x *ShortVideoSureReqInfo) GetTouin() uint64 {
if x != nil && x.Touin != nil {
return *x.Touin
}
return 0
}
func (x *ShortVideoSureReqInfo) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *ShortVideoSureReqInfo) GetClientType() uint32 {
if x != nil && x.ClientType != nil {
return *x.ClientType
}
return 0
}
func (x *ShortVideoSureReqInfo) GetBusinessType() uint32 {
if x != nil && x.BusinessType != nil {
return *x.BusinessType
}
return 0
}
func (x *ShortVideoSureReqInfo) GetSubBusinessType() uint32 {
if x != nil && x.SubBusinessType != nil {
return *x.SubBusinessType
}
return 0
Fromuin proto.Option[uint64] `protobuf:"varint,1,opt"`
ChatType proto.Option[uint32] `protobuf:"varint,2,opt"`
Touin proto.Option[uint64] `protobuf:"varint,3,opt"`
GroupCode proto.Option[uint64] `protobuf:"varint,4,opt"`
ClientType proto.Option[uint32] `protobuf:"varint,5,opt"`
Thumbinfo *PicInfo `protobuf:"bytes,6,opt"`
MergeVideoinfo []*VideoInfo `protobuf:"bytes,7,rep"`
DropVideoinfo []*VideoInfo `protobuf:"bytes,8,rep"`
BusinessType proto.Option[uint32] `protobuf:"varint,9,opt"`
SubBusinessType proto.Option[uint32] `protobuf:"varint,10,opt"`
}
type ShortVideoSureRspInfo struct {
Fileid []byte `protobuf:"bytes,1,opt"`
Ukey []byte `protobuf:"bytes,2,opt"`
Videoinfo *VideoInfo `protobuf:"bytes,3,opt"`
MergeCost *uint32 `protobuf:"varint,4,opt"`
}
func (x *ShortVideoSureRspInfo) GetMergeCost() uint32 {
if x != nil && x.MergeCost != nil {
return *x.MergeCost
}
return 0
Fileid []byte `protobuf:"bytes,1,opt"`
Ukey []byte `protobuf:"bytes,2,opt"`
Videoinfo *VideoInfo `protobuf:"bytes,3,opt"`
MergeCost proto.Option[uint32] `protobuf:"varint,4,opt"`
}
type StoryVideoExtReq struct {
}
type StoryVideoExtRsp struct {
Retcode *int32 `protobuf:"varint,1,opt"`
Msg []byte `protobuf:"bytes,2,opt"`
CdnUrl []byte `protobuf:"bytes,3,opt"`
FileKey []byte `protobuf:"bytes,4,opt"`
FileId []byte `protobuf:"bytes,5,opt"`
}
func (x *StoryVideoExtRsp) GetRetcode() int32 {
if x != nil && x.Retcode != nil {
return *x.Retcode
}
return 0
Retcode proto.Option[int32] `protobuf:"varint,1,opt"`
Msg []byte `protobuf:"bytes,2,opt"`
CdnUrl []byte `protobuf:"bytes,3,opt"`
FileKey []byte `protobuf:"bytes,4,opt"`
FileId []byte `protobuf:"bytes,5,opt"`
}
type UploadPicExtInfo struct {
@ -295,69 +103,13 @@ type UploadPicExtInfo struct {
}
type VideoInfo struct {
Idx *uint32 `protobuf:"varint,1,opt"`
Size *uint32 `protobuf:"varint,2,opt"`
BinMd5 []byte `protobuf:"bytes,3,opt"`
Format *uint32 `protobuf:"varint,4,opt"`
ResLen *uint32 `protobuf:"varint,5,opt"`
ResWidth *uint32 `protobuf:"varint,6,opt"`
Time *uint32 `protobuf:"varint,7,opt"`
Starttime *uint64 `protobuf:"varint,8,opt"`
IsAudio *uint32 `protobuf:"varint,9,opt"`
}
func (x *VideoInfo) GetIdx() uint32 {
if x != nil && x.Idx != nil {
return *x.Idx
}
return 0
}
func (x *VideoInfo) GetSize() uint32 {
if x != nil && x.Size != nil {
return *x.Size
}
return 0
}
func (x *VideoInfo) GetFormat() uint32 {
if x != nil && x.Format != nil {
return *x.Format
}
return 0
}
func (x *VideoInfo) GetResLen() uint32 {
if x != nil && x.ResLen != nil {
return *x.ResLen
}
return 0
}
func (x *VideoInfo) GetResWidth() uint32 {
if x != nil && x.ResWidth != nil {
return *x.ResWidth
}
return 0
}
func (x *VideoInfo) GetTime() uint32 {
if x != nil && x.Time != nil {
return *x.Time
}
return 0
}
func (x *VideoInfo) GetStarttime() uint64 {
if x != nil && x.Starttime != nil {
return *x.Starttime
}
return 0
}
func (x *VideoInfo) GetIsAudio() uint32 {
if x != nil && x.IsAudio != nil {
return *x.IsAudio
}
return 0
Idx proto.Option[uint32] `protobuf:"varint,1,opt"`
Size proto.Option[uint32] `protobuf:"varint,2,opt"`
BinMd5 []byte `protobuf:"bytes,3,opt"`
Format proto.Option[uint32] `protobuf:"varint,4,opt"`
ResLen proto.Option[uint32] `protobuf:"varint,5,opt"`
ResWidth proto.Option[uint32] `protobuf:"varint,6,opt"`
Time proto.Option[uint32] `protobuf:"varint,7,opt"`
Starttime proto.Option[uint64] `protobuf:"varint,8,opt"`
IsAudio proto.Option[uint32] `protobuf:"varint,9,opt"`
}

View File

@ -3,189 +3,46 @@
package msf
import (
proto "github.com/RomiChan/protobuf/proto"
)
type DiscussList struct {
DiscussCode *uint64 `protobuf:"varint,1,opt"`
DiscussSeq *uint64 `protobuf:"varint,2,opt"`
MemberSeq *uint64 `protobuf:"varint,3,opt"`
InfoSeq *uint64 `protobuf:"varint,4,opt"`
BHotGroup *bool `protobuf:"varint,5,opt"`
RedpackTime *uint64 `protobuf:"varint,6,opt"`
HasMsg *bool `protobuf:"varint,7,opt"`
DicussFlag *int64 `protobuf:"varint,8,opt"`
}
func (x *DiscussList) GetDiscussCode() uint64 {
if x != nil && x.DiscussCode != nil {
return *x.DiscussCode
}
return 0
}
func (x *DiscussList) GetDiscussSeq() uint64 {
if x != nil && x.DiscussSeq != nil {
return *x.DiscussSeq
}
return 0
}
func (x *DiscussList) GetMemberSeq() uint64 {
if x != nil && x.MemberSeq != nil {
return *x.MemberSeq
}
return 0
}
func (x *DiscussList) GetInfoSeq() uint64 {
if x != nil && x.InfoSeq != nil {
return *x.InfoSeq
}
return 0
}
func (x *DiscussList) GetBHotGroup() bool {
if x != nil && x.BHotGroup != nil {
return *x.BHotGroup
}
return false
}
func (x *DiscussList) GetRedpackTime() uint64 {
if x != nil && x.RedpackTime != nil {
return *x.RedpackTime
}
return 0
}
func (x *DiscussList) GetHasMsg() bool {
if x != nil && x.HasMsg != nil {
return *x.HasMsg
}
return false
}
func (x *DiscussList) GetDicussFlag() int64 {
if x != nil && x.DicussFlag != nil {
return *x.DicussFlag
}
return 0
DiscussCode proto.Option[uint64] `protobuf:"varint,1,opt"`
DiscussSeq proto.Option[uint64] `protobuf:"varint,2,opt"`
MemberSeq proto.Option[uint64] `protobuf:"varint,3,opt"`
InfoSeq proto.Option[uint64] `protobuf:"varint,4,opt"`
BHotGroup proto.Option[bool] `protobuf:"varint,5,opt"`
RedpackTime proto.Option[uint64] `protobuf:"varint,6,opt"`
HasMsg proto.Option[bool] `protobuf:"varint,7,opt"`
DicussFlag proto.Option[int64] `protobuf:"varint,8,opt"`
}
type GroupList struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
GroupSeq *uint64 `protobuf:"varint,2,opt"`
MemberSeq *uint64 `protobuf:"varint,3,opt"`
Mask *uint64 `protobuf:"varint,4,opt"`
RedpackTime *uint64 `protobuf:"varint,5,opt"`
HasMsg *bool `protobuf:"varint,6,opt"`
GroupFlag *int64 `protobuf:"varint,7,opt"`
GroupType *uint64 `protobuf:"varint,8,opt"`
GroupNameSeq *uint32 `protobuf:"varint,9,opt"`
GroupMemberSeq *uint32 `protobuf:"varint,10,opt"`
UinFlagEx2 *uint32 `protobuf:"varint,11,opt"`
ImportantMsgLatestSeq *uint32 `protobuf:"varint,12,opt"`
}
func (x *GroupList) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *GroupList) GetGroupSeq() uint64 {
if x != nil && x.GroupSeq != nil {
return *x.GroupSeq
}
return 0
}
func (x *GroupList) GetMemberSeq() uint64 {
if x != nil && x.MemberSeq != nil {
return *x.MemberSeq
}
return 0
}
func (x *GroupList) GetMask() uint64 {
if x != nil && x.Mask != nil {
return *x.Mask
}
return 0
}
func (x *GroupList) GetRedpackTime() uint64 {
if x != nil && x.RedpackTime != nil {
return *x.RedpackTime
}
return 0
}
func (x *GroupList) GetHasMsg() bool {
if x != nil && x.HasMsg != nil {
return *x.HasMsg
}
return false
}
func (x *GroupList) GetGroupFlag() int64 {
if x != nil && x.GroupFlag != nil {
return *x.GroupFlag
}
return 0
}
func (x *GroupList) GetGroupType() uint64 {
if x != nil && x.GroupType != nil {
return *x.GroupType
}
return 0
}
func (x *GroupList) GetGroupNameSeq() uint32 {
if x != nil && x.GroupNameSeq != nil {
return *x.GroupNameSeq
}
return 0
}
func (x *GroupList) GetGroupMemberSeq() uint32 {
if x != nil && x.GroupMemberSeq != nil {
return *x.GroupMemberSeq
}
return 0
}
func (x *GroupList) GetUinFlagEx2() uint32 {
if x != nil && x.UinFlagEx2 != nil {
return *x.UinFlagEx2
}
return 0
}
func (x *GroupList) GetImportantMsgLatestSeq() uint32 {
if x != nil && x.ImportantMsgLatestSeq != nil {
return *x.ImportantMsgLatestSeq
}
return 0
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
GroupSeq proto.Option[uint64] `protobuf:"varint,2,opt"`
MemberSeq proto.Option[uint64] `protobuf:"varint,3,opt"`
Mask proto.Option[uint64] `protobuf:"varint,4,opt"`
RedpackTime proto.Option[uint64] `protobuf:"varint,5,opt"`
HasMsg proto.Option[bool] `protobuf:"varint,6,opt"`
GroupFlag proto.Option[int64] `protobuf:"varint,7,opt"`
GroupType proto.Option[uint64] `protobuf:"varint,8,opt"`
GroupNameSeq proto.Option[uint32] `protobuf:"varint,9,opt"`
GroupMemberSeq proto.Option[uint32] `protobuf:"varint,10,opt"`
UinFlagEx2 proto.Option[uint32] `protobuf:"varint,11,opt"`
ImportantMsgLatestSeq proto.Option[uint32] `protobuf:"varint,12,opt"`
}
type SvcPbResponsePullDisMsgProxy struct {
MemberSeq *uint64 `protobuf:"varint,1,opt"`
Content []byte `protobuf:"bytes,2,opt"`
}
func (x *SvcPbResponsePullDisMsgProxy) GetMemberSeq() uint64 {
if x != nil && x.MemberSeq != nil {
return *x.MemberSeq
}
return 0
MemberSeq proto.Option[uint64] `protobuf:"varint,1,opt"`
Content []byte `protobuf:"bytes,2,opt"`
}
type SvcRegisterProxyMsgResp struct {
Result *uint32 `protobuf:"varint,1,opt"`
Result proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"`
Flag *uint32 `protobuf:"varint,3,opt"`
Seq *uint32 `protobuf:"varint,4,opt"`
Flag proto.Option[uint32] `protobuf:"varint,3,opt"`
Seq proto.Option[uint32] `protobuf:"varint,4,opt"`
Info *SvcResponseMsgInfo `protobuf:"bytes,5,opt"`
GroupList []*GroupList `protobuf:"bytes,6,rep"`
DiscussList []*DiscussList `protobuf:"bytes,7,rep"`
@ -193,64 +50,15 @@ type SvcRegisterProxyMsgResp struct {
DiscussMsg []*SvcPbResponsePullDisMsgProxy `protobuf:"bytes,9,rep"`
C2CMsg []byte `protobuf:"bytes,10,opt"`
PubAccountMsg []byte `protobuf:"bytes,11,opt"`
DiscussListFlag *uint32 `protobuf:"varint,12,opt"`
}
func (x *SvcRegisterProxyMsgResp) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *SvcRegisterProxyMsgResp) GetFlag() uint32 {
if x != nil && x.Flag != nil {
return *x.Flag
}
return 0
}
func (x *SvcRegisterProxyMsgResp) GetSeq() uint32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *SvcRegisterProxyMsgResp) GetDiscussListFlag() uint32 {
if x != nil && x.DiscussListFlag != nil {
return *x.DiscussListFlag
}
return 0
DiscussListFlag proto.Option[uint32] `protobuf:"varint,12,opt"`
}
type SvcResponseMsgInfo struct {
GroupNum *uint32 `protobuf:"varint,1,opt"`
DiscussNum *uint32 `protobuf:"varint,2,opt"`
}
func (x *SvcResponseMsgInfo) GetGroupNum() uint32 {
if x != nil && x.GroupNum != nil {
return *x.GroupNum
}
return 0
}
func (x *SvcResponseMsgInfo) GetDiscussNum() uint32 {
if x != nil && x.DiscussNum != nil {
return *x.DiscussNum
}
return 0
GroupNum proto.Option[uint32] `protobuf:"varint,1,opt"`
DiscussNum proto.Option[uint32] `protobuf:"varint,2,opt"`
}
type SvcResponsePbPullGroupMsgProxy struct {
MemberSeq *uint64 `protobuf:"varint,1,opt"`
Content []byte `protobuf:"bytes,2,opt"`
}
func (x *SvcResponsePbPullGroupMsgProxy) GetMemberSeq() uint64 {
if x != nil && x.MemberSeq != nil {
return *x.MemberSeq
}
return 0
MemberSeq proto.Option[uint64] `protobuf:"varint,1,opt"`
Content []byte `protobuf:"bytes,2,opt"`
}

View File

@ -3,80 +3,28 @@
package msg
import (
proto "github.com/RomiChan/protobuf/proto"
)
type ExtChannelInfo struct {
GuildId *uint64 `protobuf:"varint,1,opt"`
ChannelId *uint64 `protobuf:"varint,2,opt"`
}
func (x *ExtChannelInfo) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
func (x *ExtChannelInfo) GetChannelId() uint64 {
if x != nil && x.ChannelId != nil {
return *x.ChannelId
}
return 0
GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelId proto.Option[uint64] `protobuf:"varint,2,opt"`
}
type TextResvAttr struct {
Wording []byte `protobuf:"bytes,1,opt"`
TextAnalysisResult *uint32 `protobuf:"varint,2,opt"`
AtType *uint32 `protobuf:"varint,3,opt"`
AtMemberUin *uint64 `protobuf:"varint,4,opt"`
AtMemberTinyid *uint64 `protobuf:"varint,5,opt"`
AtMemberRoleInfo *ExtRoleInfo `protobuf:"bytes,6,opt"`
AtRoleInfo *ExtRoleInfo `protobuf:"bytes,7,opt"`
AtChannelInfo *ExtChannelInfo `protobuf:"bytes,8,opt"`
}
func (x *TextResvAttr) GetTextAnalysisResult() uint32 {
if x != nil && x.TextAnalysisResult != nil {
return *x.TextAnalysisResult
}
return 0
}
func (x *TextResvAttr) GetAtType() uint32 {
if x != nil && x.AtType != nil {
return *x.AtType
}
return 0
}
func (x *TextResvAttr) GetAtMemberUin() uint64 {
if x != nil && x.AtMemberUin != nil {
return *x.AtMemberUin
}
return 0
}
func (x *TextResvAttr) GetAtMemberTinyid() uint64 {
if x != nil && x.AtMemberTinyid != nil {
return *x.AtMemberTinyid
}
return 0
Wording []byte `protobuf:"bytes,1,opt"`
TextAnalysisResult proto.Option[uint32] `protobuf:"varint,2,opt"`
AtType proto.Option[uint32] `protobuf:"varint,3,opt"`
AtMemberUin proto.Option[uint64] `protobuf:"varint,4,opt"`
AtMemberTinyid proto.Option[uint64] `protobuf:"varint,5,opt"`
AtMemberRoleInfo *ExtRoleInfo `protobuf:"bytes,6,opt"`
AtRoleInfo *ExtRoleInfo `protobuf:"bytes,7,opt"`
AtChannelInfo *ExtChannelInfo `protobuf:"bytes,8,opt"`
}
type ExtRoleInfo struct {
Id *uint64 `protobuf:"varint,1,opt"`
Info []byte `protobuf:"bytes,2,opt"`
Flag *uint32 `protobuf:"varint,3,opt"`
}
func (x *ExtRoleInfo) GetId() uint64 {
if x != nil && x.Id != nil {
return *x.Id
}
return 0
}
func (x *ExtRoleInfo) GetFlag() uint32 {
if x != nil && x.Flag != nil {
return *x.Flag
}
return 0
Id proto.Option[uint64] `protobuf:"varint,1,opt"`
Info []byte `protobuf:"bytes,2,opt"`
Flag proto.Option[uint32] `protobuf:"varint,3,opt"`
}

View File

@ -3,668 +3,126 @@
package msg
import (
proto "github.com/RomiChan/protobuf/proto"
)
type C2CHead struct {
ToUin *uint64 `protobuf:"varint,1,opt"`
FromUin *uint64 `protobuf:"varint,2,opt"`
CcType *uint32 `protobuf:"varint,3,opt"`
CcCmd *uint32 `protobuf:"varint,4,opt"`
AuthPicSig []byte `protobuf:"bytes,5,opt"`
AuthSig []byte `protobuf:"bytes,6,opt"`
AuthBuf []byte `protobuf:"bytes,7,opt"`
ServerTime *uint32 `protobuf:"varint,8,opt"`
ClientTime *uint32 `protobuf:"varint,9,opt"`
Rand *uint32 `protobuf:"varint,10,opt"`
PhoneNumber *string `protobuf:"bytes,11,opt"`
}
func (x *C2CHead) GetToUin() uint64 {
if x != nil && x.ToUin != nil {
return *x.ToUin
}
return 0
}
func (x *C2CHead) GetFromUin() uint64 {
if x != nil && x.FromUin != nil {
return *x.FromUin
}
return 0
}
func (x *C2CHead) GetCcType() uint32 {
if x != nil && x.CcType != nil {
return *x.CcType
}
return 0
}
func (x *C2CHead) GetCcCmd() uint32 {
if x != nil && x.CcCmd != nil {
return *x.CcCmd
}
return 0
}
func (x *C2CHead) GetServerTime() uint32 {
if x != nil && x.ServerTime != nil {
return *x.ServerTime
}
return 0
}
func (x *C2CHead) GetClientTime() uint32 {
if x != nil && x.ClientTime != nil {
return *x.ClientTime
}
return 0
}
func (x *C2CHead) GetRand() uint32 {
if x != nil && x.Rand != nil {
return *x.Rand
}
return 0
}
func (x *C2CHead) GetPhoneNumber() string {
if x != nil && x.PhoneNumber != nil {
return *x.PhoneNumber
}
return ""
ToUin proto.Option[uint64] `protobuf:"varint,1,opt"`
FromUin proto.Option[uint64] `protobuf:"varint,2,opt"`
CcType proto.Option[uint32] `protobuf:"varint,3,opt"`
CcCmd proto.Option[uint32] `protobuf:"varint,4,opt"`
AuthPicSig []byte `protobuf:"bytes,5,opt"`
AuthSig []byte `protobuf:"bytes,6,opt"`
AuthBuf []byte `protobuf:"bytes,7,opt"`
ServerTime proto.Option[uint32] `protobuf:"varint,8,opt"`
ClientTime proto.Option[uint32] `protobuf:"varint,9,opt"`
Rand proto.Option[uint32] `protobuf:"varint,10,opt"`
PhoneNumber proto.Option[string] `protobuf:"bytes,11,opt"`
}
type CSHead struct {
Uin *uint64 `protobuf:"varint,1,opt"`
Command *uint32 `protobuf:"varint,2,opt"`
Seq *uint32 `protobuf:"varint,3,opt"`
Version *uint32 `protobuf:"varint,4,opt"`
RetryTimes *uint32 `protobuf:"varint,5,opt"`
ClientType *uint32 `protobuf:"varint,6,opt"`
Pubno *uint32 `protobuf:"varint,7,opt"`
Localid *uint32 `protobuf:"varint,8,opt"`
Timezone *uint32 `protobuf:"varint,9,opt"`
ClientIp *uint32 `protobuf:"fixed32,10,opt"`
ClientPort *uint32 `protobuf:"varint,11,opt"`
ConnIp *uint32 `protobuf:"fixed32,12,opt"`
ConnPort *uint32 `protobuf:"varint,13,opt"`
InterfaceIp *uint32 `protobuf:"fixed32,14,opt"`
InterfacePort *uint32 `protobuf:"varint,15,opt"`
ActualIp *uint32 `protobuf:"fixed32,16,opt"`
Flag *uint32 `protobuf:"varint,17,opt"`
Timestamp *uint32 `protobuf:"fixed32,18,opt"`
Subcmd *uint32 `protobuf:"varint,19,opt"`
Result *uint32 `protobuf:"varint,20,opt"`
AppId *uint32 `protobuf:"varint,21,opt"`
InstanceId *uint32 `protobuf:"varint,22,opt"`
SessionId *uint64 `protobuf:"varint,23,opt"`
IdcId *uint32 `protobuf:"varint,24,opt"`
}
func (x *CSHead) GetUin() uint64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *CSHead) GetCommand() uint32 {
if x != nil && x.Command != nil {
return *x.Command
}
return 0
}
func (x *CSHead) GetSeq() uint32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *CSHead) GetVersion() uint32 {
if x != nil && x.Version != nil {
return *x.Version
}
return 0
}
func (x *CSHead) GetRetryTimes() uint32 {
if x != nil && x.RetryTimes != nil {
return *x.RetryTimes
}
return 0
}
func (x *CSHead) GetClientType() uint32 {
if x != nil && x.ClientType != nil {
return *x.ClientType
}
return 0
}
func (x *CSHead) GetPubno() uint32 {
if x != nil && x.Pubno != nil {
return *x.Pubno
}
return 0
}
func (x *CSHead) GetLocalid() uint32 {
if x != nil && x.Localid != nil {
return *x.Localid
}
return 0
}
func (x *CSHead) GetTimezone() uint32 {
if x != nil && x.Timezone != nil {
return *x.Timezone
}
return 0
}
func (x *CSHead) GetClientIp() uint32 {
if x != nil && x.ClientIp != nil {
return *x.ClientIp
}
return 0
}
func (x *CSHead) GetClientPort() uint32 {
if x != nil && x.ClientPort != nil {
return *x.ClientPort
}
return 0
}
func (x *CSHead) GetConnIp() uint32 {
if x != nil && x.ConnIp != nil {
return *x.ConnIp
}
return 0
}
func (x *CSHead) GetConnPort() uint32 {
if x != nil && x.ConnPort != nil {
return *x.ConnPort
}
return 0
}
func (x *CSHead) GetInterfaceIp() uint32 {
if x != nil && x.InterfaceIp != nil {
return *x.InterfaceIp
}
return 0
}
func (x *CSHead) GetInterfacePort() uint32 {
if x != nil && x.InterfacePort != nil {
return *x.InterfacePort
}
return 0
}
func (x *CSHead) GetActualIp() uint32 {
if x != nil && x.ActualIp != nil {
return *x.ActualIp
}
return 0
}
func (x *CSHead) GetFlag() uint32 {
if x != nil && x.Flag != nil {
return *x.Flag
}
return 0
}
func (x *CSHead) GetTimestamp() uint32 {
if x != nil && x.Timestamp != nil {
return *x.Timestamp
}
return 0
}
func (x *CSHead) GetSubcmd() uint32 {
if x != nil && x.Subcmd != nil {
return *x.Subcmd
}
return 0
}
func (x *CSHead) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *CSHead) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *CSHead) GetInstanceId() uint32 {
if x != nil && x.InstanceId != nil {
return *x.InstanceId
}
return 0
}
func (x *CSHead) GetSessionId() uint64 {
if x != nil && x.SessionId != nil {
return *x.SessionId
}
return 0
}
func (x *CSHead) GetIdcId() uint32 {
if x != nil && x.IdcId != nil {
return *x.IdcId
}
return 0
Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
Command proto.Option[uint32] `protobuf:"varint,2,opt"`
Seq proto.Option[uint32] `protobuf:"varint,3,opt"`
Version proto.Option[uint32] `protobuf:"varint,4,opt"`
RetryTimes proto.Option[uint32] `protobuf:"varint,5,opt"`
ClientType proto.Option[uint32] `protobuf:"varint,6,opt"`
Pubno proto.Option[uint32] `protobuf:"varint,7,opt"`
Localid proto.Option[uint32] `protobuf:"varint,8,opt"`
Timezone proto.Option[uint32] `protobuf:"varint,9,opt"`
ClientIp proto.Option[uint32] `protobuf:"fixed32,10,opt"`
ClientPort proto.Option[uint32] `protobuf:"varint,11,opt"`
ConnIp proto.Option[uint32] `protobuf:"fixed32,12,opt"`
ConnPort proto.Option[uint32] `protobuf:"varint,13,opt"`
InterfaceIp proto.Option[uint32] `protobuf:"fixed32,14,opt"`
InterfacePort proto.Option[uint32] `protobuf:"varint,15,opt"`
ActualIp proto.Option[uint32] `protobuf:"fixed32,16,opt"`
Flag proto.Option[uint32] `protobuf:"varint,17,opt"`
Timestamp proto.Option[uint32] `protobuf:"fixed32,18,opt"`
Subcmd proto.Option[uint32] `protobuf:"varint,19,opt"`
Result proto.Option[uint32] `protobuf:"varint,20,opt"`
AppId proto.Option[uint32] `protobuf:"varint,21,opt"`
InstanceId proto.Option[uint32] `protobuf:"varint,22,opt"`
SessionId proto.Option[uint64] `protobuf:"varint,23,opt"`
IdcId proto.Option[uint32] `protobuf:"varint,24,opt"`
}
type DeltaHead struct {
TotalLen *uint64 `protobuf:"varint,1,opt"`
Offset *uint64 `protobuf:"varint,2,opt"`
AckOffset *uint64 `protobuf:"varint,3,opt"`
Cookie []byte `protobuf:"bytes,4,opt"`
AckCookie []byte `protobuf:"bytes,5,opt"`
Result *uint32 `protobuf:"varint,6,opt"`
Flags *uint32 `protobuf:"varint,7,opt"`
}
func (x *DeltaHead) GetTotalLen() uint64 {
if x != nil && x.TotalLen != nil {
return *x.TotalLen
}
return 0
}
func (x *DeltaHead) GetOffset() uint64 {
if x != nil && x.Offset != nil {
return *x.Offset
}
return 0
}
func (x *DeltaHead) GetAckOffset() uint64 {
if x != nil && x.AckOffset != nil {
return *x.AckOffset
}
return 0
}
func (x *DeltaHead) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *DeltaHead) GetFlags() uint32 {
if x != nil && x.Flags != nil {
return *x.Flags
}
return 0
TotalLen proto.Option[uint64] `protobuf:"varint,1,opt"`
Offset proto.Option[uint64] `protobuf:"varint,2,opt"`
AckOffset proto.Option[uint64] `protobuf:"varint,3,opt"`
Cookie []byte `protobuf:"bytes,4,opt"`
AckCookie []byte `protobuf:"bytes,5,opt"`
Result proto.Option[uint32] `protobuf:"varint,6,opt"`
Flags proto.Option[uint32] `protobuf:"varint,7,opt"`
}
type IMHead struct {
HeadType *uint32 `protobuf:"varint,1,opt"`
CsHead *CSHead `protobuf:"bytes,2,opt"`
S2CHead *S2CHead `protobuf:"bytes,3,opt"`
HttpconnHead *HttpConnHead `protobuf:"bytes,4,opt"`
PaintFlag *uint32 `protobuf:"varint,5,opt"`
LoginSig *LoginSig `protobuf:"bytes,6,opt"`
DeltaHead *DeltaHead `protobuf:"bytes,7,opt"`
C2CHead *C2CHead `protobuf:"bytes,8,opt"`
}
func (x *IMHead) GetHeadType() uint32 {
if x != nil && x.HeadType != nil {
return *x.HeadType
}
return 0
}
func (x *IMHead) GetPaintFlag() uint32 {
if x != nil && x.PaintFlag != nil {
return *x.PaintFlag
}
return 0
HeadType proto.Option[uint32] `protobuf:"varint,1,opt"`
CsHead *CSHead `protobuf:"bytes,2,opt"`
S2CHead *S2CHead `protobuf:"bytes,3,opt"`
HttpconnHead *HttpConnHead `protobuf:"bytes,4,opt"`
PaintFlag proto.Option[uint32] `protobuf:"varint,5,opt"`
LoginSig *LoginSig `protobuf:"bytes,6,opt"`
DeltaHead *DeltaHead `protobuf:"bytes,7,opt"`
C2CHead *C2CHead `protobuf:"bytes,8,opt"`
}
type HttpConnHead struct {
Uin *uint64 `protobuf:"varint,1,opt"`
Command *uint32 `protobuf:"varint,2,opt"`
SubCommand *uint32 `protobuf:"varint,3,opt"`
Seq *uint32 `protobuf:"varint,4,opt"`
Version *uint32 `protobuf:"varint,5,opt"`
RetryTimes *uint32 `protobuf:"varint,6,opt"`
ClientType *uint32 `protobuf:"varint,7,opt"`
PubNo *uint32 `protobuf:"varint,8,opt"`
LocalId *uint32 `protobuf:"varint,9,opt"`
TimeZone *uint32 `protobuf:"varint,10,opt"`
ClientIp *uint32 `protobuf:"fixed32,11,opt"`
ClientPort *uint32 `protobuf:"varint,12,opt"`
QzhttpIp *uint32 `protobuf:"fixed32,13,opt"`
QzhttpPort *uint32 `protobuf:"varint,14,opt"`
SppIp *uint32 `protobuf:"fixed32,15,opt"`
SppPort *uint32 `protobuf:"varint,16,opt"`
Flag *uint32 `protobuf:"varint,17,opt"`
Key []byte `protobuf:"bytes,18,opt"`
CompressType *uint32 `protobuf:"varint,19,opt"`
OriginSize *uint32 `protobuf:"varint,20,opt"`
ErrorCode *uint32 `protobuf:"varint,21,opt"`
Redirect *RedirectMsg `protobuf:"bytes,22,opt"`
CommandId *uint32 `protobuf:"varint,23,opt"`
ServiceCmdid *uint32 `protobuf:"varint,24,opt"`
Oidbhead *TransOidbHead `protobuf:"bytes,25,opt"`
}
func (x *HttpConnHead) GetUin() uint64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *HttpConnHead) GetCommand() uint32 {
if x != nil && x.Command != nil {
return *x.Command
}
return 0
}
func (x *HttpConnHead) GetSubCommand() uint32 {
if x != nil && x.SubCommand != nil {
return *x.SubCommand
}
return 0
}
func (x *HttpConnHead) GetSeq() uint32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *HttpConnHead) GetVersion() uint32 {
if x != nil && x.Version != nil {
return *x.Version
}
return 0
}
func (x *HttpConnHead) GetRetryTimes() uint32 {
if x != nil && x.RetryTimes != nil {
return *x.RetryTimes
}
return 0
}
func (x *HttpConnHead) GetClientType() uint32 {
if x != nil && x.ClientType != nil {
return *x.ClientType
}
return 0
}
func (x *HttpConnHead) GetPubNo() uint32 {
if x != nil && x.PubNo != nil {
return *x.PubNo
}
return 0
}
func (x *HttpConnHead) GetLocalId() uint32 {
if x != nil && x.LocalId != nil {
return *x.LocalId
}
return 0
}
func (x *HttpConnHead) GetTimeZone() uint32 {
if x != nil && x.TimeZone != nil {
return *x.TimeZone
}
return 0
}
func (x *HttpConnHead) GetClientIp() uint32 {
if x != nil && x.ClientIp != nil {
return *x.ClientIp
}
return 0
}
func (x *HttpConnHead) GetClientPort() uint32 {
if x != nil && x.ClientPort != nil {
return *x.ClientPort
}
return 0
}
func (x *HttpConnHead) GetQzhttpIp() uint32 {
if x != nil && x.QzhttpIp != nil {
return *x.QzhttpIp
}
return 0
}
func (x *HttpConnHead) GetQzhttpPort() uint32 {
if x != nil && x.QzhttpPort != nil {
return *x.QzhttpPort
}
return 0
}
func (x *HttpConnHead) GetSppIp() uint32 {
if x != nil && x.SppIp != nil {
return *x.SppIp
}
return 0
}
func (x *HttpConnHead) GetSppPort() uint32 {
if x != nil && x.SppPort != nil {
return *x.SppPort
}
return 0
}
func (x *HttpConnHead) GetFlag() uint32 {
if x != nil && x.Flag != nil {
return *x.Flag
}
return 0
}
func (x *HttpConnHead) GetCompressType() uint32 {
if x != nil && x.CompressType != nil {
return *x.CompressType
}
return 0
}
func (x *HttpConnHead) GetOriginSize() uint32 {
if x != nil && x.OriginSize != nil {
return *x.OriginSize
}
return 0
}
func (x *HttpConnHead) GetErrorCode() uint32 {
if x != nil && x.ErrorCode != nil {
return *x.ErrorCode
}
return 0
}
func (x *HttpConnHead) GetCommandId() uint32 {
if x != nil && x.CommandId != nil {
return *x.CommandId
}
return 0
}
func (x *HttpConnHead) GetServiceCmdid() uint32 {
if x != nil && x.ServiceCmdid != nil {
return *x.ServiceCmdid
}
return 0
Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
Command proto.Option[uint32] `protobuf:"varint,2,opt"`
SubCommand proto.Option[uint32] `protobuf:"varint,3,opt"`
Seq proto.Option[uint32] `protobuf:"varint,4,opt"`
Version proto.Option[uint32] `protobuf:"varint,5,opt"`
RetryTimes proto.Option[uint32] `protobuf:"varint,6,opt"`
ClientType proto.Option[uint32] `protobuf:"varint,7,opt"`
PubNo proto.Option[uint32] `protobuf:"varint,8,opt"`
LocalId proto.Option[uint32] `protobuf:"varint,9,opt"`
TimeZone proto.Option[uint32] `protobuf:"varint,10,opt"`
ClientIp proto.Option[uint32] `protobuf:"fixed32,11,opt"`
ClientPort proto.Option[uint32] `protobuf:"varint,12,opt"`
QzhttpIp proto.Option[uint32] `protobuf:"fixed32,13,opt"`
QzhttpPort proto.Option[uint32] `protobuf:"varint,14,opt"`
SppIp proto.Option[uint32] `protobuf:"fixed32,15,opt"`
SppPort proto.Option[uint32] `protobuf:"varint,16,opt"`
Flag proto.Option[uint32] `protobuf:"varint,17,opt"`
Key []byte `protobuf:"bytes,18,opt"`
CompressType proto.Option[uint32] `protobuf:"varint,19,opt"`
OriginSize proto.Option[uint32] `protobuf:"varint,20,opt"`
ErrorCode proto.Option[uint32] `protobuf:"varint,21,opt"`
Redirect *RedirectMsg `protobuf:"bytes,22,opt"`
CommandId proto.Option[uint32] `protobuf:"varint,23,opt"`
ServiceCmdid proto.Option[uint32] `protobuf:"varint,24,opt"`
Oidbhead *TransOidbHead `protobuf:"bytes,25,opt"`
}
type LoginSig struct {
Type *uint32 `protobuf:"varint,1,opt"`
Sig []byte `protobuf:"bytes,2,opt"`
}
func (x *LoginSig) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
Type proto.Option[uint32] `protobuf:"varint,1,opt"`
Sig []byte `protobuf:"bytes,2,opt"`
}
type RedirectMsg struct {
LastRedirectIp *uint32 `protobuf:"fixed32,1,opt"`
LastRedirectPort *uint32 `protobuf:"varint,2,opt"`
RedirectIp *uint32 `protobuf:"fixed32,3,opt"`
RedirectPort *uint32 `protobuf:"varint,4,opt"`
RedirectCount *uint32 `protobuf:"varint,5,opt"`
}
func (x *RedirectMsg) GetLastRedirectIp() uint32 {
if x != nil && x.LastRedirectIp != nil {
return *x.LastRedirectIp
}
return 0
}
func (x *RedirectMsg) GetLastRedirectPort() uint32 {
if x != nil && x.LastRedirectPort != nil {
return *x.LastRedirectPort
}
return 0
}
func (x *RedirectMsg) GetRedirectIp() uint32 {
if x != nil && x.RedirectIp != nil {
return *x.RedirectIp
}
return 0
}
func (x *RedirectMsg) GetRedirectPort() uint32 {
if x != nil && x.RedirectPort != nil {
return *x.RedirectPort
}
return 0
}
func (x *RedirectMsg) GetRedirectCount() uint32 {
if x != nil && x.RedirectCount != nil {
return *x.RedirectCount
}
return 0
LastRedirectIp proto.Option[uint32] `protobuf:"fixed32,1,opt"`
LastRedirectPort proto.Option[uint32] `protobuf:"varint,2,opt"`
RedirectIp proto.Option[uint32] `protobuf:"fixed32,3,opt"`
RedirectPort proto.Option[uint32] `protobuf:"varint,4,opt"`
RedirectCount proto.Option[uint32] `protobuf:"varint,5,opt"`
}
type S2CHead struct {
SubMsgtype *uint32 `protobuf:"varint,1,opt"`
MsgType *uint32 `protobuf:"varint,2,opt"`
FromUin *uint64 `protobuf:"varint,3,opt"`
MsgId *uint32 `protobuf:"varint,4,opt"`
RelayIp *uint32 `protobuf:"fixed32,5,opt"`
RelayPort *uint32 `protobuf:"varint,6,opt"`
ToUin *uint64 `protobuf:"varint,7,opt"`
}
func (x *S2CHead) GetSubMsgtype() uint32 {
if x != nil && x.SubMsgtype != nil {
return *x.SubMsgtype
}
return 0
}
func (x *S2CHead) GetMsgType() uint32 {
if x != nil && x.MsgType != nil {
return *x.MsgType
}
return 0
}
func (x *S2CHead) GetFromUin() uint64 {
if x != nil && x.FromUin != nil {
return *x.FromUin
}
return 0
}
func (x *S2CHead) GetMsgId() uint32 {
if x != nil && x.MsgId != nil {
return *x.MsgId
}
return 0
}
func (x *S2CHead) GetRelayIp() uint32 {
if x != nil && x.RelayIp != nil {
return *x.RelayIp
}
return 0
}
func (x *S2CHead) GetRelayPort() uint32 {
if x != nil && x.RelayPort != nil {
return *x.RelayPort
}
return 0
}
func (x *S2CHead) GetToUin() uint64 {
if x != nil && x.ToUin != nil {
return *x.ToUin
}
return 0
SubMsgtype proto.Option[uint32] `protobuf:"varint,1,opt"`
MsgType proto.Option[uint32] `protobuf:"varint,2,opt"`
FromUin proto.Option[uint64] `protobuf:"varint,3,opt"`
MsgId proto.Option[uint32] `protobuf:"varint,4,opt"`
RelayIp proto.Option[uint32] `protobuf:"fixed32,5,opt"`
RelayPort proto.Option[uint32] `protobuf:"varint,6,opt"`
ToUin proto.Option[uint64] `protobuf:"varint,7,opt"`
}
type TransOidbHead struct {
Command *uint32 `protobuf:"varint,1,opt"`
ServiceType *uint32 `protobuf:"varint,2,opt"`
Result *uint32 `protobuf:"varint,3,opt"`
ErrorMsg *string `protobuf:"bytes,4,opt"`
}
func (x *TransOidbHead) GetCommand() uint32 {
if x != nil && x.Command != nil {
return *x.Command
}
return 0
}
func (x *TransOidbHead) GetServiceType() uint32 {
if x != nil && x.ServiceType != nil {
return *x.ServiceType
}
return 0
}
func (x *TransOidbHead) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *TransOidbHead) GetErrorMsg() string {
if x != nil && x.ErrorMsg != nil {
return *x.ErrorMsg
}
return ""
Command proto.Option[uint32] `protobuf:"varint,1,opt"`
ServiceType proto.Option[uint32] `protobuf:"varint,2,opt"`
Result proto.Option[uint32] `protobuf:"varint,3,opt"`
ErrorMsg proto.Option[string] `protobuf:"bytes,4,opt"`
}

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,10 @@
package msg
import (
proto "github.com/RomiChan/protobuf/proto"
)
type PbMsgReadedReportReq struct {
GrpReadReport []*PbGroupReadedReportReq `protobuf:"bytes,1,rep"`
DisReadReport []*PbDiscussReadedReportReq `protobuf:"bytes,2,rep"`
@ -16,41 +20,13 @@ type PbMsgReadedReportResp struct {
}
type PbGroupReadedReportReq struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
LastReadSeq *uint64 `protobuf:"varint,2,opt"`
}
func (x *PbGroupReadedReportReq) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *PbGroupReadedReportReq) GetLastReadSeq() uint64 {
if x != nil && x.LastReadSeq != nil {
return *x.LastReadSeq
}
return 0
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
LastReadSeq proto.Option[uint64] `protobuf:"varint,2,opt"`
}
type PbDiscussReadedReportReq struct {
ConfUin *uint64 `protobuf:"varint,1,opt"`
LastReadSeq *uint64 `protobuf:"varint,2,opt"`
}
func (x *PbDiscussReadedReportReq) GetConfUin() uint64 {
if x != nil && x.ConfUin != nil {
return *x.ConfUin
}
return 0
}
func (x *PbDiscussReadedReportReq) GetLastReadSeq() uint64 {
if x != nil && x.LastReadSeq != nil {
return *x.LastReadSeq
}
return 0
ConfUin proto.Option[uint64] `protobuf:"varint,1,opt"`
LastReadSeq proto.Option[uint64] `protobuf:"varint,2,opt"`
}
type PbC2CReadedReportReq struct {
@ -59,167 +35,34 @@ type PbC2CReadedReportReq struct {
}
type UinPairReadInfo struct {
PeerUin *uint64 `protobuf:"varint,1,opt"`
LastReadTime *uint32 `protobuf:"varint,2,opt"`
CrmSig []byte `protobuf:"bytes,3,opt"`
PeerType *uint32 `protobuf:"varint,4,opt"`
ChatType *uint32 `protobuf:"varint,5,opt"`
Cpid *uint64 `protobuf:"varint,6,opt"`
AioType *uint32 `protobuf:"varint,7,opt"`
ToTinyId *uint64 `protobuf:"varint,9,opt"`
}
func (x *UinPairReadInfo) GetPeerUin() uint64 {
if x != nil && x.PeerUin != nil {
return *x.PeerUin
}
return 0
}
func (x *UinPairReadInfo) GetLastReadTime() uint32 {
if x != nil && x.LastReadTime != nil {
return *x.LastReadTime
}
return 0
}
func (x *UinPairReadInfo) GetPeerType() uint32 {
if x != nil && x.PeerType != nil {
return *x.PeerType
}
return 0
}
func (x *UinPairReadInfo) GetChatType() uint32 {
if x != nil && x.ChatType != nil {
return *x.ChatType
}
return 0
}
func (x *UinPairReadInfo) GetCpid() uint64 {
if x != nil && x.Cpid != nil {
return *x.Cpid
}
return 0
}
func (x *UinPairReadInfo) GetAioType() uint32 {
if x != nil && x.AioType != nil {
return *x.AioType
}
return 0
}
func (x *UinPairReadInfo) GetToTinyId() uint64 {
if x != nil && x.ToTinyId != nil {
return *x.ToTinyId
}
return 0
PeerUin proto.Option[uint64] `protobuf:"varint,1,opt"`
LastReadTime proto.Option[uint32] `protobuf:"varint,2,opt"`
CrmSig []byte `protobuf:"bytes,3,opt"`
PeerType proto.Option[uint32] `protobuf:"varint,4,opt"`
ChatType proto.Option[uint32] `protobuf:"varint,5,opt"`
Cpid proto.Option[uint64] `protobuf:"varint,6,opt"`
AioType proto.Option[uint32] `protobuf:"varint,7,opt"`
ToTinyId proto.Option[uint64] `protobuf:"varint,9,opt"`
}
type PbGroupReadedReportResp struct {
Result *uint32 `protobuf:"varint,1,opt"`
Errmsg *string `protobuf:"bytes,2,opt"`
GroupCode *uint64 `protobuf:"varint,3,opt"`
MemberSeq *uint64 `protobuf:"varint,4,opt"`
GroupMsgSeq *uint64 `protobuf:"varint,5,opt"`
}
func (x *PbGroupReadedReportResp) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *PbGroupReadedReportResp) GetErrmsg() string {
if x != nil && x.Errmsg != nil {
return *x.Errmsg
}
return ""
}
func (x *PbGroupReadedReportResp) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *PbGroupReadedReportResp) GetMemberSeq() uint64 {
if x != nil && x.MemberSeq != nil {
return *x.MemberSeq
}
return 0
}
func (x *PbGroupReadedReportResp) GetGroupMsgSeq() uint64 {
if x != nil && x.GroupMsgSeq != nil {
return *x.GroupMsgSeq
}
return 0
Result proto.Option[uint32] `protobuf:"varint,1,opt"`
Errmsg proto.Option[string] `protobuf:"bytes,2,opt"`
GroupCode proto.Option[uint64] `protobuf:"varint,3,opt"`
MemberSeq proto.Option[uint64] `protobuf:"varint,4,opt"`
GroupMsgSeq proto.Option[uint64] `protobuf:"varint,5,opt"`
}
type PbDiscussReadedReportResp struct {
Result *uint32 `protobuf:"varint,1,opt"`
Errmsg *string `protobuf:"bytes,2,opt"`
ConfUin *uint64 `protobuf:"varint,3,opt"`
MemberSeq *uint64 `protobuf:"varint,4,opt"`
ConfSeq *uint64 `protobuf:"varint,5,opt"`
}
func (x *PbDiscussReadedReportResp) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *PbDiscussReadedReportResp) GetErrmsg() string {
if x != nil && x.Errmsg != nil {
return *x.Errmsg
}
return ""
}
func (x *PbDiscussReadedReportResp) GetConfUin() uint64 {
if x != nil && x.ConfUin != nil {
return *x.ConfUin
}
return 0
}
func (x *PbDiscussReadedReportResp) GetMemberSeq() uint64 {
if x != nil && x.MemberSeq != nil {
return *x.MemberSeq
}
return 0
}
func (x *PbDiscussReadedReportResp) GetConfSeq() uint64 {
if x != nil && x.ConfSeq != nil {
return *x.ConfSeq
}
return 0
Result proto.Option[uint32] `protobuf:"varint,1,opt"`
Errmsg proto.Option[string] `protobuf:"bytes,2,opt"`
ConfUin proto.Option[uint64] `protobuf:"varint,3,opt"`
MemberSeq proto.Option[uint64] `protobuf:"varint,4,opt"`
ConfSeq proto.Option[uint64] `protobuf:"varint,5,opt"`
}
type PbC2CReadedReportResp struct {
Result *uint32 `protobuf:"varint,1,opt"`
Errmsg *string `protobuf:"bytes,2,opt"`
SyncCookie []byte `protobuf:"bytes,3,opt"`
}
func (x *PbC2CReadedReportResp) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *PbC2CReadedReportResp) GetErrmsg() string {
if x != nil && x.Errmsg != nil {
return *x.Errmsg
}
return ""
Result proto.Option[uint32] `protobuf:"varint,1,opt"`
Errmsg proto.Option[string] `protobuf:"bytes,2,opt"`
SyncCookie []byte `protobuf:"bytes,3,opt"`
}

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,10 @@
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type OIDBSSOPkg struct {
Command int32 `protobuf:"varint,1,opt"`
ServiceType int32 `protobuf:"varint,2,opt"`
@ -61,7 +65,7 @@ type D89AGroupinfo struct {
StGroupNewguidelines *D89AGroupNewGuidelinesInfo `protobuf:"bytes,14,opt"`
GroupFace int32 `protobuf:"varint,15,opt"`
AddOption int32 `protobuf:"varint,16,opt"`
ShutupTime *int32 `protobuf:"varint,17,opt"`
ShutupTime proto.Option[int32] `protobuf:"varint,17,opt"`
GroupTypeFlag int32 `protobuf:"varint,18,opt"`
StringGroupTag []byte `protobuf:"bytes,19,opt"`
MsgGroupGeoInfo *D89AGroupGeoInfo `protobuf:"bytes,20,opt"`
@ -85,13 +89,6 @@ type D89AGroupinfo struct {
MsgLimitFrequency int32 `protobuf:"varint,38,opt"`
}
func (x *D89AGroupinfo) GetShutupTime() int32 {
if x != nil && x.ShutupTime != nil {
return *x.ShutupTime
}
return 0
}
type D89AGroupNewGuidelinesInfo struct {
BoolEnabled bool `protobuf:"varint,1,opt"`
IngContent []byte `protobuf:"bytes,2,opt"`

File diff suppressed because it is too large Load Diff

View File

@ -3,354 +3,78 @@
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type DeleteFileReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"`
AppId *int32 `protobuf:"varint,2,opt"`
BusId *int32 `protobuf:"varint,3,opt"`
ParentFolderId *string `protobuf:"bytes,4,opt"`
FileId *string `protobuf:"bytes,5,opt"`
}
func (x *DeleteFileReqBody) GetGroupCode() int64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *DeleteFileReqBody) GetAppId() int32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *DeleteFileReqBody) GetBusId() int32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *DeleteFileReqBody) GetParentFolderId() string {
if x != nil && x.ParentFolderId != nil {
return *x.ParentFolderId
}
return ""
}
func (x *DeleteFileReqBody) GetFileId() string {
if x != nil && x.FileId != nil {
return *x.FileId
}
return ""
GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
AppId proto.Option[int32] `protobuf:"varint,2,opt"`
BusId proto.Option[int32] `protobuf:"varint,3,opt"`
ParentFolderId proto.Option[string] `protobuf:"bytes,4,opt"`
FileId proto.Option[string] `protobuf:"bytes,5,opt"`
}
type DeleteFileRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
}
func (x *DeleteFileRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *DeleteFileRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *DeleteFileRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
}
type DownloadFileReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"`
AppId *int32 `protobuf:"varint,2,opt"`
BusId *int32 `protobuf:"varint,3,opt"`
FileId *string `protobuf:"bytes,4,opt"`
BoolThumbnailReq *bool `protobuf:"varint,5,opt"`
UrlType *int32 `protobuf:"varint,6,opt"`
BoolPreviewReq *bool `protobuf:"varint,7,opt"`
}
func (x *DownloadFileReqBody) GetGroupCode() int64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *DownloadFileReqBody) GetAppId() int32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *DownloadFileReqBody) GetBusId() int32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *DownloadFileReqBody) GetFileId() string {
if x != nil && x.FileId != nil {
return *x.FileId
}
return ""
}
func (x *DownloadFileReqBody) GetBoolThumbnailReq() bool {
if x != nil && x.BoolThumbnailReq != nil {
return *x.BoolThumbnailReq
}
return false
}
func (x *DownloadFileReqBody) GetUrlType() int32 {
if x != nil && x.UrlType != nil {
return *x.UrlType
}
return 0
}
func (x *DownloadFileReqBody) GetBoolPreviewReq() bool {
if x != nil && x.BoolPreviewReq != nil {
return *x.BoolPreviewReq
}
return false
GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
AppId proto.Option[int32] `protobuf:"varint,2,opt"`
BusId proto.Option[int32] `protobuf:"varint,3,opt"`
FileId proto.Option[string] `protobuf:"bytes,4,opt"`
BoolThumbnailReq proto.Option[bool] `protobuf:"varint,5,opt"`
UrlType proto.Option[int32] `protobuf:"varint,6,opt"`
BoolPreviewReq proto.Option[bool] `protobuf:"varint,7,opt"`
}
type DownloadFileRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
DownloadIp *string `protobuf:"bytes,4,opt"`
DownloadDns []byte `protobuf:"bytes,5,opt"`
DownloadUrl []byte `protobuf:"bytes,6,opt"`
Sha []byte `protobuf:"bytes,7,opt"`
Sha3 []byte `protobuf:"bytes,8,opt"`
Md5 []byte `protobuf:"bytes,9,opt"`
CookieVal []byte `protobuf:"bytes,10,opt"`
SaveFileName *string `protobuf:"bytes,11,opt"`
PreviewPort *int32 `protobuf:"varint,12,opt"`
}
func (x *DownloadFileRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *DownloadFileRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *DownloadFileRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
}
func (x *DownloadFileRspBody) GetDownloadIp() string {
if x != nil && x.DownloadIp != nil {
return *x.DownloadIp
}
return ""
}
func (x *DownloadFileRspBody) GetSaveFileName() string {
if x != nil && x.SaveFileName != nil {
return *x.SaveFileName
}
return ""
}
func (x *DownloadFileRspBody) GetPreviewPort() int32 {
if x != nil && x.PreviewPort != nil {
return *x.PreviewPort
}
return 0
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
DownloadIp proto.Option[string] `protobuf:"bytes,4,opt"`
DownloadDns []byte `protobuf:"bytes,5,opt"`
DownloadUrl []byte `protobuf:"bytes,6,opt"`
Sha []byte `protobuf:"bytes,7,opt"`
Sha3 []byte `protobuf:"bytes,8,opt"`
Md5 []byte `protobuf:"bytes,9,opt"`
CookieVal []byte `protobuf:"bytes,10,opt"`
SaveFileName proto.Option[string] `protobuf:"bytes,11,opt"`
PreviewPort proto.Option[int32] `protobuf:"varint,12,opt"`
}
type MoveFileReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"`
AppId *int32 `protobuf:"varint,2,opt"`
BusId *int32 `protobuf:"varint,3,opt"`
FileId *string `protobuf:"bytes,4,opt"`
ParentFolderId *string `protobuf:"bytes,5,opt"`
DestFolderId *string `protobuf:"bytes,6,opt"`
}
func (x *MoveFileReqBody) GetGroupCode() int64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *MoveFileReqBody) GetAppId() int32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *MoveFileReqBody) GetBusId() int32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *MoveFileReqBody) GetFileId() string {
if x != nil && x.FileId != nil {
return *x.FileId
}
return ""
}
func (x *MoveFileReqBody) GetParentFolderId() string {
if x != nil && x.ParentFolderId != nil {
return *x.ParentFolderId
}
return ""
}
func (x *MoveFileReqBody) GetDestFolderId() string {
if x != nil && x.DestFolderId != nil {
return *x.DestFolderId
}
return ""
GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
AppId proto.Option[int32] `protobuf:"varint,2,opt"`
BusId proto.Option[int32] `protobuf:"varint,3,opt"`
FileId proto.Option[string] `protobuf:"bytes,4,opt"`
ParentFolderId proto.Option[string] `protobuf:"bytes,5,opt"`
DestFolderId proto.Option[string] `protobuf:"bytes,6,opt"`
}
type MoveFileRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
ParentFolderId *string `protobuf:"bytes,4,opt"`
}
func (x *MoveFileRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *MoveFileRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *MoveFileRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
}
func (x *MoveFileRspBody) GetParentFolderId() string {
if x != nil && x.ParentFolderId != nil {
return *x.ParentFolderId
}
return ""
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
ParentFolderId proto.Option[string] `protobuf:"bytes,4,opt"`
}
type RenameFileReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"`
AppId *int32 `protobuf:"varint,2,opt"`
BusId *int32 `protobuf:"varint,3,opt"`
FileId *string `protobuf:"bytes,4,opt"`
ParentFolderId *string `protobuf:"bytes,5,opt"`
NewFileName *string `protobuf:"bytes,6,opt"`
}
func (x *RenameFileReqBody) GetGroupCode() int64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *RenameFileReqBody) GetAppId() int32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *RenameFileReqBody) GetBusId() int32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *RenameFileReqBody) GetFileId() string {
if x != nil && x.FileId != nil {
return *x.FileId
}
return ""
}
func (x *RenameFileReqBody) GetParentFolderId() string {
if x != nil && x.ParentFolderId != nil {
return *x.ParentFolderId
}
return ""
}
func (x *RenameFileReqBody) GetNewFileName() string {
if x != nil && x.NewFileName != nil {
return *x.NewFileName
}
return ""
GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
AppId proto.Option[int32] `protobuf:"varint,2,opt"`
BusId proto.Option[int32] `protobuf:"varint,3,opt"`
FileId proto.Option[string] `protobuf:"bytes,4,opt"`
ParentFolderId proto.Option[string] `protobuf:"bytes,5,opt"`
NewFileName proto.Option[string] `protobuf:"bytes,6,opt"`
}
type RenameFileRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
}
func (x *RenameFileRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *RenameFileRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *RenameFileRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
}
type D6D6ReqBody struct {
@ -363,76 +87,20 @@ type D6D6ReqBody struct {
}
type ResendReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"`
AppId *int32 `protobuf:"varint,2,opt"`
BusId *int32 `protobuf:"varint,3,opt"`
FileId *string `protobuf:"bytes,4,opt"`
Sha []byte `protobuf:"bytes,5,opt"`
}
func (x *ResendReqBody) GetGroupCode() int64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *ResendReqBody) GetAppId() int32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *ResendReqBody) GetBusId() int32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *ResendReqBody) GetFileId() string {
if x != nil && x.FileId != nil {
return *x.FileId
}
return ""
GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
AppId proto.Option[int32] `protobuf:"varint,2,opt"`
BusId proto.Option[int32] `protobuf:"varint,3,opt"`
FileId proto.Option[string] `protobuf:"bytes,4,opt"`
Sha []byte `protobuf:"bytes,5,opt"`
}
type ResendRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
UploadIp *string `protobuf:"bytes,4,opt"`
FileKey []byte `protobuf:"bytes,5,opt"`
CheckKey []byte `protobuf:"bytes,6,opt"`
}
func (x *ResendRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *ResendRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *ResendRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
}
func (x *ResendRspBody) GetUploadIp() string {
if x != nil && x.UploadIp != nil {
return *x.UploadIp
}
return ""
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
UploadIp proto.Option[string] `protobuf:"bytes,4,opt"`
FileKey []byte `protobuf:"bytes,5,opt"`
CheckKey []byte `protobuf:"bytes,6,opt"`
}
type D6D6RspBody struct {
@ -445,158 +113,32 @@ type D6D6RspBody struct {
}
type UploadFileReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"`
AppId *int32 `protobuf:"varint,2,opt"`
BusId *int32 `protobuf:"varint,3,opt"`
Entrance *int32 `protobuf:"varint,4,opt"`
ParentFolderId *string `protobuf:"bytes,5,opt"`
FileName *string `protobuf:"bytes,6,opt"`
LocalPath *string `protobuf:"bytes,7,opt"`
Int64FileSize *int64 `protobuf:"varint,8,opt"`
Sha []byte `protobuf:"bytes,9,opt"`
Sha3 []byte `protobuf:"bytes,10,opt"`
Md5 []byte `protobuf:"bytes,11,opt"`
SupportMultiUpload *bool `protobuf:"varint,15,opt"`
}
func (x *UploadFileReqBody) GetGroupCode() int64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *UploadFileReqBody) GetAppId() int32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *UploadFileReqBody) GetBusId() int32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *UploadFileReqBody) GetEntrance() int32 {
if x != nil && x.Entrance != nil {
return *x.Entrance
}
return 0
}
func (x *UploadFileReqBody) GetParentFolderId() string {
if x != nil && x.ParentFolderId != nil {
return *x.ParentFolderId
}
return ""
}
func (x *UploadFileReqBody) GetFileName() string {
if x != nil && x.FileName != nil {
return *x.FileName
}
return ""
}
func (x *UploadFileReqBody) GetLocalPath() string {
if x != nil && x.LocalPath != nil {
return *x.LocalPath
}
return ""
}
func (x *UploadFileReqBody) GetInt64FileSize() int64 {
if x != nil && x.Int64FileSize != nil {
return *x.Int64FileSize
}
return 0
}
func (x *UploadFileReqBody) GetSupportMultiUpload() bool {
if x != nil && x.SupportMultiUpload != nil {
return *x.SupportMultiUpload
}
return false
GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
AppId proto.Option[int32] `protobuf:"varint,2,opt"`
BusId proto.Option[int32] `protobuf:"varint,3,opt"`
Entrance proto.Option[int32] `protobuf:"varint,4,opt"`
ParentFolderId proto.Option[string] `protobuf:"bytes,5,opt"`
FileName proto.Option[string] `protobuf:"bytes,6,opt"`
LocalPath proto.Option[string] `protobuf:"bytes,7,opt"`
Int64FileSize proto.Option[int64] `protobuf:"varint,8,opt"`
Sha []byte `protobuf:"bytes,9,opt"`
Sha3 []byte `protobuf:"bytes,10,opt"`
Md5 []byte `protobuf:"bytes,11,opt"`
SupportMultiUpload proto.Option[bool] `protobuf:"varint,15,opt"`
}
type UploadFileRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
UploadIp *string `protobuf:"bytes,4,opt"`
ServerDns *string `protobuf:"bytes,5,opt"`
BusId *int32 `protobuf:"varint,6,opt"`
FileId *string `protobuf:"bytes,7,opt"`
FileKey []byte `protobuf:"bytes,8,opt"`
CheckKey []byte `protobuf:"bytes,9,opt"`
BoolFileExist *bool `protobuf:"varint,10,opt"`
UploadIpLanV4 []string `protobuf:"bytes,12,rep"`
UploadIpLanV6 []string `protobuf:"bytes,13,rep"`
UploadPort *int32 `protobuf:"varint,14,opt"`
}
func (x *UploadFileRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *UploadFileRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *UploadFileRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
}
func (x *UploadFileRspBody) GetUploadIp() string {
if x != nil && x.UploadIp != nil {
return *x.UploadIp
}
return ""
}
func (x *UploadFileRspBody) GetServerDns() string {
if x != nil && x.ServerDns != nil {
return *x.ServerDns
}
return ""
}
func (x *UploadFileRspBody) GetBusId() int32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *UploadFileRspBody) GetFileId() string {
if x != nil && x.FileId != nil {
return *x.FileId
}
return ""
}
func (x *UploadFileRspBody) GetBoolFileExist() bool {
if x != nil && x.BoolFileExist != nil {
return *x.BoolFileExist
}
return false
}
func (x *UploadFileRspBody) GetUploadPort() int32 {
if x != nil && x.UploadPort != nil {
return *x.UploadPort
}
return 0
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
UploadIp proto.Option[string] `protobuf:"bytes,4,opt"`
ServerDns proto.Option[string] `protobuf:"bytes,5,opt"`
BusId proto.Option[int32] `protobuf:"varint,6,opt"`
FileId proto.Option[string] `protobuf:"bytes,7,opt"`
FileKey []byte `protobuf:"bytes,8,opt"`
CheckKey []byte `protobuf:"bytes,9,opt"`
BoolFileExist proto.Option[bool] `protobuf:"varint,10,opt"`
UploadIpLanV4 []string `protobuf:"bytes,12,rep"`
UploadIpLanV6 []string `protobuf:"bytes,13,rep"`
UploadPort proto.Option[int32] `protobuf:"varint,14,opt"`
}

View File

@ -3,252 +3,60 @@
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type CreateFolderReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"`
ParentFolderId *string `protobuf:"bytes,3,opt"`
FolderName *string `protobuf:"bytes,4,opt"`
}
func (x *CreateFolderReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *CreateFolderReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *CreateFolderReqBody) GetParentFolderId() string {
if x != nil && x.ParentFolderId != nil {
return *x.ParentFolderId
}
return ""
}
func (x *CreateFolderReqBody) GetFolderName() string {
if x != nil && x.FolderName != nil {
return *x.FolderName
}
return ""
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
ParentFolderId proto.Option[string] `protobuf:"bytes,3,opt"`
FolderName proto.Option[string] `protobuf:"bytes,4,opt"`
}
type CreateFolderRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` // optional group_file_common.FolderInfo folderInfo = 4;
}
func (x *CreateFolderRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *CreateFolderRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *CreateFolderRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"` // optional group_file_common.FolderInfo folderInfo = 4;
}
type DeleteFolderReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"`
FolderId *string `protobuf:"bytes,3,opt"`
}
func (x *DeleteFolderReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *DeleteFolderReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *DeleteFolderReqBody) GetFolderId() string {
if x != nil && x.FolderId != nil {
return *x.FolderId
}
return ""
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
FolderId proto.Option[string] `protobuf:"bytes,3,opt"`
}
type DeleteFolderRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
}
func (x *DeleteFolderRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *DeleteFolderRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *DeleteFolderRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
}
type MoveFolderReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"`
FolderId *string `protobuf:"bytes,3,opt"`
ParentFolderId *string `protobuf:"bytes,4,opt"`
DestFolderId *string `protobuf:"bytes,5,opt"`
}
func (x *MoveFolderReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *MoveFolderReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *MoveFolderReqBody) GetFolderId() string {
if x != nil && x.FolderId != nil {
return *x.FolderId
}
return ""
}
func (x *MoveFolderReqBody) GetParentFolderId() string {
if x != nil && x.ParentFolderId != nil {
return *x.ParentFolderId
}
return ""
}
func (x *MoveFolderReqBody) GetDestFolderId() string {
if x != nil && x.DestFolderId != nil {
return *x.DestFolderId
}
return ""
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
FolderId proto.Option[string] `protobuf:"bytes,3,opt"`
ParentFolderId proto.Option[string] `protobuf:"bytes,4,opt"`
DestFolderId proto.Option[string] `protobuf:"bytes,5,opt"`
}
type MoveFolderRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` // optional group_file_common.FolderInfo folderInfo = 4;
}
func (x *MoveFolderRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *MoveFolderRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *MoveFolderRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"` // optional group_file_common.FolderInfo folderInfo = 4;
}
type RenameFolderReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"`
FolderId *string `protobuf:"bytes,3,opt"`
NewFolderName *string `protobuf:"bytes,4,opt"`
}
func (x *RenameFolderReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *RenameFolderReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *RenameFolderReqBody) GetFolderId() string {
if x != nil && x.FolderId != nil {
return *x.FolderId
}
return ""
}
func (x *RenameFolderReqBody) GetNewFolderName() string {
if x != nil && x.NewFolderName != nil {
return *x.NewFolderName
}
return ""
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
FolderId proto.Option[string] `protobuf:"bytes,3,opt"`
NewFolderName proto.Option[string] `protobuf:"bytes,4,opt"`
}
type RenameFolderRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` // optional group_file_common.FolderInfo folderInfo = 4;
}
func (x *RenameFolderRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *RenameFolderRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *RenameFolderRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"` // optional group_file_common.FolderInfo folderInfo = 4;
}
type D6D7ReqBody struct {

View File

@ -3,6 +3,10 @@
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type D6D8ReqBody struct {
FileInfoReq *GetFileInfoReqBody `protobuf:"bytes,1,opt"`
FileListInfoReq *GetFileListReqBody `protobuf:"bytes,2,opt"`
@ -18,625 +22,121 @@ type D6D8RspBody struct {
}
type GetFileInfoReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"`
BusId *uint32 `protobuf:"varint,3,opt"`
FileId *string `protobuf:"bytes,4,opt"`
FieldFlag *uint32 `protobuf:"varint,5,opt"`
}
func (x *GetFileInfoReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *GetFileInfoReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *GetFileInfoReqBody) GetBusId() uint32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *GetFileInfoReqBody) GetFileId() string {
if x != nil && x.FileId != nil {
return *x.FileId
}
return ""
}
func (x *GetFileInfoReqBody) GetFieldFlag() uint32 {
if x != nil && x.FieldFlag != nil {
return *x.FieldFlag
}
return 0
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
BusId proto.Option[uint32] `protobuf:"varint,3,opt"`
FileId proto.Option[string] `protobuf:"bytes,4,opt"`
FieldFlag proto.Option[uint32] `protobuf:"varint,5,opt"`
}
type GetFileInfoRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
FileInfo *GroupFileInfo `protobuf:"bytes,4,opt"`
}
func (x *GetFileInfoRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *GetFileInfoRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *GetFileInfoRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
FileInfo *GroupFileInfo `protobuf:"bytes,4,opt"`
}
type GetFileListRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
IsEnd *bool `protobuf:"varint,4,opt"`
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
IsEnd proto.Option[bool] `protobuf:"varint,4,opt"`
ItemList []*GetFileListRspBody_Item `protobuf:"bytes,5,rep"`
MaxTimestamp *FileTimeStamp `protobuf:"bytes,6,opt"`
AllFileCount *uint32 `protobuf:"varint,7,opt"`
FilterCode *uint32 `protobuf:"varint,8,opt"`
SafeCheckFlag *bool `protobuf:"varint,11,opt"`
SafeCheckRes *uint32 `protobuf:"varint,12,opt"`
NextIndex *uint32 `protobuf:"varint,13,opt"`
AllFileCount proto.Option[uint32] `protobuf:"varint,7,opt"`
FilterCode proto.Option[uint32] `protobuf:"varint,8,opt"`
SafeCheckFlag proto.Option[bool] `protobuf:"varint,11,opt"`
SafeCheckRes proto.Option[uint32] `protobuf:"varint,12,opt"`
NextIndex proto.Option[uint32] `protobuf:"varint,13,opt"`
Context []byte `protobuf:"bytes,14,opt"`
Role *uint32 `protobuf:"varint,15,opt"`
OpenFlag *uint32 `protobuf:"varint,16,opt"`
}
func (x *GetFileListRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *GetFileListRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *GetFileListRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
}
func (x *GetFileListRspBody) GetIsEnd() bool {
if x != nil && x.IsEnd != nil {
return *x.IsEnd
}
return false
}
func (x *GetFileListRspBody) GetAllFileCount() uint32 {
if x != nil && x.AllFileCount != nil {
return *x.AllFileCount
}
return 0
}
func (x *GetFileListRspBody) GetFilterCode() uint32 {
if x != nil && x.FilterCode != nil {
return *x.FilterCode
}
return 0
}
func (x *GetFileListRspBody) GetSafeCheckFlag() bool {
if x != nil && x.SafeCheckFlag != nil {
return *x.SafeCheckFlag
}
return false
}
func (x *GetFileListRspBody) GetSafeCheckRes() uint32 {
if x != nil && x.SafeCheckRes != nil {
return *x.SafeCheckRes
}
return 0
}
func (x *GetFileListRspBody) GetNextIndex() uint32 {
if x != nil && x.NextIndex != nil {
return *x.NextIndex
}
return 0
}
func (x *GetFileListRspBody) GetRole() uint32 {
if x != nil && x.Role != nil {
return *x.Role
}
return 0
}
func (x *GetFileListRspBody) GetOpenFlag() uint32 {
if x != nil && x.OpenFlag != nil {
return *x.OpenFlag
}
return 0
Role proto.Option[uint32] `protobuf:"varint,15,opt"`
OpenFlag proto.Option[uint32] `protobuf:"varint,16,opt"`
}
type GroupFileInfo struct {
FileId *string `protobuf:"bytes,1,opt"`
FileName *string `protobuf:"bytes,2,opt"`
FileSize *uint64 `protobuf:"varint,3,opt"`
BusId *uint32 `protobuf:"varint,4,opt"`
UploadedSize *uint64 `protobuf:"varint,5,opt"`
UploadTime *uint32 `protobuf:"varint,6,opt"`
DeadTime *uint32 `protobuf:"varint,7,opt"`
ModifyTime *uint32 `protobuf:"varint,8,opt"`
DownloadTimes *uint32 `protobuf:"varint,9,opt"`
Sha []byte `protobuf:"bytes,10,opt"`
Sha3 []byte `protobuf:"bytes,11,opt"`
Md5 []byte `protobuf:"bytes,12,opt"`
LocalPath *string `protobuf:"bytes,13,opt"`
UploaderName *string `protobuf:"bytes,14,opt"`
UploaderUin *uint64 `protobuf:"varint,15,opt"`
ParentFolderId *string `protobuf:"bytes,16,opt"`
}
func (x *GroupFileInfo) GetFileId() string {
if x != nil && x.FileId != nil {
return *x.FileId
}
return ""
}
func (x *GroupFileInfo) GetFileName() string {
if x != nil && x.FileName != nil {
return *x.FileName
}
return ""
}
func (x *GroupFileInfo) GetFileSize() uint64 {
if x != nil && x.FileSize != nil {
return *x.FileSize
}
return 0
}
func (x *GroupFileInfo) GetBusId() uint32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *GroupFileInfo) GetUploadedSize() uint64 {
if x != nil && x.UploadedSize != nil {
return *x.UploadedSize
}
return 0
}
func (x *GroupFileInfo) GetUploadTime() uint32 {
if x != nil && x.UploadTime != nil {
return *x.UploadTime
}
return 0
}
func (x *GroupFileInfo) GetDeadTime() uint32 {
if x != nil && x.DeadTime != nil {
return *x.DeadTime
}
return 0
}
func (x *GroupFileInfo) GetModifyTime() uint32 {
if x != nil && x.ModifyTime != nil {
return *x.ModifyTime
}
return 0
}
func (x *GroupFileInfo) GetDownloadTimes() uint32 {
if x != nil && x.DownloadTimes != nil {
return *x.DownloadTimes
}
return 0
}
func (x *GroupFileInfo) GetLocalPath() string {
if x != nil && x.LocalPath != nil {
return *x.LocalPath
}
return ""
}
func (x *GroupFileInfo) GetUploaderName() string {
if x != nil && x.UploaderName != nil {
return *x.UploaderName
}
return ""
}
func (x *GroupFileInfo) GetUploaderUin() uint64 {
if x != nil && x.UploaderUin != nil {
return *x.UploaderUin
}
return 0
}
func (x *GroupFileInfo) GetParentFolderId() string {
if x != nil && x.ParentFolderId != nil {
return *x.ParentFolderId
}
return ""
FileId proto.Option[string] `protobuf:"bytes,1,opt"`
FileName proto.Option[string] `protobuf:"bytes,2,opt"`
FileSize proto.Option[uint64] `protobuf:"varint,3,opt"`
BusId proto.Option[uint32] `protobuf:"varint,4,opt"`
UploadedSize proto.Option[uint64] `protobuf:"varint,5,opt"`
UploadTime proto.Option[uint32] `protobuf:"varint,6,opt"`
DeadTime proto.Option[uint32] `protobuf:"varint,7,opt"`
ModifyTime proto.Option[uint32] `protobuf:"varint,8,opt"`
DownloadTimes proto.Option[uint32] `protobuf:"varint,9,opt"`
Sha []byte `protobuf:"bytes,10,opt"`
Sha3 []byte `protobuf:"bytes,11,opt"`
Md5 []byte `protobuf:"bytes,12,opt"`
LocalPath proto.Option[string] `protobuf:"bytes,13,opt"`
UploaderName proto.Option[string] `protobuf:"bytes,14,opt"`
UploaderUin proto.Option[uint64] `protobuf:"varint,15,opt"`
ParentFolderId proto.Option[string] `protobuf:"bytes,16,opt"`
}
type GroupFolderInfo struct {
FolderId *string `protobuf:"bytes,1,opt"`
ParentFolderId *string `protobuf:"bytes,2,opt"`
FolderName *string `protobuf:"bytes,3,opt"`
CreateTime *uint32 `protobuf:"varint,4,opt"`
ModifyTime *uint32 `protobuf:"varint,5,opt"`
CreateUin *uint64 `protobuf:"varint,6,opt"`
CreatorName *string `protobuf:"bytes,7,opt"`
TotalFileCount *uint32 `protobuf:"varint,8,opt"`
}
func (x *GroupFolderInfo) GetFolderId() string {
if x != nil && x.FolderId != nil {
return *x.FolderId
}
return ""
}
func (x *GroupFolderInfo) GetParentFolderId() string {
if x != nil && x.ParentFolderId != nil {
return *x.ParentFolderId
}
return ""
}
func (x *GroupFolderInfo) GetFolderName() string {
if x != nil && x.FolderName != nil {
return *x.FolderName
}
return ""
}
func (x *GroupFolderInfo) GetCreateTime() uint32 {
if x != nil && x.CreateTime != nil {
return *x.CreateTime
}
return 0
}
func (x *GroupFolderInfo) GetModifyTime() uint32 {
if x != nil && x.ModifyTime != nil {
return *x.ModifyTime
}
return 0
}
func (x *GroupFolderInfo) GetCreateUin() uint64 {
if x != nil && x.CreateUin != nil {
return *x.CreateUin
}
return 0
}
func (x *GroupFolderInfo) GetCreatorName() string {
if x != nil && x.CreatorName != nil {
return *x.CreatorName
}
return ""
}
func (x *GroupFolderInfo) GetTotalFileCount() uint32 {
if x != nil && x.TotalFileCount != nil {
return *x.TotalFileCount
}
return 0
FolderId proto.Option[string] `protobuf:"bytes,1,opt"`
ParentFolderId proto.Option[string] `protobuf:"bytes,2,opt"`
FolderName proto.Option[string] `protobuf:"bytes,3,opt"`
CreateTime proto.Option[uint32] `protobuf:"varint,4,opt"`
ModifyTime proto.Option[uint32] `protobuf:"varint,5,opt"`
CreateUin proto.Option[uint64] `protobuf:"varint,6,opt"`
CreatorName proto.Option[string] `protobuf:"bytes,7,opt"`
TotalFileCount proto.Option[uint32] `protobuf:"varint,8,opt"`
}
type GetFileListReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"`
FolderId *string `protobuf:"bytes,3,opt"`
StartTimestamp *FileTimeStamp `protobuf:"bytes,4,opt"`
FileCount *uint32 `protobuf:"varint,5,opt"`
MaxTimestamp *FileTimeStamp `protobuf:"bytes,6,opt"`
AllFileCount *uint32 `protobuf:"varint,7,opt"`
ReqFrom *uint32 `protobuf:"varint,8,opt"`
SortBy *uint32 `protobuf:"varint,9,opt"`
FilterCode *uint32 `protobuf:"varint,10,opt"`
Uin *uint64 `protobuf:"varint,11,opt"`
FieldFlag *uint32 `protobuf:"varint,12,opt"`
StartIndex *uint32 `protobuf:"varint,13,opt"`
Context []byte `protobuf:"bytes,14,opt"`
ClientVersion *uint32 `protobuf:"varint,15,opt"`
}
func (x *GetFileListReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *GetFileListReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *GetFileListReqBody) GetFolderId() string {
if x != nil && x.FolderId != nil {
return *x.FolderId
}
return ""
}
func (x *GetFileListReqBody) GetFileCount() uint32 {
if x != nil && x.FileCount != nil {
return *x.FileCount
}
return 0
}
func (x *GetFileListReqBody) GetAllFileCount() uint32 {
if x != nil && x.AllFileCount != nil {
return *x.AllFileCount
}
return 0
}
func (x *GetFileListReqBody) GetReqFrom() uint32 {
if x != nil && x.ReqFrom != nil {
return *x.ReqFrom
}
return 0
}
func (x *GetFileListReqBody) GetSortBy() uint32 {
if x != nil && x.SortBy != nil {
return *x.SortBy
}
return 0
}
func (x *GetFileListReqBody) GetFilterCode() uint32 {
if x != nil && x.FilterCode != nil {
return *x.FilterCode
}
return 0
}
func (x *GetFileListReqBody) GetUin() uint64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *GetFileListReqBody) GetFieldFlag() uint32 {
if x != nil && x.FieldFlag != nil {
return *x.FieldFlag
}
return 0
}
func (x *GetFileListReqBody) GetStartIndex() uint32 {
if x != nil && x.StartIndex != nil {
return *x.StartIndex
}
return 0
}
func (x *GetFileListReqBody) GetClientVersion() uint32 {
if x != nil && x.ClientVersion != nil {
return *x.ClientVersion
}
return 0
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
FolderId proto.Option[string] `protobuf:"bytes,3,opt"`
StartTimestamp *FileTimeStamp `protobuf:"bytes,4,opt"`
FileCount proto.Option[uint32] `protobuf:"varint,5,opt"`
MaxTimestamp *FileTimeStamp `protobuf:"bytes,6,opt"`
AllFileCount proto.Option[uint32] `protobuf:"varint,7,opt"`
ReqFrom proto.Option[uint32] `protobuf:"varint,8,opt"`
SortBy proto.Option[uint32] `protobuf:"varint,9,opt"`
FilterCode proto.Option[uint32] `protobuf:"varint,10,opt"`
Uin proto.Option[uint64] `protobuf:"varint,11,opt"`
FieldFlag proto.Option[uint32] `protobuf:"varint,12,opt"`
StartIndex proto.Option[uint32] `protobuf:"varint,13,opt"`
Context []byte `protobuf:"bytes,14,opt"`
ClientVersion proto.Option[uint32] `protobuf:"varint,15,opt"`
}
type GetFileCountReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"`
BusId *uint32 `protobuf:"varint,3,opt"`
}
func (x *GetFileCountReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *GetFileCountReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *GetFileCountReqBody) GetBusId() uint32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
BusId proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type GetSpaceReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"`
}
func (x *GetSpaceReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *GetSpaceReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
}
type GetFileCountRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
AllFileCount *uint32 `protobuf:"varint,4,opt"`
FileTooMany *bool `protobuf:"varint,5,opt"`
LimitCount *uint32 `protobuf:"varint,6,opt"`
IsFull *bool `protobuf:"varint,7,opt"`
}
func (x *GetFileCountRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *GetFileCountRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *GetFileCountRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
}
func (x *GetFileCountRspBody) GetAllFileCount() uint32 {
if x != nil && x.AllFileCount != nil {
return *x.AllFileCount
}
return 0
}
func (x *GetFileCountRspBody) GetFileTooMany() bool {
if x != nil && x.FileTooMany != nil {
return *x.FileTooMany
}
return false
}
func (x *GetFileCountRspBody) GetLimitCount() uint32 {
if x != nil && x.LimitCount != nil {
return *x.LimitCount
}
return 0
}
func (x *GetFileCountRspBody) GetIsFull() bool {
if x != nil && x.IsFull != nil {
return *x.IsFull
}
return false
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
AllFileCount proto.Option[uint32] `protobuf:"varint,4,opt"`
FileTooMany proto.Option[bool] `protobuf:"varint,5,opt"`
LimitCount proto.Option[uint32] `protobuf:"varint,6,opt"`
IsFull proto.Option[bool] `protobuf:"varint,7,opt"`
}
type GetSpaceRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
TotalSpace *uint64 `protobuf:"varint,4,opt"`
UsedSpace *uint64 `protobuf:"varint,5,opt"`
}
func (x *GetSpaceRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *GetSpaceRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *GetSpaceRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
}
func (x *GetSpaceRspBody) GetTotalSpace() uint64 {
if x != nil && x.TotalSpace != nil {
return *x.TotalSpace
}
return 0
}
func (x *GetSpaceRspBody) GetUsedSpace() uint64 {
if x != nil && x.UsedSpace != nil {
return *x.UsedSpace
}
return 0
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
TotalSpace proto.Option[uint64] `protobuf:"varint,4,opt"`
UsedSpace proto.Option[uint64] `protobuf:"varint,5,opt"`
}
type FileTimeStamp struct {
UploadTime *uint32 `protobuf:"varint,1,opt"`
FileId *string `protobuf:"bytes,2,opt"`
}
func (x *FileTimeStamp) GetUploadTime() uint32 {
if x != nil && x.UploadTime != nil {
return *x.UploadTime
}
return 0
}
func (x *FileTimeStamp) GetFileId() string {
if x != nil && x.FileId != nil {
return *x.FileId
}
return ""
UploadTime proto.Option[uint32] `protobuf:"varint,1,opt"`
FileId proto.Option[string] `protobuf:"bytes,2,opt"`
}
type GetFileListRspBody_Item struct {
Type *uint32 `protobuf:"varint,1,opt"`
FolderInfo *GroupFolderInfo `protobuf:"bytes,2,opt"`
FileInfo *GroupFileInfo `protobuf:"bytes,3,opt"`
}
func (x *GetFileListRspBody_Item) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
Type proto.Option[uint32] `protobuf:"varint,1,opt"`
FolderInfo *GroupFolderInfo `protobuf:"bytes,2,opt"`
FileInfo *GroupFileInfo `protobuf:"bytes,3,opt"`
}

View File

@ -3,332 +3,77 @@
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type GroupFileFeedsInfo struct {
BusId *uint32 `protobuf:"varint,1,opt"`
FileId *string `protobuf:"bytes,2,opt"`
MsgRandom *uint32 `protobuf:"varint,3,opt"`
Ext []byte `protobuf:"bytes,4,opt"`
FeedFlag *uint32 `protobuf:"varint,5,opt"`
}
func (x *GroupFileFeedsInfo) GetBusId() uint32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *GroupFileFeedsInfo) GetFileId() string {
if x != nil && x.FileId != nil {
return *x.FileId
}
return ""
}
func (x *GroupFileFeedsInfo) GetMsgRandom() uint32 {
if x != nil && x.MsgRandom != nil {
return *x.MsgRandom
}
return 0
}
func (x *GroupFileFeedsInfo) GetFeedFlag() uint32 {
if x != nil && x.FeedFlag != nil {
return *x.FeedFlag
}
return 0
BusId proto.Option[uint32] `protobuf:"varint,1,opt"`
FileId proto.Option[string] `protobuf:"bytes,2,opt"`
MsgRandom proto.Option[uint32] `protobuf:"varint,3,opt"`
Ext []byte `protobuf:"bytes,4,opt"`
FeedFlag proto.Option[uint32] `protobuf:"varint,5,opt"`
}
type CopyFromReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"`
SrcBusId *uint32 `protobuf:"varint,3,opt"`
SrcParentFolder []byte `protobuf:"bytes,4,opt"`
SrcFilePath []byte `protobuf:"bytes,5,opt"`
DstBusId *uint32 `protobuf:"varint,6,opt"`
DstFolderId []byte `protobuf:"bytes,7,opt"`
FileSize *uint64 `protobuf:"varint,8,opt"`
LocalPath *string `protobuf:"bytes,9,opt"`
FileName *string `protobuf:"bytes,10,opt"`
SrcUin *uint64 `protobuf:"varint,11,opt"`
Md5 []byte `protobuf:"bytes,12,opt"`
}
func (x *CopyFromReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *CopyFromReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *CopyFromReqBody) GetSrcBusId() uint32 {
if x != nil && x.SrcBusId != nil {
return *x.SrcBusId
}
return 0
}
func (x *CopyFromReqBody) GetDstBusId() uint32 {
if x != nil && x.DstBusId != nil {
return *x.DstBusId
}
return 0
}
func (x *CopyFromReqBody) GetFileSize() uint64 {
if x != nil && x.FileSize != nil {
return *x.FileSize
}
return 0
}
func (x *CopyFromReqBody) GetLocalPath() string {
if x != nil && x.LocalPath != nil {
return *x.LocalPath
}
return ""
}
func (x *CopyFromReqBody) GetFileName() string {
if x != nil && x.FileName != nil {
return *x.FileName
}
return ""
}
func (x *CopyFromReqBody) GetSrcUin() uint64 {
if x != nil && x.SrcUin != nil {
return *x.SrcUin
}
return 0
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
SrcBusId proto.Option[uint32] `protobuf:"varint,3,opt"`
SrcParentFolder []byte `protobuf:"bytes,4,opt"`
SrcFilePath []byte `protobuf:"bytes,5,opt"`
DstBusId proto.Option[uint32] `protobuf:"varint,6,opt"`
DstFolderId []byte `protobuf:"bytes,7,opt"`
FileSize proto.Option[uint64] `protobuf:"varint,8,opt"`
LocalPath proto.Option[string] `protobuf:"bytes,9,opt"`
FileName proto.Option[string] `protobuf:"bytes,10,opt"`
SrcUin proto.Option[uint64] `protobuf:"varint,11,opt"`
Md5 []byte `protobuf:"bytes,12,opt"`
}
type CopyFromRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
SaveFilePath []byte `protobuf:"bytes,4,opt"`
BusId *uint32 `protobuf:"varint,5,opt"`
}
func (x *CopyFromRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *CopyFromRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *CopyFromRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
}
func (x *CopyFromRspBody) GetBusId() uint32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
SaveFilePath []byte `protobuf:"bytes,4,opt"`
BusId proto.Option[uint32] `protobuf:"varint,5,opt"`
}
type CopyToReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"`
SrcBusId *uint32 `protobuf:"varint,3,opt"`
SrcFileId *string `protobuf:"bytes,4,opt"`
DstBusId *uint32 `protobuf:"varint,5,opt"`
DstUin *uint64 `protobuf:"varint,6,opt"`
NewFileName *string `protobuf:"bytes,40,opt"`
TimCloudPdirKey []byte `protobuf:"bytes,100,opt"`
TimCloudPpdirKey []byte `protobuf:"bytes,101,opt"`
TimCloudExtensionInfo []byte `protobuf:"bytes,102,opt"`
TimFileExistOption *uint32 `protobuf:"varint,103,opt"`
}
func (x *CopyToReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *CopyToReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *CopyToReqBody) GetSrcBusId() uint32 {
if x != nil && x.SrcBusId != nil {
return *x.SrcBusId
}
return 0
}
func (x *CopyToReqBody) GetSrcFileId() string {
if x != nil && x.SrcFileId != nil {
return *x.SrcFileId
}
return ""
}
func (x *CopyToReqBody) GetDstBusId() uint32 {
if x != nil && x.DstBusId != nil {
return *x.DstBusId
}
return 0
}
func (x *CopyToReqBody) GetDstUin() uint64 {
if x != nil && x.DstUin != nil {
return *x.DstUin
}
return 0
}
func (x *CopyToReqBody) GetNewFileName() string {
if x != nil && x.NewFileName != nil {
return *x.NewFileName
}
return ""
}
func (x *CopyToReqBody) GetTimFileExistOption() uint32 {
if x != nil && x.TimFileExistOption != nil {
return *x.TimFileExistOption
}
return 0
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
SrcBusId proto.Option[uint32] `protobuf:"varint,3,opt"`
SrcFileId proto.Option[string] `protobuf:"bytes,4,opt"`
DstBusId proto.Option[uint32] `protobuf:"varint,5,opt"`
DstUin proto.Option[uint64] `protobuf:"varint,6,opt"`
NewFileName proto.Option[string] `protobuf:"bytes,40,opt"`
TimCloudPdirKey []byte `protobuf:"bytes,100,opt"`
TimCloudPpdirKey []byte `protobuf:"bytes,101,opt"`
TimCloudExtensionInfo []byte `protobuf:"bytes,102,opt"`
TimFileExistOption proto.Option[uint32] `protobuf:"varint,103,opt"`
}
type CopyToRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
SaveFilePath *string `protobuf:"bytes,4,opt"`
BusId *uint32 `protobuf:"varint,5,opt"`
FileName *string `protobuf:"bytes,40,opt"`
}
func (x *CopyToRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *CopyToRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *CopyToRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
}
func (x *CopyToRspBody) GetSaveFilePath() string {
if x != nil && x.SaveFilePath != nil {
return *x.SaveFilePath
}
return ""
}
func (x *CopyToRspBody) GetBusId() uint32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *CopyToRspBody) GetFileName() string {
if x != nil && x.FileName != nil {
return *x.FileName
}
return ""
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
SaveFilePath proto.Option[string] `protobuf:"bytes,4,opt"`
BusId proto.Option[uint32] `protobuf:"varint,5,opt"`
FileName proto.Option[string] `protobuf:"bytes,40,opt"`
}
type FeedsReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"`
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
FeedsInfoList []*GroupFileFeedsInfo `protobuf:"bytes,3,rep"`
MultiSendSeq *uint32 `protobuf:"varint,4,opt"`
}
func (x *FeedsReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *FeedsReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *FeedsReqBody) GetMultiSendSeq() uint32 {
if x != nil && x.MultiSendSeq != nil {
return *x.MultiSendSeq
}
return 0
MultiSendSeq proto.Option[uint32] `protobuf:"varint,4,opt"`
}
type FeedsRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
//repeated C8639group_file_common.FeedsResult feedsResultList = 4;
SvrbusyWaitTime *uint32 `protobuf:"varint,5,opt"`
}
func (x *FeedsRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *FeedsRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *FeedsRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
}
func (x *FeedsRspBody) GetSvrbusyWaitTime() uint32 {
if x != nil && x.SvrbusyWaitTime != nil {
return *x.SvrbusyWaitTime
}
return 0
SvrbusyWaitTime proto.Option[uint32] `protobuf:"varint,5,opt"`
}
type D6D9ReqBody struct {
@ -346,79 +91,16 @@ type D6D9RspBody struct {
}
type TransFileReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"`
BusId *uint32 `protobuf:"varint,3,opt"`
FileId *string `protobuf:"bytes,4,opt"`
}
func (x *TransFileReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *TransFileReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *TransFileReqBody) GetBusId() uint32 {
if x != nil && x.BusId != nil {
return *x.BusId
}
return 0
}
func (x *TransFileReqBody) GetFileId() string {
if x != nil && x.FileId != nil {
return *x.FileId
}
return ""
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
BusId proto.Option[uint32] `protobuf:"varint,3,opt"`
FileId proto.Option[string] `protobuf:"bytes,4,opt"`
}
type TransFileRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"`
SaveBusId *uint32 `protobuf:"varint,4,opt"`
SaveFilePath *string `protobuf:"bytes,5,opt"`
}
func (x *TransFileRspBody) GetRetCode() int32 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *TransFileRspBody) GetRetMsg() string {
if x != nil && x.RetMsg != nil {
return *x.RetMsg
}
return ""
}
func (x *TransFileRspBody) GetClientWording() string {
if x != nil && x.ClientWording != nil {
return *x.ClientWording
}
return ""
}
func (x *TransFileRspBody) GetSaveBusId() uint32 {
if x != nil && x.SaveBusId != nil {
return *x.SaveBusId
}
return 0
}
func (x *TransFileRspBody) GetSaveFilePath() string {
if x != nil && x.SaveFilePath != nil {
return *x.SaveFilePath
}
return ""
RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
SaveBusId proto.Option[uint32] `protobuf:"varint,4,opt"`
SaveFilePath proto.Option[string] `protobuf:"bytes,5,opt"`
}

View File

@ -3,385 +3,102 @@
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type CPU struct {
Model *string `protobuf:"bytes,1,opt"`
Cores *uint32 `protobuf:"varint,2,opt"`
Frequency *uint32 `protobuf:"varint,3,opt"`
}
func (x *CPU) GetModel() string {
if x != nil && x.Model != nil {
return *x.Model
}
return ""
}
func (x *CPU) GetCores() uint32 {
if x != nil && x.Cores != nil {
return *x.Cores
}
return 0
}
func (x *CPU) GetFrequency() uint32 {
if x != nil && x.Frequency != nil {
return *x.Frequency
}
return 0
Model proto.Option[string] `protobuf:"bytes,1,opt"`
Cores proto.Option[uint32] `protobuf:"varint,2,opt"`
Frequency proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type Camera struct {
Primary *uint64 `protobuf:"varint,1,opt"`
Secondary *uint64 `protobuf:"varint,2,opt"`
Flash *bool `protobuf:"varint,3,opt"`
}
func (x *Camera) GetPrimary() uint64 {
if x != nil && x.Primary != nil {
return *x.Primary
}
return 0
}
func (x *Camera) GetSecondary() uint64 {
if x != nil && x.Secondary != nil {
return *x.Secondary
}
return 0
}
func (x *Camera) GetFlash() bool {
if x != nil && x.Flash != nil {
return *x.Flash
}
return false
Primary proto.Option[uint64] `protobuf:"varint,1,opt"`
Secondary proto.Option[uint64] `protobuf:"varint,2,opt"`
Flash proto.Option[bool] `protobuf:"varint,3,opt"`
}
type D769ConfigSeq struct {
Type *uint32 `protobuf:"varint,1,opt"`
Version *uint32 `protobuf:"varint,2,opt"`
}
func (x *D769ConfigSeq) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *D769ConfigSeq) GetVersion() uint32 {
if x != nil && x.Version != nil {
return *x.Version
}
return 0
Type proto.Option[uint32] `protobuf:"varint,1,opt"`
Version proto.Option[uint32] `protobuf:"varint,2,opt"`
}
type Content struct {
TaskId *uint32 `protobuf:"varint,1,opt"`
Compress *uint32 `protobuf:"varint,2,opt"`
Content []byte `protobuf:"bytes,10,opt"`
}
func (x *Content) GetTaskId() uint32 {
if x != nil && x.TaskId != nil {
return *x.TaskId
}
return 0
}
func (x *Content) GetCompress() uint32 {
if x != nil && x.Compress != nil {
return *x.Compress
}
return 0
TaskId proto.Option[uint32] `protobuf:"varint,1,opt"`
Compress proto.Option[uint32] `protobuf:"varint,2,opt"`
Content []byte `protobuf:"bytes,10,opt"`
}
type D769DeviceInfo struct {
Brand *string `protobuf:"bytes,1,opt"`
Model *string `protobuf:"bytes,2,opt"`
Os *C41219OS `protobuf:"bytes,3,opt"`
Cpu *CPU `protobuf:"bytes,4,opt"`
Memory *Memory `protobuf:"bytes,5,opt"`
Storage *Storage `protobuf:"bytes,6,opt"`
Screen *Screen `protobuf:"bytes,7,opt"`
Camera *Camera `protobuf:"bytes,8,opt"`
}
func (x *D769DeviceInfo) GetBrand() string {
if x != nil && x.Brand != nil {
return *x.Brand
}
return ""
}
func (x *D769DeviceInfo) GetModel() string {
if x != nil && x.Model != nil {
return *x.Model
}
return ""
Brand proto.Option[string] `protobuf:"bytes,1,opt"`
Model proto.Option[string] `protobuf:"bytes,2,opt"`
Os *C41219OS `protobuf:"bytes,3,opt"`
Cpu *CPU `protobuf:"bytes,4,opt"`
Memory *Memory `protobuf:"bytes,5,opt"`
Storage *Storage `protobuf:"bytes,6,opt"`
Screen *Screen `protobuf:"bytes,7,opt"`
Camera *Camera `protobuf:"bytes,8,opt"`
}
type Memory struct {
Total *uint64 `protobuf:"varint,1,opt"`
Process *uint64 `protobuf:"varint,2,opt"`
}
func (x *Memory) GetTotal() uint64 {
if x != nil && x.Total != nil {
return *x.Total
}
return 0
}
func (x *Memory) GetProcess() uint64 {
if x != nil && x.Process != nil {
return *x.Process
}
return 0
Total proto.Option[uint64] `protobuf:"varint,1,opt"`
Process proto.Option[uint64] `protobuf:"varint,2,opt"`
}
type C41219OS struct {
Type *uint32 `protobuf:"varint,1,opt"`
Version *string `protobuf:"bytes,2,opt"`
Sdk *string `protobuf:"bytes,3,opt"`
Kernel *string `protobuf:"bytes,4,opt"`
Rom *string `protobuf:"bytes,5,opt"`
}
func (x *C41219OS) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *C41219OS) GetVersion() string {
if x != nil && x.Version != nil {
return *x.Version
}
return ""
}
func (x *C41219OS) GetSdk() string {
if x != nil && x.Sdk != nil {
return *x.Sdk
}
return ""
}
func (x *C41219OS) GetKernel() string {
if x != nil && x.Kernel != nil {
return *x.Kernel
}
return ""
}
func (x *C41219OS) GetRom() string {
if x != nil && x.Rom != nil {
return *x.Rom
}
return ""
Type proto.Option[uint32] `protobuf:"varint,1,opt"`
Version proto.Option[string] `protobuf:"bytes,2,opt"`
Sdk proto.Option[string] `protobuf:"bytes,3,opt"`
Kernel proto.Option[string] `protobuf:"bytes,4,opt"`
Rom proto.Option[string] `protobuf:"bytes,5,opt"`
}
type QueryUinPackageUsageReq struct {
Type *uint32 `protobuf:"varint,1,opt"`
UinFileSize *uint64 `protobuf:"varint,2,opt"`
}
func (x *QueryUinPackageUsageReq) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *QueryUinPackageUsageReq) GetUinFileSize() uint64 {
if x != nil && x.UinFileSize != nil {
return *x.UinFileSize
}
return 0
Type proto.Option[uint32] `protobuf:"varint,1,opt"`
UinFileSize proto.Option[uint64] `protobuf:"varint,2,opt"`
}
type QueryUinPackageUsageRsp struct {
Status *uint32 `protobuf:"varint,1,opt"`
LeftUinNum *uint64 `protobuf:"varint,2,opt"`
MaxUinNum *uint64 `protobuf:"varint,3,opt"`
Proportion *uint32 `protobuf:"varint,4,opt"`
Status proto.Option[uint32] `protobuf:"varint,1,opt"`
LeftUinNum proto.Option[uint64] `protobuf:"varint,2,opt"`
MaxUinNum proto.Option[uint64] `protobuf:"varint,3,opt"`
Proportion proto.Option[uint32] `protobuf:"varint,4,opt"`
UinPackageUsedList []*UinPackageUsedInfo `protobuf:"bytes,10,rep"`
}
func (x *QueryUinPackageUsageRsp) GetStatus() uint32 {
if x != nil && x.Status != nil {
return *x.Status
}
return 0
}
func (x *QueryUinPackageUsageRsp) GetLeftUinNum() uint64 {
if x != nil && x.LeftUinNum != nil {
return *x.LeftUinNum
}
return 0
}
func (x *QueryUinPackageUsageRsp) GetMaxUinNum() uint64 {
if x != nil && x.MaxUinNum != nil {
return *x.MaxUinNum
}
return 0
}
func (x *QueryUinPackageUsageRsp) GetProportion() uint32 {
if x != nil && x.Proportion != nil {
return *x.Proportion
}
return 0
}
type D769ReqBody struct {
ConfigList []*D769ConfigSeq `protobuf:"bytes,1,rep"`
DeviceInfo *D769DeviceInfo `protobuf:"bytes,2,opt"`
Info *string `protobuf:"bytes,3,opt"`
Province *string `protobuf:"bytes,4,opt"`
City *string `protobuf:"bytes,5,opt"`
ReqDebugMsg *int32 `protobuf:"varint,6,opt"`
Info proto.Option[string] `protobuf:"bytes,3,opt"`
Province proto.Option[string] `protobuf:"bytes,4,opt"`
City proto.Option[string] `protobuf:"bytes,5,opt"`
ReqDebugMsg proto.Option[int32] `protobuf:"varint,6,opt"`
QueryUinPackageUsageReq *QueryUinPackageUsageReq `protobuf:"bytes,101,opt"`
}
func (x *D769ReqBody) GetInfo() string {
if x != nil && x.Info != nil {
return *x.Info
}
return ""
}
func (x *D769ReqBody) GetProvince() string {
if x != nil && x.Province != nil {
return *x.Province
}
return ""
}
func (x *D769ReqBody) GetCity() string {
if x != nil && x.City != nil {
return *x.City
}
return ""
}
func (x *D769ReqBody) GetReqDebugMsg() int32 {
if x != nil && x.ReqDebugMsg != nil {
return *x.ReqDebugMsg
}
return 0
}
type D769RspBody struct {
Result *uint32 `protobuf:"varint,1,opt"`
Result proto.Option[uint32] `protobuf:"varint,1,opt"`
ConfigList []*D769ConfigSeq `protobuf:"bytes,2,rep"`
QueryUinPackageUsageRsp *QueryUinPackageUsageRsp `protobuf:"bytes,101,opt"`
}
func (x *D769RspBody) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
type Screen struct {
Model *string `protobuf:"bytes,1,opt"`
Width *uint32 `protobuf:"varint,2,opt"`
Height *uint32 `protobuf:"varint,3,opt"`
Dpi *uint32 `protobuf:"varint,4,opt"`
MultiTouch *bool `protobuf:"varint,5,opt"`
}
func (x *Screen) GetModel() string {
if x != nil && x.Model != nil {
return *x.Model
}
return ""
}
func (x *Screen) GetWidth() uint32 {
if x != nil && x.Width != nil {
return *x.Width
}
return 0
}
func (x *Screen) GetHeight() uint32 {
if x != nil && x.Height != nil {
return *x.Height
}
return 0
}
func (x *Screen) GetDpi() uint32 {
if x != nil && x.Dpi != nil {
return *x.Dpi
}
return 0
}
func (x *Screen) GetMultiTouch() bool {
if x != nil && x.MultiTouch != nil {
return *x.MultiTouch
}
return false
Model proto.Option[string] `protobuf:"bytes,1,opt"`
Width proto.Option[uint32] `protobuf:"varint,2,opt"`
Height proto.Option[uint32] `protobuf:"varint,3,opt"`
Dpi proto.Option[uint32] `protobuf:"varint,4,opt"`
MultiTouch proto.Option[bool] `protobuf:"varint,5,opt"`
}
type Storage struct {
Builtin *uint64 `protobuf:"varint,1,opt"`
External *uint64 `protobuf:"varint,2,opt"`
}
func (x *Storage) GetBuiltin() uint64 {
if x != nil && x.Builtin != nil {
return *x.Builtin
}
return 0
}
func (x *Storage) GetExternal() uint64 {
if x != nil && x.External != nil {
return *x.External
}
return 0
Builtin proto.Option[uint64] `protobuf:"varint,1,opt"`
External proto.Option[uint64] `protobuf:"varint,2,opt"`
}
type UinPackageUsedInfo struct {
RuleId *uint32 `protobuf:"varint,1,opt"`
Author *string `protobuf:"bytes,2,opt"`
Url *string `protobuf:"bytes,3,opt"`
UinNum *uint64 `protobuf:"varint,4,opt"`
}
func (x *UinPackageUsedInfo) GetRuleId() uint32 {
if x != nil && x.RuleId != nil {
return *x.RuleId
}
return 0
}
func (x *UinPackageUsedInfo) GetAuthor() string {
if x != nil && x.Author != nil {
return *x.Author
}
return ""
}
func (x *UinPackageUsedInfo) GetUrl() string {
if x != nil && x.Url != nil {
return *x.Url
}
return ""
}
func (x *UinPackageUsedInfo) GetUinNum() uint64 {
if x != nil && x.UinNum != nil {
return *x.UinNum
}
return 0
RuleId proto.Option[uint32] `protobuf:"varint,1,opt"`
Author proto.Option[string] `protobuf:"bytes,2,opt"`
Url proto.Option[string] `protobuf:"bytes,3,opt"`
UinNum proto.Option[uint64] `protobuf:"varint,4,opt"`
}

View File

@ -3,671 +3,129 @@
package oidb
type D88DGroupHeadPortraitInfo struct {
PicId *uint32 `protobuf:"varint,1,opt"`
}
import (
proto "github.com/RomiChan/protobuf/proto"
)
func (x *D88DGroupHeadPortraitInfo) GetPicId() uint32 {
if x != nil && x.PicId != nil {
return *x.PicId
}
return 0
type D88DGroupHeadPortraitInfo struct {
PicId proto.Option[uint32] `protobuf:"varint,1,opt"`
}
type D88DGroupHeadPortrait struct {
PicCount *uint32 `protobuf:"varint,1,opt"`
PicCount proto.Option[uint32] `protobuf:"varint,1,opt"`
MsgInfo []*D88DGroupHeadPortraitInfo `protobuf:"bytes,2,rep"`
DefaultId *uint32 `protobuf:"varint,3,opt"`
VerifyingPicCnt *uint32 `protobuf:"varint,4,opt"`
DefaultId proto.Option[uint32] `protobuf:"varint,3,opt"`
VerifyingPicCnt proto.Option[uint32] `protobuf:"varint,4,opt"`
MsgVerifyingPicInfo []*D88DGroupHeadPortraitInfo `protobuf:"bytes,5,rep"`
}
func (x *D88DGroupHeadPortrait) GetPicCount() uint32 {
if x != nil && x.PicCount != nil {
return *x.PicCount
}
return 0
}
func (x *D88DGroupHeadPortrait) GetDefaultId() uint32 {
if x != nil && x.DefaultId != nil {
return *x.DefaultId
}
return 0
}
func (x *D88DGroupHeadPortrait) GetVerifyingPicCnt() uint32 {
if x != nil && x.VerifyingPicCnt != nil {
return *x.VerifyingPicCnt
}
return 0
}
type D88DGroupExInfoOnly struct {
TribeId *uint32 `protobuf:"varint,1,opt"`
MoneyForAddGroup *uint32 `protobuf:"varint,2,opt"`
}
func (x *D88DGroupExInfoOnly) GetTribeId() uint32 {
if x != nil && x.TribeId != nil {
return *x.TribeId
}
return 0
}
func (x *D88DGroupExInfoOnly) GetMoneyForAddGroup() uint32 {
if x != nil && x.MoneyForAddGroup != nil {
return *x.MoneyForAddGroup
}
return 0
TribeId proto.Option[uint32] `protobuf:"varint,1,opt"`
MoneyForAddGroup proto.Option[uint32] `protobuf:"varint,2,opt"`
}
type D88DGroupInfo struct {
GroupOwner *uint64 `protobuf:"varint,1,opt"`
GroupCreateTime *uint32 `protobuf:"varint,2,opt"`
GroupFlag *uint32 `protobuf:"varint,3,opt"`
GroupFlagExt *uint32 `protobuf:"varint,4,opt"`
GroupMemberMaxNum *uint32 `protobuf:"varint,5,opt"`
GroupMemberNum *uint32 `protobuf:"varint,6,opt"`
GroupOption *uint32 `protobuf:"varint,7,opt"`
GroupClassExt *uint32 `protobuf:"varint,8,opt"`
GroupSpecialClass *uint32 `protobuf:"varint,9,opt"`
GroupLevel *uint32 `protobuf:"varint,10,opt"`
GroupFace *uint32 `protobuf:"varint,11,opt"`
GroupDefaultPage *uint32 `protobuf:"varint,12,opt"`
GroupInfoSeq *uint32 `protobuf:"varint,13,opt"`
GroupRoamingTime *uint32 `protobuf:"varint,14,opt"`
GroupOwner proto.Option[uint64] `protobuf:"varint,1,opt"`
GroupCreateTime proto.Option[uint32] `protobuf:"varint,2,opt"`
GroupFlag proto.Option[uint32] `protobuf:"varint,3,opt"`
GroupFlagExt proto.Option[uint32] `protobuf:"varint,4,opt"`
GroupMemberMaxNum proto.Option[uint32] `protobuf:"varint,5,opt"`
GroupMemberNum proto.Option[uint32] `protobuf:"varint,6,opt"`
GroupOption proto.Option[uint32] `protobuf:"varint,7,opt"`
GroupClassExt proto.Option[uint32] `protobuf:"varint,8,opt"`
GroupSpecialClass proto.Option[uint32] `protobuf:"varint,9,opt"`
GroupLevel proto.Option[uint32] `protobuf:"varint,10,opt"`
GroupFace proto.Option[uint32] `protobuf:"varint,11,opt"`
GroupDefaultPage proto.Option[uint32] `protobuf:"varint,12,opt"`
GroupInfoSeq proto.Option[uint32] `protobuf:"varint,13,opt"`
GroupRoamingTime proto.Option[uint32] `protobuf:"varint,14,opt"`
GroupName []byte `protobuf:"bytes,15,opt"`
GroupMemo []byte `protobuf:"bytes,16,opt"`
GroupFingerMemo []byte `protobuf:"bytes,17,opt"`
GroupClassText []byte `protobuf:"bytes,18,opt"`
GroupAllianceCode []uint32 `protobuf:"varint,19,rep"`
GroupExtraAadmNum *uint32 `protobuf:"varint,20,opt"`
GroupUin *uint64 `protobuf:"varint,21,opt"`
GroupCurMsgSeq *uint32 `protobuf:"varint,22,opt"`
GroupLastMsgTime *uint32 `protobuf:"varint,23,opt"`
GroupExtraAadmNum proto.Option[uint32] `protobuf:"varint,20,opt"`
GroupUin proto.Option[uint64] `protobuf:"varint,21,opt"`
GroupCurMsgSeq proto.Option[uint32] `protobuf:"varint,22,opt"`
GroupLastMsgTime proto.Option[uint32] `protobuf:"varint,23,opt"`
GroupQuestion []byte `protobuf:"bytes,24,opt"`
GroupAnswer []byte `protobuf:"bytes,25,opt"`
GroupVisitorMaxNum *uint32 `protobuf:"varint,26,opt"`
GroupVisitorCurNum *uint32 `protobuf:"varint,27,opt"`
LevelNameSeq *uint32 `protobuf:"varint,28,opt"`
GroupAdminMaxNum *uint32 `protobuf:"varint,29,opt"`
GroupAioSkinTimestamp *uint32 `protobuf:"varint,30,opt"`
GroupBoardSkinTimestamp *uint32 `protobuf:"varint,31,opt"`
GroupVisitorMaxNum proto.Option[uint32] `protobuf:"varint,26,opt"`
GroupVisitorCurNum proto.Option[uint32] `protobuf:"varint,27,opt"`
LevelNameSeq proto.Option[uint32] `protobuf:"varint,28,opt"`
GroupAdminMaxNum proto.Option[uint32] `protobuf:"varint,29,opt"`
GroupAioSkinTimestamp proto.Option[uint32] `protobuf:"varint,30,opt"`
GroupBoardSkinTimestamp proto.Option[uint32] `protobuf:"varint,31,opt"`
GroupAioSkinUrl []byte `protobuf:"bytes,32,opt"`
GroupBoardSkinUrl []byte `protobuf:"bytes,33,opt"`
GroupCoverSkinTimestamp *uint32 `protobuf:"varint,34,opt"`
GroupCoverSkinTimestamp proto.Option[uint32] `protobuf:"varint,34,opt"`
GroupCoverSkinUrl []byte `protobuf:"bytes,35,opt"`
GroupGrade *uint32 `protobuf:"varint,36,opt"`
ActiveMemberNum *uint32 `protobuf:"varint,37,opt"`
CertificationType *uint32 `protobuf:"varint,38,opt"`
GroupGrade proto.Option[uint32] `protobuf:"varint,36,opt"`
ActiveMemberNum proto.Option[uint32] `protobuf:"varint,37,opt"`
CertificationType proto.Option[uint32] `protobuf:"varint,38,opt"`
CertificationText []byte `protobuf:"bytes,39,opt"`
GroupRichFingerMemo []byte `protobuf:"bytes,40,opt"`
TagRecord []*D88DTagRecord `protobuf:"bytes,41,rep"`
GroupGeoInfo *D88DGroupGeoInfo `protobuf:"bytes,42,opt"`
HeadPortraitSeq *uint32 `protobuf:"varint,43,opt"`
HeadPortraitSeq proto.Option[uint32] `protobuf:"varint,43,opt"`
MsgHeadPortrait *D88DGroupHeadPortrait `protobuf:"bytes,44,opt"`
ShutupTimestamp *uint32 `protobuf:"varint,45,opt"`
ShutupTimestampMe *uint32 `protobuf:"varint,46,opt"`
CreateSourceFlag *uint32 `protobuf:"varint,47,opt"`
CmduinMsgSeq *uint32 `protobuf:"varint,48,opt"`
CmduinJoinTime *uint32 `protobuf:"varint,49,opt"`
CmduinUinFlag *uint32 `protobuf:"varint,50,opt"`
CmduinFlagEx *uint32 `protobuf:"varint,51,opt"`
CmduinNewMobileFlag *uint32 `protobuf:"varint,52,opt"`
CmduinReadMsgSeq *uint32 `protobuf:"varint,53,opt"`
CmduinLastMsgTime *uint32 `protobuf:"varint,54,opt"`
GroupTypeFlag *uint32 `protobuf:"varint,55,opt"`
AppPrivilegeFlag *uint32 `protobuf:"varint,56,opt"`
ShutupTimestamp proto.Option[uint32] `protobuf:"varint,45,opt"`
ShutupTimestampMe proto.Option[uint32] `protobuf:"varint,46,opt"`
CreateSourceFlag proto.Option[uint32] `protobuf:"varint,47,opt"`
CmduinMsgSeq proto.Option[uint32] `protobuf:"varint,48,opt"`
CmduinJoinTime proto.Option[uint32] `protobuf:"varint,49,opt"`
CmduinUinFlag proto.Option[uint32] `protobuf:"varint,50,opt"`
CmduinFlagEx proto.Option[uint32] `protobuf:"varint,51,opt"`
CmduinNewMobileFlag proto.Option[uint32] `protobuf:"varint,52,opt"`
CmduinReadMsgSeq proto.Option[uint32] `protobuf:"varint,53,opt"`
CmduinLastMsgTime proto.Option[uint32] `protobuf:"varint,54,opt"`
GroupTypeFlag proto.Option[uint32] `protobuf:"varint,55,opt"`
AppPrivilegeFlag proto.Option[uint32] `protobuf:"varint,56,opt"`
StGroupExInfo *D88DGroupExInfoOnly `protobuf:"bytes,57,opt"`
GroupSecLevel *uint32 `protobuf:"varint,58,opt"`
GroupSecLevelInfo *uint32 `protobuf:"varint,59,opt"`
CmduinPrivilege *uint32 `protobuf:"varint,60,opt"`
GroupSecLevel proto.Option[uint32] `protobuf:"varint,58,opt"`
GroupSecLevelInfo proto.Option[uint32] `protobuf:"varint,59,opt"`
CmduinPrivilege proto.Option[uint32] `protobuf:"varint,60,opt"`
PoidInfo []byte `protobuf:"bytes,61,opt"`
CmduinFlagEx2 *uint32 `protobuf:"varint,62,opt"`
ConfUin *uint64 `protobuf:"varint,63,opt"`
ConfMaxMsgSeq *uint32 `protobuf:"varint,64,opt"`
ConfToGroupTime *uint32 `protobuf:"varint,65,opt"`
PasswordRedbagTime *uint32 `protobuf:"varint,66,opt"`
SubscriptionUin *uint64 `protobuf:"varint,67,opt"`
MemberListChangeSeq *uint32 `protobuf:"varint,68,opt"`
MembercardSeq *uint32 `protobuf:"varint,69,opt"`
RootId *uint64 `protobuf:"varint,70,opt"`
ParentId *uint64 `protobuf:"varint,71,opt"`
TeamSeq *uint32 `protobuf:"varint,72,opt"`
HistoryMsgBeginTime *uint64 `protobuf:"varint,73,opt"`
InviteNoAuthNumLimit *uint64 `protobuf:"varint,74,opt"`
CmduinHistoryMsgSeq *uint32 `protobuf:"varint,75,opt"`
CmduinJoinMsgSeq *uint32 `protobuf:"varint,76,opt"`
GroupFlagext3 *uint32 `protobuf:"varint,77,opt"`
GroupOpenAppid *uint32 `protobuf:"varint,78,opt"`
IsConfGroup *uint32 `protobuf:"varint,79,opt"`
IsModifyConfGroupFace *uint32 `protobuf:"varint,80,opt"`
IsModifyConfGroupName *uint32 `protobuf:"varint,81,opt"`
NoFingerOpenFlag *uint32 `protobuf:"varint,82,opt"`
NoCodeFingerOpenFlag *uint32 `protobuf:"varint,83,opt"`
}
func (x *D88DGroupInfo) GetGroupOwner() uint64 {
if x != nil && x.GroupOwner != nil {
return *x.GroupOwner
}
return 0
}
func (x *D88DGroupInfo) GetGroupCreateTime() uint32 {
if x != nil && x.GroupCreateTime != nil {
return *x.GroupCreateTime
}
return 0
}
func (x *D88DGroupInfo) GetGroupFlag() uint32 {
if x != nil && x.GroupFlag != nil {
return *x.GroupFlag
}
return 0
}
func (x *D88DGroupInfo) GetGroupFlagExt() uint32 {
if x != nil && x.GroupFlagExt != nil {
return *x.GroupFlagExt
}
return 0
}
func (x *D88DGroupInfo) GetGroupMemberMaxNum() uint32 {
if x != nil && x.GroupMemberMaxNum != nil {
return *x.GroupMemberMaxNum
}
return 0
}
func (x *D88DGroupInfo) GetGroupMemberNum() uint32 {
if x != nil && x.GroupMemberNum != nil {
return *x.GroupMemberNum
}
return 0
}
func (x *D88DGroupInfo) GetGroupOption() uint32 {
if x != nil && x.GroupOption != nil {
return *x.GroupOption
}
return 0
}
func (x *D88DGroupInfo) GetGroupClassExt() uint32 {
if x != nil && x.GroupClassExt != nil {
return *x.GroupClassExt
}
return 0
}
func (x *D88DGroupInfo) GetGroupSpecialClass() uint32 {
if x != nil && x.GroupSpecialClass != nil {
return *x.GroupSpecialClass
}
return 0
}
func (x *D88DGroupInfo) GetGroupLevel() uint32 {
if x != nil && x.GroupLevel != nil {
return *x.GroupLevel
}
return 0
}
func (x *D88DGroupInfo) GetGroupFace() uint32 {
if x != nil && x.GroupFace != nil {
return *x.GroupFace
}
return 0
}
func (x *D88DGroupInfo) GetGroupDefaultPage() uint32 {
if x != nil && x.GroupDefaultPage != nil {
return *x.GroupDefaultPage
}
return 0
}
func (x *D88DGroupInfo) GetGroupInfoSeq() uint32 {
if x != nil && x.GroupInfoSeq != nil {
return *x.GroupInfoSeq
}
return 0
}
func (x *D88DGroupInfo) GetGroupRoamingTime() uint32 {
if x != nil && x.GroupRoamingTime != nil {
return *x.GroupRoamingTime
}
return 0
}
func (x *D88DGroupInfo) GetGroupExtraAadmNum() uint32 {
if x != nil && x.GroupExtraAadmNum != nil {
return *x.GroupExtraAadmNum
}
return 0
}
func (x *D88DGroupInfo) GetGroupUin() uint64 {
if x != nil && x.GroupUin != nil {
return *x.GroupUin
}
return 0
}
func (x *D88DGroupInfo) GetGroupCurMsgSeq() uint32 {
if x != nil && x.GroupCurMsgSeq != nil {
return *x.GroupCurMsgSeq
}
return 0
}
func (x *D88DGroupInfo) GetGroupLastMsgTime() uint32 {
if x != nil && x.GroupLastMsgTime != nil {
return *x.GroupLastMsgTime
}
return 0
}
func (x *D88DGroupInfo) GetGroupVisitorMaxNum() uint32 {
if x != nil && x.GroupVisitorMaxNum != nil {
return *x.GroupVisitorMaxNum
}
return 0
}
func (x *D88DGroupInfo) GetGroupVisitorCurNum() uint32 {
if x != nil && x.GroupVisitorCurNum != nil {
return *x.GroupVisitorCurNum
}
return 0
}
func (x *D88DGroupInfo) GetLevelNameSeq() uint32 {
if x != nil && x.LevelNameSeq != nil {
return *x.LevelNameSeq
}
return 0
}
func (x *D88DGroupInfo) GetGroupAdminMaxNum() uint32 {
if x != nil && x.GroupAdminMaxNum != nil {
return *x.GroupAdminMaxNum
}
return 0
}
func (x *D88DGroupInfo) GetGroupAioSkinTimestamp() uint32 {
if x != nil && x.GroupAioSkinTimestamp != nil {
return *x.GroupAioSkinTimestamp
}
return 0
}
func (x *D88DGroupInfo) GetGroupBoardSkinTimestamp() uint32 {
if x != nil && x.GroupBoardSkinTimestamp != nil {
return *x.GroupBoardSkinTimestamp
}
return 0
}
func (x *D88DGroupInfo) GetGroupCoverSkinTimestamp() uint32 {
if x != nil && x.GroupCoverSkinTimestamp != nil {
return *x.GroupCoverSkinTimestamp
}
return 0
}
func (x *D88DGroupInfo) GetGroupGrade() uint32 {
if x != nil && x.GroupGrade != nil {
return *x.GroupGrade
}
return 0
}
func (x *D88DGroupInfo) GetActiveMemberNum() uint32 {
if x != nil && x.ActiveMemberNum != nil {
return *x.ActiveMemberNum
}
return 0
}
func (x *D88DGroupInfo) GetCertificationType() uint32 {
if x != nil && x.CertificationType != nil {
return *x.CertificationType
}
return 0
}
func (x *D88DGroupInfo) GetHeadPortraitSeq() uint32 {
if x != nil && x.HeadPortraitSeq != nil {
return *x.HeadPortraitSeq
}
return 0
}
func (x *D88DGroupInfo) GetShutupTimestamp() uint32 {
if x != nil && x.ShutupTimestamp != nil {
return *x.ShutupTimestamp
}
return 0
}
func (x *D88DGroupInfo) GetShutupTimestampMe() uint32 {
if x != nil && x.ShutupTimestampMe != nil {
return *x.ShutupTimestampMe
}
return 0
}
func (x *D88DGroupInfo) GetCreateSourceFlag() uint32 {
if x != nil && x.CreateSourceFlag != nil {
return *x.CreateSourceFlag
}
return 0
}
func (x *D88DGroupInfo) GetCmduinMsgSeq() uint32 {
if x != nil && x.CmduinMsgSeq != nil {
return *x.CmduinMsgSeq
}
return 0
}
func (x *D88DGroupInfo) GetCmduinJoinTime() uint32 {
if x != nil && x.CmduinJoinTime != nil {
return *x.CmduinJoinTime
}
return 0
}
func (x *D88DGroupInfo) GetCmduinUinFlag() uint32 {
if x != nil && x.CmduinUinFlag != nil {
return *x.CmduinUinFlag
}
return 0
}
func (x *D88DGroupInfo) GetCmduinFlagEx() uint32 {
if x != nil && x.CmduinFlagEx != nil {
return *x.CmduinFlagEx
}
return 0
}
func (x *D88DGroupInfo) GetCmduinNewMobileFlag() uint32 {
if x != nil && x.CmduinNewMobileFlag != nil {
return *x.CmduinNewMobileFlag
}
return 0
}
func (x *D88DGroupInfo) GetCmduinReadMsgSeq() uint32 {
if x != nil && x.CmduinReadMsgSeq != nil {
return *x.CmduinReadMsgSeq
}
return 0
}
func (x *D88DGroupInfo) GetCmduinLastMsgTime() uint32 {
if x != nil && x.CmduinLastMsgTime != nil {
return *x.CmduinLastMsgTime
}
return 0
}
func (x *D88DGroupInfo) GetGroupTypeFlag() uint32 {
if x != nil && x.GroupTypeFlag != nil {
return *x.GroupTypeFlag
}
return 0
}
func (x *D88DGroupInfo) GetAppPrivilegeFlag() uint32 {
if x != nil && x.AppPrivilegeFlag != nil {
return *x.AppPrivilegeFlag
}
return 0
}
func (x *D88DGroupInfo) GetGroupSecLevel() uint32 {
if x != nil && x.GroupSecLevel != nil {
return *x.GroupSecLevel
}
return 0
}
func (x *D88DGroupInfo) GetGroupSecLevelInfo() uint32 {
if x != nil && x.GroupSecLevelInfo != nil {
return *x.GroupSecLevelInfo
}
return 0
}
func (x *D88DGroupInfo) GetCmduinPrivilege() uint32 {
if x != nil && x.CmduinPrivilege != nil {
return *x.CmduinPrivilege
}
return 0
}
func (x *D88DGroupInfo) GetCmduinFlagEx2() uint32 {
if x != nil && x.CmduinFlagEx2 != nil {
return *x.CmduinFlagEx2
}
return 0
}
func (x *D88DGroupInfo) GetConfUin() uint64 {
if x != nil && x.ConfUin != nil {
return *x.ConfUin
}
return 0
}
func (x *D88DGroupInfo) GetConfMaxMsgSeq() uint32 {
if x != nil && x.ConfMaxMsgSeq != nil {
return *x.ConfMaxMsgSeq
}
return 0
}
func (x *D88DGroupInfo) GetConfToGroupTime() uint32 {
if x != nil && x.ConfToGroupTime != nil {
return *x.ConfToGroupTime
}
return 0
}
func (x *D88DGroupInfo) GetPasswordRedbagTime() uint32 {
if x != nil && x.PasswordRedbagTime != nil {
return *x.PasswordRedbagTime
}
return 0
}
func (x *D88DGroupInfo) GetSubscriptionUin() uint64 {
if x != nil && x.SubscriptionUin != nil {
return *x.SubscriptionUin
}
return 0
}
func (x *D88DGroupInfo) GetMemberListChangeSeq() uint32 {
if x != nil && x.MemberListChangeSeq != nil {
return *x.MemberListChangeSeq
}
return 0
}
func (x *D88DGroupInfo) GetMembercardSeq() uint32 {
if x != nil && x.MembercardSeq != nil {
return *x.MembercardSeq
}
return 0
}
func (x *D88DGroupInfo) GetRootId() uint64 {
if x != nil && x.RootId != nil {
return *x.RootId
}
return 0
}
func (x *D88DGroupInfo) GetParentId() uint64 {
if x != nil && x.ParentId != nil {
return *x.ParentId
}
return 0
}
func (x *D88DGroupInfo) GetTeamSeq() uint32 {
if x != nil && x.TeamSeq != nil {
return *x.TeamSeq
}
return 0
}
func (x *D88DGroupInfo) GetHistoryMsgBeginTime() uint64 {
if x != nil && x.HistoryMsgBeginTime != nil {
return *x.HistoryMsgBeginTime
}
return 0
}
func (x *D88DGroupInfo) GetInviteNoAuthNumLimit() uint64 {
if x != nil && x.InviteNoAuthNumLimit != nil {
return *x.InviteNoAuthNumLimit
}
return 0
}
func (x *D88DGroupInfo) GetCmduinHistoryMsgSeq() uint32 {
if x != nil && x.CmduinHistoryMsgSeq != nil {
return *x.CmduinHistoryMsgSeq
}
return 0
}
func (x *D88DGroupInfo) GetCmduinJoinMsgSeq() uint32 {
if x != nil && x.CmduinJoinMsgSeq != nil {
return *x.CmduinJoinMsgSeq
}
return 0
}
func (x *D88DGroupInfo) GetGroupFlagext3() uint32 {
if x != nil && x.GroupFlagext3 != nil {
return *x.GroupFlagext3
}
return 0
}
func (x *D88DGroupInfo) GetGroupOpenAppid() uint32 {
if x != nil && x.GroupOpenAppid != nil {
return *x.GroupOpenAppid
}
return 0
}
func (x *D88DGroupInfo) GetIsConfGroup() uint32 {
if x != nil && x.IsConfGroup != nil {
return *x.IsConfGroup
}
return 0
}
func (x *D88DGroupInfo) GetIsModifyConfGroupFace() uint32 {
if x != nil && x.IsModifyConfGroupFace != nil {
return *x.IsModifyConfGroupFace
}
return 0
}
func (x *D88DGroupInfo) GetIsModifyConfGroupName() uint32 {
if x != nil && x.IsModifyConfGroupName != nil {
return *x.IsModifyConfGroupName
}
return 0
}
func (x *D88DGroupInfo) GetNoFingerOpenFlag() uint32 {
if x != nil && x.NoFingerOpenFlag != nil {
return *x.NoFingerOpenFlag
}
return 0
}
func (x *D88DGroupInfo) GetNoCodeFingerOpenFlag() uint32 {
if x != nil && x.NoCodeFingerOpenFlag != nil {
return *x.NoCodeFingerOpenFlag
}
return 0
CmduinFlagEx2 proto.Option[uint32] `protobuf:"varint,62,opt"`
ConfUin proto.Option[uint64] `protobuf:"varint,63,opt"`
ConfMaxMsgSeq proto.Option[uint32] `protobuf:"varint,64,opt"`
ConfToGroupTime proto.Option[uint32] `protobuf:"varint,65,opt"`
PasswordRedbagTime proto.Option[uint32] `protobuf:"varint,66,opt"`
SubscriptionUin proto.Option[uint64] `protobuf:"varint,67,opt"`
MemberListChangeSeq proto.Option[uint32] `protobuf:"varint,68,opt"`
MembercardSeq proto.Option[uint32] `protobuf:"varint,69,opt"`
RootId proto.Option[uint64] `protobuf:"varint,70,opt"`
ParentId proto.Option[uint64] `protobuf:"varint,71,opt"`
TeamSeq proto.Option[uint32] `protobuf:"varint,72,opt"`
HistoryMsgBeginTime proto.Option[uint64] `protobuf:"varint,73,opt"`
InviteNoAuthNumLimit proto.Option[uint64] `protobuf:"varint,74,opt"`
CmduinHistoryMsgSeq proto.Option[uint32] `protobuf:"varint,75,opt"`
CmduinJoinMsgSeq proto.Option[uint32] `protobuf:"varint,76,opt"`
GroupFlagext3 proto.Option[uint32] `protobuf:"varint,77,opt"`
GroupOpenAppid proto.Option[uint32] `protobuf:"varint,78,opt"`
IsConfGroup proto.Option[uint32] `protobuf:"varint,79,opt"`
IsModifyConfGroupFace proto.Option[uint32] `protobuf:"varint,80,opt"`
IsModifyConfGroupName proto.Option[uint32] `protobuf:"varint,81,opt"`
NoFingerOpenFlag proto.Option[uint32] `protobuf:"varint,82,opt"`
NoCodeFingerOpenFlag proto.Option[uint32] `protobuf:"varint,83,opt"`
}
type ReqGroupInfo struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
Stgroupinfo *D88DGroupInfo `protobuf:"bytes,2,opt"`
LastGetGroupNameTime *uint32 `protobuf:"varint,3,opt"`
}
func (x *ReqGroupInfo) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *ReqGroupInfo) GetLastGetGroupNameTime() uint32 {
if x != nil && x.LastGetGroupNameTime != nil {
return *x.LastGetGroupNameTime
}
return 0
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
Stgroupinfo *D88DGroupInfo `protobuf:"bytes,2,opt"`
LastGetGroupNameTime proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type D88DReqBody struct {
AppId *uint32 `protobuf:"varint,1,opt"`
ReqGroupInfo []*ReqGroupInfo `protobuf:"bytes,2,rep"`
PcClientVersion *uint32 `protobuf:"varint,3,opt"`
}
func (x *D88DReqBody) GetAppId() uint32 {
if x != nil && x.AppId != nil {
return *x.AppId
}
return 0
}
func (x *D88DReqBody) GetPcClientVersion() uint32 {
if x != nil && x.PcClientVersion != nil {
return *x.PcClientVersion
}
return 0
AppId proto.Option[uint32] `protobuf:"varint,1,opt"`
ReqGroupInfo []*ReqGroupInfo `protobuf:"bytes,2,rep"`
PcClientVersion proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type RspGroupInfo struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
Result *uint32 `protobuf:"varint,2,opt"`
GroupInfo *D88DGroupInfo `protobuf:"bytes,3,opt"`
}
func (x *RspGroupInfo) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *RspGroupInfo) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
Result proto.Option[uint32] `protobuf:"varint,2,opt"`
GroupInfo *D88DGroupInfo `protobuf:"bytes,3,opt"`
}
type D88DRspBody struct {
@ -676,106 +134,22 @@ type D88DRspBody struct {
}
type D88DTagRecord struct {
FromUin *uint64 `protobuf:"varint,1,opt"`
GroupCode *uint64 `protobuf:"varint,2,opt"`
TagId []byte `protobuf:"bytes,3,opt"`
SetTime *uint64 `protobuf:"varint,4,opt"`
GoodNum *uint32 `protobuf:"varint,5,opt"`
BadNum *uint32 `protobuf:"varint,6,opt"`
TagLen *uint32 `protobuf:"varint,7,opt"`
TagValue []byte `protobuf:"bytes,8,opt"`
}
func (x *D88DTagRecord) GetFromUin() uint64 {
if x != nil && x.FromUin != nil {
return *x.FromUin
}
return 0
}
func (x *D88DTagRecord) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *D88DTagRecord) GetSetTime() uint64 {
if x != nil && x.SetTime != nil {
return *x.SetTime
}
return 0
}
func (x *D88DTagRecord) GetGoodNum() uint32 {
if x != nil && x.GoodNum != nil {
return *x.GoodNum
}
return 0
}
func (x *D88DTagRecord) GetBadNum() uint32 {
if x != nil && x.BadNum != nil {
return *x.BadNum
}
return 0
}
func (x *D88DTagRecord) GetTagLen() uint32 {
if x != nil && x.TagLen != nil {
return *x.TagLen
}
return 0
FromUin proto.Option[uint64] `protobuf:"varint,1,opt"`
GroupCode proto.Option[uint64] `protobuf:"varint,2,opt"`
TagId []byte `protobuf:"bytes,3,opt"`
SetTime proto.Option[uint64] `protobuf:"varint,4,opt"`
GoodNum proto.Option[uint32] `protobuf:"varint,5,opt"`
BadNum proto.Option[uint32] `protobuf:"varint,6,opt"`
TagLen proto.Option[uint32] `protobuf:"varint,7,opt"`
TagValue []byte `protobuf:"bytes,8,opt"`
}
type D88DGroupGeoInfo struct {
Owneruin *uint64 `protobuf:"varint,1,opt"`
Settime *uint32 `protobuf:"varint,2,opt"`
Cityid *uint32 `protobuf:"varint,3,opt"`
Longitude *int64 `protobuf:"varint,4,opt"`
Latitude *int64 `protobuf:"varint,5,opt"`
Geocontent []byte `protobuf:"bytes,6,opt"`
PoiId *uint64 `protobuf:"varint,7,opt"`
}
func (x *D88DGroupGeoInfo) GetOwneruin() uint64 {
if x != nil && x.Owneruin != nil {
return *x.Owneruin
}
return 0
}
func (x *D88DGroupGeoInfo) GetSettime() uint32 {
if x != nil && x.Settime != nil {
return *x.Settime
}
return 0
}
func (x *D88DGroupGeoInfo) GetCityid() uint32 {
if x != nil && x.Cityid != nil {
return *x.Cityid
}
return 0
}
func (x *D88DGroupGeoInfo) GetLongitude() int64 {
if x != nil && x.Longitude != nil {
return *x.Longitude
}
return 0
}
func (x *D88DGroupGeoInfo) GetLatitude() int64 {
if x != nil && x.Latitude != nil {
return *x.Latitude
}
return 0
}
func (x *D88DGroupGeoInfo) GetPoiId() uint64 {
if x != nil && x.PoiId != nil {
return *x.PoiId
}
return 0
Owneruin proto.Option[uint64] `protobuf:"varint,1,opt"`
Settime proto.Option[uint32] `protobuf:"varint,2,opt"`
Cityid proto.Option[uint32] `protobuf:"varint,3,opt"`
Longitude proto.Option[int64] `protobuf:"varint,4,opt"`
Latitude proto.Option[int64] `protobuf:"varint,5,opt"`
Geocontent []byte `protobuf:"bytes,6,opt"`
PoiId proto.Option[uint64] `protobuf:"varint,7,opt"`
}

View File

@ -3,74 +3,22 @@
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type D8A7ReqBody struct {
SubCmd *uint32 `protobuf:"varint,1,opt"`
LimitIntervalTypeForUin *uint32 `protobuf:"varint,2,opt"`
LimitIntervalTypeForGroup *uint32 `protobuf:"varint,3,opt"`
Uin *uint64 `protobuf:"varint,4,opt"`
GroupCode *uint64 `protobuf:"varint,5,opt"`
}
func (x *D8A7ReqBody) GetSubCmd() uint32 {
if x != nil && x.SubCmd != nil {
return *x.SubCmd
}
return 0
}
func (x *D8A7ReqBody) GetLimitIntervalTypeForUin() uint32 {
if x != nil && x.LimitIntervalTypeForUin != nil {
return *x.LimitIntervalTypeForUin
}
return 0
}
func (x *D8A7ReqBody) GetLimitIntervalTypeForGroup() uint32 {
if x != nil && x.LimitIntervalTypeForGroup != nil {
return *x.LimitIntervalTypeForGroup
}
return 0
}
func (x *D8A7ReqBody) GetUin() uint64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *D8A7ReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
SubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
LimitIntervalTypeForUin proto.Option[uint32] `protobuf:"varint,2,opt"`
LimitIntervalTypeForGroup proto.Option[uint32] `protobuf:"varint,3,opt"`
Uin proto.Option[uint64] `protobuf:"varint,4,opt"`
GroupCode proto.Option[uint64] `protobuf:"varint,5,opt"`
}
type D8A7RspBody struct {
CanAtAll *bool `protobuf:"varint,1,opt"`
RemainAtAllCountForUin *uint32 `protobuf:"varint,2,opt"`
RemainAtAllCountForGroup *uint32 `protobuf:"varint,3,opt"`
PromptMsg1 []byte `protobuf:"bytes,4,opt"`
PromptMsg2 []byte `protobuf:"bytes,5,opt"`
}
func (x *D8A7RspBody) GetCanAtAll() bool {
if x != nil && x.CanAtAll != nil {
return *x.CanAtAll
}
return false
}
func (x *D8A7RspBody) GetRemainAtAllCountForUin() uint32 {
if x != nil && x.RemainAtAllCountForUin != nil {
return *x.RemainAtAllCountForUin
}
return 0
}
func (x *D8A7RspBody) GetRemainAtAllCountForGroup() uint32 {
if x != nil && x.RemainAtAllCountForGroup != nil {
return *x.RemainAtAllCountForGroup
}
return 0
CanAtAll proto.Option[bool] `protobuf:"varint,1,opt"`
RemainAtAllCountForUin proto.Option[uint32] `protobuf:"varint,2,opt"`
RemainAtAllCountForGroup proto.Option[uint32] `protobuf:"varint,3,opt"`
PromptMsg1 []byte `protobuf:"bytes,4,opt"`
PromptMsg2 []byte `protobuf:"bytes,5,opt"`
}

View File

@ -3,177 +3,55 @@
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type D8FCReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"`
ShowFlag *int32 `protobuf:"varint,2,opt"`
MemLevelInfo []*D8FCMemberInfo `protobuf:"bytes,3,rep"`
LevelName []*D8FCLevelName `protobuf:"bytes,4,rep"`
UpdateTime *int32 `protobuf:"varint,5,opt"`
OfficeMode *int32 `protobuf:"varint,6,opt"`
GroupOpenAppid *int32 `protobuf:"varint,7,opt"`
MsgClientInfo *D8FCClientInfo `protobuf:"bytes,8,opt"`
AuthKey []byte `protobuf:"bytes,9,opt"`
}
func (x *D8FCReqBody) GetGroupCode() int64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *D8FCReqBody) GetShowFlag() int32 {
if x != nil && x.ShowFlag != nil {
return *x.ShowFlag
}
return 0
}
func (x *D8FCReqBody) GetUpdateTime() int32 {
if x != nil && x.UpdateTime != nil {
return *x.UpdateTime
}
return 0
}
func (x *D8FCReqBody) GetOfficeMode() int32 {
if x != nil && x.OfficeMode != nil {
return *x.OfficeMode
}
return 0
}
func (x *D8FCReqBody) GetGroupOpenAppid() int32 {
if x != nil && x.GroupOpenAppid != nil {
return *x.GroupOpenAppid
}
return 0
GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
ShowFlag proto.Option[int32] `protobuf:"varint,2,opt"`
MemLevelInfo []*D8FCMemberInfo `protobuf:"bytes,3,rep"`
LevelName []*D8FCLevelName `protobuf:"bytes,4,rep"`
UpdateTime proto.Option[int32] `protobuf:"varint,5,opt"`
OfficeMode proto.Option[int32] `protobuf:"varint,6,opt"`
GroupOpenAppid proto.Option[int32] `protobuf:"varint,7,opt"`
MsgClientInfo *D8FCClientInfo `protobuf:"bytes,8,opt"`
AuthKey []byte `protobuf:"bytes,9,opt"`
}
type D8FCMemberInfo struct {
Uin *int64 `protobuf:"varint,1,opt"`
Point *int32 `protobuf:"varint,2,opt"`
ActiveDay *int32 `protobuf:"varint,3,opt"`
Level *int32 `protobuf:"varint,4,opt"`
Uin proto.Option[int64] `protobuf:"varint,1,opt"`
Point proto.Option[int32] `protobuf:"varint,2,opt"`
ActiveDay proto.Option[int32] `protobuf:"varint,3,opt"`
Level proto.Option[int32] `protobuf:"varint,4,opt"`
SpecialTitle []byte `protobuf:"bytes,5,opt"`
SpecialTitleExpireTime *int32 `protobuf:"varint,6,opt"`
SpecialTitleExpireTime proto.Option[int32] `protobuf:"varint,6,opt"`
UinName []byte `protobuf:"bytes,7,opt"`
MemberCardName []byte `protobuf:"bytes,8,opt"`
Phone []byte `protobuf:"bytes,9,opt"`
Email []byte `protobuf:"bytes,10,opt"`
Remark []byte `protobuf:"bytes,11,opt"`
Gender *int32 `protobuf:"varint,12,opt"`
Gender proto.Option[int32] `protobuf:"varint,12,opt"`
Job []byte `protobuf:"bytes,13,opt"`
TribeLevel *int32 `protobuf:"varint,14,opt"`
TribePoint *int32 `protobuf:"varint,15,opt"`
TribeLevel proto.Option[int32] `protobuf:"varint,14,opt"`
TribePoint proto.Option[int32] `protobuf:"varint,15,opt"`
RichCardName []*D8FCCardNameElem `protobuf:"bytes,16,rep"`
CommRichCardName []byte `protobuf:"bytes,17,opt"`
}
func (x *D8FCMemberInfo) GetUin() int64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *D8FCMemberInfo) GetPoint() int32 {
if x != nil && x.Point != nil {
return *x.Point
}
return 0
}
func (x *D8FCMemberInfo) GetActiveDay() int32 {
if x != nil && x.ActiveDay != nil {
return *x.ActiveDay
}
return 0
}
func (x *D8FCMemberInfo) GetLevel() int32 {
if x != nil && x.Level != nil {
return *x.Level
}
return 0
}
func (x *D8FCMemberInfo) GetSpecialTitleExpireTime() int32 {
if x != nil && x.SpecialTitleExpireTime != nil {
return *x.SpecialTitleExpireTime
}
return 0
}
func (x *D8FCMemberInfo) GetGender() int32 {
if x != nil && x.Gender != nil {
return *x.Gender
}
return 0
}
func (x *D8FCMemberInfo) GetTribeLevel() int32 {
if x != nil && x.TribeLevel != nil {
return *x.TribeLevel
}
return 0
}
func (x *D8FCMemberInfo) GetTribePoint() int32 {
if x != nil && x.TribePoint != nil {
return *x.TribePoint
}
return 0
}
type D8FCCardNameElem struct {
EnumCardType *int32 `protobuf:"varint,1,opt"`
Value []byte `protobuf:"bytes,2,opt"`
}
func (x *D8FCCardNameElem) GetEnumCardType() int32 {
if x != nil && x.EnumCardType != nil {
return *x.EnumCardType
}
return 0
EnumCardType proto.Option[int32] `protobuf:"varint,1,opt"`
Value []byte `protobuf:"bytes,2,opt"`
}
type D8FCLevelName struct {
Level *int32 `protobuf:"varint,1,opt"`
Name *string `protobuf:"bytes,2,opt"`
}
func (x *D8FCLevelName) GetLevel() int32 {
if x != nil && x.Level != nil {
return *x.Level
}
return 0
}
func (x *D8FCLevelName) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
Level proto.Option[int32] `protobuf:"varint,1,opt"`
Name proto.Option[string] `protobuf:"bytes,2,opt"`
}
type D8FCClientInfo struct {
Implat *int32 `protobuf:"varint,1,opt"`
IngClientver *string `protobuf:"bytes,2,opt"`
}
func (x *D8FCClientInfo) GetImplat() int32 {
if x != nil && x.Implat != nil {
return *x.Implat
}
return 0
}
func (x *D8FCClientInfo) GetIngClientver() string {
if x != nil && x.IngClientver != nil {
return *x.IngClientver
}
return ""
Implat proto.Option[int32] `protobuf:"varint,1,opt"`
IngClientver proto.Option[string] `protobuf:"bytes,2,opt"`
}
type D8FCCommCardNameBuf struct {

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-golite. DO NOT EDIT.
// source: pb/oidb/oidb0xD79.proto
// source: pb/oidb/oidb0xd79.proto
package oidb

View File

@ -3,321 +3,66 @@
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type CheckUrlReq struct {
Url []string `protobuf:"bytes,1,rep"`
Refer *string `protobuf:"bytes,2,opt"`
Plateform *string `protobuf:"bytes,3,opt"`
QqPfTo *string `protobuf:"bytes,4,opt"`
Type *uint32 `protobuf:"varint,5,opt"`
From *uint32 `protobuf:"varint,6,opt"`
Chatid *uint64 `protobuf:"varint,7,opt"`
ServiceType *uint64 `protobuf:"varint,8,opt"`
SendUin *uint64 `protobuf:"varint,9,opt"`
ReqType *string `protobuf:"bytes,10,opt"`
OriginalUrl *string `protobuf:"bytes,11,opt"`
IsArk *bool `protobuf:"varint,12,opt"`
ArkName *string `protobuf:"bytes,13,opt"`
IsFinish *bool `protobuf:"varint,14,opt"`
SrcUrls []string `protobuf:"bytes,15,rep"`
SrcPlatform *uint32 `protobuf:"varint,16,opt"`
Qua *string `protobuf:"bytes,17,opt"`
}
func (x *CheckUrlReq) GetRefer() string {
if x != nil && x.Refer != nil {
return *x.Refer
}
return ""
}
func (x *CheckUrlReq) GetPlateform() string {
if x != nil && x.Plateform != nil {
return *x.Plateform
}
return ""
}
func (x *CheckUrlReq) GetQqPfTo() string {
if x != nil && x.QqPfTo != nil {
return *x.QqPfTo
}
return ""
}
func (x *CheckUrlReq) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *CheckUrlReq) GetFrom() uint32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
func (x *CheckUrlReq) GetChatid() uint64 {
if x != nil && x.Chatid != nil {
return *x.Chatid
}
return 0
}
func (x *CheckUrlReq) GetServiceType() uint64 {
if x != nil && x.ServiceType != nil {
return *x.ServiceType
}
return 0
}
func (x *CheckUrlReq) GetSendUin() uint64 {
if x != nil && x.SendUin != nil {
return *x.SendUin
}
return 0
}
func (x *CheckUrlReq) GetReqType() string {
if x != nil && x.ReqType != nil {
return *x.ReqType
}
return ""
}
func (x *CheckUrlReq) GetOriginalUrl() string {
if x != nil && x.OriginalUrl != nil {
return *x.OriginalUrl
}
return ""
}
func (x *CheckUrlReq) GetIsArk() bool {
if x != nil && x.IsArk != nil {
return *x.IsArk
}
return false
}
func (x *CheckUrlReq) GetArkName() string {
if x != nil && x.ArkName != nil {
return *x.ArkName
}
return ""
}
func (x *CheckUrlReq) GetIsFinish() bool {
if x != nil && x.IsFinish != nil {
return *x.IsFinish
}
return false
}
func (x *CheckUrlReq) GetSrcPlatform() uint32 {
if x != nil && x.SrcPlatform != nil {
return *x.SrcPlatform
}
return 0
}
func (x *CheckUrlReq) GetQua() string {
if x != nil && x.Qua != nil {
return *x.Qua
}
return ""
Url []string `protobuf:"bytes,1,rep"`
Refer proto.Option[string] `protobuf:"bytes,2,opt"`
Plateform proto.Option[string] `protobuf:"bytes,3,opt"`
QqPfTo proto.Option[string] `protobuf:"bytes,4,opt"`
Type proto.Option[uint32] `protobuf:"varint,5,opt"`
From proto.Option[uint32] `protobuf:"varint,6,opt"`
Chatid proto.Option[uint64] `protobuf:"varint,7,opt"`
ServiceType proto.Option[uint64] `protobuf:"varint,8,opt"`
SendUin proto.Option[uint64] `protobuf:"varint,9,opt"`
ReqType proto.Option[string] `protobuf:"bytes,10,opt"`
OriginalUrl proto.Option[string] `protobuf:"bytes,11,opt"`
IsArk proto.Option[bool] `protobuf:"varint,12,opt"`
ArkName proto.Option[string] `protobuf:"bytes,13,opt"`
IsFinish proto.Option[bool] `protobuf:"varint,14,opt"`
SrcUrls []string `protobuf:"bytes,15,rep"`
SrcPlatform proto.Option[uint32] `protobuf:"varint,16,opt"`
Qua proto.Option[string] `protobuf:"bytes,17,opt"`
}
type CheckUrlReqItem struct {
Url *string `protobuf:"bytes,1,opt"`
Refer *string `protobuf:"bytes,2,opt"`
Plateform *string `protobuf:"bytes,3,opt"`
QqPfTo *string `protobuf:"bytes,4,opt"`
Type *uint32 `protobuf:"varint,5,opt"`
From *uint32 `protobuf:"varint,6,opt"`
Chatid *uint64 `protobuf:"varint,7,opt"`
ServiceType *uint64 `protobuf:"varint,8,opt"`
SendUin *uint64 `protobuf:"varint,9,opt"`
ReqType *string `protobuf:"bytes,10,opt"`
}
func (x *CheckUrlReqItem) GetUrl() string {
if x != nil && x.Url != nil {
return *x.Url
}
return ""
}
func (x *CheckUrlReqItem) GetRefer() string {
if x != nil && x.Refer != nil {
return *x.Refer
}
return ""
}
func (x *CheckUrlReqItem) GetPlateform() string {
if x != nil && x.Plateform != nil {
return *x.Plateform
}
return ""
}
func (x *CheckUrlReqItem) GetQqPfTo() string {
if x != nil && x.QqPfTo != nil {
return *x.QqPfTo
}
return ""
}
func (x *CheckUrlReqItem) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *CheckUrlReqItem) GetFrom() uint32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
func (x *CheckUrlReqItem) GetChatid() uint64 {
if x != nil && x.Chatid != nil {
return *x.Chatid
}
return 0
}
func (x *CheckUrlReqItem) GetServiceType() uint64 {
if x != nil && x.ServiceType != nil {
return *x.ServiceType
}
return 0
}
func (x *CheckUrlReqItem) GetSendUin() uint64 {
if x != nil && x.SendUin != nil {
return *x.SendUin
}
return 0
}
func (x *CheckUrlReqItem) GetReqType() string {
if x != nil && x.ReqType != nil {
return *x.ReqType
}
return ""
Url proto.Option[string] `protobuf:"bytes,1,opt"`
Refer proto.Option[string] `protobuf:"bytes,2,opt"`
Plateform proto.Option[string] `protobuf:"bytes,3,opt"`
QqPfTo proto.Option[string] `protobuf:"bytes,4,opt"`
Type proto.Option[uint32] `protobuf:"varint,5,opt"`
From proto.Option[uint32] `protobuf:"varint,6,opt"`
Chatid proto.Option[uint64] `protobuf:"varint,7,opt"`
ServiceType proto.Option[uint64] `protobuf:"varint,8,opt"`
SendUin proto.Option[uint64] `protobuf:"varint,9,opt"`
ReqType proto.Option[string] `protobuf:"bytes,10,opt"`
}
type CheckUrlRsp struct {
Results []*UrlCheckResult `protobuf:"bytes,1,rep"`
NextReqDuration *uint32 `protobuf:"varint,2,opt"`
}
func (x *CheckUrlRsp) GetNextReqDuration() uint32 {
if x != nil && x.NextReqDuration != nil {
return *x.NextReqDuration
}
return 0
Results []*UrlCheckResult `protobuf:"bytes,1,rep"`
NextReqDuration proto.Option[uint32] `protobuf:"varint,2,opt"`
}
type DBCBReqBody struct {
NotUseCache *int32 `protobuf:"varint,9,opt"`
CheckUrlReq *CheckUrlReq `protobuf:"bytes,10,opt"`
}
func (x *DBCBReqBody) GetNotUseCache() int32 {
if x != nil && x.NotUseCache != nil {
return *x.NotUseCache
}
return 0
NotUseCache proto.Option[int32] `protobuf:"varint,9,opt"`
CheckUrlReq *CheckUrlReq `protobuf:"bytes,10,opt"`
}
type DBCBRspBody struct {
Wording *string `protobuf:"bytes,1,opt"`
CheckUrlRsp *CheckUrlRsp `protobuf:"bytes,10,opt"`
}
func (x *DBCBRspBody) GetWording() string {
if x != nil && x.Wording != nil {
return *x.Wording
}
return ""
Wording proto.Option[string] `protobuf:"bytes,1,opt"`
CheckUrlRsp *CheckUrlRsp `protobuf:"bytes,10,opt"`
}
type UrlCheckResult struct {
Url *string `protobuf:"bytes,1,opt"`
Result *uint32 `protobuf:"varint,2,opt"`
JumpResult *uint32 `protobuf:"varint,3,opt"`
JumpUrl *string `protobuf:"bytes,4,opt"`
Level *uint32 `protobuf:"varint,5,opt"`
SubLevel *uint32 `protobuf:"varint,6,opt"`
Umrtype *uint32 `protobuf:"varint,7,opt"`
RetFrom *uint32 `protobuf:"varint,8,opt"`
OperationBit *uint64 `protobuf:"varint,9,opt"`
}
func (x *UrlCheckResult) GetUrl() string {
if x != nil && x.Url != nil {
return *x.Url
}
return ""
}
func (x *UrlCheckResult) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *UrlCheckResult) GetJumpResult() uint32 {
if x != nil && x.JumpResult != nil {
return *x.JumpResult
}
return 0
}
func (x *UrlCheckResult) GetJumpUrl() string {
if x != nil && x.JumpUrl != nil {
return *x.JumpUrl
}
return ""
}
func (x *UrlCheckResult) GetLevel() uint32 {
if x != nil && x.Level != nil {
return *x.Level
}
return 0
}
func (x *UrlCheckResult) GetSubLevel() uint32 {
if x != nil && x.SubLevel != nil {
return *x.SubLevel
}
return 0
}
func (x *UrlCheckResult) GetUmrtype() uint32 {
if x != nil && x.Umrtype != nil {
return *x.Umrtype
}
return 0
}
func (x *UrlCheckResult) GetRetFrom() uint32 {
if x != nil && x.RetFrom != nil {
return *x.RetFrom
}
return 0
}
func (x *UrlCheckResult) GetOperationBit() uint64 {
if x != nil && x.OperationBit != nil {
return *x.OperationBit
}
return 0
Url proto.Option[string] `protobuf:"bytes,1,opt"`
Result proto.Option[uint32] `protobuf:"varint,2,opt"`
JumpResult proto.Option[uint32] `protobuf:"varint,3,opt"`
JumpUrl proto.Option[string] `protobuf:"bytes,4,opt"`
Level proto.Option[uint32] `protobuf:"varint,5,opt"`
SubLevel proto.Option[uint32] `protobuf:"varint,6,opt"`
Umrtype proto.Option[uint32] `protobuf:"varint,7,opt"`
RetFrom proto.Option[uint32] `protobuf:"varint,8,opt"`
OperationBit proto.Option[uint64] `protobuf:"varint,9,opt"`
}

View File

@ -3,94 +3,28 @@
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type LifeAchievementItem struct {
AchievementId *uint32 `protobuf:"varint,1,opt"`
AchievementTitle *string `protobuf:"bytes,2,opt"`
AchievementIcon *string `protobuf:"bytes,3,opt"`
HasPraised *bool `protobuf:"varint,4,opt"`
PraiseNum *uint32 `protobuf:"varint,5,opt"`
AchievementContent []byte `protobuf:"bytes,6,opt"`
}
func (x *LifeAchievementItem) GetAchievementId() uint32 {
if x != nil && x.AchievementId != nil {
return *x.AchievementId
}
return 0
}
func (x *LifeAchievementItem) GetAchievementTitle() string {
if x != nil && x.AchievementTitle != nil {
return *x.AchievementTitle
}
return ""
}
func (x *LifeAchievementItem) GetAchievementIcon() string {
if x != nil && x.AchievementIcon != nil {
return *x.AchievementIcon
}
return ""
}
func (x *LifeAchievementItem) GetHasPraised() bool {
if x != nil && x.HasPraised != nil {
return *x.HasPraised
}
return false
}
func (x *LifeAchievementItem) GetPraiseNum() uint32 {
if x != nil && x.PraiseNum != nil {
return *x.PraiseNum
}
return 0
AchievementId proto.Option[uint32] `protobuf:"varint,1,opt"`
AchievementTitle proto.Option[string] `protobuf:"bytes,2,opt"`
AchievementIcon proto.Option[string] `protobuf:"bytes,3,opt"`
HasPraised proto.Option[bool] `protobuf:"varint,4,opt"`
PraiseNum proto.Option[uint32] `protobuf:"varint,5,opt"`
AchievementContent []byte `protobuf:"bytes,6,opt"`
}
type DE5BReqBody struct {
Uin *uint64 `protobuf:"varint,1,opt"`
AchievementId []uint32 `protobuf:"varint,2,rep"`
MaxCount *uint32 `protobuf:"varint,3,opt"`
ReqAchievementContent *bool `protobuf:"varint,4,opt"`
}
func (x *DE5BReqBody) GetUin() uint64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *DE5BReqBody) GetMaxCount() uint32 {
if x != nil && x.MaxCount != nil {
return *x.MaxCount
}
return 0
}
func (x *DE5BReqBody) GetReqAchievementContent() bool {
if x != nil && x.ReqAchievementContent != nil {
return *x.ReqAchievementContent
}
return false
Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
AchievementId []uint32 `protobuf:"varint,2,rep"`
MaxCount proto.Option[uint32] `protobuf:"varint,3,opt"`
ReqAchievementContent proto.Option[bool] `protobuf:"varint,4,opt"`
}
type DE5BRspBody struct {
AchievementTotalCount *uint32 `protobuf:"varint,1,opt"`
AchievementTotalCount proto.Option[uint32] `protobuf:"varint,1,opt"`
LifeAchItem []*LifeAchievementItem `protobuf:"bytes,2,rep"`
AchievementOpenid *string `protobuf:"bytes,3,opt"`
}
func (x *DE5BRspBody) GetAchievementTotalCount() uint32 {
if x != nil && x.AchievementTotalCount != nil {
return *x.AchievementTotalCount
}
return 0
}
func (x *DE5BRspBody) GetAchievementOpenid() string {
if x != nil && x.AchievementOpenid != nil {
return *x.AchievementOpenid
}
return ""
AchievementOpenid proto.Option[string] `protobuf:"bytes,3,opt"`
}

View File

@ -3,65 +3,20 @@
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type EACReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"`
Seq *uint32 `protobuf:"varint,2,opt"`
Random *uint32 `protobuf:"varint,3,opt"`
}
func (x *EACReqBody) GetGroupCode() uint64 {
if x != nil && x.GroupCode != nil {
return *x.GroupCode
}
return 0
}
func (x *EACReqBody) GetSeq() uint32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *EACReqBody) GetRandom() uint32 {
if x != nil && x.Random != nil {
return *x.Random
}
return 0
GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
Seq proto.Option[uint32] `protobuf:"varint,2,opt"`
Random proto.Option[uint32] `protobuf:"varint,3,opt"`
}
type EACRspBody struct {
Wording *string `protobuf:"bytes,1,opt"`
DigestUin *uint64 `protobuf:"varint,2,opt"`
DigestTime *uint32 `protobuf:"varint,3,opt"`
Wording proto.Option[string] `protobuf:"bytes,1,opt"`
DigestUin proto.Option[uint64] `protobuf:"varint,2,opt"`
DigestTime proto.Option[uint32] `protobuf:"varint,3,opt"`
//optional DigestMsg msg = 4;
ErrorCode *uint32 `protobuf:"varint,10,opt"`
}
func (x *EACRspBody) GetWording() string {
if x != nil && x.Wording != nil {
return *x.Wording
}
return ""
}
func (x *EACRspBody) GetDigestUin() uint64 {
if x != nil && x.DigestUin != nil {
return *x.DigestUin
}
return 0
}
func (x *EACRspBody) GetDigestTime() uint32 {
if x != nil && x.DigestTime != nil {
return *x.DigestTime
}
return 0
}
func (x *EACRspBody) GetErrorCode() uint32 {
if x != nil && x.ErrorCode != nil {
return *x.ErrorCode
}
return 0
ErrorCode proto.Option[uint32] `protobuf:"varint,10,opt"`
}

View File

@ -0,0 +1,170 @@
// Code generated by protoc-gen-golite. DO NOT EDIT.
// source: oidb0xeb7.proto
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
// DEB7 prefix
type DEB7ReqBody struct {
SignInStatusReq *StSignInStatusReq `protobuf:"bytes,1,opt"`
SignInWriteReq *StSignInWriteReq `protobuf:"bytes,2,opt"`
}
type DEB7Ret struct {
Code proto.Option[uint32] `protobuf:"varint,1,opt"`
Msg proto.Option[string] `protobuf:"bytes,2,opt"`
}
type DEB7RspBody struct {
SignInStatusRsp *StSignInStatusRsp `protobuf:"bytes,1,opt"`
SignInWriteRsp *StSignInWriteRsp `protobuf:"bytes,2,opt"`
}
type SignInStatusBase struct {
Status proto.Option[uint32] `protobuf:"varint,1,opt"`
CurrentTimeStamp proto.Option[int64] `protobuf:"varint,2,opt"`
}
type SignInStatusDoneInfo struct {
LeftTitleWrod proto.Option[string] `protobuf:"bytes,1,opt"`
RightDescWord proto.Option[string] `protobuf:"bytes,2,opt"`
BelowPortraitWords []string `protobuf:"bytes,3,rep"`
RecordUrl proto.Option[string] `protobuf:"bytes,4,opt"`
}
type SignInStatusGroupScore struct {
GroupScoreWord proto.Option[string] `protobuf:"bytes,1,opt"`
ScoreUrl proto.Option[string] `protobuf:"bytes,2,opt"`
}
type SignInStatusNotInfo struct {
ButtonWord proto.Option[string] `protobuf:"bytes,1,opt"`
SignDescWordLeft proto.Option[string] `protobuf:"bytes,2,opt"`
SignDescWordRight proto.Option[string] `protobuf:"bytes,3,opt"`
}
type SignInStatusYesterdayFirst struct {
YesterdayFirstUid proto.Option[string] `protobuf:"bytes,1,opt"`
YesterdayWord proto.Option[string] `protobuf:"bytes,2,opt"`
YesterdayNick proto.Option[string] `protobuf:"bytes,3,opt"`
}
type StDaySignedInfo struct {
Uid proto.Option[string] `protobuf:"bytes,1,opt"`
UidGroupNick proto.Option[string] `protobuf:"bytes,2,opt"`
SignedTimeStamp proto.Option[int64] `protobuf:"varint,3,opt"`
SignInRank proto.Option[int32] `protobuf:"varint,4,opt"`
}
type StDaySignedListReq struct {
DayYmd proto.Option[string] `protobuf:"bytes,1,opt"`
Uid proto.Option[string] `protobuf:"bytes,2,opt"`
GroupId proto.Option[string] `protobuf:"bytes,3,opt"`
Offset proto.Option[int32] `protobuf:"varint,4,opt"`
Limit proto.Option[int32] `protobuf:"varint,5,opt"`
}
type StDaySignedListRsp struct {
Ret *DEB7Ret `protobuf:"bytes,1,opt"`
Page []*StDaySignedPage `protobuf:"bytes,2,rep"`
}
type StDaySignedPage struct {
Infos []*StDaySignedInfo `protobuf:"bytes,1,rep"`
Offset proto.Option[int32] `protobuf:"varint,2,opt"`
Total proto.Option[int32] `protobuf:"varint,3,opt"`
}
type StKingSignedInfo struct {
Uid proto.Option[string] `protobuf:"bytes,1,opt"`
GroupNick proto.Option[string] `protobuf:"bytes,2,opt"`
SignedTimeStamp proto.Option[int64] `protobuf:"varint,3,opt"`
SignedCount proto.Option[int32] `protobuf:"varint,4,opt"`
}
type StKingSignedListReq struct {
Uid proto.Option[string] `protobuf:"bytes,1,opt"`
GroupId proto.Option[string] `protobuf:"bytes,2,opt"`
}
type StKingSignedListRsp struct {
Ret *DEB7Ret `protobuf:"bytes,1,opt"`
YesterdayFirst *StKingSignedInfo `protobuf:"bytes,2,opt"`
TopSignedTotal []*StKingSignedInfo `protobuf:"bytes,3,rep"`
TopSignedContinue []*StKingSignedInfo `protobuf:"bytes,4,rep"`
}
type StSignInRecordDaySigned struct {
DaySignedRatio proto.Option[float32] `protobuf:"fixed32,1,opt"`
DayTotalSignedUid proto.Option[int32] `protobuf:"varint,2,opt"`
DaySignedPage *StDaySignedPage `protobuf:"bytes,3,opt"`
DaySignedUrl proto.Option[string] `protobuf:"bytes,4,opt"`
}
type StSignInRecordKing struct {
YesterdayFirst *StKingSignedInfo `protobuf:"bytes,1,opt"`
TopSignedTotal []*StKingSignedInfo `protobuf:"bytes,2,rep"`
TopSignedContinue []*StKingSignedInfo `protobuf:"bytes,3,rep"`
KingUrl proto.Option[string] `protobuf:"bytes,4,opt"`
}
type StSignInRecordReq struct {
DayYmd proto.Option[string] `protobuf:"bytes,1,opt"`
Uid proto.Option[string] `protobuf:"bytes,2,opt"`
GroupId proto.Option[string] `protobuf:"bytes,3,opt"`
}
type StSignInRecordRsp struct {
Ret *DEB7Ret `protobuf:"bytes,1,opt"`
Base *SignInStatusBase `protobuf:"bytes,2,opt"`
UserRecord *StSignInRecordUser `protobuf:"bytes,3,opt"`
DaySigned *StSignInRecordDaySigned `protobuf:"bytes,4,opt"`
KingRecord *StSignInRecordKing `protobuf:"bytes,5,opt"`
Level *StViewGroupLevel `protobuf:"bytes,6,opt"`
}
type StSignInRecordUser struct {
TotalSignedDays proto.Option[int32] `protobuf:"varint,2,opt"`
EarliestSignedTimeStamp proto.Option[int64] `protobuf:"varint,3,opt"`
ContinueSignedDays proto.Option[int64] `protobuf:"varint,4,opt"`
HistorySignedDays []string `protobuf:"bytes,5,rep"`
GroupName proto.Option[string] `protobuf:"bytes,6,opt"`
}
type StSignInStatusReq struct {
Uid proto.Option[string] `protobuf:"bytes,1,opt"`
GroupId proto.Option[string] `protobuf:"bytes,2,opt"`
Scene proto.Option[uint32] `protobuf:"varint,3,opt"`
ClientVersion proto.Option[string] `protobuf:"bytes,4,opt"`
}
type StSignInStatusRsp struct {
Ret *DEB7Ret `protobuf:"bytes,1,opt"`
Base *SignInStatusBase `protobuf:"bytes,2,opt"`
Yesterday *SignInStatusYesterdayFirst `protobuf:"bytes,3,opt"`
NotInfo *SignInStatusNotInfo `protobuf:"bytes,4,opt"`
DoneInfo *SignInStatusDoneInfo `protobuf:"bytes,5,opt"`
GroupScore *SignInStatusGroupScore `protobuf:"bytes,6,opt"`
MantleUrl proto.Option[string] `protobuf:"bytes,7,opt"`
BackgroundUrl proto.Option[string] `protobuf:"bytes,8,opt"`
}
type StSignInWriteReq struct {
Uid proto.Option[string] `protobuf:"bytes,1,opt"`
GroupId proto.Option[string] `protobuf:"bytes,2,opt"`
ClientVersion proto.Option[string] `protobuf:"bytes,3,opt"`
}
type StSignInWriteRsp struct {
Ret *DEB7Ret `protobuf:"bytes,1,opt"`
DoneInfo *SignInStatusDoneInfo `protobuf:"bytes,2,opt"`
GroupScore *SignInStatusGroupScore `protobuf:"bytes,3,opt"`
}
type StViewGroupLevel struct {
Title proto.Option[string] `protobuf:"bytes,1,opt"`
Url proto.Option[string] `protobuf:"bytes,2,opt"`
}

View File

@ -0,0 +1,165 @@
syntax = "proto2";
option go_package = "github.com/Mrs4s/MiraiGo/client/pb/oidb";
// DEB7 prefix
message DEB7ReqBody {
optional StSignInStatusReq signInStatusReq = 1;
optional StSignInWriteReq signInWriteReq = 2;
}
message DEB7Ret {
optional uint32 code = 1;
optional string msg = 2;
}
message DEB7RspBody {
optional StSignInStatusRsp signInStatusRsp = 1;
optional StSignInWriteRsp signInWriteRsp = 2;
}
message SignInStatusBase {
optional uint32 status = 1;
optional int64 currentTimeStamp = 2;
}
message SignInStatusDoneInfo {
optional string leftTitleWrod = 1;
optional string rightDescWord = 2;
repeated string belowPortraitWords = 3;
optional string recordUrl = 4;
}
message SignInStatusGroupScore {
optional string groupScoreWord = 1;
optional string scoreUrl = 2;
}
message SignInStatusNotInfo {
optional string buttonWord = 1;
optional string signDescWordLeft = 2;
optional string signDescWordRight = 3;
}
message SignInStatusYesterdayFirst {
optional string yesterdayFirstUid = 1;
optional string yesterdayWord = 2;
optional string yesterdayNick = 3;
}
message StDaySignedInfo {
optional string uid = 1;
optional string uidGroupNick = 2;
optional int64 signedTimeStamp = 3;
optional int32 signInRank = 4;
}
message StDaySignedListReq {
optional string dayYmd = 1;
optional string uid = 2;
optional string groupId = 3;
optional int32 offset = 4;
optional int32 limit = 5;
}
message StDaySignedListRsp {
optional DEB7Ret ret = 1;
repeated StDaySignedPage page = 2;
}
message StDaySignedPage {
repeated StDaySignedInfo infos = 1;
optional int32 offset = 2;
optional int32 total = 3;
}
message StKingSignedInfo {
optional string uid = 1;
optional string groupNick = 2;
optional int64 signedTimeStamp = 3;
optional int32 signedCount = 4;
}
message StKingSignedListReq {
optional string uid = 1;
optional string groupId = 2;
}
message StKingSignedListRsp {
optional DEB7Ret ret = 1;
optional StKingSignedInfo yesterdayFirst = 2;
repeated StKingSignedInfo topSignedTotal = 3;
repeated StKingSignedInfo topSignedContinue = 4;
}
message StSignInRecordDaySigned {
optional float daySignedRatio = 1;
optional int32 dayTotalSignedUid = 2;
optional StDaySignedPage daySignedPage = 3;
optional string daySignedUrl = 4;
}
message StSignInRecordKing {
optional StKingSignedInfo yesterdayFirst = 1;
repeated StKingSignedInfo topSignedTotal = 2;
repeated StKingSignedInfo topSignedContinue = 3;
optional string kingUrl = 4;
}
message StSignInRecordReq {
optional string dayYmd = 1;
optional string uid = 2;
optional string groupId = 3;
}
message StSignInRecordRsp {
optional DEB7Ret ret = 1;
optional SignInStatusBase base = 2;
optional StSignInRecordUser userRecord = 3;
optional StSignInRecordDaySigned daySigned = 4;
optional StSignInRecordKing kingRecord = 5;
optional StViewGroupLevel level = 6;
}
message StSignInRecordUser {
optional int32 totalSignedDays = 2;
optional int64 earliestSignedTimeStamp = 3;
optional int64 continueSignedDays = 4;
repeated string historySignedDays = 5;
optional string groupName = 6;
}
message StSignInStatusReq {
optional string uid = 1;
optional string groupId = 2;
optional uint32 scene = 3;
optional string clientVersion = 4;
}
message StSignInStatusRsp {
optional DEB7Ret ret = 1;
optional SignInStatusBase base = 2;
optional SignInStatusYesterdayFirst yesterday = 3;
optional SignInStatusNotInfo notInfo = 4;
optional SignInStatusDoneInfo doneInfo = 5;
optional SignInStatusGroupScore groupScore = 6;
optional string mantleUrl = 7;
optional string backgroundUrl = 8;
}
message StSignInWriteReq {
optional string uid = 1;
optional string groupId = 2;
optional string clientVersion = 3;
}
message StSignInWriteRsp {
optional DEB7Ret ret = 1;
optional SignInStatusDoneInfo doneInfo = 2;
optional SignInStatusGroupScore groupScore = 3;
}
message StViewGroupLevel {
optional string title = 1;
optional string url = 2;
}

View File

@ -3,294 +3,60 @@
package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type Comment struct {
Id *string `protobuf:"bytes,1,opt"`
Comment *string `protobuf:"bytes,2,opt"`
Time *uint64 `protobuf:"varint,3,opt"`
FromUin *uint64 `protobuf:"varint,4,opt"`
ToUin *uint64 `protobuf:"varint,5,opt"`
ReplyId *string `protobuf:"bytes,6,opt"`
FromNick *string `protobuf:"bytes,7,opt"`
}
func (x *Comment) GetId() string {
if x != nil && x.Id != nil {
return *x.Id
}
return ""
}
func (x *Comment) GetComment() string {
if x != nil && x.Comment != nil {
return *x.Comment
}
return ""
}
func (x *Comment) GetTime() uint64 {
if x != nil && x.Time != nil {
return *x.Time
}
return 0
}
func (x *Comment) GetFromUin() uint64 {
if x != nil && x.FromUin != nil {
return *x.FromUin
}
return 0
}
func (x *Comment) GetToUin() uint64 {
if x != nil && x.ToUin != nil {
return *x.ToUin
}
return 0
}
func (x *Comment) GetReplyId() string {
if x != nil && x.ReplyId != nil {
return *x.ReplyId
}
return ""
}
func (x *Comment) GetFromNick() string {
if x != nil && x.FromNick != nil {
return *x.FromNick
}
return ""
Id proto.Option[string] `protobuf:"bytes,1,opt"`
Comment proto.Option[string] `protobuf:"bytes,2,opt"`
Time proto.Option[uint64] `protobuf:"varint,3,opt"`
FromUin proto.Option[uint64] `protobuf:"varint,4,opt"`
ToUin proto.Option[uint64] `protobuf:"varint,5,opt"`
ReplyId proto.Option[string] `protobuf:"bytes,6,opt"`
FromNick proto.Option[string] `protobuf:"bytes,7,opt"`
}
type Praise struct {
FromUin *uint64 `protobuf:"varint,1,opt"`
ToUin *uint64 `protobuf:"varint,2,opt"`
Time *uint64 `protobuf:"varint,3,opt"`
FromNick *string `protobuf:"bytes,4,opt"`
}
func (x *Praise) GetFromUin() uint64 {
if x != nil && x.FromUin != nil {
return *x.FromUin
}
return 0
}
func (x *Praise) GetToUin() uint64 {
if x != nil && x.ToUin != nil {
return *x.ToUin
}
return 0
}
func (x *Praise) GetTime() uint64 {
if x != nil && x.Time != nil {
return *x.Time
}
return 0
}
func (x *Praise) GetFromNick() string {
if x != nil && x.FromNick != nil {
return *x.FromNick
}
return ""
FromUin proto.Option[uint64] `protobuf:"varint,1,opt"`
ToUin proto.Option[uint64] `protobuf:"varint,2,opt"`
Time proto.Option[uint64] `protobuf:"varint,3,opt"`
FromNick proto.Option[string] `protobuf:"bytes,4,opt"`
}
type Quest struct {
Id *string `protobuf:"bytes,1,opt"`
Quest *string `protobuf:"bytes,2,opt"`
QuestUin *uint64 `protobuf:"varint,3,opt"`
Time *uint64 `protobuf:"varint,4,opt"`
Ans *string `protobuf:"bytes,5,opt"`
AnsTime *uint64 `protobuf:"varint,6,opt"`
Comment []*Comment `protobuf:"bytes,7,rep"`
Praise []*Praise `protobuf:"bytes,8,rep"`
PraiseNum *uint64 `protobuf:"varint,9,opt"`
LikeKey *string `protobuf:"bytes,10,opt"`
SystemId *uint64 `protobuf:"varint,11,opt"`
CommentNum *uint64 `protobuf:"varint,12,opt"`
ShowType *uint64 `protobuf:"varint,13,opt"`
ShowTimes *uint64 `protobuf:"varint,14,opt"`
BeenPraised *uint64 `protobuf:"varint,15,opt"`
QuestRead *bool `protobuf:"varint,16,opt"`
AnsShowType *uint64 `protobuf:"varint,17,opt"`
}
func (x *Quest) GetId() string {
if x != nil && x.Id != nil {
return *x.Id
}
return ""
}
func (x *Quest) GetQuest() string {
if x != nil && x.Quest != nil {
return *x.Quest
}
return ""
}
func (x *Quest) GetQuestUin() uint64 {
if x != nil && x.QuestUin != nil {
return *x.QuestUin
}
return 0
}
func (x *Quest) GetTime() uint64 {
if x != nil && x.Time != nil {
return *x.Time
}
return 0
}
func (x *Quest) GetAns() string {
if x != nil && x.Ans != nil {
return *x.Ans
}
return ""
}
func (x *Quest) GetAnsTime() uint64 {
if x != nil && x.AnsTime != nil {
return *x.AnsTime
}
return 0
}
func (x *Quest) GetPraiseNum() uint64 {
if x != nil && x.PraiseNum != nil {
return *x.PraiseNum
}
return 0
}
func (x *Quest) GetLikeKey() string {
if x != nil && x.LikeKey != nil {
return *x.LikeKey
}
return ""
}
func (x *Quest) GetSystemId() uint64 {
if x != nil && x.SystemId != nil {
return *x.SystemId
}
return 0
}
func (x *Quest) GetCommentNum() uint64 {
if x != nil && x.CommentNum != nil {
return *x.CommentNum
}
return 0
}
func (x *Quest) GetShowType() uint64 {
if x != nil && x.ShowType != nil {
return *x.ShowType
}
return 0
}
func (x *Quest) GetShowTimes() uint64 {
if x != nil && x.ShowTimes != nil {
return *x.ShowTimes
}
return 0
}
func (x *Quest) GetBeenPraised() uint64 {
if x != nil && x.BeenPraised != nil {
return *x.BeenPraised
}
return 0
}
func (x *Quest) GetQuestRead() bool {
if x != nil && x.QuestRead != nil {
return *x.QuestRead
}
return false
}
func (x *Quest) GetAnsShowType() uint64 {
if x != nil && x.AnsShowType != nil {
return *x.AnsShowType
}
return 0
Id proto.Option[string] `protobuf:"bytes,1,opt"`
Quest proto.Option[string] `protobuf:"bytes,2,opt"`
QuestUin proto.Option[uint64] `protobuf:"varint,3,opt"`
Time proto.Option[uint64] `protobuf:"varint,4,opt"`
Ans proto.Option[string] `protobuf:"bytes,5,opt"`
AnsTime proto.Option[uint64] `protobuf:"varint,6,opt"`
Comment []*Comment `protobuf:"bytes,7,rep"`
Praise []*Praise `protobuf:"bytes,8,rep"`
PraiseNum proto.Option[uint64] `protobuf:"varint,9,opt"`
LikeKey proto.Option[string] `protobuf:"bytes,10,opt"`
SystemId proto.Option[uint64] `protobuf:"varint,11,opt"`
CommentNum proto.Option[uint64] `protobuf:"varint,12,opt"`
ShowType proto.Option[uint64] `protobuf:"varint,13,opt"`
ShowTimes proto.Option[uint64] `protobuf:"varint,14,opt"`
BeenPraised proto.Option[uint64] `protobuf:"varint,15,opt"`
QuestRead proto.Option[bool] `protobuf:"varint,16,opt"`
AnsShowType proto.Option[uint64] `protobuf:"varint,17,opt"`
}
type DEC4ReqBody struct {
Uin *uint64 `protobuf:"varint,1,opt"`
QuestNum *uint64 `protobuf:"varint,2,opt"`
CommentNum *uint64 `protobuf:"varint,3,opt"`
Cookie []byte `protobuf:"bytes,4,opt"`
FetchType *uint32 `protobuf:"varint,5,opt"`
}
func (x *DEC4ReqBody) GetUin() uint64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *DEC4ReqBody) GetQuestNum() uint64 {
if x != nil && x.QuestNum != nil {
return *x.QuestNum
}
return 0
}
func (x *DEC4ReqBody) GetCommentNum() uint64 {
if x != nil && x.CommentNum != nil {
return *x.CommentNum
}
return 0
}
func (x *DEC4ReqBody) GetFetchType() uint32 {
if x != nil && x.FetchType != nil {
return *x.FetchType
}
return 0
Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
QuestNum proto.Option[uint64] `protobuf:"varint,2,opt"`
CommentNum proto.Option[uint64] `protobuf:"varint,3,opt"`
Cookie []byte `protobuf:"bytes,4,opt"`
FetchType proto.Option[uint32] `protobuf:"varint,5,opt"`
}
type DEC4RspBody struct {
Quest []*Quest `protobuf:"bytes,1,rep"`
IsFetchOver *bool `protobuf:"varint,2,opt"`
TotalQuestNum *uint32 `protobuf:"varint,3,opt"`
Cookie []byte `protobuf:"bytes,4,opt"`
Ret *uint32 `protobuf:"varint,5,opt"`
AnsweredQuestNum *uint32 `protobuf:"varint,6,opt"`
}
func (x *DEC4RspBody) GetIsFetchOver() bool {
if x != nil && x.IsFetchOver != nil {
return *x.IsFetchOver
}
return false
}
func (x *DEC4RspBody) GetTotalQuestNum() uint32 {
if x != nil && x.TotalQuestNum != nil {
return *x.TotalQuestNum
}
return 0
}
func (x *DEC4RspBody) GetRet() uint32 {
if x != nil && x.Ret != nil {
return *x.Ret
}
return 0
}
func (x *DEC4RspBody) GetAnsweredQuestNum() uint32 {
if x != nil && x.AnsweredQuestNum != nil {
return *x.AnsweredQuestNum
}
return 0
Quest []*Quest `protobuf:"bytes,1,rep"`
IsFetchOver proto.Option[bool] `protobuf:"varint,2,opt"`
TotalQuestNum proto.Option[uint32] `protobuf:"varint,3,opt"`
Cookie []byte `protobuf:"bytes,4,opt"`
Ret proto.Option[uint32] `protobuf:"varint,5,opt"`
AnsweredQuestNum proto.Option[uint32] `protobuf:"varint,6,opt"`
}

View File

@ -3,438 +3,92 @@
package profilecard
import (
proto "github.com/RomiChan/protobuf/proto"
)
type Location struct {
Latitude *float64 `protobuf:"fixed64,1,opt"`
Longitude *float64 `protobuf:"fixed64,2,opt"`
}
func (x *Location) GetLatitude() float64 {
if x != nil && x.Latitude != nil {
return *x.Latitude
}
return 0
}
func (x *Location) GetLongitude() float64 {
if x != nil && x.Longitude != nil {
return *x.Longitude
}
return 0
Latitude proto.Option[float64] `protobuf:"fixed64,1,opt"`
Longitude proto.Option[float64] `protobuf:"fixed64,2,opt"`
}
type ResultItem struct {
FeedId []byte `protobuf:"bytes,1,opt"`
Name []byte `protobuf:"bytes,2,opt"`
PicUrl []byte `protobuf:"bytes,3,opt"`
JmpUrl []byte `protobuf:"bytes,4,opt"`
FeedType []byte `protobuf:"bytes,5,opt"`
Summary []byte `protobuf:"bytes,6,opt"`
HasVideo []byte `protobuf:"bytes,7,opt"`
PhtotUpdate []byte `protobuf:"bytes,8,opt"`
Uin *uint64 `protobuf:"varint,9,opt"`
ResultId []byte `protobuf:"bytes,10,opt"`
Ftime *uint32 `protobuf:"varint,11,opt"`
NickName []byte `protobuf:"bytes,12,opt"`
PicUrlList [][]byte `protobuf:"bytes,13,rep"`
TotalPicNum *uint32 `protobuf:"varint,14,opt"`
}
func (x *ResultItem) GetUin() uint64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *ResultItem) GetFtime() uint32 {
if x != nil && x.Ftime != nil {
return *x.Ftime
}
return 0
}
func (x *ResultItem) GetTotalPicNum() uint32 {
if x != nil && x.TotalPicNum != nil {
return *x.TotalPicNum
}
return 0
FeedId []byte `protobuf:"bytes,1,opt"`
Name []byte `protobuf:"bytes,2,opt"`
PicUrl []byte `protobuf:"bytes,3,opt"`
JmpUrl []byte `protobuf:"bytes,4,opt"`
FeedType []byte `protobuf:"bytes,5,opt"`
Summary []byte `protobuf:"bytes,6,opt"`
HasVideo []byte `protobuf:"bytes,7,opt"`
PhtotUpdate []byte `protobuf:"bytes,8,opt"`
Uin proto.Option[uint64] `protobuf:"varint,9,opt"`
ResultId []byte `protobuf:"bytes,10,opt"`
Ftime proto.Option[uint32] `protobuf:"varint,11,opt"`
NickName []byte `protobuf:"bytes,12,opt"`
PicUrlList [][]byte `protobuf:"bytes,13,rep"`
TotalPicNum proto.Option[uint32] `protobuf:"varint,14,opt"`
}
type Hotwordrecord struct {
Hotword *string `protobuf:"bytes,1,opt"`
HotwordType *uint32 `protobuf:"varint,2,opt"`
HotwordCoverUrl *string `protobuf:"bytes,3,opt"`
HotwordTitle *string `protobuf:"bytes,4,opt"`
HotwordDescription *string `protobuf:"bytes,5,opt"`
}
func (x *Hotwordrecord) GetHotword() string {
if x != nil && x.Hotword != nil {
return *x.Hotword
}
return ""
}
func (x *Hotwordrecord) GetHotwordType() uint32 {
if x != nil && x.HotwordType != nil {
return *x.HotwordType
}
return 0
}
func (x *Hotwordrecord) GetHotwordCoverUrl() string {
if x != nil && x.HotwordCoverUrl != nil {
return *x.HotwordCoverUrl
}
return ""
}
func (x *Hotwordrecord) GetHotwordTitle() string {
if x != nil && x.HotwordTitle != nil {
return *x.HotwordTitle
}
return ""
}
func (x *Hotwordrecord) GetHotwordDescription() string {
if x != nil && x.HotwordDescription != nil {
return *x.HotwordDescription
}
return ""
Hotword proto.Option[string] `protobuf:"bytes,1,opt"`
HotwordType proto.Option[uint32] `protobuf:"varint,2,opt"`
HotwordCoverUrl proto.Option[string] `protobuf:"bytes,3,opt"`
HotwordTitle proto.Option[string] `protobuf:"bytes,4,opt"`
HotwordDescription proto.Option[string] `protobuf:"bytes,5,opt"`
}
type AccountSearchRecord struct {
Uin *uint64 `protobuf:"varint,1,opt"`
Code *uint64 `protobuf:"varint,2,opt"`
Source *uint32 `protobuf:"varint,3,opt"`
Name *string `protobuf:"bytes,4,opt"`
Sex *uint32 `protobuf:"varint,5,opt"`
Age *uint32 `protobuf:"varint,6,opt"`
Accout *string `protobuf:"bytes,7,opt"`
Brief *string `protobuf:"bytes,8,opt"`
Number *uint32 `protobuf:"varint,9,opt"`
Flag *uint64 `protobuf:"varint,10,opt"`
Relation *uint64 `protobuf:"varint,11,opt"`
Mobile *string `protobuf:"bytes,12,opt"`
Sign []byte `protobuf:"bytes,13,opt"`
Country *uint32 `protobuf:"varint,14,opt"`
Province *uint32 `protobuf:"varint,15,opt"`
City *uint32 `protobuf:"varint,16,opt"`
ClassIndex *uint32 `protobuf:"varint,17,opt"`
ClassName *string `protobuf:"bytes,18,opt"`
CountryName *string `protobuf:"bytes,19,opt"`
ProvinceName *string `protobuf:"bytes,20,opt"`
CityName *string `protobuf:"bytes,21,opt"`
AccountFlag *uint32 `protobuf:"varint,22,opt"`
TitleImage *string `protobuf:"bytes,23,opt"`
ArticleShortUrl *string `protobuf:"bytes,24,opt"`
ArticleCreateTime *string `protobuf:"bytes,25,opt"`
ArticleAuthor *string `protobuf:"bytes,26,opt"`
AccountId *uint64 `protobuf:"varint,27,opt"`
Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
Code proto.Option[uint64] `protobuf:"varint,2,opt"`
Source proto.Option[uint32] `protobuf:"varint,3,opt"`
Name proto.Option[string] `protobuf:"bytes,4,opt"`
Sex proto.Option[uint32] `protobuf:"varint,5,opt"`
Age proto.Option[uint32] `protobuf:"varint,6,opt"`
Accout proto.Option[string] `protobuf:"bytes,7,opt"`
Brief proto.Option[string] `protobuf:"bytes,8,opt"`
Number proto.Option[uint32] `protobuf:"varint,9,opt"`
Flag proto.Option[uint64] `protobuf:"varint,10,opt"`
Relation proto.Option[uint64] `protobuf:"varint,11,opt"`
Mobile proto.Option[string] `protobuf:"bytes,12,opt"`
Sign []byte `protobuf:"bytes,13,opt"`
Country proto.Option[uint32] `protobuf:"varint,14,opt"`
Province proto.Option[uint32] `protobuf:"varint,15,opt"`
City proto.Option[uint32] `protobuf:"varint,16,opt"`
ClassIndex proto.Option[uint32] `protobuf:"varint,17,opt"`
ClassName proto.Option[string] `protobuf:"bytes,18,opt"`
CountryName proto.Option[string] `protobuf:"bytes,19,opt"`
ProvinceName proto.Option[string] `protobuf:"bytes,20,opt"`
CityName proto.Option[string] `protobuf:"bytes,21,opt"`
AccountFlag proto.Option[uint32] `protobuf:"varint,22,opt"`
TitleImage proto.Option[string] `protobuf:"bytes,23,opt"`
ArticleShortUrl proto.Option[string] `protobuf:"bytes,24,opt"`
ArticleCreateTime proto.Option[string] `protobuf:"bytes,25,opt"`
ArticleAuthor proto.Option[string] `protobuf:"bytes,26,opt"`
AccountId proto.Option[uint64] `protobuf:"varint,27,opt"`
//repeated Label groupLabels = 30;
VideoAccount *uint32 `protobuf:"varint,31,opt"`
VideoArticle *uint32 `protobuf:"varint,32,opt"`
UinPrivilege *int32 `protobuf:"varint,33,opt"`
JoinGroupAuth []byte `protobuf:"bytes,34,opt"`
Token []byte `protobuf:"bytes,500,opt"`
Richflag1_59 *uint32 `protobuf:"varint,40603,opt"`
Richflag4_409 *uint32 `protobuf:"varint,42409,opt"`
}
func (x *AccountSearchRecord) GetUin() uint64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
}
func (x *AccountSearchRecord) GetCode() uint64 {
if x != nil && x.Code != nil {
return *x.Code
}
return 0
}
func (x *AccountSearchRecord) GetSource() uint32 {
if x != nil && x.Source != nil {
return *x.Source
}
return 0
}
func (x *AccountSearchRecord) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *AccountSearchRecord) GetSex() uint32 {
if x != nil && x.Sex != nil {
return *x.Sex
}
return 0
}
func (x *AccountSearchRecord) GetAge() uint32 {
if x != nil && x.Age != nil {
return *x.Age
}
return 0
}
func (x *AccountSearchRecord) GetAccout() string {
if x != nil && x.Accout != nil {
return *x.Accout
}
return ""
}
func (x *AccountSearchRecord) GetBrief() string {
if x != nil && x.Brief != nil {
return *x.Brief
}
return ""
}
func (x *AccountSearchRecord) GetNumber() uint32 {
if x != nil && x.Number != nil {
return *x.Number
}
return 0
}
func (x *AccountSearchRecord) GetFlag() uint64 {
if x != nil && x.Flag != nil {
return *x.Flag
}
return 0
}
func (x *AccountSearchRecord) GetRelation() uint64 {
if x != nil && x.Relation != nil {
return *x.Relation
}
return 0
}
func (x *AccountSearchRecord) GetMobile() string {
if x != nil && x.Mobile != nil {
return *x.Mobile
}
return ""
}
func (x *AccountSearchRecord) GetCountry() uint32 {
if x != nil && x.Country != nil {
return *x.Country
}
return 0
}
func (x *AccountSearchRecord) GetProvince() uint32 {
if x != nil && x.Province != nil {
return *x.Province
}
return 0
}
func (x *AccountSearchRecord) GetCity() uint32 {
if x != nil && x.City != nil {
return *x.City
}
return 0
}
func (x *AccountSearchRecord) GetClassIndex() uint32 {
if x != nil && x.ClassIndex != nil {
return *x.ClassIndex
}
return 0
}
func (x *AccountSearchRecord) GetClassName() string {
if x != nil && x.ClassName != nil {
return *x.ClassName
}
return ""
}
func (x *AccountSearchRecord) GetCountryName() string {
if x != nil && x.CountryName != nil {
return *x.CountryName
}
return ""
}
func (x *AccountSearchRecord) GetProvinceName() string {
if x != nil && x.ProvinceName != nil {
return *x.ProvinceName
}
return ""
}
func (x *AccountSearchRecord) GetCityName() string {
if x != nil && x.CityName != nil {
return *x.CityName
}
return ""
}
func (x *AccountSearchRecord) GetAccountFlag() uint32 {
if x != nil && x.AccountFlag != nil {
return *x.AccountFlag
}
return 0
}
func (x *AccountSearchRecord) GetTitleImage() string {
if x != nil && x.TitleImage != nil {
return *x.TitleImage
}
return ""
}
func (x *AccountSearchRecord) GetArticleShortUrl() string {
if x != nil && x.ArticleShortUrl != nil {
return *x.ArticleShortUrl
}
return ""
}
func (x *AccountSearchRecord) GetArticleCreateTime() string {
if x != nil && x.ArticleCreateTime != nil {
return *x.ArticleCreateTime
}
return ""
}
func (x *AccountSearchRecord) GetArticleAuthor() string {
if x != nil && x.ArticleAuthor != nil {
return *x.ArticleAuthor
}
return ""
}
func (x *AccountSearchRecord) GetAccountId() uint64 {
if x != nil && x.AccountId != nil {
return *x.AccountId
}
return 0
}
func (x *AccountSearchRecord) GetVideoAccount() uint32 {
if x != nil && x.VideoAccount != nil {
return *x.VideoAccount
}
return 0
}
func (x *AccountSearchRecord) GetVideoArticle() uint32 {
if x != nil && x.VideoArticle != nil {
return *x.VideoArticle
}
return 0
}
func (x *AccountSearchRecord) GetUinPrivilege() int32 {
if x != nil && x.UinPrivilege != nil {
return *x.UinPrivilege
}
return 0
}
func (x *AccountSearchRecord) GetRichflag1_59() uint32 {
if x != nil && x.Richflag1_59 != nil {
return *x.Richflag1_59
}
return 0
}
func (x *AccountSearchRecord) GetRichflag4_409() uint32 {
if x != nil && x.Richflag4_409 != nil {
return *x.Richflag4_409
}
return 0
VideoAccount proto.Option[uint32] `protobuf:"varint,31,opt"`
VideoArticle proto.Option[uint32] `protobuf:"varint,32,opt"`
UinPrivilege proto.Option[int32] `protobuf:"varint,33,opt"`
JoinGroupAuth []byte `protobuf:"bytes,34,opt"`
Token []byte `protobuf:"bytes,500,opt"`
Richflag1_59 proto.Option[uint32] `protobuf:"varint,40603,opt"`
Richflag4_409 proto.Option[uint32] `protobuf:"varint,42409,opt"`
}
type AccountSearch struct {
Start *int32 `protobuf:"varint,1,opt"`
Count *uint32 `protobuf:"varint,2,opt"`
End *uint32 `protobuf:"varint,3,opt"`
Keyword *string `protobuf:"bytes,4,opt"`
Start proto.Option[int32] `protobuf:"varint,1,opt"`
Count proto.Option[uint32] `protobuf:"varint,2,opt"`
End proto.Option[uint32] `protobuf:"varint,3,opt"`
Keyword proto.Option[string] `protobuf:"bytes,4,opt"`
List []*AccountSearchRecord `protobuf:"bytes,5,rep"`
Highlight []string `protobuf:"bytes,6,rep"`
UserLocation *Location `protobuf:"bytes,10,opt"`
LocationGroup *bool `protobuf:"varint,11,opt"`
Filtertype *int32 `protobuf:"varint,12,opt"`
LocationGroup proto.Option[bool] `protobuf:"varint,11,opt"`
Filtertype proto.Option[int32] `protobuf:"varint,12,opt"`
//repeated C33304record recommendList = 13;
HotwordRecord *Hotwordrecord `protobuf:"bytes,14,opt"`
ArticleMoreUrl *string `protobuf:"bytes,15,opt"`
ResultItems []*ResultItem `protobuf:"bytes,16,rep"`
KeywordSuicide *bool `protobuf:"varint,17,opt"`
ExactSearch *bool `protobuf:"varint,18,opt"`
}
func (x *AccountSearch) GetStart() int32 {
if x != nil && x.Start != nil {
return *x.Start
}
return 0
}
func (x *AccountSearch) GetCount() uint32 {
if x != nil && x.Count != nil {
return *x.Count
}
return 0
}
func (x *AccountSearch) GetEnd() uint32 {
if x != nil && x.End != nil {
return *x.End
}
return 0
}
func (x *AccountSearch) GetKeyword() string {
if x != nil && x.Keyword != nil {
return *x.Keyword
}
return ""
}
func (x *AccountSearch) GetLocationGroup() bool {
if x != nil && x.LocationGroup != nil {
return *x.LocationGroup
}
return false
}
func (x *AccountSearch) GetFiltertype() int32 {
if x != nil && x.Filtertype != nil {
return *x.Filtertype
}
return 0
}
func (x *AccountSearch) GetArticleMoreUrl() string {
if x != nil && x.ArticleMoreUrl != nil {
return *x.ArticleMoreUrl
}
return ""
}
func (x *AccountSearch) GetKeywordSuicide() bool {
if x != nil && x.KeywordSuicide != nil {
return *x.KeywordSuicide
}
return false
}
func (x *AccountSearch) GetExactSearch() bool {
if x != nil && x.ExactSearch != nil {
return *x.ExactSearch
}
return false
HotwordRecord *Hotwordrecord `protobuf:"bytes,14,opt"`
ArticleMoreUrl proto.Option[string] `protobuf:"bytes,15,opt"`
ResultItems []*ResultItem `protobuf:"bytes,16,rep"`
KeywordSuicide proto.Option[bool] `protobuf:"varint,17,opt"`
ExactSearch proto.Option[bool] `protobuf:"varint,18,opt"`
}

View File

@ -3,426 +3,101 @@
package profilecard
import (
proto "github.com/RomiChan/protobuf/proto"
)
type BusiColor struct {
R *int32 `protobuf:"varint,1,opt"`
G *int32 `protobuf:"varint,2,opt"`
B *int32 `protobuf:"varint,3,opt"`
}
func (x *BusiColor) GetR() int32 {
if x != nil && x.R != nil {
return *x.R
}
return 0
}
func (x *BusiColor) GetG() int32 {
if x != nil && x.G != nil {
return *x.G
}
return 0
}
func (x *BusiColor) GetB() int32 {
if x != nil && x.B != nil {
return *x.B
}
return 0
R proto.Option[int32] `protobuf:"varint,1,opt"`
G proto.Option[int32] `protobuf:"varint,2,opt"`
B proto.Option[int32] `protobuf:"varint,3,opt"`
}
type BusiComm struct {
Ver *int32 `protobuf:"varint,1,opt"`
Seq *int32 `protobuf:"varint,2,opt"`
Fromuin *int64 `protobuf:"varint,3,opt"`
Touin *int64 `protobuf:"varint,4,opt"`
Service *int32 `protobuf:"varint,5,opt"`
SessionType *int32 `protobuf:"varint,6,opt"`
SessionKey []byte `protobuf:"bytes,7,opt"`
ClientIp *int32 `protobuf:"varint,8,opt"`
Display *BusiUi `protobuf:"bytes,9,opt"`
Result *int32 `protobuf:"varint,10,opt"`
ErrMsg *string `protobuf:"bytes,11,opt"`
Platform *int32 `protobuf:"varint,12,opt"`
Qqver *string `protobuf:"bytes,13,opt"`
Build *int32 `protobuf:"varint,14,opt"`
MsgLoginSig *BusiLoginSig `protobuf:"bytes,15,opt"`
Version *int32 `protobuf:"varint,17,opt"`
MsgUinInfo *BusiUinInfo `protobuf:"bytes,18,opt"`
MsgRichDisplay *BusiRichUi `protobuf:"bytes,19,opt"`
}
func (x *BusiComm) GetVer() int32 {
if x != nil && x.Ver != nil {
return *x.Ver
}
return 0
}
func (x *BusiComm) GetSeq() int32 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *BusiComm) GetFromuin() int64 {
if x != nil && x.Fromuin != nil {
return *x.Fromuin
}
return 0
}
func (x *BusiComm) GetTouin() int64 {
if x != nil && x.Touin != nil {
return *x.Touin
}
return 0
}
func (x *BusiComm) GetService() int32 {
if x != nil && x.Service != nil {
return *x.Service
}
return 0
}
func (x *BusiComm) GetSessionType() int32 {
if x != nil && x.SessionType != nil {
return *x.SessionType
}
return 0
}
func (x *BusiComm) GetClientIp() int32 {
if x != nil && x.ClientIp != nil {
return *x.ClientIp
}
return 0
}
func (x *BusiComm) GetResult() int32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}
func (x *BusiComm) GetErrMsg() string {
if x != nil && x.ErrMsg != nil {
return *x.ErrMsg
}
return ""
}
func (x *BusiComm) GetPlatform() int32 {
if x != nil && x.Platform != nil {
return *x.Platform
}
return 0
}
func (x *BusiComm) GetQqver() string {
if x != nil && x.Qqver != nil {
return *x.Qqver
}
return ""
}
func (x *BusiComm) GetBuild() int32 {
if x != nil && x.Build != nil {
return *x.Build
}
return 0
}
func (x *BusiComm) GetVersion() int32 {
if x != nil && x.Version != nil {
return *x.Version
}
return 0
Ver proto.Option[int32] `protobuf:"varint,1,opt"`
Seq proto.Option[int32] `protobuf:"varint,2,opt"`
Fromuin proto.Option[int64] `protobuf:"varint,3,opt"`
Touin proto.Option[int64] `protobuf:"varint,4,opt"`
Service proto.Option[int32] `protobuf:"varint,5,opt"`
SessionType proto.Option[int32] `protobuf:"varint,6,opt"`
SessionKey []byte `protobuf:"bytes,7,opt"`
ClientIp proto.Option[int32] `protobuf:"varint,8,opt"`
Display *BusiUi `protobuf:"bytes,9,opt"`
Result proto.Option[int32] `protobuf:"varint,10,opt"`
ErrMsg proto.Option[string] `protobuf:"bytes,11,opt"`
Platform proto.Option[int32] `protobuf:"varint,12,opt"`
Qqver proto.Option[string] `protobuf:"bytes,13,opt"`
Build proto.Option[int32] `protobuf:"varint,14,opt"`
MsgLoginSig *BusiLoginSig `protobuf:"bytes,15,opt"`
Version proto.Option[int32] `protobuf:"varint,17,opt"`
MsgUinInfo *BusiUinInfo `protobuf:"bytes,18,opt"`
MsgRichDisplay *BusiRichUi `protobuf:"bytes,19,opt"`
}
type BusiCommonReq struct {
ServiceCmd *string `protobuf:"bytes,1,opt"`
ServiceCmd proto.Option[string] `protobuf:"bytes,1,opt"`
VcReq *BusiVisitorCountReq `protobuf:"bytes,2,opt"`
HrReq *BusiHideRecordsReq `protobuf:"bytes,3,opt"`
}
func (x *BusiCommonReq) GetServiceCmd() string {
if x != nil && x.ServiceCmd != nil {
return *x.ServiceCmd
}
return ""
}
type BusiDetailRecord struct {
Fuin *int32 `protobuf:"varint,1,opt"`
Source *int32 `protobuf:"varint,2,opt"`
Vtime *int32 `protobuf:"varint,3,opt"`
Mod *int32 `protobuf:"varint,4,opt"`
HideFlag *int32 `protobuf:"varint,5,opt"`
}
func (x *BusiDetailRecord) GetFuin() int32 {
if x != nil && x.Fuin != nil {
return *x.Fuin
}
return 0
}
func (x *BusiDetailRecord) GetSource() int32 {
if x != nil && x.Source != nil {
return *x.Source
}
return 0
}
func (x *BusiDetailRecord) GetVtime() int32 {
if x != nil && x.Vtime != nil {
return *x.Vtime
}
return 0
}
func (x *BusiDetailRecord) GetMod() int32 {
if x != nil && x.Mod != nil {
return *x.Mod
}
return 0
}
func (x *BusiDetailRecord) GetHideFlag() int32 {
if x != nil && x.HideFlag != nil {
return *x.HideFlag
}
return 0
Fuin proto.Option[int32] `protobuf:"varint,1,opt"`
Source proto.Option[int32] `protobuf:"varint,2,opt"`
Vtime proto.Option[int32] `protobuf:"varint,3,opt"`
Mod proto.Option[int32] `protobuf:"varint,4,opt"`
HideFlag proto.Option[int32] `protobuf:"varint,5,opt"`
}
type BusiHideRecordsReq struct {
Huin *int32 `protobuf:"varint,1,opt"`
Fuin *int32 `protobuf:"varint,2,opt"`
Huin proto.Option[int32] `protobuf:"varint,1,opt"`
Fuin proto.Option[int32] `protobuf:"varint,2,opt"`
Records []*BusiDetailRecord `protobuf:"bytes,3,rep"`
}
func (x *BusiHideRecordsReq) GetHuin() int32 {
if x != nil && x.Huin != nil {
return *x.Huin
}
return 0
}
func (x *BusiHideRecordsReq) GetFuin() int32 {
if x != nil && x.Fuin != nil {
return *x.Fuin
}
return 0
}
type BusiLabel struct {
Name []byte `protobuf:"bytes,1,opt"`
EnumType *int32 `protobuf:"varint,2,opt"`
TextColor *BusiColor `protobuf:"bytes,3,opt"`
EdgingColor *BusiColor `protobuf:"bytes,4,opt"`
LabelAttr *int32 `protobuf:"varint,5,opt"`
LabelType *int32 `protobuf:"varint,6,opt"`
}
func (x *BusiLabel) GetEnumType() int32 {
if x != nil && x.EnumType != nil {
return *x.EnumType
}
return 0
}
func (x *BusiLabel) GetLabelAttr() int32 {
if x != nil && x.LabelAttr != nil {
return *x.LabelAttr
}
return 0
}
func (x *BusiLabel) GetLabelType() int32 {
if x != nil && x.LabelType != nil {
return *x.LabelType
}
return 0
Name []byte `protobuf:"bytes,1,opt"`
EnumType proto.Option[int32] `protobuf:"varint,2,opt"`
TextColor *BusiColor `protobuf:"bytes,3,opt"`
EdgingColor *BusiColor `protobuf:"bytes,4,opt"`
LabelAttr proto.Option[int32] `protobuf:"varint,5,opt"`
LabelType proto.Option[int32] `protobuf:"varint,6,opt"`
}
type BusiLoginSig struct {
Type *int32 `protobuf:"varint,1,opt"`
Sig []byte `protobuf:"bytes,2,opt"`
Appid *int32 `protobuf:"varint,3,opt"`
}
func (x *BusiLoginSig) GetType() int32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *BusiLoginSig) GetAppid() int32 {
if x != nil && x.Appid != nil {
return *x.Appid
}
return 0
Type proto.Option[int32] `protobuf:"varint,1,opt"`
Sig []byte `protobuf:"bytes,2,opt"`
Appid proto.Option[int32] `protobuf:"varint,3,opt"`
}
type BusiRichUi struct {
Name *string `protobuf:"bytes,1,opt"`
ServiceUrl *string `protobuf:"bytes,2,opt"` //repeated UiInfo uiList = 3;
}
func (x *BusiRichUi) GetName() string {
if x != nil && x.Name != nil {
return *x.Name
}
return ""
}
func (x *BusiRichUi) GetServiceUrl() string {
if x != nil && x.ServiceUrl != nil {
return *x.ServiceUrl
}
return ""
Name proto.Option[string] `protobuf:"bytes,1,opt"`
ServiceUrl proto.Option[string] `protobuf:"bytes,2,opt"` //repeated UiInfo uiList = 3;
}
type BusiUi struct {
Url *string `protobuf:"bytes,1,opt"`
Title *string `protobuf:"bytes,2,opt"`
Content *string `protobuf:"bytes,3,opt"`
JumpUrl *string `protobuf:"bytes,4,opt"`
}
func (x *BusiUi) GetUrl() string {
if x != nil && x.Url != nil {
return *x.Url
}
return ""
}
func (x *BusiUi) GetTitle() string {
if x != nil && x.Title != nil {
return *x.Title
}
return ""
}
func (x *BusiUi) GetContent() string {
if x != nil && x.Content != nil {
return *x.Content
}
return ""
}
func (x *BusiUi) GetJumpUrl() string {
if x != nil && x.JumpUrl != nil {
return *x.JumpUrl
}
return ""
Url proto.Option[string] `protobuf:"bytes,1,opt"`
Title proto.Option[string] `protobuf:"bytes,2,opt"`
Content proto.Option[string] `protobuf:"bytes,3,opt"`
JumpUrl proto.Option[string] `protobuf:"bytes,4,opt"`
}
type BusiUinInfo struct {
Int64Longitude *int64 `protobuf:"varint,1,opt"`
Int64Latitude *int64 `protobuf:"varint,2,opt"`
}
func (x *BusiUinInfo) GetInt64Longitude() int64 {
if x != nil && x.Int64Longitude != nil {
return *x.Int64Longitude
}
return 0
}
func (x *BusiUinInfo) GetInt64Latitude() int64 {
if x != nil && x.Int64Latitude != nil {
return *x.Int64Latitude
}
return 0
Int64Longitude proto.Option[int64] `protobuf:"varint,1,opt"`
Int64Latitude proto.Option[int64] `protobuf:"varint,2,opt"`
}
type BusiVisitorCountReq struct {
Requireuin *int32 `protobuf:"varint,1,opt"`
Operuin *int32 `protobuf:"varint,2,opt"`
Mod *int32 `protobuf:"varint,3,opt"`
ReportFlag *int32 `protobuf:"varint,4,opt"`
}
func (x *BusiVisitorCountReq) GetRequireuin() int32 {
if x != nil && x.Requireuin != nil {
return *x.Requireuin
}
return 0
}
func (x *BusiVisitorCountReq) GetOperuin() int32 {
if x != nil && x.Operuin != nil {
return *x.Operuin
}
return 0
}
func (x *BusiVisitorCountReq) GetMod() int32 {
if x != nil && x.Mod != nil {
return *x.Mod
}
return 0
}
func (x *BusiVisitorCountReq) GetReportFlag() int32 {
if x != nil && x.ReportFlag != nil {
return *x.ReportFlag
}
return 0
Requireuin proto.Option[int32] `protobuf:"varint,1,opt"`
Operuin proto.Option[int32] `protobuf:"varint,2,opt"`
Mod proto.Option[int32] `protobuf:"varint,3,opt"`
ReportFlag proto.Option[int32] `protobuf:"varint,4,opt"`
}
type BusiVisitorCountRsp struct {
Requireuin *int32 `protobuf:"varint,1,opt"`
TotalLike *int32 `protobuf:"varint,2,opt"`
TotalView *int32 `protobuf:"varint,3,opt"`
HotValue *int32 `protobuf:"varint,4,opt"`
RedValue *int32 `protobuf:"varint,5,opt"`
HotDiff *int32 `protobuf:"varint,6,opt"`
}
func (x *BusiVisitorCountRsp) GetRequireuin() int32 {
if x != nil && x.Requireuin != nil {
return *x.Requireuin
}
return 0
}
func (x *BusiVisitorCountRsp) GetTotalLike() int32 {
if x != nil && x.TotalLike != nil {
return *x.TotalLike
}
return 0
}
func (x *BusiVisitorCountRsp) GetTotalView() int32 {
if x != nil && x.TotalView != nil {
return *x.TotalView
}
return 0
}
func (x *BusiVisitorCountRsp) GetHotValue() int32 {
if x != nil && x.HotValue != nil {
return *x.HotValue
}
return 0
}
func (x *BusiVisitorCountRsp) GetRedValue() int32 {
if x != nil && x.RedValue != nil {
return *x.RedValue
}
return 0
}
func (x *BusiVisitorCountRsp) GetHotDiff() int32 {
if x != nil && x.HotDiff != nil {
return *x.HotDiff
}
return 0
Requireuin proto.Option[int32] `protobuf:"varint,1,opt"`
TotalLike proto.Option[int32] `protobuf:"varint,2,opt"`
TotalView proto.Option[int32] `protobuf:"varint,3,opt"`
HotValue proto.Option[int32] `protobuf:"varint,4,opt"`
RedValue proto.Option[int32] `protobuf:"varint,5,opt"`
HotDiff proto.Option[int32] `protobuf:"varint,6,opt"`
}

View File

@ -3,108 +3,42 @@
package profilecard
type GateCommTaskInfo struct {
Appid *int32 `protobuf:"varint,1,opt"`
TaskData []byte `protobuf:"bytes,2,opt"`
}
import (
proto "github.com/RomiChan/protobuf/proto"
)
func (x *GateCommTaskInfo) GetAppid() int32 {
if x != nil && x.Appid != nil {
return *x.Appid
}
return 0
type GateCommTaskInfo struct {
Appid proto.Option[int32] `protobuf:"varint,1,opt"`
TaskData []byte `protobuf:"bytes,2,opt"`
}
type GateGetGiftListReq struct {
Uin *int32 `protobuf:"varint,1,opt"`
}
func (x *GateGetGiftListReq) GetUin() int32 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
Uin proto.Option[int32] `protobuf:"varint,1,opt"`
}
type GateGetGiftListRsp struct {
GiftUrl []string `protobuf:"bytes,1,rep"`
CustomUrl *string `protobuf:"bytes,2,opt"`
Desc *string `protobuf:"bytes,3,opt"`
IsOn *bool `protobuf:"varint,4,opt"`
}
func (x *GateGetGiftListRsp) GetCustomUrl() string {
if x != nil && x.CustomUrl != nil {
return *x.CustomUrl
}
return ""
}
func (x *GateGetGiftListRsp) GetDesc() string {
if x != nil && x.Desc != nil {
return *x.Desc
}
return ""
}
func (x *GateGetGiftListRsp) GetIsOn() bool {
if x != nil && x.IsOn != nil {
return *x.IsOn
}
return false
GiftUrl []string `protobuf:"bytes,1,rep"`
CustomUrl proto.Option[string] `protobuf:"bytes,2,opt"`
Desc proto.Option[string] `protobuf:"bytes,3,opt"`
IsOn proto.Option[bool] `protobuf:"varint,4,opt"`
}
type GateGetVipCareReq struct {
Uin *int64 `protobuf:"varint,1,opt"`
}
func (x *GateGetVipCareReq) GetUin() int64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
Uin proto.Option[int64] `protobuf:"varint,1,opt"`
}
type GateGetVipCareRsp struct {
Buss *int32 `protobuf:"varint,1,opt"`
Notice *int32 `protobuf:"varint,2,opt"`
}
func (x *GateGetVipCareRsp) GetBuss() int32 {
if x != nil && x.Buss != nil {
return *x.Buss
}
return 0
}
func (x *GateGetVipCareRsp) GetNotice() int32 {
if x != nil && x.Notice != nil {
return *x.Notice
}
return 0
Buss proto.Option[int32] `protobuf:"varint,1,opt"`
Notice proto.Option[int32] `protobuf:"varint,2,opt"`
}
type GateOidbFlagInfo struct {
Fieled *int32 `protobuf:"varint,1,opt"`
ByetsValue []byte `protobuf:"bytes,2,opt"`
}
func (x *GateOidbFlagInfo) GetFieled() int32 {
if x != nil && x.Fieled != nil {
return *x.Fieled
}
return 0
Fieled proto.Option[int32] `protobuf:"varint,1,opt"`
ByetsValue []byte `protobuf:"bytes,2,opt"`
}
type GatePrivilegeBaseInfoReq struct {
UReqUin *int64 `protobuf:"varint,1,opt"`
}
func (x *GatePrivilegeBaseInfoReq) GetUReqUin() int64 {
if x != nil && x.UReqUin != nil {
return *x.UReqUin
}
return 0
UReqUin proto.Option[int64] `protobuf:"varint,1,opt"`
}
type GatePrivilegeBaseInfoRsp struct {
@ -112,72 +46,23 @@ type GatePrivilegeBaseInfoRsp struct {
JumpUrl []byte `protobuf:"bytes,2,opt"`
VOpenPriv []*GatePrivilegeInfo `protobuf:"bytes,3,rep"`
VClosePriv []*GatePrivilegeInfo `protobuf:"bytes,4,rep"`
UIsGrayUsr *int32 `protobuf:"varint,5,opt"`
}
func (x *GatePrivilegeBaseInfoRsp) GetUIsGrayUsr() int32 {
if x != nil && x.UIsGrayUsr != nil {
return *x.UIsGrayUsr
}
return 0
UIsGrayUsr proto.Option[int32] `protobuf:"varint,5,opt"`
}
type GatePrivilegeInfo struct {
IType *int32 `protobuf:"varint,1,opt"`
ISort *int32 `protobuf:"varint,2,opt"`
IFeeType *int32 `protobuf:"varint,3,opt"`
ILevel *int32 `protobuf:"varint,4,opt"`
IFlag *int32 `protobuf:"varint,5,opt"`
IconUrl []byte `protobuf:"bytes,6,opt"`
DeluxeIconUrl []byte `protobuf:"bytes,7,opt"`
JumpUrl []byte `protobuf:"bytes,8,opt"`
IIsBig *int32 `protobuf:"varint,9,opt"`
}
func (x *GatePrivilegeInfo) GetIType() int32 {
if x != nil && x.IType != nil {
return *x.IType
}
return 0
}
func (x *GatePrivilegeInfo) GetISort() int32 {
if x != nil && x.ISort != nil {
return *x.ISort
}
return 0
}
func (x *GatePrivilegeInfo) GetIFeeType() int32 {
if x != nil && x.IFeeType != nil {
return *x.IFeeType
}
return 0
}
func (x *GatePrivilegeInfo) GetILevel() int32 {
if x != nil && x.ILevel != nil {
return *x.ILevel
}
return 0
}
func (x *GatePrivilegeInfo) GetIFlag() int32 {
if x != nil && x.IFlag != nil {
return *x.IFlag
}
return 0
}
func (x *GatePrivilegeInfo) GetIIsBig() int32 {
if x != nil && x.IIsBig != nil {
return *x.IIsBig
}
return 0
IType proto.Option[int32] `protobuf:"varint,1,opt"`
ISort proto.Option[int32] `protobuf:"varint,2,opt"`
IFeeType proto.Option[int32] `protobuf:"varint,3,opt"`
ILevel proto.Option[int32] `protobuf:"varint,4,opt"`
IFlag proto.Option[int32] `protobuf:"varint,5,opt"`
IconUrl []byte `protobuf:"bytes,6,opt"`
DeluxeIconUrl []byte `protobuf:"bytes,7,opt"`
JumpUrl []byte `protobuf:"bytes,8,opt"`
IIsBig proto.Option[int32] `protobuf:"varint,9,opt"`
}
type GateVaProfileGateReq struct {
UCmd *int32 `protobuf:"varint,1,opt"`
UCmd proto.Option[int32] `protobuf:"varint,1,opt"`
StPrivilegeReq *GatePrivilegeBaseInfoReq `protobuf:"bytes,2,opt"`
StGiftReq *GateGetGiftListReq `protobuf:"bytes,3,opt"`
TaskItem []*GateCommTaskInfo `protobuf:"bytes,4,rep"`
@ -185,50 +70,15 @@ type GateVaProfileGateReq struct {
StVipCare *GateGetVipCareReq `protobuf:"bytes,6,opt"`
}
func (x *GateVaProfileGateReq) GetUCmd() int32 {
if x != nil && x.UCmd != nil {
return *x.UCmd
}
return 0
}
type GateQidInfoItem struct {
Qid *string `protobuf:"bytes,1,opt"`
Url *string `protobuf:"bytes,2,opt"`
Color *string `protobuf:"bytes,3,opt"`
LogoUrl *string `protobuf:"bytes,4,opt"`
}
func (x *GateQidInfoItem) GetQid() string {
if x != nil && x.Qid != nil {
return *x.Qid
}
return ""
}
func (x *GateQidInfoItem) GetUrl() string {
if x != nil && x.Url != nil {
return *x.Url
}
return ""
}
func (x *GateQidInfoItem) GetColor() string {
if x != nil && x.Color != nil {
return *x.Color
}
return ""
}
func (x *GateQidInfoItem) GetLogoUrl() string {
if x != nil && x.LogoUrl != nil {
return *x.LogoUrl
}
return ""
Qid proto.Option[string] `protobuf:"bytes,1,opt"`
Url proto.Option[string] `protobuf:"bytes,2,opt"`
Color proto.Option[string] `protobuf:"bytes,3,opt"`
LogoUrl proto.Option[string] `protobuf:"bytes,4,opt"`
}
type GateVaProfileGateRsp struct {
IRetCode *int32 `protobuf:"varint,1,opt"`
IRetCode proto.Option[int32] `protobuf:"varint,1,opt"`
SRetMsg []byte `protobuf:"bytes,2,opt"`
StPrivilegeRsp *GatePrivilegeBaseInfoRsp `protobuf:"bytes,3,opt"`
StGiftRsp *GateGetGiftListRsp `protobuf:"bytes,4,opt"`
@ -237,10 +87,3 @@ type GateVaProfileGateRsp struct {
StVipCare *GateGetVipCareRsp `protobuf:"bytes,7,opt"`
QidInfo *GateQidInfoItem `protobuf:"bytes,9,opt"`
}
func (x *GateVaProfileGateRsp) GetIRetCode() int32 {
if x != nil && x.IRetCode != nil {
return *x.IRetCode
}
return 0
}

View File

@ -3,185 +3,49 @@
package qweb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type QWebReq struct {
Seq *int64 `protobuf:"varint,1,opt"`
Qua *string `protobuf:"bytes,2,opt"`
DeviceInfo *string `protobuf:"bytes,3,opt"`
BusiBuff []byte `protobuf:"bytes,4,opt"`
TraceId *string `protobuf:"bytes,5,opt"`
Module *string `protobuf:"bytes,6,opt"`
Cmdname *string `protobuf:"bytes,7,opt"`
LoginSig *StAuthInfo `protobuf:"bytes,8,opt"`
Crypto *StEncryption `protobuf:"bytes,9,opt"`
Extinfo []*COMMEntry `protobuf:"bytes,10,rep"`
ContentType *uint32 `protobuf:"varint,11,opt"`
}
func (x *QWebReq) GetSeq() int64 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *QWebReq) GetQua() string {
if x != nil && x.Qua != nil {
return *x.Qua
}
return ""
}
func (x *QWebReq) GetDeviceInfo() string {
if x != nil && x.DeviceInfo != nil {
return *x.DeviceInfo
}
return ""
}
func (x *QWebReq) GetTraceId() string {
if x != nil && x.TraceId != nil {
return *x.TraceId
}
return ""
}
func (x *QWebReq) GetModule() string {
if x != nil && x.Module != nil {
return *x.Module
}
return ""
}
func (x *QWebReq) GetCmdname() string {
if x != nil && x.Cmdname != nil {
return *x.Cmdname
}
return ""
}
func (x *QWebReq) GetContentType() uint32 {
if x != nil && x.ContentType != nil {
return *x.ContentType
}
return 0
Seq proto.Option[int64] `protobuf:"varint,1,opt"`
Qua proto.Option[string] `protobuf:"bytes,2,opt"`
DeviceInfo proto.Option[string] `protobuf:"bytes,3,opt"`
BusiBuff []byte `protobuf:"bytes,4,opt"`
TraceId proto.Option[string] `protobuf:"bytes,5,opt"`
Module proto.Option[string] `protobuf:"bytes,6,opt"`
Cmdname proto.Option[string] `protobuf:"bytes,7,opt"`
LoginSig *StAuthInfo `protobuf:"bytes,8,opt"`
Crypto *StEncryption `protobuf:"bytes,9,opt"`
Extinfo []*COMMEntry `protobuf:"bytes,10,rep"`
ContentType proto.Option[uint32] `protobuf:"varint,11,opt"`
}
type QWebRsp struct {
Seq *int64 `protobuf:"varint,1,opt"`
RetCode *int64 `protobuf:"varint,2,opt"`
ErrMsg *string `protobuf:"bytes,3,opt"`
BusiBuff []byte `protobuf:"bytes,4,opt"`
Traceid *string `protobuf:"bytes,5,opt"`
}
func (x *QWebRsp) GetSeq() int64 {
if x != nil && x.Seq != nil {
return *x.Seq
}
return 0
}
func (x *QWebRsp) GetRetCode() int64 {
if x != nil && x.RetCode != nil {
return *x.RetCode
}
return 0
}
func (x *QWebRsp) GetErrMsg() string {
if x != nil && x.ErrMsg != nil {
return *x.ErrMsg
}
return ""
}
func (x *QWebRsp) GetTraceid() string {
if x != nil && x.Traceid != nil {
return *x.Traceid
}
return ""
Seq proto.Option[int64] `protobuf:"varint,1,opt"`
RetCode proto.Option[int64] `protobuf:"varint,2,opt"`
ErrMsg proto.Option[string] `protobuf:"bytes,3,opt"`
BusiBuff []byte `protobuf:"bytes,4,opt"`
Traceid proto.Option[string] `protobuf:"bytes,5,opt"`
}
type StAuthInfo struct {
Uin *string `protobuf:"bytes,1,opt"`
Sig []byte `protobuf:"bytes,2,opt"`
Platform *string `protobuf:"bytes,3,opt"`
Type *uint32 `protobuf:"varint,4,opt"`
Appid *string `protobuf:"bytes,5,opt"`
Openid *string `protobuf:"bytes,6,opt"`
Sessionkey []byte `protobuf:"bytes,7,opt"`
Extinfo []*COMMEntry `protobuf:"bytes,8,rep"`
}
func (x *StAuthInfo) GetUin() string {
if x != nil && x.Uin != nil {
return *x.Uin
}
return ""
}
func (x *StAuthInfo) GetPlatform() string {
if x != nil && x.Platform != nil {
return *x.Platform
}
return ""
}
func (x *StAuthInfo) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *StAuthInfo) GetAppid() string {
if x != nil && x.Appid != nil {
return *x.Appid
}
return ""
}
func (x *StAuthInfo) GetOpenid() string {
if x != nil && x.Openid != nil {
return *x.Openid
}
return ""
Uin proto.Option[string] `protobuf:"bytes,1,opt"`
Sig []byte `protobuf:"bytes,2,opt"`
Platform proto.Option[string] `protobuf:"bytes,3,opt"`
Type proto.Option[uint32] `protobuf:"varint,4,opt"`
Appid proto.Option[string] `protobuf:"bytes,5,opt"`
Openid proto.Option[string] `protobuf:"bytes,6,opt"`
Sessionkey []byte `protobuf:"bytes,7,opt"`
Extinfo []*COMMEntry `protobuf:"bytes,8,rep"`
}
type StEncryption struct {
Method *uint32 `protobuf:"varint,1,opt"`
Iv *string `protobuf:"bytes,2,opt"`
}
func (x *StEncryption) GetMethod() uint32 {
if x != nil && x.Method != nil {
return *x.Method
}
return 0
}
func (x *StEncryption) GetIv() string {
if x != nil && x.Iv != nil {
return *x.Iv
}
return ""
Method proto.Option[uint32] `protobuf:"varint,1,opt"`
Iv proto.Option[string] `protobuf:"bytes,2,opt"`
}
type COMMEntry struct {
Key *string `protobuf:"bytes,1,opt"`
Value *string `protobuf:"bytes,2,opt"`
}
func (x *COMMEntry) GetKey() string {
if x != nil && x.Key != nil {
return *x.Key
}
return ""
}
func (x *COMMEntry) GetValue() string {
if x != nil && x.Value != nil {
return *x.Value
}
return ""
Key proto.Option[string] `protobuf:"bytes,1,opt"`
Value proto.Option[string] `protobuf:"bytes,2,opt"`
}

View File

@ -3,47 +3,16 @@
package web
import (
proto "github.com/RomiChan/protobuf/proto"
)
type STServiceMonitItem struct {
Cmd *string `protobuf:"bytes,1,opt"`
Url *string `protobuf:"bytes,2,opt"`
Errcode *int32 `protobuf:"varint,3,opt"`
Cost *uint32 `protobuf:"varint,4,opt"`
Src *uint32 `protobuf:"varint,5,opt"`
}
func (x *STServiceMonitItem) GetCmd() string {
if x != nil && x.Cmd != nil {
return *x.Cmd
}
return ""
}
func (x *STServiceMonitItem) GetUrl() string {
if x != nil && x.Url != nil {
return *x.Url
}
return ""
}
func (x *STServiceMonitItem) GetErrcode() int32 {
if x != nil && x.Errcode != nil {
return *x.Errcode
}
return 0
}
func (x *STServiceMonitItem) GetCost() uint32 {
if x != nil && x.Cost != nil {
return *x.Cost
}
return 0
}
func (x *STServiceMonitItem) GetSrc() uint32 {
if x != nil && x.Src != nil {
return *x.Src
}
return 0
Cmd proto.Option[string] `protobuf:"bytes,1,opt"`
Url proto.Option[string] `protobuf:"bytes,2,opt"`
Errcode proto.Option[int32] `protobuf:"varint,3,opt"`
Cost proto.Option[uint32] `protobuf:"varint,4,opt"`
Src proto.Option[uint32] `protobuf:"varint,5,opt"`
}
type STServiceMonitReq struct {
@ -51,91 +20,21 @@ type STServiceMonitReq struct {
}
type WebSsoControlData struct {
Frequency *uint32 `protobuf:"varint,1,opt"`
PackageSize *uint32 `protobuf:"varint,2,opt"`
}
func (x *WebSsoControlData) GetFrequency() uint32 {
if x != nil && x.Frequency != nil {
return *x.Frequency
}
return 0
}
func (x *WebSsoControlData) GetPackageSize() uint32 {
if x != nil && x.PackageSize != nil {
return *x.PackageSize
}
return 0
Frequency proto.Option[uint32] `protobuf:"varint,1,opt"`
PackageSize proto.Option[uint32] `protobuf:"varint,2,opt"`
}
type WebSsoRequestBody struct {
Version *uint32 `protobuf:"varint,1,opt"`
Type *uint32 `protobuf:"varint,2,opt"`
Data *string `protobuf:"bytes,3,opt"`
WebData *string `protobuf:"bytes,4,opt"`
}
func (x *WebSsoRequestBody) GetVersion() uint32 {
if x != nil && x.Version != nil {
return *x.Version
}
return 0
}
func (x *WebSsoRequestBody) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *WebSsoRequestBody) GetData() string {
if x != nil && x.Data != nil {
return *x.Data
}
return ""
}
func (x *WebSsoRequestBody) GetWebData() string {
if x != nil && x.WebData != nil {
return *x.WebData
}
return ""
Version proto.Option[uint32] `protobuf:"varint,1,opt"`
Type proto.Option[uint32] `protobuf:"varint,2,opt"`
Data proto.Option[string] `protobuf:"bytes,3,opt"`
WebData proto.Option[string] `protobuf:"bytes,4,opt"`
}
type WebSsoResponseBody struct {
Version *uint32 `protobuf:"varint,1,opt"`
Type *uint32 `protobuf:"varint,2,opt"`
Ret *uint32 `protobuf:"varint,3,opt"`
Data *string `protobuf:"bytes,4,opt"`
ControlData *WebSsoControlData `protobuf:"bytes,5,opt"`
}
func (x *WebSsoResponseBody) GetVersion() uint32 {
if x != nil && x.Version != nil {
return *x.Version
}
return 0
}
func (x *WebSsoResponseBody) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
func (x *WebSsoResponseBody) GetRet() uint32 {
if x != nil && x.Ret != nil {
return *x.Ret
}
return 0
}
func (x *WebSsoResponseBody) GetData() string {
if x != nil && x.Data != nil {
return *x.Data
}
return ""
Version proto.Option[uint32] `protobuf:"varint,1,opt"`
Type proto.Option[uint32] `protobuf:"varint,2,opt"`
Ret proto.Option[uint32] `protobuf:"varint,3,opt"`
Data proto.Option[string] `protobuf:"bytes,4,opt"`
ControlData *WebSsoControlData `protobuf:"bytes,5,opt"`
}

View File

@ -138,7 +138,7 @@ func (c *QQClient) buildGetOneDayRoamMsgRequest(target, lastMsgTime, random int6
PeerUin: proto.Uint64(uint64(target)),
LastMsgTime: proto.Uint64(uint64(lastMsgTime)),
Random: proto.Uint64(uint64(random)),
ReadCnt: &count,
ReadCnt: proto.Some(count),
}
payload, _ := proto.Marshal(req)
packet := packets.BuildUniPacket(c.Uin, seq, "MessageSvc.PbGetOneDayRoamMsg", 1, c.SessionId, EmptyBytes, c.sigInfo.d2Key, payload)
@ -156,16 +156,16 @@ func (c *QQClient) buildFriendSendingPacket(target int64, msgSeq, r, pkgNum, pkg
}
}
req := &msg.SendMessageRequest{
RoutingHead: &msg.RoutingHead{C2C: &msg.C2C{ToUin: &target}},
ContentHead: &msg.ContentHead{PkgNum: &pkgNum, PkgIndex: &pkgIndex, DivSeq: &pkgDiv},
RoutingHead: &msg.RoutingHead{C2C: &msg.C2C{ToUin: proto.Some(target)}},
ContentHead: &msg.ContentHead{PkgNum: proto.Some(pkgNum), PkgIndex: proto.Some(pkgIndex), DivSeq: proto.Some(pkgDiv)},
MsgBody: &msg.MessageBody{
RichText: &msg.RichText{
Elems: message.ToProtoElems(m, false),
Ptt: ptt,
},
},
MsgSeq: &msgSeq,
MsgRand: &r,
MsgSeq: proto.Some(msgSeq),
MsgRand: proto.Some(r),
SyncCookie: syncCookie(time),
}
payload, _ := proto.Marshal(req)
@ -176,8 +176,8 @@ func (c *QQClient) buildFriendSendingPacket(target int64, msgSeq, r, pkgNum, pkg
func (c *QQClient) buildGroupTempSendingPacket(groupUin, target int64, msgSeq, r int32, time int64, m *message.SendingMessage) (uint16, []byte) {
req := &msg.SendMessageRequest{
RoutingHead: &msg.RoutingHead{GrpTmp: &msg.GrpTmp{
GroupUin: &groupUin,
ToUin: &target,
GroupUin: proto.Some(groupUin),
ToUin: proto.Some(target),
}},
ContentHead: &msg.ContentHead{PkgNum: proto.Int32(1)},
MsgBody: &msg.MessageBody{
@ -185,8 +185,8 @@ func (c *QQClient) buildGroupTempSendingPacket(groupUin, target int64, msgSeq, r
Elems: message.ToProtoElems(m.Elements, false),
},
},
MsgSeq: &msgSeq,
MsgRand: &r,
MsgSeq: proto.Some(msgSeq),
MsgRand: proto.Some(r),
SyncCookie: syncCookie(time),
}
payload, _ := proto.Marshal(req)
@ -205,8 +205,8 @@ func (c *QQClient) buildWPATempSendingPacket(uin int64, sig []byte, msgSeq, r in
Elems: message.ToProtoElems(m.Elements, false),
},
},
MsgSeq: &msgSeq,
MsgRand: &r,
MsgSeq: proto.Some(msgSeq),
MsgRand: proto.Some(r),
SyncCookie: syncCookie(time),
}
payload, _ := proto.Marshal(req)
@ -215,11 +215,11 @@ func (c *QQClient) buildWPATempSendingPacket(uin int64, sig []byte, msgSeq, r in
func syncCookie(time int64) []byte {
cookie, _ := proto.Marshal(&msg.SyncCookie{
Time: &time,
Time: proto.Some(time),
Ran1: proto.Int64(rand.Int63()),
Ran2: proto.Int64(rand.Int63()),
Const1: &syncConst1,
Const2: &syncConst2,
Const1: proto.Some(syncConst1),
Const2: proto.Some(syncConst2),
Const3: proto.Int64(0x1d),
})
return cookie

View File

@ -89,7 +89,7 @@ func (c *QQClient) UploadVoice(target message.Source, voice io.ReadSeeker) (*mes
}
ptt := &msg.Ptt{
FileType: proto.Int32(4),
SrcUin: &c.Uin,
SrcUin: proto.Some(c.Uin),
FileMd5: fh,
FileName: proto.String(fmt.Sprintf("%x.amr", fh)),
FileSize: proto.Int32(int32(length)),

View File

@ -56,7 +56,7 @@ func (c *QQClient) getQiDianAddressDetailList() ([]*FriendInfo, error) {
continue
}
ret = append(ret, &FriendInfo{
Uin: int64(detail.Qq[0].GetAccount()),
Uin: int64(detail.Qq[0].Account.Unwrap()),
Nickname: string(detail.Name),
})
}
@ -73,7 +73,7 @@ func (c *QQClient) buildLoginExtraPacket() (uint16, []byte) {
},
SubcmdLoginProcessCompleteReqBody: &cmd0x3f6.QDUserLoginProcessCompleteReqBody{
Kfext: proto.Uint64(uint64(c.Uin)),
Pubno: &c.version.AppId,
Pubno: proto.Some(c.version.AppId),
Buildno: proto.Uint32(uint32(utils.ConvertSubVersionToInt(c.version.SortVersionName))),
TerminalType: proto.Uint32(2),
Status: proto.Uint32(10),
@ -81,8 +81,8 @@ func (c *QQClient) buildLoginExtraPacket() (uint16, []byte) {
HardwareInfo: proto.String(string(c.deviceInfo.Model)),
SoftwareInfo: proto.String(string(c.deviceInfo.Version.Release)),
Guid: c.deviceInfo.Guid,
AppName: &c.version.ApkId,
SubAppId: &c.version.AppId,
AppName: proto.Some(c.version.ApkId),
SubAppId: proto.Some(c.version.AppId),
},
}
payload, _ := proto.Marshal(req)
@ -114,7 +114,7 @@ func (c *QQClient) bigDataRequest(subCmd uint32, req proto.Message) ([]byte, err
HttpconnHead: &msg.HttpConnHead{
Uin: proto.Uint64(uint64(c.Uin)),
Command: proto.Uint32(1791),
SubCommand: &subCmd,
SubCommand: proto.Some(subCmd),
Seq: proto.Uint32(uint32(c.nextHighwayApplySeq())),
Version: proto.Uint32(500), // todo: short version convert
Flag: proto.Uint32(1),
@ -164,9 +164,9 @@ func decodeLoginExtraResponse(c *QQClient, _ *network.IncomingPacketInfo, payloa
return nil, errors.New("login process resp is nil")
}
c.QiDian = &QiDianAccountInfo{
MasterUin: int64(rsp.SubcmdLoginProcessCompleteRspBody.GetCorpuin()),
ExtName: rsp.SubcmdLoginProcessCompleteRspBody.GetExtuinName(),
CreateTime: int64(rsp.SubcmdLoginProcessCompleteRspBody.GetOpenAccountTime()),
MasterUin: int64(rsp.SubcmdLoginProcessCompleteRspBody.Corpuin.Unwrap()),
ExtName: rsp.SubcmdLoginProcessCompleteRspBody.ExtuinName.Unwrap(),
CreateTime: int64(rsp.SubcmdLoginProcessCompleteRspBody.OpenAccountTime.Unwrap()),
}
return nil, nil
}
@ -184,9 +184,9 @@ func decodeConnKeyResponse(c *QQClient, _ *network.IncomingPacketInfo, payload [
SessionKey: rsp.RspBody.SessionKey,
}
for _, srv := range rsp.RspBody.Addrs {
if srv.GetServiceType() == 1 {
if srv.ServiceType.Unwrap() == 1 {
for _, addr := range srv.Addrs {
c.QiDian.bigDataReqAddrs = append(c.QiDian.bigDataReqAddrs, fmt.Sprintf("%v:%v", binary.UInt32ToIPV4Address(addr.GetIp()), addr.GetPort()))
c.QiDian.bigDataReqAddrs = append(c.QiDian.bigDataReqAddrs, fmt.Sprintf("%v:%v", binary.UInt32ToIPV4Address(addr.Ip.Unwrap()), addr.Port.Unwrap()))
}
}
}

View File

@ -14,8 +14,8 @@ import (
func (c *QQClient) RecallGroupMessage(groupCode int64, msgID, msgInternalId int32) error {
if m, _ := c.GetGroupMessages(groupCode, int64(msgID), int64(msgID)); len(m) > 0 {
content := m[0].OriginalObject.Content
if content.GetPkgNum() > 1 {
if m, err := c.GetGroupMessages(groupCode, int64(msgID-content.GetPkgIndex()-1), int64(msgID+(content.GetPkgNum()-content.GetPkgIndex()+1))); err == nil {
if content.PkgNum.Unwrap() > 1 {
if m, err := c.GetGroupMessages(groupCode, int64(msgID-content.PkgIndex.Unwrap()-1), int64(msgID+(content.PkgNum.Unwrap()-content.PkgIndex.Unwrap()+1))); err == nil {
if flag, _ := c.internalGroupRecall(groupCode, msgInternalId, m); flag {
return nil
}
@ -49,11 +49,11 @@ func (c *QQClient) buildGroupRecallPacket(groupCode int64, msgSeq, msgRan int32)
GroupWithDraw: []*msg.GroupMsgWithDrawReq{
{
SubCmd: proto.Int32(1),
GroupCode: &groupCode,
GroupCode: proto.Some(groupCode),
MsgList: []*msg.GroupMsgInfo{
{
MsgSeq: &msgSeq,
MsgRandom: &msgRan,
MsgSeq: proto.Some(msgSeq),
MsgRandom: proto.Some(msgRan),
MsgType: proto.Int32(0),
},
},
@ -70,15 +70,15 @@ func (c *QQClient) buildPrivateRecallPacket(uin, ts int64, msgSeq, random int32)
{
MsgInfo: []*msg.C2CMsgInfo{
{
FromUin: &c.Uin,
ToUin: &uin,
MsgTime: &ts,
FromUin: proto.Some(c.Uin),
ToUin: proto.Some(uin),
MsgTime: proto.Some(ts),
MsgUid: proto.Int64(0x0100_0000_0000_0000 | (int64(random) & 0xFFFFFFFF)),
MsgSeq: &msgSeq,
MsgRandom: &random,
MsgSeq: proto.Some(msgSeq),
MsgRandom: proto.Some(random),
RoutingHead: &msg.RoutingHead{
C2C: &msg.C2C{
ToUin: &uin,
ToUin: proto.Some(uin),
},
},
},
@ -98,13 +98,13 @@ func decodeMsgWithDrawResponse(_ *QQClient, _ *network.IncomingPacketInfo, paylo
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
}
if len(rsp.C2CWithDraw) > 0 {
if rsp.C2CWithDraw[0].GetErrMsg() != "" && rsp.C2CWithDraw[0].GetErrMsg() != "Success" {
return nil, errors.Errorf("recall error: %v msg: %v", rsp.C2CWithDraw[0].GetResult(), rsp.C2CWithDraw[0].GetErrMsg())
if rsp.C2CWithDraw[0].ErrMsg.Unwrap() != "" && rsp.C2CWithDraw[0].ErrMsg.Unwrap() != "Success" {
return nil, errors.Errorf("recall error: %v msg: %v", rsp.C2CWithDraw[0].Result.Unwrap(), rsp.C2CWithDraw[0].ErrMsg.Unwrap())
}
}
if len(rsp.GroupWithDraw) > 0 {
if rsp.GroupWithDraw[0].GetErrMsg() != "" && rsp.GroupWithDraw[0].GetErrMsg() != "Success" {
return nil, errors.Errorf("recall error: %v msg: %v", rsp.GroupWithDraw[0].GetResult(), rsp.GroupWithDraw[0].GetErrMsg())
if rsp.GroupWithDraw[0].ErrMsg.Unwrap() != "" && rsp.GroupWithDraw[0].ErrMsg.Unwrap() != "Success" {
return nil, errors.Errorf("recall error: %v msg: %v", rsp.GroupWithDraw[0].Result.Unwrap(), rsp.GroupWithDraw[0].ErrMsg.Unwrap())
}
}
return nil, nil

View File

@ -37,7 +37,7 @@ func (c *QQClient) buildUrlCheckRequest(url string) (uint16, []byte) {
Type: proto.Uint32(2),
SendUin: proto.Uint64(uint64(c.Uin)),
ReqType: proto.String("webview"),
OriginalUrl: &url,
OriginalUrl: proto.Some(url),
IsArk: proto.Bool(false),
IsFinish: proto.Bool(false),
SrcUrls: []string{url},
@ -57,10 +57,10 @@ func decodeUrlCheckResponse(_ *QQClient, _ *network.IncomingPacketInfo, payload
if rsp.CheckUrlRsp == nil || len(rsp.CheckUrlRsp.Results) == 0 {
return nil, errors.New("response is empty")
}
if rsp.CheckUrlRsp.Results[0].JumpUrl != nil {
if rsp.CheckUrlRsp.Results[0].JumpUrl.IsSome() {
return Danger, nil
}
if rsp.CheckUrlRsp.Results[0].GetUmrtype() == 2 {
if rsp.CheckUrlRsp.Results[0].Umrtype.Unwrap() == 2 {
return Safe, nil
}
return Unknown, nil

27
client/sign.go Normal file
View File

@ -0,0 +1,27 @@
package client
import (
"strconv"
"github.com/Mrs4s/MiraiGo/client/pb/oidb"
"github.com/Mrs4s/MiraiGo/internal/proto"
)
// SendGroupSign 发送群聊打卡消息
func (c *QQClient) SendGroupSign(target int64) {
_, _ = c.sendAndWait(c.buildGroupSignPacket(target, 0))
}
func (c *QQClient) buildGroupSignPacket(groupId int64, scene uint32) (uint16, []byte) {
body := &oidb.DEB7ReqBody{
SignInStatusReq: &oidb.StSignInStatusReq{
Uid: proto.Some(strconv.Itoa(int(c.Uin))),
GroupId: proto.Some(strconv.Itoa(int(groupId))),
Scene: proto.Some(scene),
ClientVersion: proto.Some("8.5.0.5025"),
},
}
b, _ := proto.Marshal(body)
payload := c.packOIDBPackage(3767, 0, b)
return c.uniPacket("OidbSvc.0xeb7", payload)
}

View File

@ -141,17 +141,15 @@ func (c *QQClient) buildDeviceListRequestPacket() (uint16, []byte) {
// RegPrxySvc.getOffMsg
func (c *QQClient) buildGetOfflineMsgRequestPacket() (uint16, []byte) {
t := c.stat.LastMessageTime.Load()
if t == 0 {
t = 1
}
regReq := &jce.SvcReqRegisterNew{
RequestOptional: 0x101C2 | 32,
C2CMsg: &jce.SvcReqGetMsgV2{
Uin: c.Uin,
DateTime: func() int32 {
t := c.stat.LastMessageTime.Load()
if t == 0 {
return 1
}
return int32(t)
}(),
Uin: c.Uin,
DateTime: int32(t),
RecivePic: 1,
Ability: 15,
Channel: 4,
@ -171,7 +169,7 @@ func (c *QQClient) buildGetOfflineMsgRequestPacket() (uint16, []byte) {
}
flag := msg.SyncFlag_START
msgReq, _ := proto.Marshal(&msg.GetMessageRequest{
SyncFlag: &flag,
SyncFlag: proto.Some(int32(flag)),
SyncCookie: c.sig.SyncCookie,
RambleFlag: proto.Int32(0),
ContextFlag: proto.Int32(1),
@ -207,18 +205,16 @@ func (c *QQClient) buildSyncMsgRequestPacket() (uint16, []byte) {
},
},
})
t := c.stat.LastMessageTime.Load()
if t == 0 {
t = 1
}
regReq := &jce.SvcReqRegisterNew{
RequestOptional: 128 | 64 | 256 | 2 | 8192 | 16384 | 65536,
DisGroupMsgFilter: 1,
C2CMsg: &jce.SvcReqGetMsgV2{
Uin: c.Uin,
DateTime: func() int32 {
t := c.stat.LastMessageTime.Load()
if t == 0 {
return 1
}
return int32(t)
}(),
Uin: c.Uin,
DateTime: int32(t),
RecivePic: 1,
Ability: 15,
Channel: 4,
@ -236,7 +232,7 @@ func (c *QQClient) buildSyncMsgRequestPacket() (uint16, []byte) {
}
flag := msg.SyncFlag_START
msgReq := &msg.GetMessageRequest{
SyncFlag: &flag,
SyncFlag: proto.Some(int32(flag)),
SyncCookie: c.sig.SyncCookie,
RambleFlag: proto.Int32(0),
ContextFlag: proto.Int32(1),
@ -318,34 +314,30 @@ func decodePushParamPacket(c *QQClient, _ *network.IncomingPacketInfo, payload [
allowedClients, _ := c.GetAllowedClients()
c.OnlineClients = []*OtherClientInfo{}
for _, i := range rsp.OnlineInfos {
name, kind := i.SubPlatform, i.SubPlatform
for _, ac := range allowedClients {
if ac.AppId == int64(i.InstanceId) {
name = ac.DeviceName
}
}
switch i.UClientType {
case 65793:
kind = "Windows"
case 65805, 68104:
kind = "aPad"
case 66818, 66831, 81154:
kind = "Mac"
case 68361, 72194:
kind = "iPad"
case 75023, 78082, 78096:
kind = "Watch"
case 77313:
kind = "Windows TIM"
}
c.OnlineClients = append(c.OnlineClients, &OtherClientInfo{
AppId: int64(i.InstanceId),
DeviceName: func() string {
for _, ac := range allowedClients {
if ac.AppId == int64(i.InstanceId) {
return ac.DeviceName
}
}
return i.SubPlatform
}(),
DeviceKind: func() string {
switch i.UClientType {
case 65793:
return "Windows"
case 65805, 68104:
return "aPad"
case 66818, 66831, 81154:
return "Mac"
case 68361, 72194:
return "iPad"
case 75023, 78082, 78096:
return "Watch"
case 77313:
return "Windows TIM"
default:
return i.SubPlatform
}
}(),
AppId: int64(i.InstanceId),
DeviceName: name,
DeviceKind: kind,
})
}
return nil, nil
@ -358,11 +350,11 @@ func decodeMsgSyncResponse(c *QQClient, info *network.IncomingPacketInfo, payloa
return nil, err
}
ret := &sessionSyncEvent{
IsEnd: (rsp.GetFlag() & 2) == 2,
IsEnd: (rsp.Flag.Unwrap() & 2) == 2,
GroupNum: -1,
}
if rsp.Info != nil {
ret.GroupNum = int32(rsp.Info.GetGroupNum())
ret.GroupNum = int32(rsp.Info.GroupNum.Unwrap())
}
if len(rsp.GroupMsg) > 0 {
for _, gm := range rsp.GroupMsg {
@ -372,7 +364,7 @@ func decodeMsgSyncResponse(c *QQClient, info *network.IncomingPacketInfo, payloa
}
var latest []*message.GroupMessage
for _, m := range gmRsp.Msg {
if m.Head.GetFromUin() != 0 {
if m.Head.FromUin.Unwrap() != 0 {
pm := c.parseGroupMessage(m)
if pm != nil {
latest = append(latest, pm)
@ -380,8 +372,8 @@ func decodeMsgSyncResponse(c *QQClient, info *network.IncomingPacketInfo, payloa
}
}
ret.GroupSessions = append(ret.GroupSessions, &GroupSessionInfo{
GroupCode: int64(gmRsp.GetGroupCode()),
UnreadCount: uint32(gmRsp.GetReturnEndSeq() - gm.GetMemberSeq()),
GroupCode: int64(gmRsp.GroupCode.Unwrap()),
UnreadCount: uint32(gmRsp.ReturnEndSeq.Unwrap() - gm.MemberSeq.Unwrap()),
LatestMessages: latest,
})
}
@ -401,7 +393,7 @@ func decodeC2CSyncPacket(c *QQClient, info *network.IncomingPacketInfo, payload
if err := proto.Unmarshal(payload, &m); err != nil {
return nil, err
}
_ = c.sendPacket(c.buildDeleteOnlinePushPacket(c.Uin, m.GetSvrip(), m.PushToken, info.SequenceId, nil))
_ = c.sendPacket(c.buildDeleteOnlinePushPacket(c.Uin, m.Svrip.Unwrap(), m.PushToken, info.SequenceId, nil))
c.commMsgProcessor(m.Msg, info)
return nil, nil
}
@ -412,7 +404,7 @@ func decodeMsgReadedResponse(_ *QQClient, _ *network.IncomingPacketInfo, payload
return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
}
if len(rsp.GrpReadReport) > 0 {
return rsp.GrpReadReport[0].GetResult() == 0, nil
return rsp.GrpReadReport[0].Result.Unwrap() == 0, nil
}
return nil, nil
}

View File

@ -88,7 +88,7 @@ func (c *QQClient) webSsoRequest(host, webCmd, data string) (string, error) {
cmd := "MQUpdateSvc_" + sub + ".web." + webCmd
req, _ := proto.Marshal(&web.WebSsoRequestBody{
Type: proto.Uint32(0),
Data: &data,
Data: proto.Some(data),
})
rspData, err := c.sendAndWaitDynamic(c.uniPacket(cmd, req))
if err != nil {
@ -98,5 +98,5 @@ func (c *QQClient) webSsoRequest(host, webCmd, data string) (string, error) {
if err = proto.Unmarshal(rspData, rsp); err != nil {
return "", errors.Wrap(err, "unmarshal response error")
}
return rsp.GetData(), nil
return rsp.Data.Unwrap(), nil
}

5
go.mod
View File

@ -3,8 +3,8 @@ module github.com/Mrs4s/MiraiGo
go 1.18
require (
github.com/RomiChan/protobuf v0.0.0-20220318113238-d8a99598f896
github.com/RomiChan/syncx v0.0.0-20220320130821-c88644afda9c
github.com/RomiChan/protobuf v0.1.1-0.20220602121309-9e3b8cbefd7a
github.com/RomiChan/syncx v0.0.0-20220404072119-d7ea0ae15a4c
github.com/fumiama/imgsz v0.0.2
github.com/pierrec/lz4/v4 v4.1.11
github.com/pkg/errors v0.9.1
@ -19,5 +19,6 @@ require (
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.0 // indirect
google.golang.org/protobuf v1.28.0 // indirect
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
)

14
go.sum
View File

@ -1,12 +1,14 @@
github.com/RomiChan/protobuf v0.0.0-20220318113238-d8a99598f896 h1:UFAqSbH6VqW5mEzQV2HVB7+p3k9JfTbidWJ/9F15yz0=
github.com/RomiChan/protobuf v0.0.0-20220318113238-d8a99598f896/go.mod h1:CKKOWC7mBxd36zxsCB1V8DTrwlTNRQvkSVbYqyUiGEE=
github.com/RomiChan/syncx v0.0.0-20220320130821-c88644afda9c h1:zHWyqx7A71A/+mlzthPVcVrNGuTPyTpCW3meUPtaULU=
github.com/RomiChan/syncx v0.0.0-20220320130821-c88644afda9c/go.mod h1:KqZzu7slNKROh3TSYEH/IUMG6f4M+1qubZ5e52QypsE=
github.com/RomiChan/protobuf v0.1.1-0.20220602121309-9e3b8cbefd7a h1:WIfEWYj82oEuPtm5pqlyQmCJCoiw00C6ugZFqHA0cC8=
github.com/RomiChan/protobuf v0.1.1-0.20220602121309-9e3b8cbefd7a/go.mod h1:2Ie+hdBFQpQFDHfeklgxoFmQRCE7O+KwFpISeXq7OwA=
github.com/RomiChan/syncx v0.0.0-20220404072119-d7ea0ae15a4c h1:cNPOdTNiVwxLpROLjXCgbIPvdkE+BwvxDvgmdYmWx6Q=
github.com/RomiChan/syncx v0.0.0-20220404072119-d7ea0ae15a4c/go.mod h1:KqZzu7slNKROh3TSYEH/IUMG6f4M+1qubZ5e52QypsE=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/fumiama/imgsz v0.0.2 h1:fAkC0FnIscdKOXwAxlyw3EUba5NzxZdSxGaq3Uyfxak=
github.com/fumiama/imgsz v0.0.2/go.mod h1:dR71mI3I2O5u6+PCpd47M9TZptzP+39tRBcbdIkoqM4=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/pierrec/lz4/v4 v4.1.11 h1:LVs17FAZJFOjgmJXl9Tf13WfLUvZq7/RjfEJrnwZ9OE=
github.com/pierrec/lz4/v4 v4.1.11/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@ -27,6 +29,10 @@ go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=

View File

@ -1,7 +1,6 @@
package proto
import (
"bytes"
"encoding/binary"
"math"
)
@ -9,11 +8,11 @@ import (
type DynamicMessage map[uint64]any
type encoder struct {
bytes.Buffer
buf []byte
}
func (msg DynamicMessage) Encode() []byte {
en := &encoder{}
en := encoder{}
//nolint:staticcheck
for id, value := range msg {
key := id << 3
@ -48,9 +47,8 @@ func (msg DynamicMessage) Encode() []byte {
en.u64(math.Float64bits(v))
case string:
en.uvarint(key | 2)
b := []byte(v)
en.uvarint(uint64(len(b)))
_, _ = en.Write(b)
en.uvarint(uint64(len(v)))
en.buf = append(en.buf, v...)
case []uint64:
for i := 0; i < len(v); i++ {
en.uvarint(key | 0)
@ -59,21 +57,21 @@ func (msg DynamicMessage) Encode() []byte {
case []byte:
en.uvarint(key | 2)
en.uvarint(uint64(len(v)))
_, _ = en.Write(v)
en.buf = append(en.buf, v...)
case DynamicMessage:
en.uvarint(key | 2)
b := v.Encode()
en.uvarint(uint64(len(b)))
_, _ = en.Write(b)
en.buf = append(en.buf, b...)
}
}
return en.Bytes()
return en.buf
}
func (en *encoder) uvarint(v uint64) {
var b [binary.MaxVarintLen64]byte
n := binary.PutUvarint(b[:], v)
_, _ = en.Write(b[:n])
en.buf = append(en.buf, b[:n]...)
}
func (en *encoder) svarint(v int64) {
@ -83,11 +81,11 @@ func (en *encoder) svarint(v int64) {
func (en *encoder) u32(v uint32) {
var b [4]byte
binary.LittleEndian.PutUint32(b[:], v)
_, _ = en.Write(b[:])
en.buf = append(en.buf, b[:]...)
}
func (en *encoder) u64(v uint64) {
var b [8]byte
binary.LittleEndian.PutUint64(b[:], v)
_, _ = en.Write(b[:])
en.buf = append(en.buf, b[:]...)
}

View File

@ -8,7 +8,7 @@ import (
func benchEncoderUvarint(b *testing.B, v uint64) {
e := encoder{}
for i := 0; i < b.N; i++ {
e.Reset()
e.buf = e.buf[:0]
e.uvarint(v)
}
}
@ -16,7 +16,7 @@ func benchEncoderUvarint(b *testing.B, v uint64) {
func benchEncoderSvarint(b *testing.B, v int64) {
e := encoder{}
for i := 0; i < b.N; i++ {
e.Reset()
e.buf = e.buf[:0]
e.svarint(v)
}
}

View File

@ -1,37 +1,63 @@
package proto
import "github.com/RomiChan/protobuf/proto"
import (
"reflect"
"github.com/RomiChan/protobuf/proto"
)
// TODO: move to a new package
const debug = false
type Message = any
func Marshal(m Message) ([]byte, error) {
return proto.Marshal(m)
b, err := proto.Marshal(m)
if err != nil {
return b, err
}
if debug {
t := reflect.TypeOf(m).Elem()
n := reflect.New(t)
err = Unmarshal(b, n.Interface())
if err != nil {
panic(err)
}
if reflect.DeepEqual(m, n) {
panic("not equal")
}
}
return b, err
}
func Unmarshal(b []byte, m Message) error {
return proto.Unmarshal(b, m)
}
func Some[T any](val T) proto.Option[T] {
return proto.Some(val)
}
// Bool stores v in a new bool value and returns a pointer to it.
func Bool(v bool) *bool { return &v }
func Bool(v bool) proto.Option[bool] { return proto.Some(v) }
// Int32 stores v in a new int32 value and returns a pointer to it.
func Int32(v int32) *int32 { return &v }
func Int32(v int32) proto.Option[int32] { return proto.Some(v) }
// Int64 stores v in a new int64 value and returns a pointer to it.
func Int64(v int64) *int64 { return &v }
func Int64(v int64) proto.Option[int64] { return proto.Some(v) }
// Float32 stores v in a new float32 value and returns a pointer to it.
func Float32(v float32) *float32 { return &v }
func Float32(v float32) proto.Option[float32] { return proto.Some(v) }
// Float64 stores v in a new float64 value and returns a pointer to it.
func Float64(v float64) *float64 { return &v }
func Float64(v float64) proto.Option[float64] { return proto.Some(v) }
// Uint32 stores v in a new uint32 value and returns a pointer to it.
func Uint32(v uint32) *uint32 { return &v }
func Uint32(v uint32) proto.Option[uint32] { return proto.Some(v) }
// Uint64 stores v in a new uint64 value and returns a pointer to it.
func Uint64(v uint64) *uint64 { return &v }
func Uint64(v uint64) proto.Option[uint64] { return proto.Some(v) }
// String stores v in a new string value and returns a pointer to it.
func String(v string) *string { return &v }
func String(v string) proto.Option[string] { return proto.Some(v) }

View File

@ -19,7 +19,8 @@ type ForwardMessage struct {
Nodes []*ForwardNode
}
type ForwardNode struct {
type ForwardNode struct { // todo 加一个group_id
GroupId int64
SenderId int64
SenderName string
Time int32
@ -123,19 +124,19 @@ func (f *ForwardMessage) PackForwardMessage(seq int32, random int32, groupCode i
for _, node := range f.Nodes {
ml = append(ml, &msg.Message{
Head: &msg.MessageHead{
FromUin: &node.SenderId,
MsgSeq: &seq,
MsgTime: &node.Time,
FromUin: proto.Some(node.SenderId),
MsgSeq: proto.Some(seq),
MsgTime: proto.Some(node.Time),
MsgUid: proto.Int64(0x0100_0000_0000_0000 | (int64(random) & 0xFFFFFFFF)),
MutiltransHead: &msg.MutilTransHead{
MsgId: proto.Int32(1),
},
MsgType: proto.Int32(82),
GroupInfo: &msg.GroupInfo{
GroupCode: &groupCode,
GroupCode: proto.Some(groupCode),
GroupRank: []byte{},
GroupName: []byte{},
GroupCard: &node.SenderName,
GroupCard: proto.Some(node.SenderName),
},
},
Body: &msg.MessageBody{

View File

@ -102,12 +102,12 @@ func (e *GroupImageElement) Pack() (r []*msg.Elem) {
Useful: proto.Int32(1),
// Origin: 1,
BizType: proto.Int32(5),
Width: &e.Width,
Height: &e.Height,
Width: proto.Some(e.Width),
Height: proto.Some(e.Height),
FileId: proto.Int32(int32(e.FileId)),
FilePath: &e.ImageId,
ImageType: &e.ImageType,
Size: &e.Size,
FilePath: proto.Some(e.ImageId),
ImageType: proto.Some(e.ImageType),
Size: proto.Some(e.Size),
Md5: e.Md5,
Flag: make([]byte, 4),
// OldData: imgOld,
@ -132,7 +132,7 @@ func (e *GroupImageElement) Pack() (r []*msg.Elem) {
res := &msg.ResvAttr{}
if e.EffectID != 0 { // resolve show pic
res.ImageShow = &msg.AnimationImageShow{
EffectId: &e.EffectID,
EffectId: proto.Some(e.EffectID),
AnimationParam: []byte("{}"),
}
cface.Flag = []byte{0x11, 0x00, 0x00, 0x00}
@ -147,11 +147,11 @@ func (e *GroupImageElement) Pack() (r []*msg.Elem) {
func (e *FriendImageElement) Pack() []*msg.Elem {
image := &msg.NotOnlineImage{
FilePath: &e.ImageId,
ResId: &e.ImageId,
OldPicMd5: proto.Bool(false),
FilePath: proto.Some(e.ImageId),
ResId: proto.Some(e.ImageId),
OldPicMd5: proto.Some(false),
PicMd5: e.Md5,
DownloadPath: &e.ImageId,
DownloadPath: proto.Some(e.ImageId),
Original: proto.Int32(1),
PbReserve: []byte{0x78, 0x02},
}
@ -182,12 +182,12 @@ func (e *GuildImageElement) Pack() (r []*msg.Elem) {
FileType: proto.Int32(66),
Useful: proto.Int32(1),
BizType: proto.Int32(0),
Width: &e.Width,
Height: &e.Height,
Width: proto.Some(e.Width),
Height: proto.Some(e.Height),
FileId: proto.Int32(int32(e.FileId)),
FilePath: &e.FilePath,
ImageType: &e.ImageType,
Size: &e.Size,
FilePath: proto.Some(e.FilePath),
ImageType: proto.Some(e.ImageType),
Size: proto.Some(e.Size),
Md5: e.Md5,
PbReserve: proto.DynamicMessage{
1: uint32(0), 2: uint32(0), 6: "", 10: uint32(0), 15: uint32(8),

View File

@ -46,7 +46,7 @@ func (e *MarketFaceElement) Pack() []*msg.Elem {
},
},
{
Text: &msg.Text{Str: &e.Name},
Text: &msg.Text{Str: proto.Some(e.Name)},
},
}
}

View File

@ -2,6 +2,7 @@ package message
import (
"encoding/json"
"fmt"
"reflect"
"strconv"
"strings"
@ -243,8 +244,8 @@ func ToProtoElems(elems []IMessageElement, generalFlags bool) (r []*msg.Elem) {
r = append(r, &msg.Elem{
SrcMsg: &msg.SourceMsg{
OrigSeqs: []int32{reply.ReplySeq},
SenderUin: &reply.Sender,
Time: &reply.Time,
SenderUin: proto.Some(reply.Sender),
Time: proto.Some(reply.Time),
Flag: proto.Int32(1),
Elems: ToSrcProtoElems(reply.Elements),
RichMsg: []byte{},
@ -278,7 +279,7 @@ func ToProtoElems(elems []IMessageElement, generalFlags bool) (r []*msg.Elem) {
r = append(r, &msg.Elem{
GeneralFlags: &msg.GeneralFlags{
LongTextFlag: proto.Int32(1),
LongTextResid: &e.ResId,
LongTextResid: proto.Some(e.ResId),
PbReserve: []byte{0x78, 0x00, 0xF8, 0x01, 0x00, 0xC8, 0x02, 0x00},
},
})
@ -321,15 +322,15 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
if elem.SrcMsg != nil && len(elem.SrcMsg.OrigSeqs) != 0 {
r := &ReplyElement{
ReplySeq: elem.SrcMsg.OrigSeqs[0],
Time: elem.SrcMsg.GetTime(),
Sender: elem.SrcMsg.GetSenderUin(),
GroupID: elem.SrcMsg.GetToUin(),
Time: elem.SrcMsg.Time.Unwrap(),
Sender: elem.SrcMsg.SenderUin.Unwrap(),
GroupID: elem.SrcMsg.ToUin.Unwrap(),
Elements: ParseMessageElems(elem.SrcMsg.Elems),
}
res = append(res, r)
}
if elem.TransElemInfo != nil {
if elem.TransElemInfo.GetElemType() == 24 { // QFile
if elem.TransElemInfo.ElemType.Unwrap() == 24 { // QFile
i3 := len(elem.TransElemInfo.ElemValue)
r := binary.NewReader(elem.TransElemInfo.ElemValue)
if i3 > 3 {
@ -367,8 +368,8 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
&ShortVideoElement{
Name: string(elem.VideoFile.FileName),
Uuid: elem.VideoFile.FileUuid,
Size: elem.VideoFile.GetFileSize(),
ThumbSize: elem.VideoFile.GetThumbFileSize(),
Size: elem.VideoFile.FileSize.Unwrap(),
ThumbSize: elem.VideoFile.ThumbFileSize.Unwrap(),
Md5: elem.VideoFile.FileMd5,
ThumbMd5: elem.VideoFile.ThumbFileMd5,
},
@ -380,20 +381,20 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
att6 := binary.NewReader(elem.Text.Attr6Buf)
att6.ReadBytes(7)
target := int64(uint32(att6.ReadInt32()))
at := NewAt(target, elem.Text.GetStr())
at := NewAt(target, elem.Text.Str.Unwrap())
at.SubType = AtTypeGroupMember
res = append(res, at)
case len(elem.Text.PbReserve) > 0:
resv := new(msg.TextResvAttr)
_ = proto.Unmarshal(elem.Text.PbReserve, resv)
if resv.GetAtType() == 2 {
at := NewAt(int64(resv.GetAtMemberTinyid()), elem.Text.GetStr())
if resv.AtType.Unwrap() == 2 {
at := NewAt(int64(resv.AtMemberTinyid.Unwrap()), elem.Text.Str.Unwrap())
at.SubType = AtTypeGuildMember
res = append(res, at)
break
}
if resv.GetAtType() == 4 {
at := NewAt(int64(resv.AtChannelInfo.GetChannelId()), elem.Text.GetStr())
if resv.AtType.Unwrap() == 4 {
at := NewAt(int64(resv.AtChannelInfo.ChannelId.Unwrap()), elem.Text.Str.Unwrap())
at.SubType = AtTypeGuildChannel
res = append(res, at)
break
@ -402,10 +403,10 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
default:
res = append(res, NewText(func() string {
// 这么处理应该没问题
if strings.Contains(elem.Text.GetStr(), "\r") && !strings.Contains(elem.Text.GetStr(), "\r\n") {
return strings.ReplaceAll(elem.Text.GetStr(), "\r", "\r\n")
if strings.Contains(elem.Text.Str.Unwrap(), "\r") && !strings.Contains(elem.Text.Str.Unwrap(), "\r\n") {
return strings.ReplaceAll(elem.Text.Str.Unwrap(), "\r", "\r\n")
}
return elem.Text.GetStr()
return elem.Text.Str.Unwrap()
}()))
}
}
@ -418,18 +419,18 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
content = string(binary.ZlibUncompress(elem.RichMsg.Template1[1:]))
}
if content != "" {
if elem.RichMsg.GetServiceId() == 35 {
if elem.RichMsg.ServiceId.Unwrap() == 35 {
elem := forwardMsgFromXML(content)
if elem != nil {
res = append(res, elem)
continue
}
}
if elem.RichMsg.GetServiceId() == 33 {
if elem.RichMsg.ServiceId.Unwrap() == 33 {
continue // 前面一个 elem 已经解析到链接
}
if isOk := strings.Contains(content, "<?xml"); isOk {
res = append(res, NewRichXml(content, int64(elem.RichMsg.GetServiceId())))
res = append(res, NewRichXml(content, int64(elem.RichMsg.ServiceId.Unwrap())))
continue
} else if json.Valid(utils.S2B(content)) {
res = append(res, NewRichJson(content))
@ -443,68 +444,64 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
continue
}
var url string
if elem.CustomFace.GetOrigUrl() == "" {
url = "https://gchat.qpic.cn/gchatpic_new/0/0-0-" + strings.ReplaceAll(binary.CalculateImageResourceId(elem.CustomFace.Md5)[1:37], "-", "") + "/0?term=2"
if elem.CustomFace.OrigUrl.Unwrap() == "" {
url = fmt.Sprintf("https://gchat.qpic.cn/gchatpic_new/0/0-0-%X/0?term=2", elem.CustomFace.Md5)
} else {
url = "https://gchat.qpic.cn" + elem.CustomFace.GetOrigUrl()
url = "https://gchat.qpic.cn" + elem.CustomFace.OrigUrl.Unwrap()
}
if strings.Contains(elem.CustomFace.GetOrigUrl(), "qmeet") {
if strings.Contains(elem.CustomFace.OrigUrl.Unwrap(), "qmeet") {
res = append(res, &GuildImageElement{
FileId: int64(elem.CustomFace.GetFileId()),
FilePath: elem.CustomFace.GetFilePath(),
Size: elem.CustomFace.GetSize(),
Width: elem.CustomFace.GetWidth(),
Height: elem.CustomFace.GetHeight(),
FileId: int64(elem.CustomFace.FileId.Unwrap()),
FilePath: elem.CustomFace.FilePath.Unwrap(),
Size: elem.CustomFace.Size.Unwrap(),
Width: elem.CustomFace.Width.Unwrap(),
Height: elem.CustomFace.Height.Unwrap(),
Url: url,
Md5: elem.CustomFace.Md5,
})
continue
}
bizType := UnknownBizType
if len(elem.CustomFace.PbReserve) != 0 {
attr := new(msg.ResvAttr)
if proto.Unmarshal(elem.CustomFace.PbReserve, attr) == nil {
bizType = ImageBizType(attr.ImageBizType.Unwrap())
}
}
res = append(res, &GroupImageElement{
FileId: int64(elem.CustomFace.GetFileId()),
ImageId: elem.CustomFace.GetFilePath(),
Size: elem.CustomFace.GetSize(),
Width: elem.CustomFace.GetWidth(),
Height: elem.CustomFace.GetHeight(),
Url: url,
ImageBizType: func() ImageBizType {
if len(elem.CustomFace.PbReserve) == 0 {
return UnknownBizType
}
attr := new(msg.ResvAttr)
if proto.Unmarshal(elem.CustomFace.PbReserve, attr) != nil {
return UnknownBizType
}
return ImageBizType(attr.GetImageBizType())
}(),
Md5: elem.CustomFace.Md5,
FileId: int64(elem.CustomFace.FileId.Unwrap()),
ImageId: elem.CustomFace.FilePath.Unwrap(),
Size: elem.CustomFace.Size.Unwrap(),
Width: elem.CustomFace.Width.Unwrap(),
Height: elem.CustomFace.Height.Unwrap(),
Url: url,
ImageBizType: bizType,
Md5: elem.CustomFace.Md5,
})
}
if elem.MarketFace != nil {
face := &MarketFaceElement{
Name: utils.B2S(elem.MarketFace.FaceName),
FaceId: elem.MarketFace.FaceId,
TabId: int32(elem.MarketFace.GetTabId()),
ItemType: int32(elem.MarketFace.GetItemType()),
SubType: int32(elem.MarketFace.GetSubType()),
MediaType: int32(elem.MarketFace.GetMediaType()),
TabId: int32(elem.MarketFace.TabId.Unwrap()),
ItemType: int32(elem.MarketFace.ItemType.Unwrap()),
SubType: int32(elem.MarketFace.SubType.Unwrap()),
MediaType: int32(elem.MarketFace.MediaType.Unwrap()),
EncryptKey: elem.MarketFace.Key,
MagicValue: utils.B2S(elem.MarketFace.Mobileparam),
}
if face.Name == "[骰子]" || face.Name == "[随机骰子]" {
_, v, _ := strings.Cut(face.MagicValue, "=")
t, _ := strconv.ParseInt(v, 10, 32)
return []IMessageElement{
&DiceElement{
MarketFaceElement: face,
Value: func() int32 {
v := strings.SplitN(face.MagicValue, "=", 2)[1]
t, _ := strconv.ParseInt(v, 10, 32)
return int32(t) + 1
}(),
Value: int32(t) + 1,
},
}
}
if face.Name == "[猜拳]" {
v := strings.SplitN(face.MagicValue, "=", 2)[1]
_, v, _ := strings.Cut(face.MagicValue, "=")
t, _ := strconv.ParseInt(v, 10, 32)
return []IMessageElement{
&FingerGuessingElement{
@ -518,13 +515,13 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
}
if elem.NotOnlineImage != nil {
var img string
if elem.NotOnlineImage.GetOrigUrl() != "" {
img = "https://c2cpicdw.qpic.cn" + elem.NotOnlineImage.GetOrigUrl()
if elem.NotOnlineImage.OrigUrl.Unwrap() != "" {
img = "https://c2cpicdw.qpic.cn" + elem.NotOnlineImage.OrigUrl.Unwrap()
} else {
img = "https://c2cpicdw.qpic.cn/offpic_new/0"
downloadPath := elem.NotOnlineImage.GetResId()
if elem.NotOnlineImage.GetDownloadPath() != "" {
downloadPath = elem.NotOnlineImage.GetDownloadPath()
downloadPath := elem.NotOnlineImage.ResId.Unwrap()
if elem.NotOnlineImage.DownloadPath.Unwrap() != "" {
downloadPath = elem.NotOnlineImage.DownloadPath.Unwrap()
}
if !strings.HasPrefix(downloadPath, "/") {
img += "/"
@ -532,39 +529,39 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
img += downloadPath + "/0?term=3"
}
res = append(res, &FriendImageElement{
ImageId: elem.NotOnlineImage.GetFilePath(),
Size: elem.NotOnlineImage.GetFileLen(),
ImageId: elem.NotOnlineImage.FilePath.Unwrap(),
Size: elem.NotOnlineImage.FileLen.Unwrap(),
Url: img,
Md5: elem.NotOnlineImage.PicMd5,
})
}
if elem.QQWalletMsg != nil && elem.QQWalletMsg.AioBody != nil {
// /com/tencent/mobileqq/data/MessageForQQWalletMsg.java#L366
msgType := elem.QQWalletMsg.AioBody.GetMsgType()
if msgType <= 1000 && elem.QQWalletMsg.AioBody.RedType != nil {
msgType := elem.QQWalletMsg.AioBody.MsgType.Unwrap()
if msgType <= 1000 && elem.QQWalletMsg.AioBody.RedType.IsSome() {
return []IMessageElement{
&RedBagElement{
MsgType: RedBagMessageType(msgType),
Title: elem.QQWalletMsg.AioBody.Receiver.GetTitle(),
Title: elem.QQWalletMsg.AioBody.Receiver.Title.Unwrap(),
},
}
}
}
if elem.Face != nil {
res = append(res, NewFace(elem.Face.GetIndex()))
res = append(res, NewFace(elem.Face.Index.Unwrap()))
}
if elem.CommonElem != nil {
switch elem.CommonElem.GetServiceType() {
switch elem.CommonElem.ServiceType.Unwrap() {
case 3:
flash := &msg.MsgElemInfoServtype3{}
_ = proto.Unmarshal(elem.CommonElem.PbElem, flash)
if flash.FlashTroopPic != nil {
res = append(res, &GroupImageElement{
FileId: int64(flash.FlashTroopPic.GetFileId()),
ImageId: flash.FlashTroopPic.GetFilePath(),
Size: flash.FlashTroopPic.GetSize(),
Width: flash.FlashTroopPic.GetWidth(),
Height: flash.FlashTroopPic.GetHeight(),
FileId: int64(flash.FlashTroopPic.FileId.Unwrap()),
ImageId: flash.FlashTroopPic.FilePath.Unwrap(),
Size: flash.FlashTroopPic.Size.Unwrap(),
Width: flash.FlashTroopPic.Width.Unwrap(),
Height: flash.FlashTroopPic.Height.Unwrap(),
Md5: flash.FlashTroopPic.Md5,
Flash: true,
})
@ -572,8 +569,8 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
}
if flash.FlashC2CPic != nil {
res = append(res, &FriendImageElement{
ImageId: flash.FlashC2CPic.GetFilePath(),
Size: flash.FlashC2CPic.GetFileLen(),
ImageId: flash.FlashC2CPic.FilePath.Unwrap(),
Size: flash.FlashC2CPic.FileLen.Unwrap(),
Md5: flash.FlashC2CPic.PicMd5,
Flash: true,
})
@ -582,12 +579,12 @@ func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
case 33:
newSysFaceMsg := &msg.MsgElemInfoServtype33{}
_ = proto.Unmarshal(elem.CommonElem.PbElem, newSysFaceMsg)
res = append(res, NewFace(int32(newSysFaceMsg.GetIndex())))
res = append(res, NewFace(int32(newSysFaceMsg.Index.Unwrap())))
case 37:
animatedStickerMsg := &msg.MsgElemInfoServtype37{}
_ = proto.Unmarshal(elem.CommonElem.PbElem, animatedStickerMsg)
sticker := &AnimatedSticker{
ID: int32(animatedStickerMsg.GetQsid()),
ID: int32(animatedStickerMsg.Qsid.Unwrap()),
Name: strings.TrimPrefix(string(animatedStickerMsg.Text), "/"),
}
return []IMessageElement{sticker} // sticker 永远为单独消息

View File

@ -19,7 +19,7 @@ var imgOld = []byte{
func (e *TextElement) Pack() (r []*msg.Elem) {
r = append(r, &msg.Elem{
Text: &msg.Text{
Str: &e.Content,
Str: proto.Some(e.Content),
},
})
return
@ -44,7 +44,7 @@ func (e *FaceElement) Pack() (r []*msg.Elem) {
} else {
r = append(r, &msg.Elem{
Face: &msg.Face{
Index: &e.Index,
Index: proto.Some(e.Index),
Old: binary.ToBytes(int16(0x1445 - 4 + e.Index)),
Buf: []byte{0x00, 0x01, 0x00, 0x04, 0x52, 0xCC, 0xF5, 0xD0},
},
@ -59,7 +59,7 @@ func (e *AtElement) Pack() (r []*msg.Elem) {
case AtTypeGroupMember:
r = append(r, &msg.Elem{
Text: &msg.Text{
Str: &e.Display,
Str: proto.Some(e.Display),
Attr6Buf: binary.NewWriterF(func(w *binary.Writer) {
w.WriteUInt16(1)
w.WriteUInt16(0)
@ -78,7 +78,7 @@ func (e *AtElement) Pack() (r []*msg.Elem) {
pb, _ := proto.Marshal(&msg.TextResvAttr{AtType: proto.Uint32(2), AtMemberTinyid: proto.Uint64(uint64(e.Target))})
r = append(r, &msg.Elem{
Text: &msg.Text{
Str: &e.Display,
Str: proto.Some(e.Display),
PbReserve: pb,
},
})
@ -92,13 +92,13 @@ func (e *ServiceElement) Pack() (r []*msg.Elem) {
// id =35 已移至 ForwardElement
if e.Id == 1 {
r = append(r, &msg.Elem{
Text: &msg.Text{Str: &e.ResId},
Text: &msg.Text{Str: proto.Some(e.ResId)},
})
}
r = append(r, &msg.Elem{
RichMsg: &msg.RichMsg{
Template1: append([]byte{1}, binary.ZlibCompress([]byte(e.Content))...),
ServiceId: &e.Id,
ServiceId: proto.Some(e.Id),
},
})
return
@ -179,14 +179,14 @@ func (e *AnimatedSticker) Pack() []*msg.Elem {
CommonElem: &msg.CommonElem{
ServiceType: proto.Int32(37),
PbElem: pbElem,
BusinessType: &business,
BusinessType: proto.Some(business),
},
}
pbReverse, _ := proto.Marshal(&msg.Text{Str: proto.String(fmt.Sprintf("[%s]请使用最新版手机QQ体验新功能", e.Name))})
text := &msg.Elem{
Text: &msg.Text{
Str: &name,
Str: proto.Some(name),
PbReserve: pbReverse,
},
}

View File

@ -115,76 +115,76 @@ func (f *Feed) ToSendingPayload(selfUin int64) string {
func DecodeFeed(p *channel.StFeed) *Feed {
f := &Feed{
Id: p.GetId(),
Title: p.Title.Contents[0].TextContent.GetText(),
Id: p.Id.Unwrap(),
Title: p.Title.Contents[0].TextContent.Text.Unwrap(),
SubTitle: "",
CreateTime: int64(p.GetCreateTime()),
GuildId: p.ChannelInfo.Sign.GetGuildId(),
ChannelId: p.ChannelInfo.Sign.GetChannelId(),
CreateTime: int64(p.CreateTime.Unwrap()),
GuildId: p.ChannelInfo.Sign.GuildId.Unwrap(),
ChannelId: p.ChannelInfo.Sign.ChannelId.Unwrap(),
}
if p.Subtitle != nil && len(p.Subtitle.Contents) > 0 {
f.SubTitle = p.Subtitle.Contents[0].TextContent.GetText()
f.SubTitle = p.Subtitle.Contents[0].TextContent.Text.Unwrap()
}
if p.Poster != nil {
tinyId, _ := strconv.ParseUint(p.Poster.GetId(), 10, 64)
tinyId, _ := strconv.ParseUint(p.Poster.Id.Unwrap(), 10, 64)
f.Poster = &FeedPoster{
TinyId: tinyId,
TinyIdStr: p.Poster.GetId(),
Nickname: p.Poster.GetNick(),
TinyIdStr: p.Poster.Id.Unwrap(),
Nickname: p.Poster.Nick.Unwrap(),
}
if p.Poster.Icon != nil {
f.Poster.IconUrl = p.Poster.Icon.GetIconUrl()
f.Poster.IconUrl = p.Poster.Icon.IconUrl.Unwrap()
}
}
for _, video := range p.Videos {
f.Videos = append(f.Videos, &FeedVideoInfo{
FileId: video.GetFileId(),
PatternId: video.GetPatternId(),
Url: video.GetPlayUrl(),
Width: video.GetWidth(),
Height: video.GetHeight(),
FileId: video.FileId.Unwrap(),
PatternId: video.PatternId.Unwrap(),
Url: video.PlayUrl.Unwrap(),
Width: video.Width.Unwrap(),
Height: video.Height.Unwrap(),
})
}
for _, image := range p.Images {
f.Images = append(f.Images, &FeedImageInfo{
FileId: image.GetPicId(),
PatternId: image.GetPatternId(),
Url: image.GetPicUrl(),
Width: image.GetWidth(),
Height: image.GetHeight(),
FileId: image.PicId.Unwrap(),
PatternId: image.PatternId.Unwrap(),
Url: image.PicUrl.Unwrap(),
Width: image.Width.Unwrap(),
Height: image.Height.Unwrap(),
})
}
for _, c := range p.Contents.Contents {
if c.TextContent != nil {
f.Contents = append(f.Contents, &TextElement{Content: c.TextContent.GetText()})
f.Contents = append(f.Contents, &TextElement{Content: c.TextContent.Text.Unwrap()})
}
if c.EmojiContent != nil {
id, _ := strconv.ParseInt(c.EmojiContent.GetId(), 10, 64)
id, _ := strconv.ParseInt(c.EmojiContent.Id.Unwrap(), 10, 64)
f.Contents = append(f.Contents, &EmojiElement{
Index: int32(id),
Id: c.EmojiContent.GetId(),
Id: c.EmojiContent.Id.Unwrap(),
Name: message.FaceNameById(int(id)),
})
}
if c.ChannelContent != nil && c.ChannelContent.ChannelInfo != nil {
f.Contents = append(f.Contents, &ChannelQuoteElement{
GuildId: c.ChannelContent.ChannelInfo.Sign.GetGuildId(),
ChannelId: c.ChannelContent.ChannelInfo.Sign.GetChannelId(),
DisplayText: c.ChannelContent.ChannelInfo.GetName(),
GuildId: c.ChannelContent.ChannelInfo.Sign.GuildId.Unwrap(),
ChannelId: c.ChannelContent.ChannelInfo.Sign.ChannelId.Unwrap(),
DisplayText: c.ChannelContent.ChannelInfo.Name.Unwrap(),
})
}
if c.AtContent != nil && c.AtContent.User != nil {
tinyId, _ := strconv.ParseUint(c.AtContent.User.GetId(), 10, 64)
tinyId, _ := strconv.ParseUint(c.AtContent.User.Id.Unwrap(), 10, 64)
f.Contents = append(f.Contents, &AtElement{
Id: c.AtContent.User.GetId(),
Id: c.AtContent.User.Id.Unwrap(),
TinyId: tinyId,
Nickname: c.AtContent.User.GetNick(),
Nickname: c.AtContent.User.Nick.Unwrap(),
})
}
if c.UrlContent != nil {
f.Contents = append(f.Contents, &UrlQuoteElement{
Url: c.UrlContent.GetUrl(),
DisplayText: c.UrlContent.GetDisplayText(),
Url: c.UrlContent.Url.Unwrap(),
DisplayText: c.UrlContent.DisplayText.Unwrap(),
})
}
}