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

View File

@ -98,27 +98,12 @@ func AppendUUID(dst []byte, uuid []byte) []byte {
return dst return dst
} }
func ToIPV4Address(arr []byte) string {
ip := (net.IP)(arr)
return ip.String()
}
func UInt32ToIPV4Address(i uint32) string { func UInt32ToIPV4Address(i uint32) string {
ip := net.IP{0, 0, 0, 0} ip := net.IP{0, 0, 0, 0}
binary2.LittleEndian.PutUint32(ip, i) binary2.LittleEndian.PutUint32(ip, i)
return ip.String() 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 { func ToBytes(i any) []byte {
return NewWriterF(func(w *Writer) { return NewWriterF(func(w *Writer) {
// TODO: more types // TODO: more types

View File

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

View File

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

View File

@ -19,6 +19,7 @@ import (
"github.com/Mrs4s/MiraiGo/binary" "github.com/Mrs4s/MiraiGo/binary"
"github.com/Mrs4s/MiraiGo/client/internal/auth" "github.com/Mrs4s/MiraiGo/client/internal/auth"
"github.com/Mrs4s/MiraiGo/client/internal/highway" "github.com/Mrs4s/MiraiGo/client/internal/highway"
"github.com/Mrs4s/MiraiGo/client/internal/intern"
"github.com/Mrs4s/MiraiGo/client/internal/network" "github.com/Mrs4s/MiraiGo/client/internal/network"
"github.com/Mrs4s/MiraiGo/client/internal/oicq" "github.com/Mrs4s/MiraiGo/client/internal/oicq"
"github.com/Mrs4s/MiraiGo/client/pb/msg" "github.com/Mrs4s/MiraiGo/client/pb/msg"
@ -35,6 +36,8 @@ type QQClient struct {
// option // option
AllowSlider bool AllowSlider bool
UseHighwayMessage bool
UseFragmentMessage bool
// account info // account info
Online atomic.Bool Online atomic.Bool
@ -576,6 +579,7 @@ func (c *QQClient) GetGroupList() ([]*GroupInfo, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
interner := intern.NewStringInterner()
r := rsp.([]*GroupInfo) r := rsp.([]*GroupInfo)
wg := sync.WaitGroup{} wg := sync.WaitGroup{}
batch := 50 batch := 50
@ -588,11 +592,12 @@ func (c *QQClient) GetGroupList() ([]*GroupInfo, error) {
for j := i; j < k; j++ { for j := i; j < k; j++ {
go func(g *GroupInfo, wg *sync.WaitGroup) { go func(g *GroupInfo, wg *sync.WaitGroup) {
defer wg.Done() defer wg.Done()
m, err := c.GetGroupMembers(g) m, err := c.getGroupMembers(g, interner)
if err != nil { if err != nil {
return return
} }
g.Members = m g.Members = m
g.Name = interner.Intern(g.Name)
}(r[j], &wg) }(r[j], &wg)
} }
wg.Wait() wg.Wait()
@ -601,6 +606,11 @@ func (c *QQClient) GetGroupList() ([]*GroupInfo, error) {
} }
func (c *QQClient) GetGroupMembers(group *GroupInfo) ([]*GroupMemberInfo, 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 nextUin int64
var list []*GroupMemberInfo var list []*GroupMemberInfo
for { for {
@ -618,6 +628,9 @@ func (c *QQClient) GetGroupMembers(group *GroupInfo) ([]*GroupMemberInfo, error)
if m.Uin == group.OwnerUin { if m.Uin == group.OwnerUin {
m.Permission = Owner 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...) list = append(list, rsp.list...)
if nextUin == 0 { if nextUin == 0 {
@ -753,10 +766,6 @@ func (c *QQClient) updateGroupName(groupCode int64, newName string) {
_, _ = c.sendAndWait(c.buildGroupNameUpdatePacket(groupCode, newName)) _, _ = 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) { func (c *QQClient) groupMuteAll(groupCode int64, mute bool) {
_, _ = c.sendAndWait(c.buildGroupMuteAllPacket(groupCode, mute)) _, _ = 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.SigSession = rsp.RspBody.SigSession
c.highwaySession.SessionKey = rsp.RspBody.SessionKey c.highwaySession.SessionKey = rsp.RspBody.SessionKey
for _, srv := range rsp.RspBody.Addrs { for _, srv := range rsp.RspBody.Addrs {
if srv.GetServiceType() == 10 { if srv.ServiceType.Unwrap() == 10 {
for _, addr := range srv.Addrs { 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 { 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 { for _, buf := range services {
comm, payload := readService(buf) comm, payload := readService(buf)
if comm.GetService() == 16 { if comm.Service.Unwrap() == 16 {
rsp := profilecard.GateVaProfileGateRsp{} rsp := profilecard.GateVaProfileGateRsp{}
_ = proto.Unmarshal(payload, &rsp) _ = proto.Unmarshal(payload, &rsp)
if rsp.QidInfo != nil { 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, Uin: g.GroupUin,
Code: g.GroupCode, Code: g.GroupCode,
Name: g.GroupName, Name: g.GroupName,
Memo: g.GroupMemo,
OwnerUin: g.GroupOwnerUin, OwnerUin: g.GroupOwnerUin,
MemberCount: uint16(g.MemberNum), MemberCount: uint16(g.MemberNum),
MaxMemberCount: uint16(g.MaxGroupMemberNum), MaxMemberCount: uint16(g.MaxGroupMemberNum),
@ -537,6 +536,10 @@ func decodeGroupMemberListResponse(_ *QQClient, _ *network.IncomingPacketInfo, p
next := r.ReadInt64(4) next := r.ReadInt64(4)
l := make([]*GroupMemberInfo, 0, len(members)) l := make([]*GroupMemberInfo, 0, len(members))
for _, m := range members { for _, m := range members {
permission := Member
if m.Flag&1 != 0 {
permission = Administrator
}
l = append(l, &GroupMemberInfo{ l = append(l, &GroupMemberInfo{
Uin: m.MemberUin, Uin: m.MemberUin,
Nickname: m.Nick, Nickname: m.Nick,
@ -546,14 +549,8 @@ func decodeGroupMemberListResponse(_ *QQClient, _ *network.IncomingPacketInfo, p
JoinTime: m.JoinTime, JoinTime: m.JoinTime,
LastSpeakTime: m.LastSpeakTime, LastSpeakTime: m.LastSpeakTime,
SpecialTitle: m.SpecialTitle, SpecialTitle: m.SpecialTitle,
SpecialTitleExpireTime: m.SpecialTitleExpireTime,
ShutUpTimestamp: m.ShutUpTimestap, ShutUpTimestamp: m.ShutUpTimestap,
Permission: func() MemberPermission { Permission: permission,
if m.Flag == 1 {
return Administrator
}
return Member
}(),
}) })
} }
return &groupMemberListResponse{ return &groupMemberListResponse{
@ -572,6 +569,13 @@ func decodeGroupMemberInfoResponse(c *QQClient, _ *network.IncomingPacketInfo, p
return nil, errors.WithStack(ErrMemberNotFound) return nil, errors.WithStack(ErrMemberNotFound)
} }
group := c.FindGroup(rsp.GroupCode) group := c.FindGroup(rsp.GroupCode)
permission := Member
if rsp.MemInfo.Uin == group.OwnerUin {
permission = Owner
}
if rsp.MemInfo.Role == 2 {
permission = Administrator
}
return &GroupMemberInfo{ return &GroupMemberInfo{
Group: group, Group: group,
Uin: rsp.MemInfo.Uin, Uin: rsp.MemInfo.Uin,
@ -582,16 +586,7 @@ func decodeGroupMemberInfoResponse(c *QQClient, _ *network.IncomingPacketInfo, p
JoinTime: rsp.MemInfo.Join, JoinTime: rsp.MemInfo.Join,
LastSpeakTime: rsp.MemInfo.LastSpeak, LastSpeakTime: rsp.MemInfo.LastSpeak,
SpecialTitle: string(rsp.MemInfo.SpecialTitle), SpecialTitle: string(rsp.MemInfo.SpecialTitle),
SpecialTitleExpireTime: int64(rsp.MemInfo.SpecialTitleExpireTime), Permission: permission,
Permission: func() MemberPermission {
if rsp.MemInfo.Uin == group.OwnerUin {
return Owner
}
if rsp.MemInfo.Role == 2 {
return Administrator
}
return Member
}(),
}, nil }, nil
} }
@ -607,19 +602,19 @@ func decodeOffPicUpResponse(_ *QQClient, _ *network.IncomingPacketInfo, payload
Message: string(rsp.FailMsg), Message: string(rsp.FailMsg),
}, nil }, nil
} }
if rsp.GetSubcmd() != 1 || len(rsp.TryupImgRsp) == 0 { if rsp.Subcmd.Unwrap() != 1 || len(rsp.TryupImgRsp) == 0 {
return &imageUploadResponse{ return &imageUploadResponse{
ResultCode: -2, ResultCode: -2,
}, nil }, nil
} }
imgRsp := rsp.TryupImgRsp[0] imgRsp := rsp.TryupImgRsp[0]
if imgRsp.GetResult() != 0 { if imgRsp.Result.Unwrap() != 0 {
return &imageUploadResponse{ return &imageUploadResponse{
ResultCode: int32(*imgRsp.Result), ResultCode: int32(imgRsp.Result.Unwrap()),
Message: string(imgRsp.FailMsg), Message: string(imgRsp.FailMsg),
}, nil }, nil
} }
if imgRsp.GetFileExit() { if imgRsp.FileExit.Unwrap() {
return &imageUploadResponse{ return &imageUploadResponse{
IsExists: true, IsExists: true,
ResourceId: string(imgRsp.UpResid), 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") return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
} }
data := binary.NewReader(info.MsgData) 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 { if _, ok := c.transCache.Get(idStr); ok {
return nil, nil return nil, nil
} }
c.transCache.Add(idStr, unit{}, time.Second*15) c.transCache.Add(idStr, unit{}, time.Second*15)
if info.GetMsgType() == 34 { if info.MsgType.Unwrap() == 34 {
data.ReadInt32() data.ReadInt32()
data.ReadByte() data.ReadByte()
target := int64(uint32(data.ReadInt32())) target := int64(uint32(data.ReadInt32()))
typ := int32(data.ReadByte()) typ := int32(data.ReadByte())
operator := int64(uint32(data.ReadInt32())) operator := int64(uint32(data.ReadInt32()))
if g := c.FindGroupByUin(info.GetFromUin()); g != nil { if g := c.FindGroupByUin(info.FromUin.Unwrap()); g != nil {
groupLeaveLock.Lock() groupLeaveLock.Lock()
defer groupLeaveLock.Unlock() defer groupLeaveLock.Unlock()
switch typ { 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) data.ReadBytes(5)
var4 := int32(data.ReadByte()) var4 := int32(data.ReadByte())
var5 := int64(0) var5 := int64(0)
@ -711,14 +706,12 @@ func decodeOnlinePushTransPacket(c *QQClient, _ *network.IncomingPacketInfo, pay
if var4 != 0 && var4 != 1 { if var4 != 0 && var4 != 1 {
var5 = int64(uint32(data.ReadInt32())) 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 { if var5 == 0 && data.Len() == 1 {
newPermission := func() MemberPermission { newPermission := Member
if data.ReadByte() == 1 { if data.ReadByte() == 1 {
return Administrator newPermission = Administrator
} }
return Member
}()
mem := g.FindMember(target) mem := g.FindMember(target)
if mem.Permission != newPermission { if mem.Permission != newPermission {
old := mem.Permission old := mem.Permission
@ -782,7 +775,7 @@ func decodeMSFOfflinePacket(c *QQClient, _ *network.IncomingPacketInfo, _ []byte
// OidbSvc.0xd79 // OidbSvc.0xd79
func decodeWordSegmentation(_ *QQClient, _ *network.IncomingPacketInfo, payload []byte) (any, error) { func decodeWordSegmentation(_ *QQClient, _ *network.IncomingPacketInfo, payload []byte) (any, error) {
rsp := &oidb.D79RspBody{} rsp := oidb.D79RspBody{}
err := unpackOIDBPackage(payload, &rsp) err := unpackOIDBPackage(payload, &rsp)
if err != nil { if err != nil {
return nil, err return nil, err
@ -815,8 +808,8 @@ func decodeAppInfoResponse(_ *QQClient, _ *incomingPacketInfo, payload []byte) (
if err := proto.Unmarshal(payload, &pkg); err != nil { if err := proto.Unmarshal(payload, &pkg); err != nil {
return nil, errors.Wrap(err, "failed to unmarshal protobuf message") return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
} }
if pkg.GetRetCode() != 0 { if pkg.RetCode.Unwrap() != 0 {
return nil, errors.New(pkg.GetErrMsg()) return nil, errors.New(pkg.ErrMsg.Unwrap())
} }
if err := proto.Unmarshal(pkg.BusiBuff, &rsp); err != nil { if err := proto.Unmarshal(pkg.BusiBuff, &rsp); err != nil {
return nil, errors.Wrap(err, "failed to unmarshal protobuf message") 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{ Comm: &faceroam.PlatInfo{
Implat: proto.Int64(109), Implat: proto.Int64(109),
Osver: proto.String(string(c.deviceInfo.Version.Release)), Osver: proto.String(string(c.deviceInfo.Version.Release)),
Mqqver: &c.version.SortVersionName, Mqqver: proto.Some(c.version.SortVersionName),
}, },
Uin: proto.Uint64(uint64(c.Uin)), Uin: proto.Uint64(uint64(c.Uin)),
SubCmd: proto.Uint32(1), 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-- { for i := len(rsp.RspUserInfo.Filename) - 1; i >= 0; i-- {
res[len(rsp.RspUserInfo.Filename)-1-i] = &CustomFace{ res[len(rsp.RspUserInfo.Filename)-1-i] = &CustomFace{
ResId: rsp.RspUserInfo.Filename[i], 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 return res, nil

View File

@ -176,12 +176,12 @@ func qualityTest(addr string) (int64, error) {
} }
func (c *QQClient) parsePrivateMessage(msg *msg.Message) *message.PrivateMessage { 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 var sender *message.Sender
if friend == nil { if friend == nil {
sender = &message.Sender{ sender = &message.Sender{
Uin: msg.Head.GetFromUin(), Uin: msg.Head.FromUin.Unwrap(),
Nickname: msg.Head.GetFromNick(), Nickname: msg.Head.FromNick.Unwrap(),
} }
} else { } else {
sender = &message.Sender{ sender = &message.Sender{
@ -191,18 +191,18 @@ func (c *QQClient) parsePrivateMessage(msg *msg.Message) *message.PrivateMessage
} }
} }
ret := &message.PrivateMessage{ ret := &message.PrivateMessage{
Id: msg.Head.GetMsgSeq(), Id: msg.Head.MsgSeq.Unwrap(),
Target: msg.Head.GetToUin(), Target: msg.Head.ToUin.Unwrap(),
Time: msg.Head.GetMsgTime(), Time: msg.Head.MsgTime.Unwrap(),
Sender: sender, Sender: sender,
Self: c.Uin, Self: c.Uin,
Elements: func() []message.IMessageElement { Elements: func() []message.IMessageElement {
if msg.Body.RichText.Ptt != nil { if msg.Body.RichText.Ptt != nil {
return []message.IMessageElement{ return []message.IMessageElement{
&message.VoiceElement{ &message.VoiceElement{
Name: msg.Body.RichText.Ptt.GetFileName(), Name: msg.Body.RichText.Ptt.FileName.Unwrap(),
Md5: msg.Body.RichText.Ptt.FileMd5, 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), 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 { if msg.Body.RichText.Attr != nil {
ret.InternalId = msg.Body.RichText.Attr.GetRandom() ret.InternalId = msg.Body.RichText.Attr.Random.Unwrap()
} }
return ret return ret
} }
@ -219,23 +219,23 @@ func (c *QQClient) parsePrivateMessage(msg *msg.Message) *message.PrivateMessage
func (c *QQClient) parseTempMessage(msg *msg.Message) *message.TempMessage { func (c *QQClient) parseTempMessage(msg *msg.Message) *message.TempMessage {
var groupCode int64 var groupCode int64
var groupName string var groupName string
group := c.FindGroupByUin(msg.Head.C2CTmpMsgHead.GetGroupUin()) group := c.FindGroupByUin(msg.Head.C2CTmpMsgHead.GroupUin.Unwrap())
sender := &message.Sender{ sender := &message.Sender{
Uin: msg.Head.GetFromUin(), Uin: msg.Head.FromUin.Unwrap(),
Nickname: "Unknown", Nickname: "Unknown",
IsFriend: false, IsFriend: false,
} }
if group != nil { if group != nil {
groupCode = group.Code groupCode = group.Code
groupName = group.Name groupName = group.Name
mem := group.FindMember(msg.Head.GetFromUin()) mem := group.FindMember(msg.Head.FromUin.Unwrap())
if mem != nil { if mem != nil {
sender.Nickname = mem.Nickname sender.Nickname = mem.Nickname
sender.CardName = mem.CardName sender.CardName = mem.CardName
} }
} }
return &message.TempMessage{ return &message.TempMessage{
Id: msg.Head.GetMsgSeq(), Id: msg.Head.MsgSeq.Unwrap(),
GroupCode: groupCode, GroupCode: groupCode,
GroupName: groupName, GroupName: groupName,
Self: c.Uin, Self: c.Uin,
@ -278,7 +278,7 @@ func (b *messageBuilder) build() *msg.Message {
b.lock.Lock() b.lock.Lock()
defer b.lock.Unlock() defer b.lock.Unlock()
sort.Slice(b.slices, func(i, j int) bool { 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] base := b.slices[0]
for _, m := range b.slices[1:] { 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 { func genLongTemplate(resID, brief string, ts int64) *message.ServiceElement {
limited := func() string { limited := func() string {
if len(brief) > 30 { if ss := []rune(brief); len(ss) > 30 {
return brief[:30] + "…" return string(ss[:30]) + "…"
} }
return brief return brief
}() }()
@ -333,8 +333,20 @@ func (c *QQClient) getWebDeviceInfo() (i string) {
return 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 { func (c *QQClient) packOIDBPackage(cmd, serviceType int32, body []byte) []byte {
pkg := &oidb.OIDBSSOPkg{ pkg := getOidbSSOPackage()
defer oidbSSOPool.Put(pkg)
*pkg = oidb.OIDBSSOPkg{
Command: cmd, Command: cmd,
ServiceType: serviceType, ServiceType: serviceType,
Bodybuffer: body, Bodybuffer: body,
@ -354,7 +366,8 @@ func (c *QQClient) packOIDBPackageProto(cmd, serviceType int32, msg proto.Messag
} }
func unpackOIDBPackage(payload []byte, rsp proto.Message) error { 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 { if err := proto.Unmarshal(payload, pkg); err != nil {
return errors.Wrap(err, "failed to unmarshal protobuf message") 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 return nil, e
} }
fs = &GroupFileSystem{ fs = &GroupFileSystem{
FileCount: rsp.(*oidb.D6D8RspBody).FileCountRsp.GetAllFileCount(), FileCount: rsp.(*oidb.D6D8RspBody).FileCountRsp.AllFileCount.Unwrap(),
LimitCount: rsp.(*oidb.D6D8RspBody).FileCountRsp.GetLimitCount(), LimitCount: rsp.(*oidb.D6D8RspBody).FileCountRsp.LimitCount.Unwrap(),
GroupCode: groupCode, GroupCode: groupCode,
client: c, client: c,
} }
@ -93,8 +93,8 @@ func (c *QQClient) GetGroupFileSystem(groupCode int64) (fs *GroupFileSystem, err
if err != nil { if err != nil {
return nil, err return nil, err
} }
fs.TotalSpace = rsp.(*oidb.D6D8RspBody).GroupSpaceRsp.GetTotalSpace() fs.TotalSpace = rsp.(*oidb.D6D8RspBody).GroupSpaceRsp.TotalSpace.Unwrap()
fs.UsedSpace = rsp.(*oidb.D6D8RspBody).GroupSpaceRsp.GetUsedSpace() fs.UsedSpace = rsp.(*oidb.D6D8RspBody).GroupSpaceRsp.UsedSpace.Unwrap()
return fs, nil return fs, nil
} }
@ -129,34 +129,34 @@ func (fs *GroupFileSystem) GetFilesByFolder(folderID string) ([]*GroupFile, []*G
if item.FileInfo != nil { if item.FileInfo != nil {
files = append(files, &GroupFile{ files = append(files, &GroupFile{
GroupCode: fs.GroupCode, GroupCode: fs.GroupCode,
FileId: item.FileInfo.GetFileId(), FileId: item.FileInfo.FileId.Unwrap(),
FileName: item.FileInfo.GetFileName(), FileName: item.FileInfo.FileName.Unwrap(),
BusId: int32(item.FileInfo.GetBusId()), BusId: int32(item.FileInfo.BusId.Unwrap()),
FileSize: int64(item.FileInfo.GetFileSize()), FileSize: int64(item.FileInfo.FileSize.Unwrap()),
UploadTime: int64(item.FileInfo.GetUploadTime()), UploadTime: int64(item.FileInfo.UploadTime.Unwrap()),
DeadTime: int64(item.FileInfo.GetDeadTime()), DeadTime: int64(item.FileInfo.DeadTime.Unwrap()),
ModifyTime: int64(item.FileInfo.GetModifyTime()), ModifyTime: int64(item.FileInfo.ModifyTime.Unwrap()),
DownloadTimes: int64(item.FileInfo.GetDownloadTimes()), DownloadTimes: int64(item.FileInfo.DownloadTimes.Unwrap()),
Uploader: int64(item.FileInfo.GetUploaderUin()), Uploader: int64(item.FileInfo.UploaderUin.Unwrap()),
UploaderName: item.FileInfo.GetUploaderName(), UploaderName: item.FileInfo.UploaderName.Unwrap(),
}) })
} }
if item.FolderInfo != nil { if item.FolderInfo != nil {
folders = append(folders, &GroupFolder{ folders = append(folders, &GroupFolder{
GroupCode: fs.GroupCode, GroupCode: fs.GroupCode,
FolderId: item.FolderInfo.GetFolderId(), FolderId: item.FolderInfo.FolderId.Unwrap(),
FolderName: item.FolderInfo.GetFolderName(), FolderName: item.FolderInfo.FolderName.Unwrap(),
CreateTime: int64(item.FolderInfo.GetCreateTime()), CreateTime: int64(item.FolderInfo.CreateTime.Unwrap()),
Creator: int64(item.FolderInfo.GetCreateUin()), Creator: int64(item.FolderInfo.CreateUin.Unwrap()),
CreatorName: item.FolderInfo.GetCreatorName(), CreatorName: item.FolderInfo.CreatorName.Unwrap(),
TotalFileCount: item.FolderInfo.GetTotalFileCount(), TotalFileCount: item.FolderInfo.TotalFileCount.Unwrap(),
}) })
} }
} }
if rsp.FileListInfoRsp.GetIsEnd() { if rsp.FileListInfoRsp.IsEnd.Unwrap() {
break break
} }
startIndex = rsp.FileListInfoRsp.GetNextIndex() startIndex = rsp.FileListInfoRsp.NextIndex.Unwrap()
} }
return files, folders, nil return files, folders, nil
} }
@ -182,8 +182,8 @@ func (fs *GroupFileSystem) UploadFile(p, name, folderId string) error {
return errors.Wrap(err, "query upload failed") return errors.Wrap(err, "query upload failed")
} }
rsp := i.(*oidb.UploadFileRspBody) rsp := i.(*oidb.UploadFileRspBody)
if rsp.GetBoolFileExist() { if rsp.BoolFileExist.Unwrap() {
_, pkt := fs.client.buildGroupFileFeedsRequest(fs.GroupCode, rsp.GetFileId(), rsp.GetBusId(), rand.Int31()) _, pkt := fs.client.buildGroupFileFeedsRequest(fs.GroupCode, rsp.FileId.Unwrap(), rsp.BusId.Unwrap(), rand.Int31())
return fs.client.sendPacket(pkt) return fs.client.sendPacket(pkt)
} }
if len(rsp.UploadIpLanV4) == 0 { if len(rsp.UploadIpLanV4) == 0 {
@ -195,15 +195,15 @@ func (fs *GroupFileSystem) UploadFile(p, name, folderId string) error {
Entry: &exciting.GroupFileUploadEntry{ Entry: &exciting.GroupFileUploadEntry{
BusiBuff: &exciting.ExcitingBusiInfo{ BusiBuff: &exciting.ExcitingBusiInfo{
BusId: rsp.BusId, BusId: rsp.BusId,
SenderUin: &fs.client.Uin, SenderUin: proto.Some(fs.client.Uin),
ReceiverUin: &fs.GroupCode, ReceiverUin: proto.Some(fs.GroupCode),
GroupCode: &fs.GroupCode, GroupCode: proto.Some(fs.GroupCode),
}, },
FileEntry: &exciting.ExcitingFileEntry{ FileEntry: &exciting.ExcitingFileEntry{
FileSize: &size, FileSize: proto.Some(size),
Md5: md5Hash, Md5: md5Hash,
Sha1: sha1Hash, Sha1: sha1Hash,
FileId: []byte(rsp.GetFileId()), FileId: []byte(rsp.FileId.Unwrap()),
UploadKey: rsp.CheckKey, UploadKey: rsp.CheckKey,
}, },
ClientInfo: &exciting.ExcitingClientInfo{ ClientInfo: &exciting.ExcitingClientInfo{
@ -213,12 +213,12 @@ func (fs *GroupFileSystem) UploadFile(p, name, folderId string) error {
ClientVer: proto.String("9e9c09dc"), ClientVer: proto.String("9e9c09dc"),
Unknown: proto.Int32(4), Unknown: proto.Int32(4),
}, },
FileNameInfo: &exciting.ExcitingFileNameInfo{FileName: &name}, FileNameInfo: &exciting.ExcitingFileNameInfo{FileName: proto.Some(name)},
Host: &exciting.ExcitingHostConfig{Hosts: []*exciting.ExcitingHostInfo{ Host: &exciting.ExcitingHostConfig{Hosts: []*exciting.ExcitingHostInfo{
{ {
Url: &exciting.ExcitingUrlInfo{ Url: &exciting.ExcitingUrlInfo{
Unknown: proto.Int32(1), Unknown: proto.Int32(1),
Host: &rsp.UploadIpLanV4[0], Host: proto.Some(rsp.UploadIpLanV4[0]),
}, },
Port: rsp.UploadPort, 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 { if _, err = fs.client.highwaySession.UploadExciting(input); err != nil {
return errors.Wrap(err, "upload failed") 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) 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) { func (c *QQClient) buildGroupFileUploadReqPacket(parentFolderID, fileName string, groupCode, fileSize int64, md5, sha1 []byte) (uint16, []byte) {
body := &oidb.D6D6ReqBody{UploadFileReq: &oidb.UploadFileReqBody{ body := &oidb.D6D6ReqBody{UploadFileReq: &oidb.UploadFileReqBody{
GroupCode: &groupCode, GroupCode: proto.Some(groupCode),
AppId: proto.Int32(3), AppId: proto.Int32(3),
BusId: proto.Int32(102), BusId: proto.Int32(102),
Entrance: proto.Int32(5), Entrance: proto.Int32(5),
ParentFolderId: &parentFolderID, ParentFolderId: proto.Some(parentFolderID),
FileName: &fileName, FileName: proto.Some(fileName),
LocalPath: proto.String("/storage/emulated/0/Pictures/files/s/" + fileName), LocalPath: proto.String("/storage/emulated/0/Pictures/files/s/" + fileName),
Int64FileSize: &fileSize, Int64FileSize: proto.Some(fileSize),
Sha: sha1, Sha: sha1,
Md5: md5, Md5: md5,
SupportMultiUpload: proto.Bool(true), SupportMultiUpload: proto.Bool(true),
@ -298,7 +298,7 @@ func (c *QQClient) buildGroupFileFeedsRequest(groupCode int64, fileID string, bu
GroupCode: proto.Uint64(uint64(groupCode)), GroupCode: proto.Uint64(uint64(groupCode)),
AppId: proto.Uint32(3), AppId: proto.Uint32(3),
FeedsInfoList: []*oidb.GroupFileFeedsInfo{{ FeedsInfoList: []*oidb.GroupFileFeedsInfo{{
FileId: &fileID, FileId: proto.Some(fileID),
FeedFlag: proto.Uint32(1), FeedFlag: proto.Uint32(1),
BusId: proto.Uint32(uint32(busId)), BusId: proto.Uint32(uint32(busId)),
MsgRandom: proto.Uint32(uint32(msgRand)), MsgRandom: proto.Uint32(uint32(msgRand)),
@ -312,14 +312,14 @@ func (c *QQClient) buildGroupFileListRequestPacket(groupCode int64, folderID str
body := &oidb.D6D8ReqBody{FileListInfoReq: &oidb.GetFileListReqBody{ body := &oidb.D6D8ReqBody{FileListInfoReq: &oidb.GetFileListReqBody{
GroupCode: proto.Uint64(uint64(groupCode)), GroupCode: proto.Uint64(uint64(groupCode)),
AppId: proto.Uint32(3), AppId: proto.Uint32(3),
FolderId: &folderID, FolderId: proto.Some(folderID),
FileCount: proto.Uint32(20), FileCount: proto.Uint32(20),
AllFileCount: proto.Uint32(0), AllFileCount: proto.Uint32(0),
ReqFrom: proto.Uint32(3), ReqFrom: proto.Uint32(3),
SortBy: proto.Uint32(1), SortBy: proto.Uint32(1),
FilterCode: proto.Uint32(0), FilterCode: proto.Uint32(0),
Uin: proto.Uint64(0), Uin: proto.Uint64(0),
StartIndex: &startIndex, StartIndex: proto.Some(startIndex),
Context: EmptyBytes, Context: EmptyBytes,
}} }}
payload := c.packOIDBPackageProto(1752, 1, body) 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{ payload := c.packOIDBPackageProto(1751, 0, &oidb.D6D7ReqBody{CreateFolderReq: &oidb.CreateFolderReqBody{
GroupCode: proto.Uint64(uint64(groupCode)), GroupCode: proto.Uint64(uint64(groupCode)),
AppId: proto.Uint32(3), AppId: proto.Uint32(3),
ParentFolderId: &parentFolder, ParentFolderId: proto.Some(parentFolder),
FolderName: &name, FolderName: proto.Some(name),
}}) }})
return c.uniPacket("OidbSvc.0x6d7_0", payload) 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) { func (c *QQClient) buildGroupFileDownloadReqPacket(groupCode int64, fileId string, busId int32) (uint16, []byte) {
body := &oidb.D6D6ReqBody{ body := &oidb.D6D6ReqBody{
DownloadFileReq: &oidb.DownloadFileReqBody{ DownloadFileReq: &oidb.DownloadFileReqBody{
GroupCode: &groupCode, GroupCode: proto.Some(groupCode),
AppId: proto.Int32(3), AppId: proto.Int32(3),
BusId: &busId, BusId: proto.Some(busId),
FileId: &fileId, FileId: proto.Some(fileId),
}, },
} }
payload := c.packOIDBPackageProto(1750, 2, body) 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) { func (c *QQClient) buildGroupFileDeleteReqPacket(groupCode int64, parentFolderId, fileId string, busId int32) (uint16, []byte) {
body := &oidb.D6D6ReqBody{DeleteFileReq: &oidb.DeleteFileReqBody{ body := &oidb.D6D6ReqBody{DeleteFileReq: &oidb.DeleteFileReqBody{
GroupCode: &groupCode, GroupCode: proto.Some(groupCode),
AppId: proto.Int32(3), AppId: proto.Int32(3),
BusId: &busId, BusId: proto.Some(busId),
ParentFolderId: &parentFolderId, ParentFolderId: proto.Some(parentFolderId),
FileId: &fileId, FileId: proto.Some(fileId),
}} }}
payload := c.packOIDBPackageProto(1750, 3, body) payload := c.packOIDBPackageProto(1750, 3, body)
return c.uniPacket("OidbSvc.0x6d6_3", payload) return c.uniPacket("OidbSvc.0x6d6_3", payload)
@ -419,9 +419,9 @@ func decodeOIDB6d62Response(_ *QQClient, _ *network.IncomingPacketInfo, payload
return nil, err return nil, err
} }
if rsp.DownloadFileRsp.DownloadUrl == nil { 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) url := hex.EncodeToString(rsp.DownloadFileRsp.DownloadUrl)
return fmt.Sprintf("http://%s/ftn_handler/%s/", ip, url), nil return fmt.Sprintf("http://%s/ftn_handler/%s/", ip, url), nil
} }
@ -432,7 +432,7 @@ func decodeOIDB6d63Response(_ *QQClient, _ *network.IncomingPacketInfo, payload
if err != nil { if err != nil {
return nil, err return nil, err
} }
return rsp.DeleteFileRsp.GetClientWording(), nil return rsp.DeleteFileRsp.ClientWording.Unwrap(), nil
} }
func decodeOIDB6d60Response(_ *QQClient, _ *network.IncomingPacketInfo, payload []byte) (any, error) { func decodeOIDB6d60Response(_ *QQClient, _ *network.IncomingPacketInfo, payload []byte) (any, error) {
@ -450,13 +450,13 @@ func decodeOIDB6d7Response(_ *QQClient, _ *network.IncomingPacketInfo, payload [
if err != nil { if err != nil {
return nil, err 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) 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) 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, errors.Errorf("delete folder error: %v", retCode)
} }
return nil, nil return nil, nil

View File

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

View File

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

View File

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

View File

@ -32,7 +32,7 @@ func decodeGuildEventFlowPacket(c *QQClient, _ *network.IncomingPacketInfo, payl
if err := proto.Unmarshal(payload, push); err != nil { if err := proto.Unmarshal(payload, push); err != nil {
return nil, errors.Wrap(err, "failed to unmarshal protobuf message") 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) press := new(channel.PressMsg)
dst := make([]byte, len(push.CompressMsg)*2) dst := make([]byte, len(push.CompressMsg)*2)
i, err := lz4.UncompressBlock(push.CompressMsg, dst) i, err := lz4.UncompressBlock(push.CompressMsg, dst)
@ -49,7 +49,7 @@ func decodeGuildEventFlowPacket(c *QQClient, _ *network.IncomingPacketInfo, payl
push.Msgs = press.Msgs push.Msgs = press.Msgs
} }
for _, m := range push.Msgs { for _, m := range push.Msgs {
if m.Head.ContentHead.GetType() == 3841 { if m.Head.ContentHead.Type.Unwrap() == 3841 {
// todo: 回头 event flow 的处理移出去重构下逻辑, 先暂时这样方便改 // todo: 回头 event flow 的处理移出去重构下逻辑, 先暂时这样方便改
var common *msg.CommonElem var common *msg.CommonElem
if m.Body != nil && m.Body.RichText != nil { 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 if common == nil { // empty tips
} }
tipsInfo := &tipsPushInfo{ tipsInfo := &tipsPushInfo{
TinyId: m.Head.RoutingHead.GetFromTinyid(), TinyId: m.Head.RoutingHead.FromTinyid.Unwrap(),
GuildId: m.Head.RoutingHead.GetGuildId(), GuildId: m.Head.RoutingHead.GuildId.Unwrap(),
ChannelId: m.Head.RoutingHead.GetChannelId(), ChannelId: m.Head.RoutingHead.ChannelId.Unwrap(),
} }
/* /*
if len(m.CtrlHead.IncludeUin) > 0 { if len(m.CtrlHead.IncludeUin) > 0 {
@ -75,7 +75,7 @@ func decodeGuildEventFlowPacket(c *QQClient, _ *network.IncomingPacketInfo, payl
*/ */
return tipsInfo, nil return tipsInfo, nil
} }
if common == nil || common.GetServiceType() != 500 { if common == nil || common.ServiceType.Unwrap() != 500 {
continue continue
} }
eventBody := new(channel.EventBody) eventBody := new(channel.EventBody)
@ -86,12 +86,12 @@ func decodeGuildEventFlowPacket(c *QQClient, _ *network.IncomingPacketInfo, payl
c.processGuildEventBody(m, eventBody) c.processGuildEventBody(m, eventBody)
continue continue
} }
if m.Head.ContentHead.GetType() == 3840 { if m.Head.ContentHead.Type.Unwrap() == 3840 {
if m.Head.RoutingHead.GetDirectMessageFlag() == 1 { if m.Head.RoutingHead.DirectMessageFlag.Unwrap() == 1 {
// todo: direct message decode // todo: direct message decode
continue continue
} }
if m.Head.RoutingHead.GetFromTinyid() == c.GuildService.TinyId { if m.Head.RoutingHead.FromTinyid.Unwrap() == c.GuildService.TinyId {
continue continue
} }
if cm := c.GuildService.parseGuildChannelMessage(m); cm != nil { 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) { func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody *channel.EventBody) {
var guild *GuildInfo var guild *GuildInfo
if m.Head.RoutingHead.GetGuildId() != 0 { if m.Head.RoutingHead.GuildId.Unwrap() != 0 {
if guild = c.GuildService.FindGuild(m.Head.RoutingHead.GetGuildId()); guild == nil { if guild = c.GuildService.FindGuild(m.Head.RoutingHead.GuildId.Unwrap()); guild == nil {
c.warning("process channel event error: guild not found.") c.warning("process channel event error: guild not found.")
return return
} }
@ -113,30 +113,30 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody
switch { switch {
case eventBody.CreateChan != nil: case eventBody.CreateChan != nil:
for _, chanId := range eventBody.CreateChan.CreateId { for _, chanId := range eventBody.CreateChan.CreateId {
if guild.FindChannel(chanId.GetChanId()) != nil { if guild.FindChannel(chanId.ChanId.Unwrap()) != nil {
continue continue
} }
channelInfo, err := c.GuildService.FetchChannelInfo(guild.GuildId, chanId.GetChanId()) channelInfo, err := c.GuildService.FetchChannelInfo(guild.GuildId, chanId.ChanId.Unwrap())
if err != nil { if err != nil {
c.warning("process create channel event error: fetch channel info error: %v", err) c.warning("process create channel event error: fetch channel info error: %v", err)
continue continue
} }
guild.Channels = append(guild.Channels, channelInfo) guild.Channels = append(guild.Channels, channelInfo)
c.dispatchGuildChannelCreatedEvent(&GuildChannelOperationEvent{ c.dispatchGuildChannelCreatedEvent(&GuildChannelOperationEvent{
OperatorId: m.Head.RoutingHead.GetFromTinyid(), OperatorId: m.Head.RoutingHead.FromTinyid.Unwrap(),
GuildId: m.Head.RoutingHead.GetGuildId(), GuildId: m.Head.RoutingHead.GuildId.Unwrap(),
ChannelInfo: channelInfo, ChannelInfo: channelInfo,
}) })
} }
case eventBody.DestroyChan != nil: case eventBody.DestroyChan != nil:
for _, chanId := range eventBody.DestroyChan.DeleteId { for _, chanId := range eventBody.DestroyChan.DeleteId {
channelInfo := guild.FindChannel(chanId.GetChanId()) channelInfo := guild.FindChannel(chanId.ChanId.Unwrap())
if channelInfo == nil { if channelInfo == nil {
continue continue
} }
guild.removeChannel(chanId.GetChanId()) guild.removeChannel(chanId.ChanId.Unwrap())
c.dispatchGuildChannelDestroyedEvent(&GuildChannelOperationEvent{ c.dispatchGuildChannelDestroyedEvent(&GuildChannelOperationEvent{
OperatorId: m.Head.RoutingHead.GetFromTinyid(), OperatorId: m.Head.RoutingHead.FromTinyid.Unwrap(),
GuildId: guild.GuildId, GuildId: guild.GuildId,
ChannelInfo: channelInfo, ChannelInfo: channelInfo,
}) })
@ -144,9 +144,9 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody
case eventBody.ChangeChanInfo != nil: case eventBody.ChangeChanInfo != nil:
updateChanLock.Lock() updateChanLock.Lock()
defer updateChanLock.Unlock() defer updateChanLock.Unlock()
oldInfo := guild.FindChannel(eventBody.ChangeChanInfo.GetChanId()) oldInfo := guild.FindChannel(eventBody.ChangeChanInfo.ChanId.Unwrap())
if oldInfo == nil { 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 { if err != nil {
c.error("error to decode channel info updated event: fetch channel info failed: %v", err) c.error("error to decode channel info updated event: fetch channel info failed: %v", err)
return return
@ -157,7 +157,7 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody
if time.Now().Unix()-oldInfo.fetchTime <= 2 { if time.Now().Unix()-oldInfo.fetchTime <= 2 {
return 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 { if err != nil {
c.error("error to decode channel info updated event: fetch channel info failed: %v", err) c.error("error to decode channel info updated event: fetch channel info failed: %v", err)
return return
@ -169,20 +169,20 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody
} }
} }
c.dispatchGuildChannelUpdatedEvent(&GuildChannelUpdatedEvent{ c.dispatchGuildChannelUpdatedEvent(&GuildChannelUpdatedEvent{
OperatorId: m.Head.RoutingHead.GetFromTinyid(), OperatorId: m.Head.RoutingHead.FromTinyid.Unwrap(),
GuildId: m.Head.RoutingHead.GetGuildId(), GuildId: m.Head.RoutingHead.GuildId.Unwrap(),
ChannelId: eventBody.ChangeChanInfo.GetChanId(), ChannelId: eventBody.ChangeChanInfo.ChanId.Unwrap(),
OldChannelInfo: oldInfo, OldChannelInfo: oldInfo,
NewChannelInfo: newInfo, NewChannelInfo: newInfo,
}) })
case eventBody.JoinGuild != nil: 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) c.info("ignore join guild event: member %v already exists", mem.TinyId)
return 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 { if err != nil {
c.error("error to decode member join guild event: get member profile error: %v", err) c.error("error to decode member join guild event: get member profile error: %v", err)
return return
@ -197,30 +197,30 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody
Member: info, Member: info,
}) })
case eventBody.UpdateMsg != nil: 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{ c.dispatchGuildMessageRecalledEvent(&GuildMessageRecalledEvent{
OperatorId: eventBody.UpdateMsg.GetOperatorTinyid(), OperatorId: eventBody.UpdateMsg.OperatorTinyid.Unwrap(),
GuildId: m.Head.RoutingHead.GetGuildId(), GuildId: m.Head.RoutingHead.GuildId.Unwrap(),
ChannelId: m.Head.RoutingHead.GetChannelId(), ChannelId: m.Head.RoutingHead.ChannelId.Unwrap(),
MessageId: eventBody.UpdateMsg.GetMsgSeq(), MessageId: eventBody.UpdateMsg.MsgSeq.Unwrap(),
RecallTime: int64(m.Head.ContentHead.GetTime()), RecallTime: int64(m.Head.ContentHead.Time.Unwrap()),
}) })
return return
} }
if eventBody.UpdateMsg.GetEventType() == 4 { // 消息贴表情更新 (包含添加或删除) if eventBody.UpdateMsg.EventType.Unwrap() == 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) 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 { if err != nil || len(t) == 0 {
c.error("process guild event flow error: pull eventMsg message error: %v", err) c.error("process guild event flow error: pull eventMsg message error: %v", err)
return return
} }
// 自己的消息被贴表情会单独推送一个tips, 这里不需要解析 // 自己的消息被贴表情会单独推送一个tips, 这里不需要解析
if t[0].Head.RoutingHead.GetFromTinyid() == c.GuildService.TinyId { if t[0].Head.RoutingHead.FromTinyid.Unwrap() == c.GuildService.TinyId {
return return
} }
updatedEvent := &GuildMessageReactionsUpdatedEvent{ updatedEvent := &GuildMessageReactionsUpdatedEvent{
GuildId: m.Head.RoutingHead.GetGuildId(), GuildId: m.Head.RoutingHead.GuildId.Unwrap(),
ChannelId: m.Head.RoutingHead.GetChannelId(), ChannelId: m.Head.RoutingHead.ChannelId.Unwrap(),
MessageId: t[0].Head.ContentHead.GetSeq(), MessageId: t[0].Head.ContentHead.Seq.Unwrap(),
CurrentReactions: decodeGuildMessageEmojiReactions(t[0]), CurrentReactions: decodeGuildMessageEmojiReactions(t[0]),
} }
tipsInfo, err := c.waitPacketTimeoutSyncF("MsgPush.PushGroupProMsg", time.Second, func(i any) bool { 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{ req := &channel.DF62ReqBody{Msg: &channel.ChannelMsgContent{
Head: &channel.ChannelMsgHead{ Head: &channel.ChannelMsgHead{
RoutingHead: &channel.ChannelRoutingHead{ RoutingHead: &channel.ChannelRoutingHead{
GuildId: &guildId, GuildId: proto.Some(guildId),
ChannelId: &channelId, ChannelId: proto.Some(channelId),
FromUin: proto.Uint64(uint64(s.c.Uin)), FromUin: proto.Uint64(uint64(s.c.Uin)),
}, },
ContentHead: &channel.ChannelContentHead{ ContentHead: &channel.ChannelContentHead{
@ -58,21 +58,21 @@ func (s *GuildService) SendGuildChannelMessage(guildId, channelId uint64, m *mes
if err = proto.Unmarshal(rsp, body); err != nil { if err = proto.Unmarshal(rsp, body); err != nil {
return nil, errors.Wrap(err, "failed to unmarshal protobuf message") return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
} }
if body.GetResult() != 0 { if body.Result.Unwrap() != 0 {
return nil, errors.Errorf("send channel message error: server response %v", body.GetResult()) return nil, errors.Errorf("send channel message error: server response %v", body.Result.Unwrap())
} }
elements := m.Elements elements := m.Elements
if body.Body != nil && body.Body.RichText != nil { if body.Body != nil && body.Body.RichText != nil {
elements = message.ParseMessageElems(body.Body.RichText.Elems) elements = message.ParseMessageElems(body.Body.RichText.Elems)
} }
return &message.GuildChannelMessage{ return &message.GuildChannelMessage{
Id: body.Head.ContentHead.GetSeq(), Id: body.Head.ContentHead.Seq.Unwrap(),
InternalId: body.Head.ContentHead.GetRandom(), InternalId: body.Head.ContentHead.Random.Unwrap(),
GuildId: guildId, GuildId: guildId,
ChannelId: channelId, ChannelId: channelId,
Time: int64(body.GetSendTime()), Time: int64(body.SendTime.Unwrap()),
Sender: &message.GuildSender{ Sender: &message.GuildSender{
TinyId: body.Head.RoutingHead.GetFromTinyid(), TinyId: body.Head.RoutingHead.FromTinyid.Unwrap(),
Nickname: s.Nickname, Nickname: s.Nickname,
}, },
Elements: elements, 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) { func (s *GuildService) pullChannelMessages(guildId, channelId, beginSeq, endSeq, eventVersion uint64, direct bool) ([]*channel.ChannelMsgContent, error) {
param := &channel.ChannelParam{ param := &channel.ChannelParam{
GuildId: &guildId, GuildId: proto.Some(guildId),
ChannelId: &channelId, ChannelId: proto.Some(channelId),
BeginSeq: &beginSeq, BeginSeq: proto.Some(beginSeq),
EndSeq: &endSeq, EndSeq: proto.Some(endSeq),
} }
if eventVersion != 0 { if eventVersion != 0 {
param.Version = []uint64{eventVersion} param.Version = []uint64{eventVersion}
@ -151,8 +151,8 @@ func (s *GuildService) pullChannelMessages(guildId, channelId, beginSeq, endSeq,
} }
payload, _ := proto.Marshal(&channel.ChannelMsgReq{ payload, _ := proto.Marshal(&channel.ChannelMsgReq{
ChannelParam: param, ChannelParam: param,
WithVersionFlag: &withVersionFlag, WithVersionFlag: proto.Some(withVersionFlag),
DirectMessageFlag: &directFlag, DirectMessageFlag: proto.Some(directFlag),
}) })
seq, packet := s.c.uniPacket("trpc.group_pro.synclogic.SyncLogic.GetChannelMsg", payload) seq, packet := s.c.uniPacket("trpc.group_pro.synclogic.SyncLogic.GetChannelMsg", payload)
rsp, err := s.c.sendAndWaitDynamic(seq, packet) rsp, err := s.c.sendAndWaitDynamic(seq, packet)
@ -172,11 +172,11 @@ func (c *QQClient) buildGuildImageStorePacket(guildId, channelId uint64, hash []
Subcmd: proto.Uint32(1), Subcmd: proto.Uint32(1),
TryupImgReq: []*cmd0x388.TryUpImgReq{ TryupImgReq: []*cmd0x388.TryUpImgReq{
{ {
GroupCode: &channelId, GroupCode: proto.Some(channelId),
SrcUin: proto.Uint64(uint64(c.Uin)), SrcUin: proto.Uint64(uint64(c.Uin)),
FileId: proto.Uint64(0), FileId: proto.Uint64(0),
FileMd5: hash, FileMd5: hash,
FileSize: &size, FileSize: proto.Some(size),
FileName: []byte(fmt.Sprintf("%x.jpg", hash)), FileName: []byte(fmt.Sprintf("%x.jpg", hash)),
SrcTerm: proto.Uint32(5), SrcTerm: proto.Uint32(5),
PlatformType: proto.Uint32(9), PlatformType: proto.Uint32(9),
@ -185,8 +185,8 @@ func (c *QQClient) buildGuildImageStorePacket(guildId, channelId uint64, hash []
BuildVer: []byte("8.8.38.2266"), BuildVer: []byte("8.8.38.2266"),
AppPicType: proto.Uint32(1052), AppPicType: proto.Uint32(1052),
SrvUpload: proto.Uint32(0), SrvUpload: proto.Uint32(0),
QqmeetGuildId: &guildId, QqmeetGuildId: proto.Some(guildId),
QqmeetChannelId: &channelId, QqmeetChannelId: proto.Some(channelId),
}, },
}, },
CommandId: proto.Uint32(83), CommandId: proto.Uint32(83),
@ -198,7 +198,7 @@ func decodeGuildMessageEmojiReactions(content *channel.ChannelMsgContent) (r []*
r = []*message.GuildMessageEmojiReaction{} r = []*message.GuildMessageEmojiReaction{}
var common *msg.CommonElem var common *msg.CommonElem
for _, elem := range content.Body.RichText.Elems { 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 common = elem.CommonElem
break break
} }
@ -216,12 +216,12 @@ func decodeGuildMessageEmojiReactions(content *channel.ChannelMsgContent) (r []*
} }
for _, e := range cnt.EmojiReaction { for _, e := range cnt.EmojiReaction {
reaction := &message.GuildMessageEmojiReaction{ reaction := &message.GuildMessageEmojiReaction{
EmojiId: e.GetEmojiId(), EmojiId: e.EmojiId.Unwrap(),
EmojiType: e.GetEmojiType(), EmojiType: e.EmojiType.Unwrap(),
Count: int32(e.GetCnt()), Count: int32(e.Cnt.Unwrap()),
Clicked: e.GetIsClicked(), 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)) reaction.Face = message.NewFace(int32(index))
} }
r = append(r, reaction) r = append(r, reaction)
@ -239,26 +239,26 @@ func decodeGuildImageStoreResponse(_ *QQClient, _ *network.IncomingPacketInfo, p
return nil, errors.New("response is empty") return nil, errors.New("response is empty")
} }
rsp := body.TryupImgRsp[0] rsp := body.TryupImgRsp[0]
if rsp.GetResult() != 0 { if rsp.Result.Unwrap() != 0 {
return &imageUploadResponse{ return &imageUploadResponse{
ResultCode: int32(rsp.GetResult()), ResultCode: int32(rsp.Result.Unwrap()),
Message: string(rsp.FailMsg), Message: string(rsp.FailMsg),
}, nil }, nil
} }
if rsp.GetFileExit() { if rsp.FileExit.Unwrap() {
resp := &imageUploadResponse{ resp := &imageUploadResponse{
IsExists: true, IsExists: true,
FileId: int64(rsp.GetFileid()), FileId: int64(rsp.Fileid.Unwrap()),
DownloadIndex: string(rsp.DownloadIndex), DownloadIndex: string(rsp.DownloadIndex),
} }
if rsp.ImgInfo != nil { if rsp.ImgInfo != nil {
resp.Width = int32(rsp.ImgInfo.GetFileWidth()) resp.Width = int32(rsp.ImgInfo.FileWidth.Unwrap())
resp.Height = int32(rsp.ImgInfo.GetFileHeight()) resp.Height = int32(rsp.ImgInfo.FileHeight.Unwrap())
} }
return rsp, nil return rsp, nil
} }
return &imageUploadResponse{ return &imageUploadResponse{
FileId: int64(rsp.GetFileid()), FileId: int64(rsp.Fileid.Unwrap()),
UploadKey: rsp.UpUkey, UploadKey: rsp.UpUkey,
UploadIp: rsp.UpIp, UploadIp: rsp.UpIp,
UploadPort: rsp.UpPort, UploadPort: rsp.UpPort,
@ -267,26 +267,26 @@ func decodeGuildImageStoreResponse(_ *QQClient, _ *network.IncomingPacketInfo, p
} }
func (s *GuildService) parseGuildChannelMessage(msg *channel.ChannelMsgContent) *message.GuildChannelMessage { 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 { if guild == nil {
return nil // todo: sync guild info return nil // todo: sync guild info
} }
if msg.Body == nil || msg.Body.RichText == nil { if msg.Body == nil || msg.Body.RichText == nil {
return nil return nil
} }
// mem := guild.FindMember(msg.Head.RoutingHead.GetFromTinyid()) // mem := guild.FindMember(msg.Head.RoutingHead.FromTinyid.Unwrap())
memberName := msg.ExtInfo.MemberName memberName := msg.ExtInfo.MemberName
if memberName == nil { if memberName == nil {
memberName = msg.ExtInfo.FromNick memberName = msg.ExtInfo.FromNick
} }
return &message.GuildChannelMessage{ return &message.GuildChannelMessage{
Id: msg.Head.ContentHead.GetSeq(), Id: msg.Head.ContentHead.Seq.Unwrap(),
InternalId: msg.Head.ContentHead.GetRandom(), InternalId: msg.Head.ContentHead.Random.Unwrap(),
GuildId: msg.Head.RoutingHead.GetGuildId(), GuildId: msg.Head.RoutingHead.GuildId.Unwrap(),
ChannelId: msg.Head.RoutingHead.GetChannelId(), ChannelId: msg.Head.RoutingHead.ChannelId.Unwrap(),
Time: int64(msg.Head.ContentHead.GetTime()), Time: int64(msg.Head.ContentHead.Time.Unwrap()),
Sender: &message.GuildSender{ Sender: &message.GuildSender{
TinyId: msg.Head.RoutingHead.GetFromTinyid(), TinyId: msg.Head.RoutingHead.FromTinyid.Unwrap(),
Nickname: string(memberName), Nickname: string(memberName),
}, },
Elements: message.ParseMessageElems(msg.Body.RichText.Elems), 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") return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
} }
rsp := pkt.TryupImgRsp[0] rsp := pkt.TryupImgRsp[0]
if rsp.GetResult() != 0 { if rsp.Result.Unwrap() != 0 {
return &imageUploadResponse{ return &imageUploadResponse{
ResultCode: int32(rsp.GetResult()), ResultCode: int32(rsp.Result.Unwrap()),
Message: utils.B2S(rsp.FailMsg), Message: utils.B2S(rsp.FailMsg),
}, nil }, nil
} }
if rsp.GetFileExit() { if rsp.FileExit.Unwrap() {
if rsp.ImgInfo != nil { 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{ return &imageUploadResponse{
FileId: int64(rsp.GetFileid()), FileId: int64(rsp.Fileid.Unwrap()),
UploadKey: rsp.UpUkey, UploadKey: rsp.UpUkey,
UploadIp: rsp.UpIp, UploadIp: rsp.UpIp,
UploadPort: rsp.UpPort, 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)) nodes := make([]*message.ForwardNode, 0, len(item.Buffer.Msg))
for _, m := range item.Buffer.Msg { for _, m := range item.Buffer.Msg {
name := m.Head.GetFromNick() name := m.Head.FromNick.Unwrap()
if m.Head.GetMsgType() == 82 && m.Head.GroupInfo != nil { if m.Head.MsgType.Unwrap() == 82 && m.Head.GroupInfo != nil {
name = m.Head.GroupInfo.GetGroupCard() name = m.Head.GroupInfo.GroupCard.Unwrap()
} }
msgElems := message.ParseMessageElems(m.Body.RichText.Elems) msgElems := message.ParseMessageElems(m.Body.RichText.Elems)
@ -164,9 +164,10 @@ func (l *forwardMsgLinker) link(name string) *message.ForwardMessage {
} }
nodes = append(nodes, &message.ForwardNode{ nodes = append(nodes, &message.ForwardNode{
SenderId: m.Head.GetFromUin(), GroupId: m.Head.GroupInfo.GroupCode.Unwrap(),
SenderId: m.Head.FromUin.Unwrap(),
SenderName: name, SenderName: name,
Time: m.Head.GetMsgTime(), Time: m.Head.MsgTime.Unwrap(),
Message: msgElems, Message: msgElems,
}) })
} }
@ -182,7 +183,7 @@ func (c *QQClient) GetForwardMessage(resID string) *message.ForwardMessage {
items: make(map[string]*msg.PbMultiMsgItem), items: make(map[string]*msg.PbMultiMsgItem),
} }
for _, item := range m.Items { for _, item := range m.Items {
linker.items[item.GetFileName()] = item linker.items[item.FileName.Unwrap()] = item
} }
return linker.link("MultiMsg") return linker.link("MultiMsg")
} }
@ -199,9 +200,9 @@ func (c *QQClient) DownloadForwardMessage(resId string) *message.ForwardElement
var pv bytes.Buffer var pv bytes.Buffer
for i := 0; i < int(math.Min(4, float64(len(multiMsg.Msg)))); i++ { for i := 0; i < int(math.Min(4, float64(len(multiMsg.Msg)))); i++ {
m := multiMsg.Msg[i] m := multiMsg.Msg[i]
sender := m.Head.GetFromNick() sender := m.Head.FromNick.Unwrap()
if m.Head.GetMsgType() == 82 && m.Head.GroupInfo != nil { if m.Head.MsgType.Unwrap() == 82 && m.Head.GroupInfo != nil {
sender = m.Head.GroupInfo.GetGroupCard() sender = m.Head.GroupInfo.GroupCard.Unwrap()
} }
brief := message.ToReadableString(message.ParseMessageElems(multiMsg.Msg[i].Body.RichText.Elems)) brief := message.ToReadableString(message.ParseMessageElems(multiMsg.Msg[i].Body.RichText.Elems))
fmt.Fprintf(&pv, `<title size="26" color="#777777">%s: %s</title>`, sender, brief) 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 { for _, m := range s27.ModInfos {
if m.ModGroupProfile != nil { if m.ModGroupProfile != nil {
for _, info := range m.ModGroupProfile.GroupProfileInfos { for _, info := range m.ModGroupProfile.GroupProfileInfos {
if info.GetField() == 1 { if info.Field.Unwrap() == 1 {
if g := c.FindGroup(int64(m.ModGroupProfile.GetGroupCode())); g != nil { if g := c.FindGroup(int64(m.ModGroupProfile.GroupCode.Unwrap())); g != nil {
old := g.Name old := g.Name
g.Name = string(info.Value) g.Name = string(info.Value)
c.GroupNameUpdatedEvent.dispatch(c, &GroupNameUpdatedEvent{ c.GroupNameUpdatedEvent.dispatch(c, &GroupNameUpdatedEvent{
Group: g, Group: g,
OldName: old, OldName: old,
NewName: g.Name, NewName: g.Name,
OperatorUin: int64(m.ModGroupProfile.GetCmdUin()), OperatorUin: int64(m.ModGroupProfile.CmdUin.Unwrap()),
}) })
} }
} }

View File

@ -3,203 +3,67 @@
package channel package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
type ChannelUserInfo struct { type ChannelUserInfo struct {
ClientIdentity *ClientIdentity `protobuf:"bytes,1,opt"` 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"` Permission *ChannelUserPermission `protobuf:"bytes,3,opt"`
RoleGroups []*BaseRoleGroupInfo `protobuf:"bytes,4,rep"` 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 { type ChannelUserPermission struct {
AllowReadFeed *bool `protobuf:"varint,1,opt"` AllowReadFeed proto.Option[bool] `protobuf:"varint,1,opt"`
AllowWriteFeed *bool `protobuf:"varint,2,opt"` AllowWriteFeed proto.Option[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
} }
type ClientIdentity struct { type ClientIdentity struct {
ClientId *uint32 `protobuf:"varint,1,opt"` ClientId proto.Option[uint32] `protobuf:"varint,1,opt"`
Desc *string `protobuf:"bytes,2,opt"` Desc proto.Option[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 ""
} }
type BaseGuildInfo struct { type BaseGuildInfo struct {
GuildId *uint64 `protobuf:"varint,1,opt"` GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
Name *string `protobuf:"bytes,2,opt"` Name proto.Option[string] `protobuf:"bytes,2,opt"`
JoinTime *uint64 `protobuf:"varint,3,opt"` JoinTime proto.Option[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
} }
type BaseRoleGroupInfo struct { type BaseRoleGroupInfo struct {
RoleId *uint64 `protobuf:"varint,1,opt"` RoleId proto.Option[uint64] `protobuf:"varint,1,opt"`
Name *string `protobuf:"bytes,2,opt"` Name proto.Option[string] `protobuf:"bytes,2,opt"`
Color *uint32 `protobuf:"varint,3,opt"` Color proto.Option[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
} }
type StChannelInfo struct { type StChannelInfo struct {
Sign *StChannelSign `protobuf:"bytes,1,opt"` Sign *StChannelSign `protobuf:"bytes,1,opt"`
Name *string `protobuf:"bytes,2,opt"` Name proto.Option[string] `protobuf:"bytes,2,opt"`
IconUrl *string `protobuf:"bytes,3,opt"` IconUrl proto.Option[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 ""
} }
type StChannelSign struct { type StChannelSign struct {
GuildId *uint64 `protobuf:"varint,1,opt"` GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelId *uint64 `protobuf:"varint,2,opt"` ChannelId proto.Option[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
} }
type StEmotionReactionInfo struct { type StEmotionReactionInfo struct {
Id *string `protobuf:"bytes,1,opt"` Id proto.Option[string] `protobuf:"bytes,1,opt"`
EmojiReactionList []*EmojiReaction `protobuf:"bytes,2,rep"` EmojiReactionList []*EmojiReaction `protobuf:"bytes,2,rep"`
} }
func (x *StEmotionReactionInfo) GetId() string {
if x != nil && x.Id != nil {
return *x.Id
}
return ""
}
type StCommonExt struct { type StCommonExt struct {
MapInfo []*CommonEntry `protobuf:"bytes,1,rep"` MapInfo []*CommonEntry `protobuf:"bytes,1,rep"`
AttachInfo *string `protobuf:"bytes,2,opt"` AttachInfo proto.Option[string] `protobuf:"bytes,2,opt"`
MapBytesInfo []*BytesEntry `protobuf:"bytes,3,rep"` MapBytesInfo []*BytesEntry `protobuf:"bytes,3,rep"`
} }
func (x *StCommonExt) GetAttachInfo() string {
if x != nil && x.AttachInfo != nil {
return *x.AttachInfo
}
return ""
}
type BytesEntry struct { type BytesEntry struct {
Key *string `protobuf:"bytes,1,opt"` Key proto.Option[string] `protobuf:"bytes,1,opt"`
Value []byte `protobuf:"bytes,2,opt"` Value []byte `protobuf:"bytes,2,opt"`
} }
func (x *BytesEntry) GetKey() string {
if x != nil && x.Key != nil {
return *x.Key
}
return ""
}
type CommonEntry struct { type CommonEntry struct {
Key *string `protobuf:"bytes,1,opt"` Key proto.Option[string] `protobuf:"bytes,1,opt"`
Value *string `protobuf:"bytes,2,opt"` Value proto.Option[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 ""
} }

File diff suppressed because it is too large Load Diff

View File

@ -3,142 +3,55 @@
package channel package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
type GetNoticesReq struct { type GetNoticesReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
PageNum *uint32 `protobuf:"varint,2,opt"` PageNum proto.Option[uint32] `protobuf:"varint,2,opt"`
AttachInfo *string `protobuf:"bytes,3,opt"` AttachInfo proto.Option[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 ""
} }
type GetNoticesRsp struct { type GetNoticesRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Notices []*StNotice `protobuf:"bytes,2,rep"` Notices []*StNotice `protobuf:"bytes,2,rep"`
TotalNum *uint32 `protobuf:"varint,3,opt"` TotalNum proto.Option[uint32] `protobuf:"varint,3,opt"`
IsFinish *bool `protobuf:"varint,4,opt"` IsFinish proto.Option[bool] `protobuf:"varint,4,opt"`
AttachInfo *string `protobuf:"bytes,5,opt"` AttachInfo proto.Option[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 ""
} }
type NeedInsertCommentInfo struct { type NeedInsertCommentInfo struct {
CommentID *string `protobuf:"bytes,1,opt"` CommentID proto.Option[string] `protobuf:"bytes,1,opt"`
}
func (x *NeedInsertCommentInfo) GetCommentID() string {
if x != nil && x.CommentID != nil {
return *x.CommentID
}
return ""
} }
type RefreshToast struct { type RefreshToast struct {
Text *string `protobuf:"bytes,1,opt"` Text proto.Option[string] `protobuf:"bytes,1,opt"`
}
func (x *RefreshToast) GetText() string {
if x != nil && x.Text != nil {
return *x.Text
}
return ""
} }
type StGetChannelFeedsReq struct { type StGetChannelFeedsReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Count *uint32 `protobuf:"varint,2,opt"` Count proto.Option[uint32] `protobuf:"varint,2,opt"`
From *uint32 `protobuf:"varint,3,opt"` From proto.Option[uint32] `protobuf:"varint,3,opt"`
ChannelSign *StChannelSign `protobuf:"bytes,4,opt"` ChannelSign *StChannelSign `protobuf:"bytes,4,opt"`
FeedAttchInfo *string `protobuf:"bytes,5,opt"` FeedAttchInfo proto.Option[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 ""
} }
type StGetChannelFeedsRsp struct { type StGetChannelFeedsRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
VecFeed []*StFeed `protobuf:"bytes,2,rep"` VecFeed []*StFeed `protobuf:"bytes,2,rep"`
IsFinish *uint32 `protobuf:"varint,3,opt"` IsFinish proto.Option[uint32] `protobuf:"varint,3,opt"`
User *StUser `protobuf:"bytes,4,opt"` User *StUser `protobuf:"bytes,4,opt"`
FeedAttchInfo *string `protobuf:"bytes,5,opt"` FeedAttchInfo proto.Option[string] `protobuf:"bytes,5,opt"`
RefreshToast *RefreshToast `protobuf:"bytes,6,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 ""
}
type StGetChannelShareFeedReq struct { type StGetChannelShareFeedReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
From *uint32 `protobuf:"varint,2,opt"` From proto.Option[uint32] `protobuf:"varint,2,opt"`
ChannelShareInfo *StChannelShareInfo `protobuf:"bytes,3,opt"` ChannelShareInfo *StChannelShareInfo `protobuf:"bytes,3,opt"`
} }
func (x *StGetChannelShareFeedReq) GetFrom() uint32 {
if x != nil && x.From != nil {
return *x.From
}
return 0
}
type StGetChannelShareFeedRsp struct { type StGetChannelShareFeedRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"` Feed *StFeed `protobuf:"bytes,2,opt"`
@ -146,130 +59,32 @@ type StGetChannelShareFeedRsp struct {
type StGetFeedCommentsReq struct { type StGetFeedCommentsReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
UserId *string `protobuf:"bytes,2,opt"` UserId proto.Option[string] `protobuf:"bytes,2,opt"`
FeedId *string `protobuf:"bytes,3,opt"` FeedId proto.Option[string] `protobuf:"bytes,3,opt"`
ListNum *uint32 `protobuf:"varint,4,opt"` ListNum proto.Option[uint32] `protobuf:"varint,4,opt"`
From *uint32 `protobuf:"varint,5,opt"` From proto.Option[uint32] `protobuf:"varint,5,opt"`
AttchInfo *string `protobuf:"bytes,6,opt"` AttchInfo proto.Option[string] `protobuf:"bytes,6,opt"`
EntrySchema *string `protobuf:"bytes,7,opt"` EntrySchema proto.Option[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 ""
} }
type StGetFeedCommentsRsp struct { type StGetFeedCommentsRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
VecComment []*StComment `protobuf:"bytes,2,rep"` VecComment []*StComment `protobuf:"bytes,2,rep"`
TotalNum *uint32 `protobuf:"varint,3,opt"` TotalNum proto.Option[uint32] `protobuf:"varint,3,opt"`
IsFinish *uint32 `protobuf:"varint,4,opt"` IsFinish proto.Option[uint32] `protobuf:"varint,4,opt"`
AttchInfo *string `protobuf:"bytes,5,opt"` AttchInfo proto.Option[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 ""
} }
type StGetFeedDetailReq struct { type StGetFeedDetailReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
From *uint32 `protobuf:"varint,2,opt"` From proto.Option[uint32] `protobuf:"varint,2,opt"`
UserId *string `protobuf:"bytes,3,opt"` UserId proto.Option[string] `protobuf:"bytes,3,opt"`
FeedId *string `protobuf:"bytes,4,opt"` FeedId proto.Option[string] `protobuf:"bytes,4,opt"`
CreateTime *uint64 `protobuf:"varint,5,opt"` CreateTime proto.Option[uint64] `protobuf:"varint,5,opt"`
DetailType *uint32 `protobuf:"varint,6,opt"` DetailType proto.Option[uint32] `protobuf:"varint,6,opt"`
ChannelSign *StChannelSign `protobuf:"bytes,7,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
}
type StGetFeedDetailRsp struct { type StGetFeedDetailRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"` Feed *StFeed `protobuf:"bytes,2,opt"`

View File

@ -3,46 +3,22 @@
package channel package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
type StAlterFeedReq struct { type StAlterFeedReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"` Feed *StFeed `protobuf:"bytes,2,opt"`
BusiReqData []byte `protobuf:"bytes,3,opt"` BusiReqData []byte `protobuf:"bytes,3,opt"`
MBitmap *uint64 `protobuf:"varint,4,opt"` MBitmap proto.Option[uint64] `protobuf:"varint,4,opt"`
From *int32 `protobuf:"varint,5,opt"` From proto.Option[int32] `protobuf:"varint,5,opt"`
Src *int32 `protobuf:"varint,6,opt"` Src proto.Option[int32] `protobuf:"varint,6,opt"`
AlterFeedExtInfo []*CommonEntry `protobuf:"bytes,7,rep"` AlterFeedExtInfo []*CommonEntry `protobuf:"bytes,7,rep"`
JsonFeed *string `protobuf:"bytes,8,opt"` JsonFeed proto.Option[string] `protobuf:"bytes,8,opt"`
ClientContent *StClientContent `protobuf:"bytes,9,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 ""
}
type StAlterFeedRsp struct { type StAlterFeedRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"` Feed *StFeed `protobuf:"bytes,2,opt"`
@ -55,86 +31,23 @@ type StClientContent struct {
} }
type StClientImageContent struct { type StClientImageContent struct {
TaskId *string `protobuf:"bytes,1,opt"` TaskId proto.Option[string] `protobuf:"bytes,1,opt"`
PicId *string `protobuf:"bytes,2,opt"` PicId proto.Option[string] `protobuf:"bytes,2,opt"`
Url *string `protobuf:"bytes,3,opt"` Url proto.Option[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 ""
} }
type StClientVideoContent struct { type StClientVideoContent struct {
TaskId *string `protobuf:"bytes,1,opt"` TaskId proto.Option[string] `protobuf:"bytes,1,opt"`
VideoId *string `protobuf:"bytes,2,opt"` VideoId proto.Option[string] `protobuf:"bytes,2,opt"`
VideoUrl *string `protobuf:"bytes,3,opt"` VideoUrl proto.Option[string] `protobuf:"bytes,3,opt"`
CoverUrl *string `protobuf:"bytes,4,opt"` CoverUrl proto.Option[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 ""
} }
type StDelFeedReq struct { type StDelFeedReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"` Feed *StFeed `protobuf:"bytes,2,opt"`
From *int32 `protobuf:"varint,3,opt"` From proto.Option[int32] `protobuf:"varint,3,opt"`
Src *int32 `protobuf:"varint,4,opt"` Src proto.Option[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
} }
type StDelFeedRsp struct { type StDelFeedRsp struct {
@ -143,33 +56,12 @@ type StDelFeedRsp struct {
type StDoCommentReq struct { type StDoCommentReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
CommentType *uint32 `protobuf:"varint,2,opt"` CommentType proto.Option[uint32] `protobuf:"varint,2,opt"`
Comment *StComment `protobuf:"bytes,3,opt"` Comment *StComment `protobuf:"bytes,3,opt"`
Feed *StFeed `protobuf:"bytes,4,opt"` Feed *StFeed `protobuf:"bytes,4,opt"`
From *int32 `protobuf:"varint,5,opt"` From proto.Option[int32] `protobuf:"varint,5,opt"`
BusiReqData []byte `protobuf:"bytes,6,opt"` BusiReqData []byte `protobuf:"bytes,6,opt"`
Src *int32 `protobuf:"varint,7,opt"` Src proto.Option[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
} }
type StDoCommentRsp struct { type StDoCommentRsp struct {
@ -180,38 +72,17 @@ type StDoCommentRsp struct {
type StDoLikeReq struct { type StDoLikeReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` 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"` Like *StLike `protobuf:"bytes,3,opt"`
Feed *StFeed `protobuf:"bytes,4,opt"` Feed *StFeed `protobuf:"bytes,4,opt"`
BusiReqData []byte `protobuf:"bytes,5,opt"` BusiReqData []byte `protobuf:"bytes,5,opt"`
Comment *StComment `protobuf:"bytes,6,opt"` Comment *StComment `protobuf:"bytes,6,opt"`
Reply *StReply `protobuf:"bytes,7,opt"` Reply *StReply `protobuf:"bytes,7,opt"`
From *int32 `protobuf:"varint,8,opt"` From proto.Option[int32] `protobuf:"varint,8,opt"`
Src *int32 `protobuf:"varint,9,opt"` Src proto.Option[int32] `protobuf:"varint,9,opt"`
EmotionReaction *StEmotionReactionInfo `protobuf:"bytes,10,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 { type StDoLikeRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Like *StLike `protobuf:"bytes,2,opt"` Like *StLike `protobuf:"bytes,2,opt"`
@ -221,34 +92,13 @@ type StDoLikeRsp struct {
type StDoReplyReq struct { type StDoReplyReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
ReplyType *uint32 `protobuf:"varint,2,opt"` ReplyType proto.Option[uint32] `protobuf:"varint,2,opt"`
Reply *StReply `protobuf:"bytes,3,opt"` Reply *StReply `protobuf:"bytes,3,opt"`
Comment *StComment `protobuf:"bytes,4,opt"` Comment *StComment `protobuf:"bytes,4,opt"`
Feed *StFeed `protobuf:"bytes,5,opt"` Feed *StFeed `protobuf:"bytes,5,opt"`
From *int32 `protobuf:"varint,6,opt"` From proto.Option[int32] `protobuf:"varint,6,opt"`
BusiReqData []byte `protobuf:"bytes,7,opt"` BusiReqData []byte `protobuf:"bytes,7,opt"`
Src *int32 `protobuf:"varint,8,opt"` Src proto.Option[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
} }
type StDoReplyRsp struct { type StDoReplyRsp struct {
@ -263,14 +113,7 @@ type StDoSecurityReq struct {
Comment *StComment `protobuf:"bytes,3,opt"` Comment *StComment `protobuf:"bytes,3,opt"`
Reply *StReply `protobuf:"bytes,4,opt"` Reply *StReply `protobuf:"bytes,4,opt"`
Poster *StUser `protobuf:"bytes,5,opt"` Poster *StUser `protobuf:"bytes,5,opt"`
SecType *int32 `protobuf:"varint,6,opt"` SecType proto.Option[int32] `protobuf:"varint,6,opt"`
}
func (x *StDoSecurityReq) GetSecType() int32 {
if x != nil && x.SecType != nil {
return *x.SecType
}
return 0
} }
type StDoSecurityRsp struct { type StDoSecurityRsp struct {
@ -280,33 +123,12 @@ type StDoSecurityRsp struct {
type StModifyFeedReq struct { type StModifyFeedReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"` Feed *StFeed `protobuf:"bytes,2,opt"`
MBitmap *uint64 `protobuf:"varint,3,opt"` MBitmap proto.Option[uint64] `protobuf:"varint,3,opt"`
From *int32 `protobuf:"varint,4,opt"` From proto.Option[int32] `protobuf:"varint,4,opt"`
Src *int32 `protobuf:"varint,5,opt"` Src proto.Option[int32] `protobuf:"varint,5,opt"`
ModifyFeedExtInfo []*CommonEntry `protobuf:"bytes,6,rep"` 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
}
type StModifyFeedRsp struct { type StModifyFeedRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"` Feed *StFeed `protobuf:"bytes,2,opt"`
@ -317,34 +139,13 @@ type StPublishFeedReq struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"` Feed *StFeed `protobuf:"bytes,2,opt"`
BusiReqData []byte `protobuf:"bytes,3,opt"` BusiReqData []byte `protobuf:"bytes,3,opt"`
From *int32 `protobuf:"varint,4,opt"` From proto.Option[int32] `protobuf:"varint,4,opt"`
Src *int32 `protobuf:"varint,5,opt"` Src proto.Option[int32] `protobuf:"varint,5,opt"`
StoreFeedExtInfo []*CommonEntry `protobuf:"bytes,6,rep"` StoreFeedExtInfo []*CommonEntry `protobuf:"bytes,6,rep"`
JsonFeed *string `protobuf:"bytes,7,opt"` JsonFeed proto.Option[string] `protobuf:"bytes,7,opt"`
ClientContent *StClientContent `protobuf:"bytes,8,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 ""
}
type StPublishFeedRsp struct { type StPublishFeedRsp struct {
ExtInfo *StCommonExt `protobuf:"bytes,1,opt"` ExtInfo *StCommonExt `protobuf:"bytes,1,opt"`
Feed *StFeed `protobuf:"bytes,2,opt"` Feed *StFeed `protobuf:"bytes,2,opt"`

View File

@ -3,6 +3,10 @@
package channel package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
type BatchGetMsgRspCountReq struct { type BatchGetMsgRspCountReq struct {
GuildMsgList []*GuildMsg `protobuf:"bytes,1,rep"` GuildMsgList []*GuildMsg `protobuf:"bytes,1,rep"`
} }
@ -12,118 +16,41 @@ type BatchGetMsgRspCountRsp struct {
} }
type SvrChannelMsg struct { type SvrChannelMsg struct {
ChannelId *uint64 `protobuf:"varint,1,opt"` ChannelId proto.Option[uint64] `protobuf:"varint,1,opt"`
Id []*MsgId `protobuf:"bytes,2,rep"` Id []*MsgId `protobuf:"bytes,2,rep"`
} }
func (x *SvrChannelMsg) GetChannelId() uint64 {
if x != nil && x.ChannelId != nil {
return *x.ChannelId
}
return 0
}
type ChannelMsgInfo struct { type ChannelMsgInfo struct {
ChannelId *uint64 `protobuf:"varint,1,opt"` ChannelId proto.Option[uint64] `protobuf:"varint,1,opt"`
RespData []*MsgRespData `protobuf:"bytes,2,rep"` RespData []*MsgRespData `protobuf:"bytes,2,rep"`
} }
func (x *ChannelMsgInfo) GetChannelId() uint64 {
if x != nil && x.ChannelId != nil {
return *x.ChannelId
}
return 0
}
type EmojiReaction struct { type EmojiReaction struct {
EmojiId *string `protobuf:"bytes,1,opt"` EmojiId proto.Option[string] `protobuf:"bytes,1,opt"`
EmojiType *uint64 `protobuf:"varint,2,opt"` EmojiType proto.Option[uint64] `protobuf:"varint,2,opt"`
Cnt *uint64 `protobuf:"varint,3,opt"` Cnt proto.Option[uint64] `protobuf:"varint,3,opt"`
IsClicked *bool `protobuf:"varint,4,opt"` IsClicked proto.Option[bool] `protobuf:"varint,4,opt"`
IsDefaultEmoji *bool `protobuf:"varint,10001,opt"` IsDefaultEmoji proto.Option[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
} }
type GuildMsg struct { type GuildMsg struct {
GuildId *uint64 `protobuf:"varint,1,opt"` GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelMsgList []*SvrChannelMsg `protobuf:"bytes,2,rep"` ChannelMsgList []*SvrChannelMsg `protobuf:"bytes,2,rep"`
} }
func (x *GuildMsg) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
type GuildMsgInfo struct { type GuildMsgInfo struct {
GuildId *uint64 `protobuf:"varint,1,opt"` GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelMsgInfoList []*ChannelMsgInfo `protobuf:"bytes,2,rep"` ChannelMsgInfoList []*ChannelMsgInfo `protobuf:"bytes,2,rep"`
} }
func (x *GuildMsgInfo) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
type MsgCnt struct { type MsgCnt struct {
Id *MsgId `protobuf:"bytes,1,opt"` Id *MsgId `protobuf:"bytes,1,opt"`
EmojiReaction []*EmojiReaction `protobuf:"bytes,2,rep"` EmojiReaction []*EmojiReaction `protobuf:"bytes,2,rep"`
} }
type MsgId struct { type MsgId struct {
Version *uint64 `protobuf:"varint,1,opt"` Version proto.Option[uint64] `protobuf:"varint,1,opt"`
Seq *uint64 `protobuf:"varint,2,opt"` Seq proto.Option[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
} }
type MsgRespData struct { type MsgRespData struct {

View File

@ -5,264 +5,76 @@ package channel
import ( import (
msg "github.com/Mrs4s/MiraiGo/client/pb/msg" msg "github.com/Mrs4s/MiraiGo/client/pb/msg"
proto "github.com/RomiChan/protobuf/proto"
) )
type ChannelContentHead struct { type ChannelContentHead struct {
Type *uint64 `protobuf:"varint,1,opt"` Type proto.Option[uint64] `protobuf:"varint,1,opt"`
SubType *uint64 `protobuf:"varint,2,opt"` SubType proto.Option[uint64] `protobuf:"varint,2,opt"`
Random *uint64 `protobuf:"varint,3,opt"` Random proto.Option[uint64] `protobuf:"varint,3,opt"`
Seq *uint64 `protobuf:"varint,4,opt"` Seq proto.Option[uint64] `protobuf:"varint,4,opt"`
CntSeq *uint64 `protobuf:"varint,5,opt"` CntSeq proto.Option[uint64] `protobuf:"varint,5,opt"`
Time *uint64 `protobuf:"varint,6,opt"` Time proto.Option[uint64] `protobuf:"varint,6,opt"`
Meta []byte `protobuf:"bytes,7,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 DirectMessageMember struct { type DirectMessageMember struct {
Uin *uint64 `protobuf:"varint,1,opt"` Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
Tinyid *uint64 `protobuf:"varint,2,opt"` Tinyid proto.Option[uint64] `protobuf:"varint,2,opt"`
SourceGuildId *uint64 `protobuf:"varint,3,opt"` SourceGuildId proto.Option[uint64] `protobuf:"varint,3,opt"`
SourceGuildName []byte `protobuf:"bytes,4,opt"` SourceGuildName []byte `protobuf:"bytes,4,opt"`
NickName []byte `protobuf:"bytes,5,opt"` NickName []byte `protobuf:"bytes,5,opt"`
MemberName []byte `protobuf:"bytes,6,opt"` MemberName []byte `protobuf:"bytes,6,opt"`
NotifyType *uint32 `protobuf:"varint,7,opt"` NotifyType proto.Option[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
} }
type ChannelEvent struct { type ChannelEvent struct {
Type *uint64 `protobuf:"varint,1,opt"` Type proto.Option[uint64] `protobuf:"varint,1,opt"`
Version *uint64 `protobuf:"varint,2,opt"` Version proto.Option[uint64] `protobuf:"varint,2,opt"`
OpInfo *ChannelMsgOpInfo `protobuf:"bytes,3,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 ChannelExtInfo struct { type ChannelExtInfo struct {
FromNick []byte `protobuf:"bytes,1,opt"` FromNick []byte `protobuf:"bytes,1,opt"`
GuildName []byte `protobuf:"bytes,2,opt"` GuildName []byte `protobuf:"bytes,2,opt"`
ChannelName []byte `protobuf:"bytes,3,opt"` ChannelName []byte `protobuf:"bytes,3,opt"`
Visibility *uint32 `protobuf:"varint,4,opt"` Visibility proto.Option[uint32] `protobuf:"varint,4,opt"`
NotifyType *uint32 `protobuf:"varint,5,opt"` NotifyType proto.Option[uint32] `protobuf:"varint,5,opt"`
OfflineFlag *uint32 `protobuf:"varint,6,opt"` OfflineFlag proto.Option[uint32] `protobuf:"varint,6,opt"`
NameType *uint32 `protobuf:"varint,7,opt"` NameType proto.Option[uint32] `protobuf:"varint,7,opt"`
MemberName []byte `protobuf:"bytes,8,opt"` MemberName []byte `protobuf:"bytes,8,opt"`
Timestamp *uint32 `protobuf:"varint,9,opt"` Timestamp proto.Option[uint32] `protobuf:"varint,9,opt"`
EventVersion *uint64 `protobuf:"varint,10,opt"` EventVersion proto.Option[uint64] `protobuf:"varint,10,opt"`
Events []*ChannelEvent `protobuf:"bytes,11,rep"` Events []*ChannelEvent `protobuf:"bytes,11,rep"`
FromRoleInfo *ChannelRole `protobuf:"bytes,12,opt"` FromRoleInfo *ChannelRole `protobuf:"bytes,12,opt"`
FreqLimitInfo *ChannelFreqLimitInfo `protobuf:"bytes,13,opt"` FreqLimitInfo *ChannelFreqLimitInfo `protobuf:"bytes,13,opt"`
DirectMessageMember []*DirectMessageMember `protobuf:"bytes,14,rep"` 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 { type ChannelFreqLimitInfo struct {
IsLimited *uint32 `protobuf:"varint,1,opt"` IsLimited proto.Option[uint32] `protobuf:"varint,1,opt"`
LeftCount *uint32 `protobuf:"varint,2,opt"` LeftCount proto.Option[uint32] `protobuf:"varint,2,opt"`
LimitTimestamp *uint64 `protobuf:"varint,3,opt"` LimitTimestamp proto.Option[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
} }
type ChannelInfo struct { type ChannelInfo struct {
Id *uint64 `protobuf:"varint,1,opt"` Id proto.Option[uint64] `protobuf:"varint,1,opt"`
Name []byte `protobuf:"bytes,2,opt"` Name []byte `protobuf:"bytes,2,opt"`
Color *uint32 `protobuf:"varint,3,opt"` Color proto.Option[uint32] `protobuf:"varint,3,opt"`
Hoist *uint32 `protobuf:"varint,4,opt"` Hoist proto.Option[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
} }
type ChannelLoginSig struct { type ChannelLoginSig struct {
Type *uint32 `protobuf:"varint,1,opt"` Type proto.Option[uint32] `protobuf:"varint,1,opt"`
Sig []byte `protobuf:"bytes,2,opt"` Sig []byte `protobuf:"bytes,2,opt"`
Appid *uint32 `protobuf:"varint,3,opt"` Appid proto.Option[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 ChannelMeta struct { type ChannelMeta struct {
FromUin *uint64 `protobuf:"varint,1,opt"` FromUin proto.Option[uint64] `protobuf:"varint,1,opt"`
LoginSig *ChannelLoginSig `protobuf:"bytes,2,opt"` LoginSig *ChannelLoginSig `protobuf:"bytes,2,opt"`
} }
func (x *ChannelMeta) GetFromUin() uint64 {
if x != nil && x.FromUin != nil {
return *x.FromUin
}
return 0
}
type ChannelMsgContent struct { type ChannelMsgContent struct {
Head *ChannelMsgHead `protobuf:"bytes,1,opt"` Head *ChannelMsgHead `protobuf:"bytes,1,opt"`
CtrlHead *ChannelMsgCtrlHead `protobuf:"bytes,2,opt"` CtrlHead *ChannelMsgCtrlHead `protobuf:"bytes,2,opt"`
@ -274,72 +86,16 @@ type ChannelMsgCtrlHead struct {
IncludeUin [][]byte `protobuf:"bytes,1,rep"` IncludeUin [][]byte `protobuf:"bytes,1,rep"`
// repeated uint64 excludeUin = 2; // bytes? // repeated uint64 excludeUin = 2; // bytes?
// repeated uint64 featureid = 3; // repeated uint64 featureid = 3;
OfflineFlag *uint32 `protobuf:"varint,4,opt"` OfflineFlag proto.Option[uint32] `protobuf:"varint,4,opt"`
Visibility *uint32 `protobuf:"varint,5,opt"` Visibility proto.Option[uint32] `protobuf:"varint,5,opt"`
CtrlFlag *uint64 `protobuf:"varint,6,opt"` CtrlFlag proto.Option[uint64] `protobuf:"varint,6,opt"`
Events []*ChannelEvent `protobuf:"bytes,7,rep"` Events []*ChannelEvent `protobuf:"bytes,7,rep"`
Level *uint64 `protobuf:"varint,8,opt"` Level proto.Option[uint64] `protobuf:"varint,8,opt"`
PersonalLevels []*PersonalLevel `protobuf:"bytes,9,rep"` PersonalLevels []*PersonalLevel `protobuf:"bytes,9,rep"`
GuildSyncSeq *uint64 `protobuf:"varint,10,opt"` GuildSyncSeq proto.Option[uint64] `protobuf:"varint,10,opt"`
MemberNum *uint32 `protobuf:"varint,11,opt"` MemberNum proto.Option[uint32] `protobuf:"varint,11,opt"`
ChannelType *uint32 `protobuf:"varint,12,opt"` ChannelType proto.Option[uint32] `protobuf:"varint,12,opt"`
PrivateType *uint32 `protobuf:"varint,13,opt"` PrivateType proto.Option[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
} }
type ChannelMsgHead struct { type ChannelMsgHead struct {
@ -348,153 +104,34 @@ type ChannelMsgHead struct {
} }
type ChannelMsgMeta struct { type ChannelMsgMeta struct {
AtAllSeq *uint64 `protobuf:"varint,1,opt"` AtAllSeq proto.Option[uint64] `protobuf:"varint,1,opt"`
}
func (x *ChannelMsgMeta) GetAtAllSeq() uint64 {
if x != nil && x.AtAllSeq != nil {
return *x.AtAllSeq
}
return 0
} }
type ChannelMsgOpInfo struct { type ChannelMsgOpInfo struct {
OperatorTinyid *uint64 `protobuf:"varint,1,opt"` OperatorTinyid proto.Option[uint64] `protobuf:"varint,1,opt"`
OperatorRole *uint64 `protobuf:"varint,2,opt"` OperatorRole proto.Option[uint64] `protobuf:"varint,2,opt"`
Reason *uint64 `protobuf:"varint,3,opt"` Reason proto.Option[uint64] `protobuf:"varint,3,opt"`
Timestamp *uint64 `protobuf:"varint,4,opt"` Timestamp proto.Option[uint64] `protobuf:"varint,4,opt"`
AtType *uint64 `protobuf:"varint,5,opt"` AtType proto.Option[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
} }
type PersonalLevel struct { type PersonalLevel struct {
ToUin *uint64 `protobuf:"varint,1,opt"` ToUin proto.Option[uint64] `protobuf:"varint,1,opt"`
Level *uint64 `protobuf:"varint,2,opt"` Level proto.Option[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
} }
type ChannelRole struct { type ChannelRole struct {
Id *uint64 `protobuf:"varint,1,opt"` Id proto.Option[uint64] `protobuf:"varint,1,opt"`
Info []byte `protobuf:"bytes,2,opt"` Info []byte `protobuf:"bytes,2,opt"`
Flag *uint32 `protobuf:"varint,3,opt"` Flag proto.Option[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
} }
type ChannelRoutingHead struct { type ChannelRoutingHead struct {
GuildId *uint64 `protobuf:"varint,1,opt"` GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelId *uint64 `protobuf:"varint,2,opt"` ChannelId proto.Option[uint64] `protobuf:"varint,2,opt"`
FromUin *uint64 `protobuf:"varint,3,opt"` FromUin proto.Option[uint64] `protobuf:"varint,3,opt"`
FromTinyid *uint64 `protobuf:"varint,4,opt"` FromTinyid proto.Option[uint64] `protobuf:"varint,4,opt"`
GuildCode *uint64 `protobuf:"varint,5,opt"` GuildCode proto.Option[uint64] `protobuf:"varint,5,opt"`
FromAppid *uint64 `protobuf:"varint,6,opt"` FromAppid proto.Option[uint64] `protobuf:"varint,6,opt"`
DirectMessageFlag *uint32 `protobuf:"varint,7,opt"` DirectMessageFlag proto.Option[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
} }

View File

@ -3,47 +3,23 @@
package channel package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
type FocusInfo struct { type FocusInfo struct {
ChannelIdList []uint64 `protobuf:"varint,1,rep"` ChannelIdList []uint64 `protobuf:"varint,1,rep"`
} }
type MsgOnlinePush struct { type MsgOnlinePush struct {
Msgs []*ChannelMsgContent `protobuf:"bytes,1,rep"` Msgs []*ChannelMsgContent `protobuf:"bytes,1,rep"`
GeneralFlag *uint32 `protobuf:"varint,2,opt"` GeneralFlag proto.Option[uint32] `protobuf:"varint,2,opt"`
NeedResp *uint32 `protobuf:"varint,3,opt"` NeedResp proto.Option[uint32] `protobuf:"varint,3,opt"`
ServerBuf []byte `protobuf:"bytes,4,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"` CompressMsg []byte `protobuf:"bytes,6,opt"`
FocusInfo *FocusInfo `protobuf:"bytes,7,opt"` FocusInfo *FocusInfo `protobuf:"bytes,7,opt"`
HugeFlag *uint32 `protobuf:"varint,8,opt"` HugeFlag proto.Option[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
} }
type MsgPushResp struct { type MsgPushResp struct {
@ -55,21 +31,7 @@ type PressMsg struct {
} }
type ServerBuf struct { type ServerBuf struct {
SvrIp *uint32 `protobuf:"varint,1,opt"` SvrIp proto.Option[uint32] `protobuf:"varint,1,opt"`
SvrPort *uint32 `protobuf:"varint,2,opt"` SvrPort proto.Option[uint32] `protobuf:"varint,2,opt"`
EchoKey []byte `protobuf:"bytes,3,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
}

View File

@ -5,6 +5,7 @@ package channel
import ( import (
msg "github.com/Mrs4s/MiraiGo/client/pb/msg" msg "github.com/Mrs4s/MiraiGo/client/pb/msg"
proto "github.com/RomiChan/protobuf/proto"
) )
type DF62ReqBody struct { type DF62ReqBody struct {
@ -12,54 +13,19 @@ type DF62ReqBody struct {
} }
type DF62RspBody struct { type DF62RspBody struct {
Result *uint32 `protobuf:"varint,1,opt"` Result proto.Option[uint32] `protobuf:"varint,1,opt"`
Errmsg []byte `protobuf:"bytes,2,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"` 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"` TransSvrInfo *TransSvrInfo `protobuf:"bytes,6,opt"`
FreqLimitInfo *ChannelFreqLimitInfo `protobuf:"bytes,7,opt"` FreqLimitInfo *ChannelFreqLimitInfo `protobuf:"bytes,7,opt"`
Body *msg.MessageBody `protobuf:"bytes,8,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 { type TransSvrInfo struct {
SubType *uint32 `protobuf:"varint,1,opt"` SubType proto.Option[uint32] `protobuf:"varint,1,opt"`
RetCode *int32 `protobuf:"varint,2,opt"` RetCode proto.Option[int32] `protobuf:"varint,2,opt"`
ErrMsg []byte `protobuf:"bytes,3,opt"` ErrMsg []byte `protobuf:"bytes,3,opt"`
TransInfo []byte `protobuf:"bytes,4,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
}

File diff suppressed because it is too large Load Diff

View File

@ -3,499 +3,132 @@
package channel package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
type ChannelMsg struct { type ChannelMsg struct {
GuildId *uint64 `protobuf:"varint,1,opt"` GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelId *uint64 `protobuf:"varint,2,opt"` ChannelId proto.Option[uint64] `protobuf:"varint,2,opt"`
Result *uint32 `protobuf:"varint,3,opt"` Result proto.Option[uint32] `protobuf:"varint,3,opt"`
RspBeginSeq *uint64 `protobuf:"varint,4,opt"` RspBeginSeq proto.Option[uint64] `protobuf:"varint,4,opt"`
RspEndSeq *uint64 `protobuf:"varint,5,opt"` RspEndSeq proto.Option[uint64] `protobuf:"varint,5,opt"`
Msgs []*ChannelMsgContent `protobuf:"bytes,6,rep"` 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 { type ChannelMsgReq struct {
ChannelParam *ChannelParam `protobuf:"bytes,1,opt"` ChannelParam *ChannelParam `protobuf:"bytes,1,opt"`
WithVersionFlag *uint32 `protobuf:"varint,2,opt"` WithVersionFlag proto.Option[uint32] `protobuf:"varint,2,opt"`
DirectMessageFlag *uint32 `protobuf:"varint,3,opt"` DirectMessageFlag proto.Option[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
} }
type ChannelMsgRsp struct { type ChannelMsgRsp struct {
Result *uint32 `protobuf:"varint,1,opt"` Result proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"` ErrMsg []byte `protobuf:"bytes,2,opt"`
ChannelMsg *ChannelMsg `protobuf:"bytes,3,opt"` ChannelMsg *ChannelMsg `protobuf:"bytes,3,opt"`
WithVersionFlag *uint32 `protobuf:"varint,4,opt"` WithVersionFlag proto.Option[uint32] `protobuf:"varint,4,opt"`
GetMsgTime *uint64 `protobuf:"varint,5,opt"` GetMsgTime proto.Option[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
} }
type ChannelNode struct { type ChannelNode struct {
ChannelId *uint64 `protobuf:"varint,1,opt"` ChannelId proto.Option[uint64] `protobuf:"varint,1,opt"`
Seq *uint64 `protobuf:"varint,2,opt"` Seq proto.Option[uint64] `protobuf:"varint,2,opt"`
CntSeq *uint64 `protobuf:"varint,3,opt"` CntSeq proto.Option[uint64] `protobuf:"varint,3,opt"`
Time *uint64 `protobuf:"varint,4,opt"` Time proto.Option[uint64] `protobuf:"varint,4,opt"`
MemberReadMsgSeq *uint64 `protobuf:"varint,5,opt"` MemberReadMsgSeq proto.Option[uint64] `protobuf:"varint,5,opt"`
MemberReadCntSeq *uint64 `protobuf:"varint,6,opt"` MemberReadCntSeq proto.Option[uint64] `protobuf:"varint,6,opt"`
NotifyType *uint32 `protobuf:"varint,7,opt"` NotifyType proto.Option[uint32] `protobuf:"varint,7,opt"`
ChannelName []byte `protobuf:"bytes,8,opt"` ChannelName []byte `protobuf:"bytes,8,opt"`
ChannelType *uint32 `protobuf:"varint,9,opt"` ChannelType proto.Option[uint32] `protobuf:"varint,9,opt"`
Meta []byte `protobuf:"bytes,10,opt"` Meta []byte `protobuf:"bytes,10,opt"`
ReadMsgMeta []byte `protobuf:"bytes,11,opt"` ReadMsgMeta []byte `protobuf:"bytes,11,opt"`
EventTime *uint32 `protobuf:"varint,12,opt"` EventTime proto.Option[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
} }
type ChannelParam struct { type ChannelParam struct {
GuildId *uint64 `protobuf:"varint,1,opt"` GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelId *uint64 `protobuf:"varint,2,opt"` ChannelId proto.Option[uint64] `protobuf:"varint,2,opt"`
BeginSeq *uint64 `protobuf:"varint,3,opt"` BeginSeq proto.Option[uint64] `protobuf:"varint,3,opt"`
EndSeq *uint64 `protobuf:"varint,4,opt"` EndSeq proto.Option[uint64] `protobuf:"varint,4,opt"`
Time *uint64 `protobuf:"varint,5,opt"` Time proto.Option[uint64] `protobuf:"varint,5,opt"`
Version []uint64 `protobuf:"varint,6,rep"` Version []uint64 `protobuf:"varint,6,rep"`
Seqs []*MsgCond `protobuf:"bytes,7,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
}
type DirectMessageSource struct { type DirectMessageSource struct {
TinyId *uint64 `protobuf:"varint,1,opt"` TinyId proto.Option[uint64] `protobuf:"varint,1,opt"`
GuildId *uint64 `protobuf:"varint,2,opt"` GuildId proto.Option[uint64] `protobuf:"varint,2,opt"`
GuildName []byte `protobuf:"bytes,3,opt"` GuildName []byte `protobuf:"bytes,3,opt"`
MemberName []byte `protobuf:"bytes,4,opt"` MemberName []byte `protobuf:"bytes,4,opt"`
NickName []byte `protobuf:"bytes,5,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
}
type FirstViewMsg struct { type FirstViewMsg struct {
PushFlag *uint32 `protobuf:"varint,1,opt"` PushFlag proto.Option[uint32] `protobuf:"varint,1,opt"`
Seq *uint32 `protobuf:"varint,2,opt"` Seq proto.Option[uint32] `protobuf:"varint,2,opt"`
GuildNodes []*GuildNode `protobuf:"bytes,3,rep"` GuildNodes []*GuildNode `protobuf:"bytes,3,rep"`
ChannelMsgs []*ChannelMsg `protobuf:"bytes,4,rep"` ChannelMsgs []*ChannelMsg `protobuf:"bytes,4,rep"`
GetMsgTime *uint64 `protobuf:"varint,5,opt"` GetMsgTime proto.Option[uint64] `protobuf:"varint,5,opt"`
DirectMessageGuildNodes []*GuildNode `protobuf:"bytes,6,rep"` 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
}
type FirstViewReq struct { type FirstViewReq struct {
LastMsgTime *uint64 `protobuf:"varint,1,opt"` LastMsgTime proto.Option[uint64] `protobuf:"varint,1,opt"`
UdcFlag *uint32 `protobuf:"varint,2,opt"` UdcFlag proto.Option[uint32] `protobuf:"varint,2,opt"`
Seq *uint32 `protobuf:"varint,3,opt"` Seq proto.Option[uint32] `protobuf:"varint,3,opt"`
DirectMessageFlag *uint32 `protobuf:"varint,4,opt"` DirectMessageFlag proto.Option[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
} }
type FirstViewRsp struct { type FirstViewRsp struct {
Result *uint32 `protobuf:"varint,1,opt"` Result proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"` ErrMsg []byte `protobuf:"bytes,2,opt"`
Seq *uint32 `protobuf:"varint,3,opt"` Seq proto.Option[uint32] `protobuf:"varint,3,opt"`
UdcFlag *uint32 `protobuf:"varint,4,opt"` UdcFlag proto.Option[uint32] `protobuf:"varint,4,opt"`
GuildCount *uint32 `protobuf:"varint,5,opt"` GuildCount proto.Option[uint32] `protobuf:"varint,5,opt"`
SelfTinyid *uint64 `protobuf:"varint,6,opt"` SelfTinyid proto.Option[uint64] `protobuf:"varint,6,opt"`
DirectMessageSwitch *uint32 `protobuf:"varint,7,opt"` DirectMessageSwitch proto.Option[uint32] `protobuf:"varint,7,opt"`
DirectMessageGuildCount *uint32 `protobuf:"varint,8,opt"` DirectMessageGuildCount proto.Option[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
} }
type GuildNode struct { type GuildNode struct {
GuildId *uint64 `protobuf:"varint,1,opt"` GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
GuildCode *uint64 `protobuf:"varint,2,opt"` GuildCode proto.Option[uint64] `protobuf:"varint,2,opt"`
ChannelNodes []*ChannelNode `protobuf:"bytes,3,rep"` ChannelNodes []*ChannelNode `protobuf:"bytes,3,rep"`
GuildName []byte `protobuf:"bytes,4,opt"` GuildName []byte `protobuf:"bytes,4,opt"`
PeerSource *DirectMessageSource `protobuf:"bytes,5,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 { type MsgCond struct {
Seq *uint64 `protobuf:"varint,1,opt"` Seq proto.Option[uint64] `protobuf:"varint,1,opt"`
EventVersion *uint64 `protobuf:"varint,2,opt"` EventVersion proto.Option[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
} }
type MultiChannelMsg struct { type MultiChannelMsg struct {
PushFlag *uint32 `protobuf:"varint,1,opt"` PushFlag proto.Option[uint32] `protobuf:"varint,1,opt"`
Seq *uint32 `protobuf:"varint,2,opt"` Seq proto.Option[uint32] `protobuf:"varint,2,opt"`
ChannelMsgs []*ChannelMsg `protobuf:"bytes,3,rep"` ChannelMsgs []*ChannelMsg `protobuf:"bytes,3,rep"`
GetMsgTime *uint64 `protobuf:"varint,4,opt"` GetMsgTime proto.Option[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
} }
type MultiChannelMsgReq struct { type MultiChannelMsgReq struct {
ChannelParams []*ChannelParam `protobuf:"bytes,1,rep"` ChannelParams []*ChannelParam `protobuf:"bytes,1,rep"`
Seq *uint32 `protobuf:"varint,2,opt"` Seq proto.Option[uint32] `protobuf:"varint,2,opt"`
DirectMessageFlag *uint32 `protobuf:"varint,3,opt"` DirectMessageFlag proto.Option[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
} }
type MultiChannelMsgRsp struct { type MultiChannelMsgRsp struct {
Result *uint32 `protobuf:"varint,1,opt"` Result proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"` ErrMsg []byte `protobuf:"bytes,2,opt"`
Seq *uint32 `protobuf:"varint,3,opt"` Seq proto.Option[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
} }
type ReqBody struct { type ReqBody struct {
ChannelParam *ChannelParam `protobuf:"bytes,1,opt"` ChannelParam *ChannelParam `protobuf:"bytes,1,opt"`
DirectMessageFlag *uint32 `protobuf:"varint,2,opt"` DirectMessageFlag proto.Option[uint32] `protobuf:"varint,2,opt"`
}
func (x *ReqBody) GetDirectMessageFlag() uint32 {
if x != nil && x.DirectMessageFlag != nil {
return *x.DirectMessageFlag
}
return 0
} }
type RspBody struct { type RspBody struct {
Result *uint32 `protobuf:"varint,1,opt"` Result proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"` ErrMsg []byte `protobuf:"bytes,2,opt"`
ChannelMsg *ChannelMsg `protobuf:"bytes,3,opt"` ChannelMsg *ChannelMsg `protobuf:"bytes,3,opt"`
} }
func (x *RspBody) GetResult() uint32 {
if x != nil && x.Result != nil {
return *x.Result
}
return 0
}

View File

@ -3,51 +3,20 @@
package channel package channel
import (
proto "github.com/RomiChan/protobuf/proto"
)
// see sub_37628C // see sub_37628C
type ChannelOidb0Xf5BRsp struct { type ChannelOidb0Xf5BRsp struct {
GuildId *uint64 `protobuf:"varint,1,opt"` GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
Bots []*GuildMemberInfo `protobuf:"bytes,4,rep"` Bots []*GuildMemberInfo `protobuf:"bytes,4,rep"`
Members []*GuildMemberInfo `protobuf:"bytes,5,rep"` Members []*GuildMemberInfo `protobuf:"bytes,5,rep"`
NextIndex *uint32 `protobuf:"varint,10,opt"` NextIndex proto.Option[uint32] `protobuf:"varint,10,opt"`
Finished *uint32 `protobuf:"varint,9,opt"` Finished proto.Option[uint32] `protobuf:"varint,9,opt"`
NextQueryParam *string `protobuf:"bytes,24,opt"` NextQueryParam proto.Option[string] `protobuf:"bytes,24,opt"`
MemberWithRoles []*GuildGroupMembersInfo `protobuf:"bytes,25,rep"` MemberWithRoles []*GuildGroupMembersInfo `protobuf:"bytes,25,rep"`
NextRoleIdIndex *uint64 `protobuf:"varint,26,opt"` NextRoleIdIndex proto.Option[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
} }
type ChannelOidb0Xf88Rsp struct { type ChannelOidb0Xf88Rsp struct {
@ -75,527 +44,114 @@ type ChannelOidb0X1017Rsp struct {
} }
type P10X1017 struct { type P10X1017 struct {
TinyId *uint64 `protobuf:"varint,1,opt"` TinyId proto.Option[uint64] `protobuf:"varint,1,opt"`
Roles []*GuildUserRole `protobuf:"bytes,3,rep"` Roles []*GuildUserRole `protobuf:"bytes,3,rep"`
} }
func (x *P10X1017) GetTinyId() uint64 {
if x != nil && x.TinyId != nil {
return *x.TinyId
}
return 0
}
type ChannelOidb0X1019Rsp struct { type ChannelOidb0X1019Rsp struct {
GuildId *uint64 `protobuf:"varint,1,opt"` GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
Roles []*GuildRole `protobuf:"bytes,2,rep"` Roles []*GuildRole `protobuf:"bytes,2,rep"`
} }
func (x *ChannelOidb0X1019Rsp) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
type ChannelOidb0X1016Rsp struct { type ChannelOidb0X1016Rsp struct {
RoleId *uint64 `protobuf:"varint,2,opt"` RoleId proto.Option[uint64] `protobuf:"varint,2,opt"`
}
func (x *ChannelOidb0X1016Rsp) GetRoleId() uint64 {
if x != nil && x.RoleId != nil {
return *x.RoleId
}
return 0
} }
type GuildMetaRsp struct { type GuildMetaRsp struct {
GuildId *uint64 `protobuf:"varint,3,opt"` GuildId proto.Option[uint64] `protobuf:"varint,3,opt"`
Meta *GuildMeta `protobuf:"bytes,4,opt"` Meta *GuildMeta `protobuf:"bytes,4,opt"`
} }
func (x *GuildMetaRsp) GetGuildId() uint64 {
if x != nil && x.GuildId != nil {
return *x.GuildId
}
return 0
}
type ChannelListRsp struct { type ChannelListRsp struct {
GuildId *uint64 `protobuf:"varint,1,opt"` GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
Channels []*GuildChannelInfo `protobuf:"bytes,2,rep"` // 5: Category infos 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
}
type GuildGroupMembersInfo struct { type GuildGroupMembersInfo struct {
RoleId *uint64 `protobuf:"varint,1,opt"` RoleId proto.Option[uint64] `protobuf:"varint,1,opt"`
Members []*GuildMemberInfo `protobuf:"bytes,2,rep"` Members []*GuildMemberInfo `protobuf:"bytes,2,rep"`
RoleName *string `protobuf:"bytes,3,opt"` RoleName proto.Option[string] `protobuf:"bytes,3,opt"`
Color *uint32 `protobuf:"varint,4,opt"` Color proto.Option[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
} }
// see sub_374334 // see sub_374334
type GuildMemberInfo struct { type GuildMemberInfo struct {
Title *string `protobuf:"bytes,2,opt"` Title proto.Option[string] `protobuf:"bytes,2,opt"`
Nickname *string `protobuf:"bytes,3,opt"` Nickname proto.Option[string] `protobuf:"bytes,3,opt"`
LastSpeakTime *int64 `protobuf:"varint,4,opt"` // uncertainty LastSpeakTime proto.Option[int64] `protobuf:"varint,4,opt"` // uncertainty
Role *int32 `protobuf:"varint,5,opt"` // uncertainty Role proto.Option[int32] `protobuf:"varint,5,opt"` // uncertainty
TinyId *uint64 `protobuf:"varint,8,opt"` TinyId proto.Option[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
} }
// 频道系统用户资料 // 频道系统用户资料
type GuildUserProfile struct { type GuildUserProfile struct {
TinyId *uint64 `protobuf:"varint,2,opt"` TinyId proto.Option[uint64] `protobuf:"varint,2,opt"`
Nickname *string `protobuf:"bytes,3,opt"` Nickname proto.Option[string] `protobuf:"bytes,3,opt"`
AvatarUrl *string `protobuf:"bytes,6,opt"` AvatarUrl proto.Option[string] `protobuf:"bytes,6,opt"`
// 15: avatar url info // 15: avatar url info
JoinTime *int64 `protobuf:"varint,16,opt"` // uncertainty JoinTime proto.Option[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
} }
type GuildRole struct { type GuildRole struct {
RoleId *uint64 `protobuf:"varint,1,opt"` RoleId proto.Option[uint64] `protobuf:"varint,1,opt"`
Name *string `protobuf:"bytes,2,opt"` Name proto.Option[string] `protobuf:"bytes,2,opt"`
ArgbColor *uint32 `protobuf:"varint,3,opt"` ArgbColor proto.Option[uint32] `protobuf:"varint,3,opt"`
Independent *int32 `protobuf:"varint,4,opt"` Independent proto.Option[int32] `protobuf:"varint,4,opt"`
Num *int32 `protobuf:"varint,5,opt"` Num proto.Option[int32] `protobuf:"varint,5,opt"`
Owned *int32 `protobuf:"varint,6,opt"` // 是否拥有 存疑 Owned proto.Option[int32] `protobuf:"varint,6,opt"` // 是否拥有 存疑
Disabled *int32 `protobuf:"varint,7,opt"` // 权限不足或不显示 Disabled proto.Option[int32] `protobuf:"varint,7,opt"` // 权限不足或不显示
MaxNum *int32 `protobuf:"varint,8,opt"` // 9: ? MaxNum proto.Option[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
} }
type GuildUserRole struct { type GuildUserRole struct {
RoleId *uint64 `protobuf:"varint,1,opt"` RoleId proto.Option[uint64] `protobuf:"varint,1,opt"`
Name *string `protobuf:"bytes,2,opt"` Name proto.Option[string] `protobuf:"bytes,2,opt"`
ArgbColor *uint32 `protobuf:"varint,3,opt"` ArgbColor proto.Option[uint32] `protobuf:"varint,3,opt"`
Independent *int32 `protobuf:"varint,4,opt"` Independent proto.Option[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
} }
type GuildMeta struct { type GuildMeta struct {
GuildCode *uint64 `protobuf:"varint,2,opt"` GuildCode proto.Option[uint64] `protobuf:"varint,2,opt"`
CreateTime *int64 `protobuf:"varint,4,opt"` CreateTime proto.Option[int64] `protobuf:"varint,4,opt"`
MaxMemberCount *int64 `protobuf:"varint,5,opt"` MaxMemberCount proto.Option[int64] `protobuf:"varint,5,opt"`
MemberCount *int64 `protobuf:"varint,6,opt"` MemberCount proto.Option[int64] `protobuf:"varint,6,opt"`
Name *string `protobuf:"bytes,8,opt"` Name proto.Option[string] `protobuf:"bytes,8,opt"`
RobotMaxNum *int32 `protobuf:"varint,11,opt"` RobotMaxNum proto.Option[int32] `protobuf:"varint,11,opt"`
AdminMaxNum *int32 `protobuf:"varint,12,opt"` AdminMaxNum proto.Option[int32] `protobuf:"varint,12,opt"`
Profile *string `protobuf:"bytes,13,opt"` Profile proto.Option[string] `protobuf:"bytes,13,opt"`
AvatarSeq *int64 `protobuf:"varint,14,opt"` AvatarSeq proto.Option[int64] `protobuf:"varint,14,opt"`
OwnerId *uint64 `protobuf:"varint,18,opt"` OwnerId proto.Option[uint64] `protobuf:"varint,18,opt"`
CoverSeq *int64 `protobuf:"varint,19,opt"` CoverSeq proto.Option[int64] `protobuf:"varint,19,opt"`
ClientId *int32 `protobuf:"varint,20,opt"` ClientId proto.Option[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
} }
type GuildChannelInfo struct { type GuildChannelInfo struct {
ChannelId *uint64 `protobuf:"varint,1,opt"` ChannelId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelName *string `protobuf:"bytes,2,opt"` ChannelName proto.Option[string] `protobuf:"bytes,2,opt"`
CreatorUin *int64 `protobuf:"varint,3,opt"` CreatorUin proto.Option[int64] `protobuf:"varint,3,opt"`
CreateTime *int64 `protobuf:"varint,4,opt"` CreateTime proto.Option[int64] `protobuf:"varint,4,opt"`
GuildId *uint64 `protobuf:"varint,5,opt"` GuildId proto.Option[uint64] `protobuf:"varint,5,opt"`
FinalNotifyType *int32 `protobuf:"varint,6,opt"` FinalNotifyType proto.Option[int32] `protobuf:"varint,6,opt"`
ChannelType *int32 `protobuf:"varint,7,opt"` ChannelType proto.Option[int32] `protobuf:"varint,7,opt"`
TalkPermission *int32 `protobuf:"varint,8,opt"` TalkPermission proto.Option[int32] `protobuf:"varint,8,opt"`
// 11 - 14 : MsgInfo // 11 - 14 : MsgInfo
CreatorTinyId *uint64 `protobuf:"varint,15,opt"` CreatorTinyId proto.Option[uint64] `protobuf:"varint,15,opt"`
// 16: Member info ? // 16: Member info ?
VisibleType *int32 `protobuf:"varint,22,opt"` VisibleType proto.Option[int32] `protobuf:"varint,22,opt"`
TopMsg *GuildChannelTopMsgInfo `protobuf:"bytes,28,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"` 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 { type GuildChannelSlowModeInfo struct {
SlowModeKey *int32 `protobuf:"varint,1,opt"` SlowModeKey proto.Option[int32] `protobuf:"varint,1,opt"`
SpeakFrequency *int32 `protobuf:"varint,2,opt"` SpeakFrequency proto.Option[int32] `protobuf:"varint,2,opt"`
SlowModeCircle *int32 `protobuf:"varint,3,opt"` SlowModeCircle proto.Option[int32] `protobuf:"varint,3,opt"`
SlowModeText *string `protobuf:"bytes,4,opt"` SlowModeText proto.Option[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 ""
} }
type GuildChannelTopMsgInfo struct { type GuildChannelTopMsgInfo struct {
TopMsgSeq *uint64 `protobuf:"varint,1,opt"` TopMsgSeq proto.Option[uint64] `protobuf:"varint,1,opt"`
TopMsgTime *int64 `protobuf:"varint,2,opt"` TopMsgTime proto.Option[int64] `protobuf:"varint,2,opt"`
TopMsgOperatorTinyId *uint64 `protobuf:"varint,3,opt"` TopMsgOperatorTinyId proto.Option[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
} }

View File

@ -3,219 +3,69 @@
package cmd0x352 package cmd0x352
import (
proto "github.com/RomiChan/protobuf/proto"
)
type ReqBody struct { type ReqBody struct {
Subcmd *uint32 `protobuf:"varint,1,opt"` Subcmd proto.Option[uint32] `protobuf:"varint,1,opt"`
TryupImgReq []*D352TryUpImgReq `protobuf:"bytes,2,rep"` TryupImgReq []*D352TryUpImgReq `protobuf:"bytes,2,rep"`
// repeated GetImgUrlReq getimgUrlReq = 3; // repeated GetImgUrlReq getimgUrlReq = 3;
// repeated DelImgReq delImgReq = 4; // repeated DelImgReq delImgReq = 4;
NetType *uint32 `protobuf:"varint,10,opt"` NetType proto.Option[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
} }
type RspBody struct { type RspBody struct {
Subcmd *uint32 `protobuf:"varint,1,opt"` Subcmd proto.Option[uint32] `protobuf:"varint,1,opt"`
TryupImgRsp []*TryUpImgRsp `protobuf:"bytes,2,rep"` TryupImgRsp []*TryUpImgRsp `protobuf:"bytes,2,rep"`
// repeated GetImgUrlRsp getimgUrlRsp = 3; // repeated GetImgUrlRsp getimgUrlRsp = 3;
NewBigchan *bool `protobuf:"varint,4,opt"` NewBigchan proto.Option[bool] `protobuf:"varint,4,opt"`
// repeated DelImgRsp delImgRsp = 5; // repeated DelImgRsp delImgRsp = 5;
FailMsg []byte `protobuf:"bytes,10,opt"` 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 { type D352TryUpImgReq struct {
SrcUin *uint64 `protobuf:"varint,1,opt"` SrcUin proto.Option[uint64] `protobuf:"varint,1,opt"`
DstUin *uint64 `protobuf:"varint,2,opt"` DstUin proto.Option[uint64] `protobuf:"varint,2,opt"`
FileId *uint64 `protobuf:"varint,3,opt"` FileId proto.Option[uint64] `protobuf:"varint,3,opt"`
FileMd5 []byte `protobuf:"bytes,4,opt"` FileMd5 []byte `protobuf:"bytes,4,opt"`
FileSize *uint64 `protobuf:"varint,5,opt"` FileSize proto.Option[uint64] `protobuf:"varint,5,opt"`
FileName []byte `protobuf:"bytes,6,opt"` FileName []byte `protobuf:"bytes,6,opt"`
SrcTerm *uint32 `protobuf:"varint,7,opt"` SrcTerm proto.Option[uint32] `protobuf:"varint,7,opt"`
PlatformType *uint32 `protobuf:"varint,8,opt"` PlatformType proto.Option[uint32] `protobuf:"varint,8,opt"`
InnerIp *uint32 `protobuf:"varint,9,opt"` InnerIp proto.Option[uint32] `protobuf:"varint,9,opt"`
AddressBook *bool `protobuf:"varint,10,opt"` AddressBook proto.Option[bool] `protobuf:"varint,10,opt"`
Retry *uint32 `protobuf:"varint,11,opt"` Retry proto.Option[uint32] `protobuf:"varint,11,opt"`
BuType *uint32 `protobuf:"varint,12,opt"` BuType proto.Option[uint32] `protobuf:"varint,12,opt"`
PicOriginal *bool `protobuf:"varint,13,opt"` PicOriginal proto.Option[bool] `protobuf:"varint,13,opt"`
PicWidth *uint32 `protobuf:"varint,14,opt"` PicWidth proto.Option[uint32] `protobuf:"varint,14,opt"`
PicHeight *uint32 `protobuf:"varint,15,opt"` PicHeight proto.Option[uint32] `protobuf:"varint,15,opt"`
PicType *uint32 `protobuf:"varint,16,opt"` PicType proto.Option[uint32] `protobuf:"varint,16,opt"`
BuildVer []byte `protobuf:"bytes,17,opt"` BuildVer []byte `protobuf:"bytes,17,opt"`
FileIndex []byte `protobuf:"bytes,18,opt"` FileIndex []byte `protobuf:"bytes,18,opt"`
StoreDays *uint32 `protobuf:"varint,19,opt"` StoreDays proto.Option[uint32] `protobuf:"varint,19,opt"`
TryupStepflag *uint32 `protobuf:"varint,20,opt"` TryupStepflag proto.Option[uint32] `protobuf:"varint,20,opt"`
RejectTryfast *bool `protobuf:"varint,21,opt"` RejectTryfast proto.Option[bool] `protobuf:"varint,21,opt"`
SrvUpload *uint32 `protobuf:"varint,22,opt"` SrvUpload proto.Option[uint32] `protobuf:"varint,22,opt"`
TransferUrl []byte `protobuf:"bytes,23,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
}
type TryUpImgRsp struct { type TryUpImgRsp struct {
FileId *uint64 `protobuf:"varint,1,opt"` FileId proto.Option[uint64] `protobuf:"varint,1,opt"`
ClientIp *uint32 `protobuf:"varint,2,opt"` ClientIp proto.Option[uint32] `protobuf:"varint,2,opt"`
Result *uint32 `protobuf:"varint,3,opt"` Result proto.Option[uint32] `protobuf:"varint,3,opt"`
FailMsg []byte `protobuf:"bytes,4,opt"` FailMsg []byte `protobuf:"bytes,4,opt"`
FileExit *bool `protobuf:"varint,5,opt"` FileExit proto.Option[bool] `protobuf:"varint,5,opt"`
// optional ImgInfo imgInfo = 6; // optional ImgInfo imgInfo = 6;
UpIp []uint32 `protobuf:"varint,7,rep"` UpIp []uint32 `protobuf:"varint,7,rep"`
UpPort []uint32 `protobuf:"varint,8,rep"` UpPort []uint32 `protobuf:"varint,8,rep"`
UpUkey []byte `protobuf:"bytes,9,opt"` UpUkey []byte `protobuf:"bytes,9,opt"`
UpResid []byte `protobuf:"bytes,10,opt"` UpResid []byte `protobuf:"bytes,10,opt"`
UpUuid []byte `protobuf:"bytes,11,opt"` UpUuid []byte `protobuf:"bytes,11,opt"`
UpOffset *uint64 `protobuf:"varint,12,opt"` UpOffset proto.Option[uint64] `protobuf:"varint,12,opt"`
BlockSize *uint64 `protobuf:"varint,13,opt"` BlockSize proto.Option[uint64] `protobuf:"varint,13,opt"`
EncryptDstip []byte `protobuf:"bytes,14,opt"` EncryptDstip []byte `protobuf:"bytes,14,opt"`
Roamdays *uint32 `protobuf:"varint,15,opt"` Roamdays proto.Option[uint32] `protobuf:"varint,15,opt"`
// repeated IPv6Info upIp6 = 26; // repeated IPv6Info upIp6 = 26;
ClientIp6 []byte `protobuf:"bytes,27,opt"` ClientIp6 []byte `protobuf:"bytes,27,opt"`
ThumbDownPara []byte `protobuf:"bytes,60,opt"` ThumbDownPara []byte `protobuf:"bytes,60,opt"`
@ -223,61 +73,5 @@ type TryUpImgRsp struct {
DownDomain []byte `protobuf:"bytes,62,opt"` DownDomain []byte `protobuf:"bytes,62,opt"`
BigDownPara []byte `protobuf:"bytes,64,opt"` BigDownPara []byte `protobuf:"bytes,64,opt"`
BigThumbDownPara []byte `protobuf:"bytes,65,opt"` BigThumbDownPara []byte `protobuf:"bytes,65,opt"`
HttpsUrlFlag *uint32 `protobuf:"varint,66,opt"` // optional TryUpInfo4Busi info4Busi = 1001; HttpsUrlFlag proto.Option[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
} }

File diff suppressed because it is too large Load Diff

View File

@ -3,395 +3,77 @@
package cmd0x3f6 package cmd0x3f6
import (
proto "github.com/RomiChan/protobuf/proto"
)
type C3F6ReqBody struct { type C3F6ReqBody struct {
SubCmd *uint32 `protobuf:"varint,1,opt"` SubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
CrmCommonHead *C3F6CRMMsgHead `protobuf:"bytes,2,opt"` CrmCommonHead *C3F6CRMMsgHead `protobuf:"bytes,2,opt"`
SubcmdLoginProcessCompleteReqBody *QDUserLoginProcessCompleteReqBody `protobuf:"bytes,42,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 { type C3F6RspBody struct {
SubCmd *uint32 `protobuf:"varint,1,opt"` SubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
CrmCommonHead *C3F6CRMMsgHead `protobuf:"bytes,2,opt"` CrmCommonHead *C3F6CRMMsgHead `protobuf:"bytes,2,opt"`
SubcmdLoginProcessCompleteRspBody *QDUserLoginProcessCompleteRspBody `protobuf:"bytes,42,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 { type QDUserLoginProcessCompleteReqBody struct {
Kfext *uint64 `protobuf:"varint,1,opt"` Kfext proto.Option[uint64] `protobuf:"varint,1,opt"`
Pubno *uint32 `protobuf:"varint,2,opt"` Pubno proto.Option[uint32] `protobuf:"varint,2,opt"`
Buildno *uint32 `protobuf:"varint,3,opt"` Buildno proto.Option[uint32] `protobuf:"varint,3,opt"`
TerminalType *uint32 `protobuf:"varint,4,opt"` TerminalType proto.Option[uint32] `protobuf:"varint,4,opt"`
Status *uint32 `protobuf:"varint,5,opt"` Status proto.Option[uint32] `protobuf:"varint,5,opt"`
LoginTime *uint32 `protobuf:"varint,6,opt"` LoginTime proto.Option[uint32] `protobuf:"varint,6,opt"`
HardwareInfo *string `protobuf:"bytes,7,opt"` HardwareInfo proto.Option[string] `protobuf:"bytes,7,opt"`
SoftwareInfo *string `protobuf:"bytes,8,opt"` SoftwareInfo proto.Option[string] `protobuf:"bytes,8,opt"`
Guid []byte `protobuf:"bytes,9,opt"` Guid []byte `protobuf:"bytes,9,opt"`
AppName *string `protobuf:"bytes,10,opt"` AppName proto.Option[string] `protobuf:"bytes,10,opt"`
SubAppId *uint32 `protobuf:"varint,11,opt"` SubAppId proto.Option[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
} }
type QDUserLoginProcessCompleteRspBody struct { type QDUserLoginProcessCompleteRspBody struct {
Ret *RetInfo `protobuf:"bytes,1,opt"` Ret *RetInfo `protobuf:"bytes,1,opt"`
Url *string `protobuf:"bytes,2,opt"` Url proto.Option[string] `protobuf:"bytes,2,opt"`
Mobile *string `protobuf:"bytes,3,opt"` Mobile proto.Option[string] `protobuf:"bytes,3,opt"`
ExternalMobile *string `protobuf:"bytes,4,opt"` ExternalMobile proto.Option[string] `protobuf:"bytes,4,opt"`
DataAnalysisPriv *bool `protobuf:"varint,5,opt"` DataAnalysisPriv proto.Option[bool] `protobuf:"varint,5,opt"`
DeviceLock *bool `protobuf:"varint,6,opt"` DeviceLock proto.Option[bool] `protobuf:"varint,6,opt"`
ModulePrivilege *uint64 `protobuf:"varint,7,opt"` ModulePrivilege proto.Option[uint64] `protobuf:"varint,7,opt"`
ModuleSubPrivilege []uint32 `protobuf:"varint,8,rep"` ModuleSubPrivilege []uint32 `protobuf:"varint,8,rep"`
MasterSet *uint32 `protobuf:"varint,9,opt"` MasterSet proto.Option[uint32] `protobuf:"varint,9,opt"`
ExtSet *uint32 `protobuf:"varint,10,opt"` ExtSet proto.Option[uint32] `protobuf:"varint,10,opt"`
CorpConfProperty *uint64 `protobuf:"varint,11,opt"` CorpConfProperty proto.Option[uint64] `protobuf:"varint,11,opt"`
Corpuin *uint64 `protobuf:"varint,12,opt"` Corpuin proto.Option[uint64] `protobuf:"varint,12,opt"`
Kfaccount *uint64 `protobuf:"varint,13,opt"` Kfaccount proto.Option[uint64] `protobuf:"varint,13,opt"`
SecurityLevel *uint32 `protobuf:"varint,14,opt"` SecurityLevel proto.Option[uint32] `protobuf:"varint,14,opt"`
MsgTitle *string `protobuf:"bytes,15,opt"` MsgTitle proto.Option[string] `protobuf:"bytes,15,opt"`
SuccNoticeMsg *string `protobuf:"bytes,16,opt"` SuccNoticeMsg proto.Option[string] `protobuf:"bytes,16,opt"`
NameAccount *uint64 `protobuf:"varint,17,opt"` NameAccount proto.Option[uint64] `protobuf:"varint,17,opt"`
CrmMigrateFlag *uint32 `protobuf:"varint,18,opt"` CrmMigrateFlag proto.Option[uint32] `protobuf:"varint,18,opt"`
ExtuinName *string `protobuf:"bytes,19,opt"` ExtuinName proto.Option[string] `protobuf:"bytes,19,opt"`
OpenAccountTime *uint32 `protobuf:"varint,20,opt"` OpenAccountTime proto.Option[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
} }
type RetInfo struct { type RetInfo struct {
RetCode *uint32 `protobuf:"varint,1,opt"` RetCode proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrorMsg *string `protobuf:"bytes,2,opt"` ErrorMsg proto.Option[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 ""
} }
type C3F6CRMMsgHead struct { type C3F6CRMMsgHead struct {
CrmSubCmd *uint32 `protobuf:"varint,1,opt"` CrmSubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
HeadLen *uint32 `protobuf:"varint,2,opt"` HeadLen proto.Option[uint32] `protobuf:"varint,2,opt"`
VerNo *uint32 `protobuf:"varint,3,opt"` VerNo proto.Option[uint32] `protobuf:"varint,3,opt"`
KfUin *uint64 `protobuf:"varint,4,opt"` KfUin proto.Option[uint64] `protobuf:"varint,4,opt"`
Seq *uint32 `protobuf:"varint,5,opt"` Seq proto.Option[uint32] `protobuf:"varint,5,opt"`
PackNum *uint32 `protobuf:"varint,6,opt"` PackNum proto.Option[uint32] `protobuf:"varint,6,opt"`
CurPack *uint32 `protobuf:"varint,7,opt"` CurPack proto.Option[uint32] `protobuf:"varint,7,opt"`
BufSig *string `protobuf:"bytes,8,opt"` BufSig proto.Option[string] `protobuf:"bytes,8,opt"`
Clienttype *uint32 `protobuf:"varint,9,opt"` Clienttype proto.Option[uint32] `protobuf:"varint,9,opt"`
LaborUin *uint64 `protobuf:"varint,10,opt"` LaborUin proto.Option[uint64] `protobuf:"varint,10,opt"`
LaborName *string `protobuf:"bytes,11,opt"` LaborName proto.Option[string] `protobuf:"bytes,11,opt"`
Kfaccount *uint64 `protobuf:"varint,12,opt"` Kfaccount proto.Option[uint64] `protobuf:"varint,12,opt"`
TraceId *string `protobuf:"bytes,13,opt"` TraceId proto.Option[string] `protobuf:"bytes,13,opt"`
AppId *uint32 `protobuf:"varint,14,opt"` AppId proto.Option[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
} }

View File

@ -3,273 +3,81 @@
package cmd0x6ff package cmd0x6ff
import (
proto "github.com/RomiChan/protobuf/proto"
)
type C519CRMMsgHead struct { type C519CRMMsgHead struct {
CrmSubCmd *uint32 `protobuf:"varint,1,opt"` CrmSubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
HeadLen *uint32 `protobuf:"varint,2,opt"` HeadLen proto.Option[uint32] `protobuf:"varint,2,opt"`
VerNo *uint32 `protobuf:"varint,3,opt"` VerNo proto.Option[uint32] `protobuf:"varint,3,opt"`
KfUin *uint64 `protobuf:"varint,4,opt"` KfUin proto.Option[uint64] `protobuf:"varint,4,opt"`
Seq *uint32 `protobuf:"varint,5,opt"` Seq proto.Option[uint32] `protobuf:"varint,5,opt"`
PackNum *uint32 `protobuf:"varint,6,opt"` PackNum proto.Option[uint32] `protobuf:"varint,6,opt"`
CurPack *uint32 `protobuf:"varint,7,opt"` CurPack proto.Option[uint32] `protobuf:"varint,7,opt"`
BufSig *string `protobuf:"bytes,8,opt"` BufSig proto.Option[string] `protobuf:"bytes,8,opt"`
PubQq *uint64 `protobuf:"varint,9,opt"` PubQq proto.Option[uint64] `protobuf:"varint,9,opt"`
Clienttype *uint32 `protobuf:"varint,10,opt"` Clienttype proto.Option[uint32] `protobuf:"varint,10,opt"`
LaborUin *uint64 `protobuf:"varint,11,opt"` LaborUin proto.Option[uint64] `protobuf:"varint,11,opt"`
LaborName *string `protobuf:"bytes,12,opt"` LaborName proto.Option[string] `protobuf:"bytes,12,opt"`
Puin *uint64 `protobuf:"varint,13,opt"` Puin proto.Option[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
} }
type GetNavigationMenuReqBody struct { type GetNavigationMenuReqBody struct {
Puin *uint64 `protobuf:"varint,1,opt"` Puin proto.Option[uint64] `protobuf:"varint,1,opt"`
Uin *uint64 `protobuf:"varint,2,opt"` Uin proto.Option[uint64] `protobuf:"varint,2,opt"`
VerNo *uint32 `protobuf:"varint,3,opt"` VerNo proto.Option[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
} }
type GetNavigationMenuRspBody struct { type GetNavigationMenuRspBody struct {
Ret *C519RetInfo `protobuf:"bytes,1,opt"` Ret *C519RetInfo `protobuf:"bytes,1,opt"`
IsShow *int32 `protobuf:"varint,2,opt"` IsShow proto.Option[int32] `protobuf:"varint,2,opt"`
UctMsg *string `protobuf:"bytes,3,opt"` UctMsg proto.Option[string] `protobuf:"bytes,3,opt"`
VerNo *uint32 `protobuf:"varint,4,opt"` VerNo proto.Option[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
} }
type C519ReqBody struct { type C519ReqBody struct {
SubCmd *uint32 `protobuf:"varint,1,opt"` SubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
CrmCommonHead *C519CRMMsgHead `protobuf:"bytes,2,opt"` CrmCommonHead *C519CRMMsgHead `protobuf:"bytes,2,opt"`
GetAddressDetailListReqBody *GetAddressDetailListReqBody `protobuf:"bytes,33,opt"` GetAddressDetailListReqBody *GetAddressDetailListReqBody `protobuf:"bytes,33,opt"`
GetNavigationMenuReq *GetNavigationMenuReqBody `protobuf:"bytes,35,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 { type C519RetInfo struct {
RetCode *uint32 `protobuf:"varint,1,opt"` RetCode proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrorMsg *string `protobuf:"bytes,2,opt"` ErrorMsg proto.Option[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 ""
} }
type C519RspBody struct { type C519RspBody struct {
SubCmd *uint32 `protobuf:"varint,1,opt"` SubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
CrmCommonHead *C519CRMMsgHead `protobuf:"bytes,2,opt"` CrmCommonHead *C519CRMMsgHead `protobuf:"bytes,2,opt"`
GetAddressDetailListRspBody *GetAddressDetailListRspBody `protobuf:"bytes,33,opt"` GetAddressDetailListRspBody *GetAddressDetailListRspBody `protobuf:"bytes,33,opt"`
GetNavigationMenuRsp *GetNavigationMenuRspBody `protobuf:"bytes,35,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 { type GetAddressDetailListReqBody struct {
Timestamp *uint32 `protobuf:"fixed32,1,opt"` Timestamp proto.Option[uint32] `protobuf:"fixed32,1,opt"`
Timestamp2 *uint64 `protobuf:"fixed64,2,opt"` Timestamp2 proto.Option[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
} }
type GetAddressDetailListRspBody struct { type GetAddressDetailListRspBody struct {
Ret *C519RetInfo `protobuf:"bytes,1,opt"` Ret *C519RetInfo `protobuf:"bytes,1,opt"`
Timestamp *uint32 `protobuf:"fixed32,2,opt"` Timestamp proto.Option[uint32] `protobuf:"fixed32,2,opt"`
Full *bool `protobuf:"varint,3,opt"` Full proto.Option[bool] `protobuf:"varint,3,opt"`
AddressDetail []*AddressDetail `protobuf:"bytes,4,rep"` AddressDetail []*AddressDetail `protobuf:"bytes,4,rep"`
Timestamp2 *uint64 `protobuf:"fixed64,5,opt"` Timestamp2 proto.Option[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
} }
type AddressDetail struct { type AddressDetail struct {
Aid *uint32 `protobuf:"varint,1,opt"` Aid proto.Option[uint32] `protobuf:"varint,1,opt"`
ModifyTime *uint32 `protobuf:"fixed32,2,opt"` ModifyTime proto.Option[uint32] `protobuf:"fixed32,2,opt"`
CreateTime *uint32 `protobuf:"fixed32,3,opt"` CreateTime proto.Option[uint32] `protobuf:"fixed32,3,opt"`
Status *uint32 `protobuf:"varint,4,opt"` Status proto.Option[uint32] `protobuf:"varint,4,opt"`
Groupid *uint32 `protobuf:"varint,5,opt"` Groupid proto.Option[uint32] `protobuf:"varint,5,opt"`
AddGroupName []byte `protobuf:"bytes,6,opt"` AddGroupName []byte `protobuf:"bytes,6,opt"`
Name []byte `protobuf:"bytes,7,opt"` Name []byte `protobuf:"bytes,7,opt"`
Gender *uint32 `protobuf:"varint,8,opt"` Gender proto.Option[uint32] `protobuf:"varint,8,opt"`
Birthday *uint32 `protobuf:"fixed32,9,opt"` Birthday proto.Option[uint32] `protobuf:"fixed32,9,opt"`
Company0 []byte `protobuf:"bytes,10,opt"` Company0 []byte `protobuf:"bytes,10,opt"`
CompanyPosition0 []byte `protobuf:"bytes,11,opt"` CompanyPosition0 []byte `protobuf:"bytes,11,opt"`
Company1 []byte `protobuf:"bytes,12,opt"` Company1 []byte `protobuf:"bytes,12,opt"`
@ -283,182 +91,35 @@ type AddressDetail struct {
Comment []byte `protobuf:"bytes,20,opt"` Comment []byte `protobuf:"bytes,20,opt"`
HeadUrl []byte `protobuf:"bytes,21,opt"` HeadUrl []byte `protobuf:"bytes,21,opt"`
MobilePhone []*AddressMobileInfo `protobuf:"bytes,22,rep"` 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"` Qq []*AddressQQinfo `protobuf:"bytes,24,rep"`
QqPhoneUpdated *bool `protobuf:"varint,25,opt"` QqPhoneUpdated proto.Option[bool] `protobuf:"varint,25,opt"`
ModifyTime2 *uint64 `protobuf:"fixed64,26,opt"` ModifyTime2 proto.Option[uint64] `protobuf:"fixed64,26,opt"`
ClientRegion *NewBizClientRegion `protobuf:"bytes,27,opt"` ClientRegion *NewBizClientRegion `protobuf:"bytes,27,opt"`
ClientRegionCode *NewBizClientRegionCode `protobuf:"bytes,28,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 { type AddressMobileInfo struct {
Index *uint32 `protobuf:"varint,1,opt"` Index proto.Option[uint32] `protobuf:"varint,1,opt"`
Account []byte `protobuf:"bytes,2,opt"` Account []byte `protobuf:"bytes,2,opt"`
FormattedAccount []byte `protobuf:"bytes,5,opt"` FormattedAccount []byte `protobuf:"bytes,5,opt"`
} }
func (x *AddressMobileInfo) GetIndex() uint32 {
if x != nil && x.Index != nil {
return *x.Index
}
return 0
}
type AddressQQinfo struct { type AddressQQinfo struct {
Index *uint32 `protobuf:"varint,1,opt"` Index proto.Option[uint32] `protobuf:"varint,1,opt"`
Account *uint64 `protobuf:"varint,2,opt"` Account proto.Option[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
} }
type NewBizClientRegion struct { type NewBizClientRegion struct {
ClientNation *string `protobuf:"bytes,1,opt"` ClientNation proto.Option[string] `protobuf:"bytes,1,opt"`
ClientProvince *string `protobuf:"bytes,2,opt"` ClientProvince proto.Option[string] `protobuf:"bytes,2,opt"`
ClientCity *string `protobuf:"bytes,3,opt"` ClientCity proto.Option[string] `protobuf:"bytes,3,opt"`
ClientRegion *string `protobuf:"bytes,4,opt"` ClientRegion proto.Option[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 ""
} }
type NewBizClientRegionCode struct { type NewBizClientRegionCode struct {
Nationid *uint64 `protobuf:"varint,1,opt"` Nationid proto.Option[uint64] `protobuf:"varint,1,opt"`
Provinceid *uint64 `protobuf:"varint,2,opt"` Provinceid proto.Option[uint64] `protobuf:"varint,2,opt"`
Cityid *uint64 `protobuf:"varint,3,opt"` Cityid proto.Option[uint64] `protobuf:"varint,3,opt"`
Regionid *uint64 `protobuf:"varint,4,opt"` Regionid proto.Option[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
} }

View File

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

View File

@ -3,32 +3,15 @@
package exciting package exciting
import (
proto "github.com/RomiChan/protobuf/proto"
)
type GroupFileUploadExt struct { type GroupFileUploadExt struct {
Unknown1 *int32 `protobuf:"varint,1,opt"` Unknown1 proto.Option[int32] `protobuf:"varint,1,opt"`
Unknown2 *int32 `protobuf:"varint,2,opt"` Unknown2 proto.Option[int32] `protobuf:"varint,2,opt"`
Entry *GroupFileUploadEntry `protobuf:"bytes,100,opt"` Entry *GroupFileUploadEntry `protobuf:"bytes,100,opt"`
Unknown3 *int32 `protobuf:"varint,3,opt"` Unknown3 proto.Option[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
} }
type GroupFileUploadEntry struct { type GroupFileUploadEntry struct {
@ -40,107 +23,30 @@ type GroupFileUploadEntry struct {
} }
type ExcitingBusiInfo struct { type ExcitingBusiInfo struct {
BusId *int32 `protobuf:"varint,1,opt"` BusId proto.Option[int32] `protobuf:"varint,1,opt"`
SenderUin *int64 `protobuf:"varint,100,opt"` SenderUin proto.Option[int64] `protobuf:"varint,100,opt"`
ReceiverUin *int64 `protobuf:"varint,200,opt"` // probable ReceiverUin proto.Option[int64] `protobuf:"varint,200,opt"` // probable
GroupCode *int64 `protobuf:"varint,400,opt"` // probable GroupCode proto.Option[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
} }
type ExcitingFileEntry struct { type ExcitingFileEntry struct {
FileSize *int64 `protobuf:"varint,100,opt"` FileSize proto.Option[int64] `protobuf:"varint,100,opt"`
Md5 []byte `protobuf:"bytes,200,opt"` Md5 []byte `protobuf:"bytes,200,opt"`
Sha1 []byte `protobuf:"bytes,300,opt"` Sha1 []byte `protobuf:"bytes,300,opt"`
FileId []byte `protobuf:"bytes,600,opt"` FileId []byte `protobuf:"bytes,600,opt"`
UploadKey []byte `protobuf:"bytes,700,opt"` UploadKey []byte `protobuf:"bytes,700,opt"`
} }
func (x *ExcitingFileEntry) GetFileSize() int64 {
if x != nil && x.FileSize != nil {
return *x.FileSize
}
return 0
}
type ExcitingClientInfo struct { type ExcitingClientInfo struct {
ClientType *int32 `protobuf:"varint,100,opt"` // probable ClientType proto.Option[int32] `protobuf:"varint,100,opt"` // probable
AppId *string `protobuf:"bytes,200,opt"` AppId proto.Option[string] `protobuf:"bytes,200,opt"`
TerminalType *int32 `protobuf:"varint,300,opt"` // probable TerminalType proto.Option[int32] `protobuf:"varint,300,opt"` // probable
ClientVer *string `protobuf:"bytes,400,opt"` ClientVer proto.Option[string] `protobuf:"bytes,400,opt"`
Unknown *int32 `protobuf:"varint,600,opt"` Unknown proto.Option[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
} }
type ExcitingFileNameInfo struct { type ExcitingFileNameInfo struct {
FileName *string `protobuf:"bytes,100,opt"` FileName proto.Option[string] `protobuf:"bytes,100,opt"`
}
func (x *ExcitingFileNameInfo) GetFileName() string {
if x != nil && x.FileName != nil {
return *x.FileName
}
return ""
} }
type ExcitingHostConfig struct { type ExcitingHostConfig struct {
@ -149,31 +55,10 @@ type ExcitingHostConfig struct {
type ExcitingHostInfo struct { type ExcitingHostInfo struct {
Url *ExcitingUrlInfo `protobuf:"bytes,1,opt"` Url *ExcitingUrlInfo `protobuf:"bytes,1,opt"`
Port *int32 `protobuf:"varint,2,opt"` Port proto.Option[int32] `protobuf:"varint,2,opt"`
}
func (x *ExcitingHostInfo) GetPort() int32 {
if x != nil && x.Port != nil {
return *x.Port
}
return 0
} }
type ExcitingUrlInfo struct { type ExcitingUrlInfo struct {
Unknown *int32 `protobuf:"varint,1,opt"` // not https? Unknown proto.Option[int32] `protobuf:"varint,1,opt"` // not https?
Host *string `protobuf:"bytes,2,opt"` Host proto.Option[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 ""
} }

View File

@ -3,55 +3,24 @@
package faceroam package faceroam
import (
proto "github.com/RomiChan/protobuf/proto"
)
type PlatInfo struct { type PlatInfo struct {
Implat *int64 `protobuf:"varint,1,opt"` Implat proto.Option[int64] `protobuf:"varint,1,opt"`
Osver *string `protobuf:"bytes,2,opt"` Osver proto.Option[string] `protobuf:"bytes,2,opt"`
Mqqver *string `protobuf:"bytes,3,opt"` Mqqver proto.Option[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 ""
} }
type FaceroamReqBody struct { type FaceroamReqBody struct {
Comm *PlatInfo `protobuf:"bytes,1,opt"` Comm *PlatInfo `protobuf:"bytes,1,opt"`
Uin *uint64 `protobuf:"varint,2,opt"` Uin proto.Option[uint64] `protobuf:"varint,2,opt"`
SubCmd *uint32 `protobuf:"varint,3,opt"` SubCmd proto.Option[uint32] `protobuf:"varint,3,opt"`
ReqUserInfo *ReqUserInfo `protobuf:"bytes,4,opt"` ReqUserInfo *ReqUserInfo `protobuf:"bytes,4,opt"`
ReqDeleteItem *ReqDeleteItem `protobuf:"bytes,5,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
}
type ReqDeleteItem struct { type ReqDeleteItem struct {
Filename []string `protobuf:"bytes,1,rep"` Filename []string `protobuf:"bytes,1,rep"`
} }
@ -60,34 +29,13 @@ type ReqUserInfo struct {
} }
type FaceroamRspBody struct { type FaceroamRspBody struct {
Ret *int64 `protobuf:"varint,1,opt"` Ret proto.Option[int64] `protobuf:"varint,1,opt"`
Errmsg *string `protobuf:"bytes,2,opt"` Errmsg proto.Option[string] `protobuf:"bytes,2,opt"`
SubCmd *uint32 `protobuf:"varint,3,opt"` SubCmd proto.Option[uint32] `protobuf:"varint,3,opt"`
RspUserInfo *RspUserInfo `protobuf:"bytes,4,opt"` RspUserInfo *RspUserInfo `protobuf:"bytes,4,opt"`
RspDeleteItem *RspDeleteItem `protobuf:"bytes,5,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
}
type RspDeleteItem struct { type RspDeleteItem struct {
Filename []string `protobuf:"bytes,1,rep"` Filename []string `protobuf:"bytes,1,rep"`
Ret []int64 `protobuf:"varint,2,rep"` Ret []int64 `protobuf:"varint,2,rep"`
@ -96,21 +44,7 @@ type RspDeleteItem struct {
type RspUserInfo struct { type RspUserInfo struct {
Filename []string `protobuf:"bytes,1,rep"` Filename []string `protobuf:"bytes,1,rep"`
DeleteFile []string `protobuf:"bytes,2,rep"` DeleteFile []string `protobuf:"bytes,2,rep"`
Bid *string `protobuf:"bytes,3,opt"` Bid proto.Option[string] `protobuf:"bytes,3,opt"`
MaxRoamSize *uint32 `protobuf:"varint,4,opt"` MaxRoamSize proto.Option[uint32] `protobuf:"varint,4,opt"`
EmojiType []uint32 `protobuf:"varint,5,rep"` 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
}

View File

@ -3,291 +3,99 @@
package highway package highway
import (
proto "github.com/RomiChan/protobuf/proto"
)
type CommFileExtReq struct { type CommFileExtReq struct {
ActionType *uint32 `protobuf:"varint,1,opt"` ActionType proto.Option[uint32] `protobuf:"varint,1,opt"`
Uuid []byte `protobuf:"bytes,2,opt"` Uuid []byte `protobuf:"bytes,2,opt"`
} }
func (x *CommFileExtReq) GetActionType() uint32 {
if x != nil && x.ActionType != nil {
return *x.ActionType
}
return 0
}
type CommFileExtRsp struct { type CommFileExtRsp struct {
Retcode *int32 `protobuf:"varint,1,opt"` Retcode proto.Option[int32] `protobuf:"varint,1,opt"`
DownloadUrl []byte `protobuf:"bytes,2,opt"` DownloadUrl []byte `protobuf:"bytes,2,opt"`
} }
func (x *CommFileExtRsp) GetRetcode() int32 {
if x != nil && x.Retcode != nil {
return *x.Retcode
}
return 0
}
type PicInfo struct { type PicInfo struct {
Idx *uint32 `protobuf:"varint,1,opt"` Idx proto.Option[uint32] `protobuf:"varint,1,opt"`
Size *uint32 `protobuf:"varint,2,opt"` Size proto.Option[uint32] `protobuf:"varint,2,opt"`
BinMd5 []byte `protobuf:"bytes,3,opt"` BinMd5 []byte `protobuf:"bytes,3,opt"`
Type *uint32 `protobuf:"varint,4,opt"` Type proto.Option[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
} }
type QQVoiceExtReq struct { type QQVoiceExtReq struct {
Qid []byte `protobuf:"bytes,1,opt"` Qid []byte `protobuf:"bytes,1,opt"`
Fmt *uint32 `protobuf:"varint,2,opt"` Fmt proto.Option[uint32] `protobuf:"varint,2,opt"`
Rate *uint32 `protobuf:"varint,3,opt"` Rate proto.Option[uint32] `protobuf:"varint,3,opt"`
Bits *uint32 `protobuf:"varint,4,opt"` Bits proto.Option[uint32] `protobuf:"varint,4,opt"`
Channel *uint32 `protobuf:"varint,5,opt"` Channel proto.Option[uint32] `protobuf:"varint,5,opt"`
Pinyin *uint32 `protobuf:"varint,6,opt"` Pinyin proto.Option[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
} }
type QQVoiceExtRsp struct { type QQVoiceExtRsp struct {
Qid []byte `protobuf:"bytes,1,opt"` Qid []byte `protobuf:"bytes,1,opt"`
Retcode *int32 `protobuf:"varint,2,opt"` Retcode proto.Option[int32] `protobuf:"varint,2,opt"`
Result []*QQVoiceResult `protobuf:"bytes,3,rep"` Result []*QQVoiceResult `protobuf:"bytes,3,rep"`
} }
func (x *QQVoiceExtRsp) GetRetcode() int32 {
if x != nil && x.Retcode != nil {
return *x.Retcode
}
return 0
}
type QQVoiceResult struct { type QQVoiceResult struct {
Text []byte `protobuf:"bytes,1,opt"` Text []byte `protobuf:"bytes,1,opt"`
Pinyin []byte `protobuf:"bytes,2,opt"` Pinyin []byte `protobuf:"bytes,2,opt"`
Source *uint32 `protobuf:"varint,3,opt"` Source proto.Option[uint32] `protobuf:"varint,3,opt"`
}
func (x *QQVoiceResult) GetSource() uint32 {
if x != nil && x.Source != nil {
return *x.Source
}
return 0
} }
type ShortVideoReqExtInfo struct { type ShortVideoReqExtInfo struct {
Cmd *uint32 `protobuf:"varint,1,opt"` Cmd proto.Option[uint32] `protobuf:"varint,1,opt"`
SessionId *uint64 `protobuf:"varint,2,opt"` SessionId proto.Option[uint64] `protobuf:"varint,2,opt"`
Thumbinfo *PicInfo `protobuf:"bytes,3,opt"` Thumbinfo *PicInfo `protobuf:"bytes,3,opt"`
Videoinfo *VideoInfo `protobuf:"bytes,4,opt"` Videoinfo *VideoInfo `protobuf:"bytes,4,opt"`
ShortvideoSureReq *ShortVideoSureReqInfo `protobuf:"bytes,5,opt"` ShortvideoSureReq *ShortVideoSureReqInfo `protobuf:"bytes,5,opt"`
IsMergeCmdBeforeData *bool `protobuf:"varint,6,opt"` IsMergeCmdBeforeData proto.Option[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
} }
type ShortVideoRspExtInfo struct { type ShortVideoRspExtInfo struct {
Cmd *uint32 `protobuf:"varint,1,opt"` Cmd proto.Option[uint32] `protobuf:"varint,1,opt"`
SessionId *uint64 `protobuf:"varint,2,opt"` SessionId proto.Option[uint64] `protobuf:"varint,2,opt"`
Retcode *int32 `protobuf:"varint,3,opt"` Retcode proto.Option[int32] `protobuf:"varint,3,opt"`
Errinfo []byte `protobuf:"bytes,4,opt"` Errinfo []byte `protobuf:"bytes,4,opt"`
Thumbinfo *PicInfo `protobuf:"bytes,5,opt"` Thumbinfo *PicInfo `protobuf:"bytes,5,opt"`
Videoinfo *VideoInfo `protobuf:"bytes,6,opt"` Videoinfo *VideoInfo `protobuf:"bytes,6,opt"`
ShortvideoSureRsp *ShortVideoSureRspInfo `protobuf:"bytes,7,opt"` ShortvideoSureRsp *ShortVideoSureRspInfo `protobuf:"bytes,7,opt"`
RetryFlag *uint32 `protobuf:"varint,8,opt"` RetryFlag proto.Option[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
} }
type ShortVideoSureReqInfo struct { type ShortVideoSureReqInfo struct {
Fromuin *uint64 `protobuf:"varint,1,opt"` Fromuin proto.Option[uint64] `protobuf:"varint,1,opt"`
ChatType *uint32 `protobuf:"varint,2,opt"` ChatType proto.Option[uint32] `protobuf:"varint,2,opt"`
Touin *uint64 `protobuf:"varint,3,opt"` Touin proto.Option[uint64] `protobuf:"varint,3,opt"`
GroupCode *uint64 `protobuf:"varint,4,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,4,opt"`
ClientType *uint32 `protobuf:"varint,5,opt"` ClientType proto.Option[uint32] `protobuf:"varint,5,opt"`
Thumbinfo *PicInfo `protobuf:"bytes,6,opt"` Thumbinfo *PicInfo `protobuf:"bytes,6,opt"`
MergeVideoinfo []*VideoInfo `protobuf:"bytes,7,rep"` MergeVideoinfo []*VideoInfo `protobuf:"bytes,7,rep"`
DropVideoinfo []*VideoInfo `protobuf:"bytes,8,rep"` DropVideoinfo []*VideoInfo `protobuf:"bytes,8,rep"`
BusinessType *uint32 `protobuf:"varint,9,opt"` BusinessType proto.Option[uint32] `protobuf:"varint,9,opt"`
SubBusinessType *uint32 `protobuf:"varint,10,opt"` SubBusinessType proto.Option[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
} }
type ShortVideoSureRspInfo struct { type ShortVideoSureRspInfo struct {
Fileid []byte `protobuf:"bytes,1,opt"` Fileid []byte `protobuf:"bytes,1,opt"`
Ukey []byte `protobuf:"bytes,2,opt"` Ukey []byte `protobuf:"bytes,2,opt"`
Videoinfo *VideoInfo `protobuf:"bytes,3,opt"` Videoinfo *VideoInfo `protobuf:"bytes,3,opt"`
MergeCost *uint32 `protobuf:"varint,4,opt"` MergeCost proto.Option[uint32] `protobuf:"varint,4,opt"`
}
func (x *ShortVideoSureRspInfo) GetMergeCost() uint32 {
if x != nil && x.MergeCost != nil {
return *x.MergeCost
}
return 0
} }
type StoryVideoExtReq struct { type StoryVideoExtReq struct {
} }
type StoryVideoExtRsp struct { type StoryVideoExtRsp struct {
Retcode *int32 `protobuf:"varint,1,opt"` Retcode proto.Option[int32] `protobuf:"varint,1,opt"`
Msg []byte `protobuf:"bytes,2,opt"` Msg []byte `protobuf:"bytes,2,opt"`
CdnUrl []byte `protobuf:"bytes,3,opt"` CdnUrl []byte `protobuf:"bytes,3,opt"`
FileKey []byte `protobuf:"bytes,4,opt"` FileKey []byte `protobuf:"bytes,4,opt"`
FileId []byte `protobuf:"bytes,5,opt"` FileId []byte `protobuf:"bytes,5,opt"`
} }
func (x *StoryVideoExtRsp) GetRetcode() int32 {
if x != nil && x.Retcode != nil {
return *x.Retcode
}
return 0
}
type UploadPicExtInfo struct { type UploadPicExtInfo struct {
FileResid []byte `protobuf:"bytes,1,opt"` FileResid []byte `protobuf:"bytes,1,opt"`
DownloadUrl []byte `protobuf:"bytes,2,opt"` DownloadUrl []byte `protobuf:"bytes,2,opt"`
@ -295,69 +103,13 @@ type UploadPicExtInfo struct {
} }
type VideoInfo struct { type VideoInfo struct {
Idx *uint32 `protobuf:"varint,1,opt"` Idx proto.Option[uint32] `protobuf:"varint,1,opt"`
Size *uint32 `protobuf:"varint,2,opt"` Size proto.Option[uint32] `protobuf:"varint,2,opt"`
BinMd5 []byte `protobuf:"bytes,3,opt"` BinMd5 []byte `protobuf:"bytes,3,opt"`
Format *uint32 `protobuf:"varint,4,opt"` Format proto.Option[uint32] `protobuf:"varint,4,opt"`
ResLen *uint32 `protobuf:"varint,5,opt"` ResLen proto.Option[uint32] `protobuf:"varint,5,opt"`
ResWidth *uint32 `protobuf:"varint,6,opt"` ResWidth proto.Option[uint32] `protobuf:"varint,6,opt"`
Time *uint32 `protobuf:"varint,7,opt"` Time proto.Option[uint32] `protobuf:"varint,7,opt"`
Starttime *uint64 `protobuf:"varint,8,opt"` Starttime proto.Option[uint64] `protobuf:"varint,8,opt"`
IsAudio *uint32 `protobuf:"varint,9,opt"` IsAudio proto.Option[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
} }

View File

@ -3,189 +3,46 @@
package msf package msf
import (
proto "github.com/RomiChan/protobuf/proto"
)
type DiscussList struct { type DiscussList struct {
DiscussCode *uint64 `protobuf:"varint,1,opt"` DiscussCode proto.Option[uint64] `protobuf:"varint,1,opt"`
DiscussSeq *uint64 `protobuf:"varint,2,opt"` DiscussSeq proto.Option[uint64] `protobuf:"varint,2,opt"`
MemberSeq *uint64 `protobuf:"varint,3,opt"` MemberSeq proto.Option[uint64] `protobuf:"varint,3,opt"`
InfoSeq *uint64 `protobuf:"varint,4,opt"` InfoSeq proto.Option[uint64] `protobuf:"varint,4,opt"`
BHotGroup *bool `protobuf:"varint,5,opt"` BHotGroup proto.Option[bool] `protobuf:"varint,5,opt"`
RedpackTime *uint64 `protobuf:"varint,6,opt"` RedpackTime proto.Option[uint64] `protobuf:"varint,6,opt"`
HasMsg *bool `protobuf:"varint,7,opt"` HasMsg proto.Option[bool] `protobuf:"varint,7,opt"`
DicussFlag *int64 `protobuf:"varint,8,opt"` DicussFlag proto.Option[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
} }
type GroupList struct { type GroupList struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
GroupSeq *uint64 `protobuf:"varint,2,opt"` GroupSeq proto.Option[uint64] `protobuf:"varint,2,opt"`
MemberSeq *uint64 `protobuf:"varint,3,opt"` MemberSeq proto.Option[uint64] `protobuf:"varint,3,opt"`
Mask *uint64 `protobuf:"varint,4,opt"` Mask proto.Option[uint64] `protobuf:"varint,4,opt"`
RedpackTime *uint64 `protobuf:"varint,5,opt"` RedpackTime proto.Option[uint64] `protobuf:"varint,5,opt"`
HasMsg *bool `protobuf:"varint,6,opt"` HasMsg proto.Option[bool] `protobuf:"varint,6,opt"`
GroupFlag *int64 `protobuf:"varint,7,opt"` GroupFlag proto.Option[int64] `protobuf:"varint,7,opt"`
GroupType *uint64 `protobuf:"varint,8,opt"` GroupType proto.Option[uint64] `protobuf:"varint,8,opt"`
GroupNameSeq *uint32 `protobuf:"varint,9,opt"` GroupNameSeq proto.Option[uint32] `protobuf:"varint,9,opt"`
GroupMemberSeq *uint32 `protobuf:"varint,10,opt"` GroupMemberSeq proto.Option[uint32] `protobuf:"varint,10,opt"`
UinFlagEx2 *uint32 `protobuf:"varint,11,opt"` UinFlagEx2 proto.Option[uint32] `protobuf:"varint,11,opt"`
ImportantMsgLatestSeq *uint32 `protobuf:"varint,12,opt"` ImportantMsgLatestSeq proto.Option[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
} }
type SvcPbResponsePullDisMsgProxy struct { type SvcPbResponsePullDisMsgProxy struct {
MemberSeq *uint64 `protobuf:"varint,1,opt"` MemberSeq proto.Option[uint64] `protobuf:"varint,1,opt"`
Content []byte `protobuf:"bytes,2,opt"` Content []byte `protobuf:"bytes,2,opt"`
} }
func (x *SvcPbResponsePullDisMsgProxy) GetMemberSeq() uint64 {
if x != nil && x.MemberSeq != nil {
return *x.MemberSeq
}
return 0
}
type SvcRegisterProxyMsgResp struct { type SvcRegisterProxyMsgResp struct {
Result *uint32 `protobuf:"varint,1,opt"` Result proto.Option[uint32] `protobuf:"varint,1,opt"`
ErrMsg []byte `protobuf:"bytes,2,opt"` ErrMsg []byte `protobuf:"bytes,2,opt"`
Flag *uint32 `protobuf:"varint,3,opt"` Flag proto.Option[uint32] `protobuf:"varint,3,opt"`
Seq *uint32 `protobuf:"varint,4,opt"` Seq proto.Option[uint32] `protobuf:"varint,4,opt"`
Info *SvcResponseMsgInfo `protobuf:"bytes,5,opt"` Info *SvcResponseMsgInfo `protobuf:"bytes,5,opt"`
GroupList []*GroupList `protobuf:"bytes,6,rep"` GroupList []*GroupList `protobuf:"bytes,6,rep"`
DiscussList []*DiscussList `protobuf:"bytes,7,rep"` DiscussList []*DiscussList `protobuf:"bytes,7,rep"`
@ -193,64 +50,15 @@ type SvcRegisterProxyMsgResp struct {
DiscussMsg []*SvcPbResponsePullDisMsgProxy `protobuf:"bytes,9,rep"` DiscussMsg []*SvcPbResponsePullDisMsgProxy `protobuf:"bytes,9,rep"`
C2CMsg []byte `protobuf:"bytes,10,opt"` C2CMsg []byte `protobuf:"bytes,10,opt"`
PubAccountMsg []byte `protobuf:"bytes,11,opt"` PubAccountMsg []byte `protobuf:"bytes,11,opt"`
DiscussListFlag *uint32 `protobuf:"varint,12,opt"` DiscussListFlag proto.Option[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
} }
type SvcResponseMsgInfo struct { type SvcResponseMsgInfo struct {
GroupNum *uint32 `protobuf:"varint,1,opt"` GroupNum proto.Option[uint32] `protobuf:"varint,1,opt"`
DiscussNum *uint32 `protobuf:"varint,2,opt"` DiscussNum proto.Option[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
} }
type SvcResponsePbPullGroupMsgProxy struct { type SvcResponsePbPullGroupMsgProxy struct {
MemberSeq *uint64 `protobuf:"varint,1,opt"` MemberSeq proto.Option[uint64] `protobuf:"varint,1,opt"`
Content []byte `protobuf:"bytes,2,opt"` Content []byte `protobuf:"bytes,2,opt"`
} }
func (x *SvcResponsePbPullGroupMsgProxy) GetMemberSeq() uint64 {
if x != nil && x.MemberSeq != nil {
return *x.MemberSeq
}
return 0
}

View File

@ -3,80 +3,28 @@
package msg package msg
import (
proto "github.com/RomiChan/protobuf/proto"
)
type ExtChannelInfo struct { type ExtChannelInfo struct {
GuildId *uint64 `protobuf:"varint,1,opt"` GuildId proto.Option[uint64] `protobuf:"varint,1,opt"`
ChannelId *uint64 `protobuf:"varint,2,opt"` ChannelId proto.Option[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
} }
type TextResvAttr struct { type TextResvAttr struct {
Wording []byte `protobuf:"bytes,1,opt"` Wording []byte `protobuf:"bytes,1,opt"`
TextAnalysisResult *uint32 `protobuf:"varint,2,opt"` TextAnalysisResult proto.Option[uint32] `protobuf:"varint,2,opt"`
AtType *uint32 `protobuf:"varint,3,opt"` AtType proto.Option[uint32] `protobuf:"varint,3,opt"`
AtMemberUin *uint64 `protobuf:"varint,4,opt"` AtMemberUin proto.Option[uint64] `protobuf:"varint,4,opt"`
AtMemberTinyid *uint64 `protobuf:"varint,5,opt"` AtMemberTinyid proto.Option[uint64] `protobuf:"varint,5,opt"`
AtMemberRoleInfo *ExtRoleInfo `protobuf:"bytes,6,opt"` AtMemberRoleInfo *ExtRoleInfo `protobuf:"bytes,6,opt"`
AtRoleInfo *ExtRoleInfo `protobuf:"bytes,7,opt"` AtRoleInfo *ExtRoleInfo `protobuf:"bytes,7,opt"`
AtChannelInfo *ExtChannelInfo `protobuf:"bytes,8,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
}
type ExtRoleInfo struct { type ExtRoleInfo struct {
Id *uint64 `protobuf:"varint,1,opt"` Id proto.Option[uint64] `protobuf:"varint,1,opt"`
Info []byte `protobuf:"bytes,2,opt"` Info []byte `protobuf:"bytes,2,opt"`
Flag *uint32 `protobuf:"varint,3,opt"` Flag proto.Option[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
} }

View File

@ -3,668 +3,126 @@
package msg package msg
import (
proto "github.com/RomiChan/protobuf/proto"
)
type C2CHead struct { type C2CHead struct {
ToUin *uint64 `protobuf:"varint,1,opt"` ToUin proto.Option[uint64] `protobuf:"varint,1,opt"`
FromUin *uint64 `protobuf:"varint,2,opt"` FromUin proto.Option[uint64] `protobuf:"varint,2,opt"`
CcType *uint32 `protobuf:"varint,3,opt"` CcType proto.Option[uint32] `protobuf:"varint,3,opt"`
CcCmd *uint32 `protobuf:"varint,4,opt"` CcCmd proto.Option[uint32] `protobuf:"varint,4,opt"`
AuthPicSig []byte `protobuf:"bytes,5,opt"` AuthPicSig []byte `protobuf:"bytes,5,opt"`
AuthSig []byte `protobuf:"bytes,6,opt"` AuthSig []byte `protobuf:"bytes,6,opt"`
AuthBuf []byte `protobuf:"bytes,7,opt"` AuthBuf []byte `protobuf:"bytes,7,opt"`
ServerTime *uint32 `protobuf:"varint,8,opt"` ServerTime proto.Option[uint32] `protobuf:"varint,8,opt"`
ClientTime *uint32 `protobuf:"varint,9,opt"` ClientTime proto.Option[uint32] `protobuf:"varint,9,opt"`
Rand *uint32 `protobuf:"varint,10,opt"` Rand proto.Option[uint32] `protobuf:"varint,10,opt"`
PhoneNumber *string `protobuf:"bytes,11,opt"` PhoneNumber proto.Option[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 ""
} }
type CSHead struct { type CSHead struct {
Uin *uint64 `protobuf:"varint,1,opt"` Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
Command *uint32 `protobuf:"varint,2,opt"` Command proto.Option[uint32] `protobuf:"varint,2,opt"`
Seq *uint32 `protobuf:"varint,3,opt"` Seq proto.Option[uint32] `protobuf:"varint,3,opt"`
Version *uint32 `protobuf:"varint,4,opt"` Version proto.Option[uint32] `protobuf:"varint,4,opt"`
RetryTimes *uint32 `protobuf:"varint,5,opt"` RetryTimes proto.Option[uint32] `protobuf:"varint,5,opt"`
ClientType *uint32 `protobuf:"varint,6,opt"` ClientType proto.Option[uint32] `protobuf:"varint,6,opt"`
Pubno *uint32 `protobuf:"varint,7,opt"` Pubno proto.Option[uint32] `protobuf:"varint,7,opt"`
Localid *uint32 `protobuf:"varint,8,opt"` Localid proto.Option[uint32] `protobuf:"varint,8,opt"`
Timezone *uint32 `protobuf:"varint,9,opt"` Timezone proto.Option[uint32] `protobuf:"varint,9,opt"`
ClientIp *uint32 `protobuf:"fixed32,10,opt"` ClientIp proto.Option[uint32] `protobuf:"fixed32,10,opt"`
ClientPort *uint32 `protobuf:"varint,11,opt"` ClientPort proto.Option[uint32] `protobuf:"varint,11,opt"`
ConnIp *uint32 `protobuf:"fixed32,12,opt"` ConnIp proto.Option[uint32] `protobuf:"fixed32,12,opt"`
ConnPort *uint32 `protobuf:"varint,13,opt"` ConnPort proto.Option[uint32] `protobuf:"varint,13,opt"`
InterfaceIp *uint32 `protobuf:"fixed32,14,opt"` InterfaceIp proto.Option[uint32] `protobuf:"fixed32,14,opt"`
InterfacePort *uint32 `protobuf:"varint,15,opt"` InterfacePort proto.Option[uint32] `protobuf:"varint,15,opt"`
ActualIp *uint32 `protobuf:"fixed32,16,opt"` ActualIp proto.Option[uint32] `protobuf:"fixed32,16,opt"`
Flag *uint32 `protobuf:"varint,17,opt"` Flag proto.Option[uint32] `protobuf:"varint,17,opt"`
Timestamp *uint32 `protobuf:"fixed32,18,opt"` Timestamp proto.Option[uint32] `protobuf:"fixed32,18,opt"`
Subcmd *uint32 `protobuf:"varint,19,opt"` Subcmd proto.Option[uint32] `protobuf:"varint,19,opt"`
Result *uint32 `protobuf:"varint,20,opt"` Result proto.Option[uint32] `protobuf:"varint,20,opt"`
AppId *uint32 `protobuf:"varint,21,opt"` AppId proto.Option[uint32] `protobuf:"varint,21,opt"`
InstanceId *uint32 `protobuf:"varint,22,opt"` InstanceId proto.Option[uint32] `protobuf:"varint,22,opt"`
SessionId *uint64 `protobuf:"varint,23,opt"` SessionId proto.Option[uint64] `protobuf:"varint,23,opt"`
IdcId *uint32 `protobuf:"varint,24,opt"` IdcId proto.Option[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
} }
type DeltaHead struct { type DeltaHead struct {
TotalLen *uint64 `protobuf:"varint,1,opt"` TotalLen proto.Option[uint64] `protobuf:"varint,1,opt"`
Offset *uint64 `protobuf:"varint,2,opt"` Offset proto.Option[uint64] `protobuf:"varint,2,opt"`
AckOffset *uint64 `protobuf:"varint,3,opt"` AckOffset proto.Option[uint64] `protobuf:"varint,3,opt"`
Cookie []byte `protobuf:"bytes,4,opt"` Cookie []byte `protobuf:"bytes,4,opt"`
AckCookie []byte `protobuf:"bytes,5,opt"` AckCookie []byte `protobuf:"bytes,5,opt"`
Result *uint32 `protobuf:"varint,6,opt"` Result proto.Option[uint32] `protobuf:"varint,6,opt"`
Flags *uint32 `protobuf:"varint,7,opt"` Flags proto.Option[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
} }
type IMHead struct { type IMHead struct {
HeadType *uint32 `protobuf:"varint,1,opt"` HeadType proto.Option[uint32] `protobuf:"varint,1,opt"`
CsHead *CSHead `protobuf:"bytes,2,opt"` CsHead *CSHead `protobuf:"bytes,2,opt"`
S2CHead *S2CHead `protobuf:"bytes,3,opt"` S2CHead *S2CHead `protobuf:"bytes,3,opt"`
HttpconnHead *HttpConnHead `protobuf:"bytes,4,opt"` HttpconnHead *HttpConnHead `protobuf:"bytes,4,opt"`
PaintFlag *uint32 `protobuf:"varint,5,opt"` PaintFlag proto.Option[uint32] `protobuf:"varint,5,opt"`
LoginSig *LoginSig `protobuf:"bytes,6,opt"` LoginSig *LoginSig `protobuf:"bytes,6,opt"`
DeltaHead *DeltaHead `protobuf:"bytes,7,opt"` DeltaHead *DeltaHead `protobuf:"bytes,7,opt"`
C2CHead *C2CHead `protobuf:"bytes,8,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
}
type HttpConnHead struct { type HttpConnHead struct {
Uin *uint64 `protobuf:"varint,1,opt"` Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
Command *uint32 `protobuf:"varint,2,opt"` Command proto.Option[uint32] `protobuf:"varint,2,opt"`
SubCommand *uint32 `protobuf:"varint,3,opt"` SubCommand proto.Option[uint32] `protobuf:"varint,3,opt"`
Seq *uint32 `protobuf:"varint,4,opt"` Seq proto.Option[uint32] `protobuf:"varint,4,opt"`
Version *uint32 `protobuf:"varint,5,opt"` Version proto.Option[uint32] `protobuf:"varint,5,opt"`
RetryTimes *uint32 `protobuf:"varint,6,opt"` RetryTimes proto.Option[uint32] `protobuf:"varint,6,opt"`
ClientType *uint32 `protobuf:"varint,7,opt"` ClientType proto.Option[uint32] `protobuf:"varint,7,opt"`
PubNo *uint32 `protobuf:"varint,8,opt"` PubNo proto.Option[uint32] `protobuf:"varint,8,opt"`
LocalId *uint32 `protobuf:"varint,9,opt"` LocalId proto.Option[uint32] `protobuf:"varint,9,opt"`
TimeZone *uint32 `protobuf:"varint,10,opt"` TimeZone proto.Option[uint32] `protobuf:"varint,10,opt"`
ClientIp *uint32 `protobuf:"fixed32,11,opt"` ClientIp proto.Option[uint32] `protobuf:"fixed32,11,opt"`
ClientPort *uint32 `protobuf:"varint,12,opt"` ClientPort proto.Option[uint32] `protobuf:"varint,12,opt"`
QzhttpIp *uint32 `protobuf:"fixed32,13,opt"` QzhttpIp proto.Option[uint32] `protobuf:"fixed32,13,opt"`
QzhttpPort *uint32 `protobuf:"varint,14,opt"` QzhttpPort proto.Option[uint32] `protobuf:"varint,14,opt"`
SppIp *uint32 `protobuf:"fixed32,15,opt"` SppIp proto.Option[uint32] `protobuf:"fixed32,15,opt"`
SppPort *uint32 `protobuf:"varint,16,opt"` SppPort proto.Option[uint32] `protobuf:"varint,16,opt"`
Flag *uint32 `protobuf:"varint,17,opt"` Flag proto.Option[uint32] `protobuf:"varint,17,opt"`
Key []byte `protobuf:"bytes,18,opt"` Key []byte `protobuf:"bytes,18,opt"`
CompressType *uint32 `protobuf:"varint,19,opt"` CompressType proto.Option[uint32] `protobuf:"varint,19,opt"`
OriginSize *uint32 `protobuf:"varint,20,opt"` OriginSize proto.Option[uint32] `protobuf:"varint,20,opt"`
ErrorCode *uint32 `protobuf:"varint,21,opt"` ErrorCode proto.Option[uint32] `protobuf:"varint,21,opt"`
Redirect *RedirectMsg `protobuf:"bytes,22,opt"` Redirect *RedirectMsg `protobuf:"bytes,22,opt"`
CommandId *uint32 `protobuf:"varint,23,opt"` CommandId proto.Option[uint32] `protobuf:"varint,23,opt"`
ServiceCmdid *uint32 `protobuf:"varint,24,opt"` ServiceCmdid proto.Option[uint32] `protobuf:"varint,24,opt"`
Oidbhead *TransOidbHead `protobuf:"bytes,25,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
}
type LoginSig struct { type LoginSig struct {
Type *uint32 `protobuf:"varint,1,opt"` Type proto.Option[uint32] `protobuf:"varint,1,opt"`
Sig []byte `protobuf:"bytes,2,opt"` Sig []byte `protobuf:"bytes,2,opt"`
} }
func (x *LoginSig) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}
type RedirectMsg struct { type RedirectMsg struct {
LastRedirectIp *uint32 `protobuf:"fixed32,1,opt"` LastRedirectIp proto.Option[uint32] `protobuf:"fixed32,1,opt"`
LastRedirectPort *uint32 `protobuf:"varint,2,opt"` LastRedirectPort proto.Option[uint32] `protobuf:"varint,2,opt"`
RedirectIp *uint32 `protobuf:"fixed32,3,opt"` RedirectIp proto.Option[uint32] `protobuf:"fixed32,3,opt"`
RedirectPort *uint32 `protobuf:"varint,4,opt"` RedirectPort proto.Option[uint32] `protobuf:"varint,4,opt"`
RedirectCount *uint32 `protobuf:"varint,5,opt"` RedirectCount proto.Option[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
} }
type S2CHead struct { type S2CHead struct {
SubMsgtype *uint32 `protobuf:"varint,1,opt"` SubMsgtype proto.Option[uint32] `protobuf:"varint,1,opt"`
MsgType *uint32 `protobuf:"varint,2,opt"` MsgType proto.Option[uint32] `protobuf:"varint,2,opt"`
FromUin *uint64 `protobuf:"varint,3,opt"` FromUin proto.Option[uint64] `protobuf:"varint,3,opt"`
MsgId *uint32 `protobuf:"varint,4,opt"` MsgId proto.Option[uint32] `protobuf:"varint,4,opt"`
RelayIp *uint32 `protobuf:"fixed32,5,opt"` RelayIp proto.Option[uint32] `protobuf:"fixed32,5,opt"`
RelayPort *uint32 `protobuf:"varint,6,opt"` RelayPort proto.Option[uint32] `protobuf:"varint,6,opt"`
ToUin *uint64 `protobuf:"varint,7,opt"` ToUin proto.Option[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
} }
type TransOidbHead struct { type TransOidbHead struct {
Command *uint32 `protobuf:"varint,1,opt"` Command proto.Option[uint32] `protobuf:"varint,1,opt"`
ServiceType *uint32 `protobuf:"varint,2,opt"` ServiceType proto.Option[uint32] `protobuf:"varint,2,opt"`
Result *uint32 `protobuf:"varint,3,opt"` Result proto.Option[uint32] `protobuf:"varint,3,opt"`
ErrorMsg *string `protobuf:"bytes,4,opt"` ErrorMsg proto.Option[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 ""
} }

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,10 @@
package msg package msg
import (
proto "github.com/RomiChan/protobuf/proto"
)
type PbMsgReadedReportReq struct { type PbMsgReadedReportReq struct {
GrpReadReport []*PbGroupReadedReportReq `protobuf:"bytes,1,rep"` GrpReadReport []*PbGroupReadedReportReq `protobuf:"bytes,1,rep"`
DisReadReport []*PbDiscussReadedReportReq `protobuf:"bytes,2,rep"` DisReadReport []*PbDiscussReadedReportReq `protobuf:"bytes,2,rep"`
@ -16,41 +20,13 @@ type PbMsgReadedReportResp struct {
} }
type PbGroupReadedReportReq struct { type PbGroupReadedReportReq struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
LastReadSeq *uint64 `protobuf:"varint,2,opt"` LastReadSeq proto.Option[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
} }
type PbDiscussReadedReportReq struct { type PbDiscussReadedReportReq struct {
ConfUin *uint64 `protobuf:"varint,1,opt"` ConfUin proto.Option[uint64] `protobuf:"varint,1,opt"`
LastReadSeq *uint64 `protobuf:"varint,2,opt"` LastReadSeq proto.Option[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
} }
type PbC2CReadedReportReq struct { type PbC2CReadedReportReq struct {
@ -59,167 +35,34 @@ type PbC2CReadedReportReq struct {
} }
type UinPairReadInfo struct { type UinPairReadInfo struct {
PeerUin *uint64 `protobuf:"varint,1,opt"` PeerUin proto.Option[uint64] `protobuf:"varint,1,opt"`
LastReadTime *uint32 `protobuf:"varint,2,opt"` LastReadTime proto.Option[uint32] `protobuf:"varint,2,opt"`
CrmSig []byte `protobuf:"bytes,3,opt"` CrmSig []byte `protobuf:"bytes,3,opt"`
PeerType *uint32 `protobuf:"varint,4,opt"` PeerType proto.Option[uint32] `protobuf:"varint,4,opt"`
ChatType *uint32 `protobuf:"varint,5,opt"` ChatType proto.Option[uint32] `protobuf:"varint,5,opt"`
Cpid *uint64 `protobuf:"varint,6,opt"` Cpid proto.Option[uint64] `protobuf:"varint,6,opt"`
AioType *uint32 `protobuf:"varint,7,opt"` AioType proto.Option[uint32] `protobuf:"varint,7,opt"`
ToTinyId *uint64 `protobuf:"varint,9,opt"` ToTinyId proto.Option[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
} }
type PbGroupReadedReportResp struct { type PbGroupReadedReportResp struct {
Result *uint32 `protobuf:"varint,1,opt"` Result proto.Option[uint32] `protobuf:"varint,1,opt"`
Errmsg *string `protobuf:"bytes,2,opt"` Errmsg proto.Option[string] `protobuf:"bytes,2,opt"`
GroupCode *uint64 `protobuf:"varint,3,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,3,opt"`
MemberSeq *uint64 `protobuf:"varint,4,opt"` MemberSeq proto.Option[uint64] `protobuf:"varint,4,opt"`
GroupMsgSeq *uint64 `protobuf:"varint,5,opt"` GroupMsgSeq proto.Option[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
} }
type PbDiscussReadedReportResp struct { type PbDiscussReadedReportResp struct {
Result *uint32 `protobuf:"varint,1,opt"` Result proto.Option[uint32] `protobuf:"varint,1,opt"`
Errmsg *string `protobuf:"bytes,2,opt"` Errmsg proto.Option[string] `protobuf:"bytes,2,opt"`
ConfUin *uint64 `protobuf:"varint,3,opt"` ConfUin proto.Option[uint64] `protobuf:"varint,3,opt"`
MemberSeq *uint64 `protobuf:"varint,4,opt"` MemberSeq proto.Option[uint64] `protobuf:"varint,4,opt"`
ConfSeq *uint64 `protobuf:"varint,5,opt"` ConfSeq proto.Option[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
} }
type PbC2CReadedReportResp struct { type PbC2CReadedReportResp struct {
Result *uint32 `protobuf:"varint,1,opt"` Result proto.Option[uint32] `protobuf:"varint,1,opt"`
Errmsg *string `protobuf:"bytes,2,opt"` Errmsg proto.Option[string] `protobuf:"bytes,2,opt"`
SyncCookie []byte `protobuf:"bytes,3,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 ""
}

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,10 @@
package oidb package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type OIDBSSOPkg struct { type OIDBSSOPkg struct {
Command int32 `protobuf:"varint,1,opt"` Command int32 `protobuf:"varint,1,opt"`
ServiceType int32 `protobuf:"varint,2,opt"` ServiceType int32 `protobuf:"varint,2,opt"`
@ -61,7 +65,7 @@ type D89AGroupinfo struct {
StGroupNewguidelines *D89AGroupNewGuidelinesInfo `protobuf:"bytes,14,opt"` StGroupNewguidelines *D89AGroupNewGuidelinesInfo `protobuf:"bytes,14,opt"`
GroupFace int32 `protobuf:"varint,15,opt"` GroupFace int32 `protobuf:"varint,15,opt"`
AddOption int32 `protobuf:"varint,16,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"` GroupTypeFlag int32 `protobuf:"varint,18,opt"`
StringGroupTag []byte `protobuf:"bytes,19,opt"` StringGroupTag []byte `protobuf:"bytes,19,opt"`
MsgGroupGeoInfo *D89AGroupGeoInfo `protobuf:"bytes,20,opt"` MsgGroupGeoInfo *D89AGroupGeoInfo `protobuf:"bytes,20,opt"`
@ -85,13 +89,6 @@ type D89AGroupinfo struct {
MsgLimitFrequency int32 `protobuf:"varint,38,opt"` 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 { type D89AGroupNewGuidelinesInfo struct {
BoolEnabled bool `protobuf:"varint,1,opt"` BoolEnabled bool `protobuf:"varint,1,opt"`
IngContent []byte `protobuf:"bytes,2,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 package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type DeleteFileReqBody struct { type DeleteFileReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"` GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
AppId *int32 `protobuf:"varint,2,opt"` AppId proto.Option[int32] `protobuf:"varint,2,opt"`
BusId *int32 `protobuf:"varint,3,opt"` BusId proto.Option[int32] `protobuf:"varint,3,opt"`
ParentFolderId *string `protobuf:"bytes,4,opt"` ParentFolderId proto.Option[string] `protobuf:"bytes,4,opt"`
FileId *string `protobuf:"bytes,5,opt"` FileId proto.Option[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 ""
} }
type DeleteFileRspBody struct { type DeleteFileRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[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 ""
} }
type DownloadFileReqBody struct { type DownloadFileReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"` GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
AppId *int32 `protobuf:"varint,2,opt"` AppId proto.Option[int32] `protobuf:"varint,2,opt"`
BusId *int32 `protobuf:"varint,3,opt"` BusId proto.Option[int32] `protobuf:"varint,3,opt"`
FileId *string `protobuf:"bytes,4,opt"` FileId proto.Option[string] `protobuf:"bytes,4,opt"`
BoolThumbnailReq *bool `protobuf:"varint,5,opt"` BoolThumbnailReq proto.Option[bool] `protobuf:"varint,5,opt"`
UrlType *int32 `protobuf:"varint,6,opt"` UrlType proto.Option[int32] `protobuf:"varint,6,opt"`
BoolPreviewReq *bool `protobuf:"varint,7,opt"` BoolPreviewReq proto.Option[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
} }
type DownloadFileRspBody struct { type DownloadFileRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
DownloadIp *string `protobuf:"bytes,4,opt"` DownloadIp proto.Option[string] `protobuf:"bytes,4,opt"`
DownloadDns []byte `protobuf:"bytes,5,opt"` DownloadDns []byte `protobuf:"bytes,5,opt"`
DownloadUrl []byte `protobuf:"bytes,6,opt"` DownloadUrl []byte `protobuf:"bytes,6,opt"`
Sha []byte `protobuf:"bytes,7,opt"` Sha []byte `protobuf:"bytes,7,opt"`
Sha3 []byte `protobuf:"bytes,8,opt"` Sha3 []byte `protobuf:"bytes,8,opt"`
Md5 []byte `protobuf:"bytes,9,opt"` Md5 []byte `protobuf:"bytes,9,opt"`
CookieVal []byte `protobuf:"bytes,10,opt"` CookieVal []byte `protobuf:"bytes,10,opt"`
SaveFileName *string `protobuf:"bytes,11,opt"` SaveFileName proto.Option[string] `protobuf:"bytes,11,opt"`
PreviewPort *int32 `protobuf:"varint,12,opt"` PreviewPort proto.Option[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
} }
type MoveFileReqBody struct { type MoveFileReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"` GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
AppId *int32 `protobuf:"varint,2,opt"` AppId proto.Option[int32] `protobuf:"varint,2,opt"`
BusId *int32 `protobuf:"varint,3,opt"` BusId proto.Option[int32] `protobuf:"varint,3,opt"`
FileId *string `protobuf:"bytes,4,opt"` FileId proto.Option[string] `protobuf:"bytes,4,opt"`
ParentFolderId *string `protobuf:"bytes,5,opt"` ParentFolderId proto.Option[string] `protobuf:"bytes,5,opt"`
DestFolderId *string `protobuf:"bytes,6,opt"` DestFolderId proto.Option[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 ""
} }
type MoveFileRspBody struct { type MoveFileRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
ParentFolderId *string `protobuf:"bytes,4,opt"` ParentFolderId proto.Option[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 ""
} }
type RenameFileReqBody struct { type RenameFileReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"` GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
AppId *int32 `protobuf:"varint,2,opt"` AppId proto.Option[int32] `protobuf:"varint,2,opt"`
BusId *int32 `protobuf:"varint,3,opt"` BusId proto.Option[int32] `protobuf:"varint,3,opt"`
FileId *string `protobuf:"bytes,4,opt"` FileId proto.Option[string] `protobuf:"bytes,4,opt"`
ParentFolderId *string `protobuf:"bytes,5,opt"` ParentFolderId proto.Option[string] `protobuf:"bytes,5,opt"`
NewFileName *string `protobuf:"bytes,6,opt"` NewFileName proto.Option[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 ""
} }
type RenameFileRspBody struct { type RenameFileRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[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 ""
} }
type D6D6ReqBody struct { type D6D6ReqBody struct {
@ -363,78 +87,22 @@ type D6D6ReqBody struct {
} }
type ResendReqBody struct { type ResendReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"` GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
AppId *int32 `protobuf:"varint,2,opt"` AppId proto.Option[int32] `protobuf:"varint,2,opt"`
BusId *int32 `protobuf:"varint,3,opt"` BusId proto.Option[int32] `protobuf:"varint,3,opt"`
FileId *string `protobuf:"bytes,4,opt"` FileId proto.Option[string] `protobuf:"bytes,4,opt"`
Sha []byte `protobuf:"bytes,5,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 ""
}
type ResendRspBody struct { type ResendRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
UploadIp *string `protobuf:"bytes,4,opt"` UploadIp proto.Option[string] `protobuf:"bytes,4,opt"`
FileKey []byte `protobuf:"bytes,5,opt"` FileKey []byte `protobuf:"bytes,5,opt"`
CheckKey []byte `protobuf:"bytes,6,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 ""
}
type D6D6RspBody struct { type D6D6RspBody struct {
UploadFileRsp *UploadFileRspBody `protobuf:"bytes,1,opt"` UploadFileRsp *UploadFileRspBody `protobuf:"bytes,1,opt"`
ResendFileRsp *ResendRspBody `protobuf:"bytes,2,opt"` ResendFileRsp *ResendRspBody `protobuf:"bytes,2,opt"`
@ -445,158 +113,32 @@ type D6D6RspBody struct {
} }
type UploadFileReqBody struct { type UploadFileReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"` GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
AppId *int32 `protobuf:"varint,2,opt"` AppId proto.Option[int32] `protobuf:"varint,2,opt"`
BusId *int32 `protobuf:"varint,3,opt"` BusId proto.Option[int32] `protobuf:"varint,3,opt"`
Entrance *int32 `protobuf:"varint,4,opt"` Entrance proto.Option[int32] `protobuf:"varint,4,opt"`
ParentFolderId *string `protobuf:"bytes,5,opt"` ParentFolderId proto.Option[string] `protobuf:"bytes,5,opt"`
FileName *string `protobuf:"bytes,6,opt"` FileName proto.Option[string] `protobuf:"bytes,6,opt"`
LocalPath *string `protobuf:"bytes,7,opt"` LocalPath proto.Option[string] `protobuf:"bytes,7,opt"`
Int64FileSize *int64 `protobuf:"varint,8,opt"` Int64FileSize proto.Option[int64] `protobuf:"varint,8,opt"`
Sha []byte `protobuf:"bytes,9,opt"` Sha []byte `protobuf:"bytes,9,opt"`
Sha3 []byte `protobuf:"bytes,10,opt"` Sha3 []byte `protobuf:"bytes,10,opt"`
Md5 []byte `protobuf:"bytes,11,opt"` Md5 []byte `protobuf:"bytes,11,opt"`
SupportMultiUpload *bool `protobuf:"varint,15,opt"` SupportMultiUpload proto.Option[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
} }
type UploadFileRspBody struct { type UploadFileRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
UploadIp *string `protobuf:"bytes,4,opt"` UploadIp proto.Option[string] `protobuf:"bytes,4,opt"`
ServerDns *string `protobuf:"bytes,5,opt"` ServerDns proto.Option[string] `protobuf:"bytes,5,opt"`
BusId *int32 `protobuf:"varint,6,opt"` BusId proto.Option[int32] `protobuf:"varint,6,opt"`
FileId *string `protobuf:"bytes,7,opt"` FileId proto.Option[string] `protobuf:"bytes,7,opt"`
FileKey []byte `protobuf:"bytes,8,opt"` FileKey []byte `protobuf:"bytes,8,opt"`
CheckKey []byte `protobuf:"bytes,9,opt"` CheckKey []byte `protobuf:"bytes,9,opt"`
BoolFileExist *bool `protobuf:"varint,10,opt"` BoolFileExist proto.Option[bool] `protobuf:"varint,10,opt"`
UploadIpLanV4 []string `protobuf:"bytes,12,rep"` UploadIpLanV4 []string `protobuf:"bytes,12,rep"`
UploadIpLanV6 []string `protobuf:"bytes,13,rep"` UploadIpLanV6 []string `protobuf:"bytes,13,rep"`
UploadPort *int32 `protobuf:"varint,14,opt"` UploadPort proto.Option[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
} }

View File

@ -3,252 +3,60 @@
package oidb package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type CreateFolderReqBody struct { type CreateFolderReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"` AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
ParentFolderId *string `protobuf:"bytes,3,opt"` ParentFolderId proto.Option[string] `protobuf:"bytes,3,opt"`
FolderName *string `protobuf:"bytes,4,opt"` FolderName proto.Option[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 ""
} }
type CreateFolderRspBody struct { type CreateFolderRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` // optional group_file_common.FolderInfo folderInfo = 4; ClientWording proto.Option[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 ""
} }
type DeleteFolderReqBody struct { type DeleteFolderReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"` AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
FolderId *string `protobuf:"bytes,3,opt"` FolderId proto.Option[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 ""
} }
type DeleteFolderRspBody struct { type DeleteFolderRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[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 ""
} }
type MoveFolderReqBody struct { type MoveFolderReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"` AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
FolderId *string `protobuf:"bytes,3,opt"` FolderId proto.Option[string] `protobuf:"bytes,3,opt"`
ParentFolderId *string `protobuf:"bytes,4,opt"` ParentFolderId proto.Option[string] `protobuf:"bytes,4,opt"`
DestFolderId *string `protobuf:"bytes,5,opt"` DestFolderId proto.Option[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 ""
} }
type MoveFolderRspBody struct { type MoveFolderRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` // optional group_file_common.FolderInfo folderInfo = 4; ClientWording proto.Option[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 ""
} }
type RenameFolderReqBody struct { type RenameFolderReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"` AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
FolderId *string `protobuf:"bytes,3,opt"` FolderId proto.Option[string] `protobuf:"bytes,3,opt"`
NewFolderName *string `protobuf:"bytes,4,opt"` NewFolderName proto.Option[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 ""
} }
type RenameFolderRspBody struct { type RenameFolderRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` // optional group_file_common.FolderInfo folderInfo = 4; ClientWording proto.Option[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 ""
} }
type D6D7ReqBody struct { type D6D7ReqBody struct {

View File

@ -3,6 +3,10 @@
package oidb package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type D6D8ReqBody struct { type D6D8ReqBody struct {
FileInfoReq *GetFileInfoReqBody `protobuf:"bytes,1,opt"` FileInfoReq *GetFileInfoReqBody `protobuf:"bytes,1,opt"`
FileListInfoReq *GetFileListReqBody `protobuf:"bytes,2,opt"` FileListInfoReq *GetFileListReqBody `protobuf:"bytes,2,opt"`
@ -18,625 +22,121 @@ type D6D8RspBody struct {
} }
type GetFileInfoReqBody struct { type GetFileInfoReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"` AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
BusId *uint32 `protobuf:"varint,3,opt"` BusId proto.Option[uint32] `protobuf:"varint,3,opt"`
FileId *string `protobuf:"bytes,4,opt"` FileId proto.Option[string] `protobuf:"bytes,4,opt"`
FieldFlag *uint32 `protobuf:"varint,5,opt"` FieldFlag proto.Option[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
} }
type GetFileInfoRspBody struct { type GetFileInfoRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
FileInfo *GroupFileInfo `protobuf:"bytes,4,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 ""
}
type GetFileListRspBody struct { type GetFileListRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
IsEnd *bool `protobuf:"varint,4,opt"` IsEnd proto.Option[bool] `protobuf:"varint,4,opt"`
ItemList []*GetFileListRspBody_Item `protobuf:"bytes,5,rep"` ItemList []*GetFileListRspBody_Item `protobuf:"bytes,5,rep"`
MaxTimestamp *FileTimeStamp `protobuf:"bytes,6,opt"` MaxTimestamp *FileTimeStamp `protobuf:"bytes,6,opt"`
AllFileCount *uint32 `protobuf:"varint,7,opt"` AllFileCount proto.Option[uint32] `protobuf:"varint,7,opt"`
FilterCode *uint32 `protobuf:"varint,8,opt"` FilterCode proto.Option[uint32] `protobuf:"varint,8,opt"`
SafeCheckFlag *bool `protobuf:"varint,11,opt"` SafeCheckFlag proto.Option[bool] `protobuf:"varint,11,opt"`
SafeCheckRes *uint32 `protobuf:"varint,12,opt"` SafeCheckRes proto.Option[uint32] `protobuf:"varint,12,opt"`
NextIndex *uint32 `protobuf:"varint,13,opt"` NextIndex proto.Option[uint32] `protobuf:"varint,13,opt"`
Context []byte `protobuf:"bytes,14,opt"` Context []byte `protobuf:"bytes,14,opt"`
Role *uint32 `protobuf:"varint,15,opt"` Role proto.Option[uint32] `protobuf:"varint,15,opt"`
OpenFlag *uint32 `protobuf:"varint,16,opt"` OpenFlag proto.Option[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
} }
type GroupFileInfo struct { type GroupFileInfo struct {
FileId *string `protobuf:"bytes,1,opt"` FileId proto.Option[string] `protobuf:"bytes,1,opt"`
FileName *string `protobuf:"bytes,2,opt"` FileName proto.Option[string] `protobuf:"bytes,2,opt"`
FileSize *uint64 `protobuf:"varint,3,opt"` FileSize proto.Option[uint64] `protobuf:"varint,3,opt"`
BusId *uint32 `protobuf:"varint,4,opt"` BusId proto.Option[uint32] `protobuf:"varint,4,opt"`
UploadedSize *uint64 `protobuf:"varint,5,opt"` UploadedSize proto.Option[uint64] `protobuf:"varint,5,opt"`
UploadTime *uint32 `protobuf:"varint,6,opt"` UploadTime proto.Option[uint32] `protobuf:"varint,6,opt"`
DeadTime *uint32 `protobuf:"varint,7,opt"` DeadTime proto.Option[uint32] `protobuf:"varint,7,opt"`
ModifyTime *uint32 `protobuf:"varint,8,opt"` ModifyTime proto.Option[uint32] `protobuf:"varint,8,opt"`
DownloadTimes *uint32 `protobuf:"varint,9,opt"` DownloadTimes proto.Option[uint32] `protobuf:"varint,9,opt"`
Sha []byte `protobuf:"bytes,10,opt"` Sha []byte `protobuf:"bytes,10,opt"`
Sha3 []byte `protobuf:"bytes,11,opt"` Sha3 []byte `protobuf:"bytes,11,opt"`
Md5 []byte `protobuf:"bytes,12,opt"` Md5 []byte `protobuf:"bytes,12,opt"`
LocalPath *string `protobuf:"bytes,13,opt"` LocalPath proto.Option[string] `protobuf:"bytes,13,opt"`
UploaderName *string `protobuf:"bytes,14,opt"` UploaderName proto.Option[string] `protobuf:"bytes,14,opt"`
UploaderUin *uint64 `protobuf:"varint,15,opt"` UploaderUin proto.Option[uint64] `protobuf:"varint,15,opt"`
ParentFolderId *string `protobuf:"bytes,16,opt"` ParentFolderId proto.Option[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 ""
} }
type GroupFolderInfo struct { type GroupFolderInfo struct {
FolderId *string `protobuf:"bytes,1,opt"` FolderId proto.Option[string] `protobuf:"bytes,1,opt"`
ParentFolderId *string `protobuf:"bytes,2,opt"` ParentFolderId proto.Option[string] `protobuf:"bytes,2,opt"`
FolderName *string `protobuf:"bytes,3,opt"` FolderName proto.Option[string] `protobuf:"bytes,3,opt"`
CreateTime *uint32 `protobuf:"varint,4,opt"` CreateTime proto.Option[uint32] `protobuf:"varint,4,opt"`
ModifyTime *uint32 `protobuf:"varint,5,opt"` ModifyTime proto.Option[uint32] `protobuf:"varint,5,opt"`
CreateUin *uint64 `protobuf:"varint,6,opt"` CreateUin proto.Option[uint64] `protobuf:"varint,6,opt"`
CreatorName *string `protobuf:"bytes,7,opt"` CreatorName proto.Option[string] `protobuf:"bytes,7,opt"`
TotalFileCount *uint32 `protobuf:"varint,8,opt"` TotalFileCount proto.Option[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
} }
type GetFileListReqBody struct { type GetFileListReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"` AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
FolderId *string `protobuf:"bytes,3,opt"` FolderId proto.Option[string] `protobuf:"bytes,3,opt"`
StartTimestamp *FileTimeStamp `protobuf:"bytes,4,opt"` StartTimestamp *FileTimeStamp `protobuf:"bytes,4,opt"`
FileCount *uint32 `protobuf:"varint,5,opt"` FileCount proto.Option[uint32] `protobuf:"varint,5,opt"`
MaxTimestamp *FileTimeStamp `protobuf:"bytes,6,opt"` MaxTimestamp *FileTimeStamp `protobuf:"bytes,6,opt"`
AllFileCount *uint32 `protobuf:"varint,7,opt"` AllFileCount proto.Option[uint32] `protobuf:"varint,7,opt"`
ReqFrom *uint32 `protobuf:"varint,8,opt"` ReqFrom proto.Option[uint32] `protobuf:"varint,8,opt"`
SortBy *uint32 `protobuf:"varint,9,opt"` SortBy proto.Option[uint32] `protobuf:"varint,9,opt"`
FilterCode *uint32 `protobuf:"varint,10,opt"` FilterCode proto.Option[uint32] `protobuf:"varint,10,opt"`
Uin *uint64 `protobuf:"varint,11,opt"` Uin proto.Option[uint64] `protobuf:"varint,11,opt"`
FieldFlag *uint32 `protobuf:"varint,12,opt"` FieldFlag proto.Option[uint32] `protobuf:"varint,12,opt"`
StartIndex *uint32 `protobuf:"varint,13,opt"` StartIndex proto.Option[uint32] `protobuf:"varint,13,opt"`
Context []byte `protobuf:"bytes,14,opt"` Context []byte `protobuf:"bytes,14,opt"`
ClientVersion *uint32 `protobuf:"varint,15,opt"` ClientVersion proto.Option[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
} }
type GetFileCountReqBody struct { type GetFileCountReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"` AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
BusId *uint32 `protobuf:"varint,3,opt"` BusId proto.Option[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
} }
type GetSpaceReqBody struct { type GetSpaceReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"` AppId proto.Option[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
} }
type GetFileCountRspBody struct { type GetFileCountRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
AllFileCount *uint32 `protobuf:"varint,4,opt"` AllFileCount proto.Option[uint32] `protobuf:"varint,4,opt"`
FileTooMany *bool `protobuf:"varint,5,opt"` FileTooMany proto.Option[bool] `protobuf:"varint,5,opt"`
LimitCount *uint32 `protobuf:"varint,6,opt"` LimitCount proto.Option[uint32] `protobuf:"varint,6,opt"`
IsFull *bool `protobuf:"varint,7,opt"` IsFull proto.Option[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
} }
type GetSpaceRspBody struct { type GetSpaceRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
TotalSpace *uint64 `protobuf:"varint,4,opt"` TotalSpace proto.Option[uint64] `protobuf:"varint,4,opt"`
UsedSpace *uint64 `protobuf:"varint,5,opt"` UsedSpace proto.Option[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
} }
type FileTimeStamp struct { type FileTimeStamp struct {
UploadTime *uint32 `protobuf:"varint,1,opt"` UploadTime proto.Option[uint32] `protobuf:"varint,1,opt"`
FileId *string `protobuf:"bytes,2,opt"` FileId proto.Option[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 ""
} }
type GetFileListRspBody_Item struct { type GetFileListRspBody_Item struct {
Type *uint32 `protobuf:"varint,1,opt"` Type proto.Option[uint32] `protobuf:"varint,1,opt"`
FolderInfo *GroupFolderInfo `protobuf:"bytes,2,opt"` FolderInfo *GroupFolderInfo `protobuf:"bytes,2,opt"`
FileInfo *GroupFileInfo `protobuf:"bytes,3,opt"` FileInfo *GroupFileInfo `protobuf:"bytes,3,opt"`
} }
func (x *GetFileListRspBody_Item) GetType() uint32 {
if x != nil && x.Type != nil {
return *x.Type
}
return 0
}

View File

@ -3,332 +3,77 @@
package oidb package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type GroupFileFeedsInfo struct { type GroupFileFeedsInfo struct {
BusId *uint32 `protobuf:"varint,1,opt"` BusId proto.Option[uint32] `protobuf:"varint,1,opt"`
FileId *string `protobuf:"bytes,2,opt"` FileId proto.Option[string] `protobuf:"bytes,2,opt"`
MsgRandom *uint32 `protobuf:"varint,3,opt"` MsgRandom proto.Option[uint32] `protobuf:"varint,3,opt"`
Ext []byte `protobuf:"bytes,4,opt"` Ext []byte `protobuf:"bytes,4,opt"`
FeedFlag *uint32 `protobuf:"varint,5,opt"` FeedFlag proto.Option[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
} }
type CopyFromReqBody struct { type CopyFromReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"` AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
SrcBusId *uint32 `protobuf:"varint,3,opt"` SrcBusId proto.Option[uint32] `protobuf:"varint,3,opt"`
SrcParentFolder []byte `protobuf:"bytes,4,opt"` SrcParentFolder []byte `protobuf:"bytes,4,opt"`
SrcFilePath []byte `protobuf:"bytes,5,opt"` SrcFilePath []byte `protobuf:"bytes,5,opt"`
DstBusId *uint32 `protobuf:"varint,6,opt"` DstBusId proto.Option[uint32] `protobuf:"varint,6,opt"`
DstFolderId []byte `protobuf:"bytes,7,opt"` DstFolderId []byte `protobuf:"bytes,7,opt"`
FileSize *uint64 `protobuf:"varint,8,opt"` FileSize proto.Option[uint64] `protobuf:"varint,8,opt"`
LocalPath *string `protobuf:"bytes,9,opt"` LocalPath proto.Option[string] `protobuf:"bytes,9,opt"`
FileName *string `protobuf:"bytes,10,opt"` FileName proto.Option[string] `protobuf:"bytes,10,opt"`
SrcUin *uint64 `protobuf:"varint,11,opt"` SrcUin proto.Option[uint64] `protobuf:"varint,11,opt"`
Md5 []byte `protobuf:"bytes,12,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
}
type CopyFromRspBody struct { type CopyFromRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
SaveFilePath []byte `protobuf:"bytes,4,opt"` SaveFilePath []byte `protobuf:"bytes,4,opt"`
BusId *uint32 `protobuf:"varint,5,opt"` BusId proto.Option[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
} }
type CopyToReqBody struct { type CopyToReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"` AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
SrcBusId *uint32 `protobuf:"varint,3,opt"` SrcBusId proto.Option[uint32] `protobuf:"varint,3,opt"`
SrcFileId *string `protobuf:"bytes,4,opt"` SrcFileId proto.Option[string] `protobuf:"bytes,4,opt"`
DstBusId *uint32 `protobuf:"varint,5,opt"` DstBusId proto.Option[uint32] `protobuf:"varint,5,opt"`
DstUin *uint64 `protobuf:"varint,6,opt"` DstUin proto.Option[uint64] `protobuf:"varint,6,opt"`
NewFileName *string `protobuf:"bytes,40,opt"` NewFileName proto.Option[string] `protobuf:"bytes,40,opt"`
TimCloudPdirKey []byte `protobuf:"bytes,100,opt"` TimCloudPdirKey []byte `protobuf:"bytes,100,opt"`
TimCloudPpdirKey []byte `protobuf:"bytes,101,opt"` TimCloudPpdirKey []byte `protobuf:"bytes,101,opt"`
TimCloudExtensionInfo []byte `protobuf:"bytes,102,opt"` TimCloudExtensionInfo []byte `protobuf:"bytes,102,opt"`
TimFileExistOption *uint32 `protobuf:"varint,103,opt"` TimFileExistOption proto.Option[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
} }
type CopyToRspBody struct { type CopyToRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
SaveFilePath *string `protobuf:"bytes,4,opt"` SaveFilePath proto.Option[string] `protobuf:"bytes,4,opt"`
BusId *uint32 `protobuf:"varint,5,opt"` BusId proto.Option[uint32] `protobuf:"varint,5,opt"`
FileName *string `protobuf:"bytes,40,opt"` FileName proto.Option[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 ""
} }
type FeedsReqBody struct { type FeedsReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"` AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
FeedsInfoList []*GroupFileFeedsInfo `protobuf:"bytes,3,rep"` FeedsInfoList []*GroupFileFeedsInfo `protobuf:"bytes,3,rep"`
MultiSendSeq *uint32 `protobuf:"varint,4,opt"` MultiSendSeq proto.Option[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
} }
type FeedsRspBody struct { type FeedsRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
//repeated C8639group_file_common.FeedsResult feedsResultList = 4; //repeated C8639group_file_common.FeedsResult feedsResultList = 4;
SvrbusyWaitTime *uint32 `protobuf:"varint,5,opt"` SvrbusyWaitTime proto.Option[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
} }
type D6D9ReqBody struct { type D6D9ReqBody struct {
@ -346,79 +91,16 @@ type D6D9RspBody struct {
} }
type TransFileReqBody struct { type TransFileReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
AppId *uint32 `protobuf:"varint,2,opt"` AppId proto.Option[uint32] `protobuf:"varint,2,opt"`
BusId *uint32 `protobuf:"varint,3,opt"` BusId proto.Option[uint32] `protobuf:"varint,3,opt"`
FileId *string `protobuf:"bytes,4,opt"` FileId proto.Option[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 ""
} }
type TransFileRspBody struct { type TransFileRspBody struct {
RetCode *int32 `protobuf:"varint,1,opt"` RetCode proto.Option[int32] `protobuf:"varint,1,opt"`
RetMsg *string `protobuf:"bytes,2,opt"` RetMsg proto.Option[string] `protobuf:"bytes,2,opt"`
ClientWording *string `protobuf:"bytes,3,opt"` ClientWording proto.Option[string] `protobuf:"bytes,3,opt"`
SaveBusId *uint32 `protobuf:"varint,4,opt"` SaveBusId proto.Option[uint32] `protobuf:"varint,4,opt"`
SaveFilePath *string `protobuf:"bytes,5,opt"` SaveFilePath proto.Option[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 ""
} }

View File

@ -3,102 +3,36 @@
package oidb package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type CPU struct { type CPU struct {
Model *string `protobuf:"bytes,1,opt"` Model proto.Option[string] `protobuf:"bytes,1,opt"`
Cores *uint32 `protobuf:"varint,2,opt"` Cores proto.Option[uint32] `protobuf:"varint,2,opt"`
Frequency *uint32 `protobuf:"varint,3,opt"` Frequency proto.Option[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
} }
type Camera struct { type Camera struct {
Primary *uint64 `protobuf:"varint,1,opt"` Primary proto.Option[uint64] `protobuf:"varint,1,opt"`
Secondary *uint64 `protobuf:"varint,2,opt"` Secondary proto.Option[uint64] `protobuf:"varint,2,opt"`
Flash *bool `protobuf:"varint,3,opt"` Flash proto.Option[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
} }
type D769ConfigSeq struct { type D769ConfigSeq struct {
Type *uint32 `protobuf:"varint,1,opt"` Type proto.Option[uint32] `protobuf:"varint,1,opt"`
Version *uint32 `protobuf:"varint,2,opt"` Version proto.Option[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 Content struct { type Content struct {
TaskId *uint32 `protobuf:"varint,1,opt"` TaskId proto.Option[uint32] `protobuf:"varint,1,opt"`
Compress *uint32 `protobuf:"varint,2,opt"` Compress proto.Option[uint32] `protobuf:"varint,2,opt"`
Content []byte `protobuf:"bytes,10,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
}
type D769DeviceInfo struct { type D769DeviceInfo struct {
Brand *string `protobuf:"bytes,1,opt"` Brand proto.Option[string] `protobuf:"bytes,1,opt"`
Model *string `protobuf:"bytes,2,opt"` Model proto.Option[string] `protobuf:"bytes,2,opt"`
Os *C41219OS `protobuf:"bytes,3,opt"` Os *C41219OS `protobuf:"bytes,3,opt"`
Cpu *CPU `protobuf:"bytes,4,opt"` Cpu *CPU `protobuf:"bytes,4,opt"`
Memory *Memory `protobuf:"bytes,5,opt"` Memory *Memory `protobuf:"bytes,5,opt"`
@ -107,281 +41,64 @@ type D769DeviceInfo struct {
Camera *Camera `protobuf:"bytes,8,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 ""
}
type Memory struct { type Memory struct {
Total *uint64 `protobuf:"varint,1,opt"` Total proto.Option[uint64] `protobuf:"varint,1,opt"`
Process *uint64 `protobuf:"varint,2,opt"` Process proto.Option[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
} }
type C41219OS struct { type C41219OS struct {
Type *uint32 `protobuf:"varint,1,opt"` Type proto.Option[uint32] `protobuf:"varint,1,opt"`
Version *string `protobuf:"bytes,2,opt"` Version proto.Option[string] `protobuf:"bytes,2,opt"`
Sdk *string `protobuf:"bytes,3,opt"` Sdk proto.Option[string] `protobuf:"bytes,3,opt"`
Kernel *string `protobuf:"bytes,4,opt"` Kernel proto.Option[string] `protobuf:"bytes,4,opt"`
Rom *string `protobuf:"bytes,5,opt"` Rom proto.Option[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 QueryUinPackageUsageReq struct { type QueryUinPackageUsageReq struct {
Type *uint32 `protobuf:"varint,1,opt"` Type proto.Option[uint32] `protobuf:"varint,1,opt"`
UinFileSize *uint64 `protobuf:"varint,2,opt"` UinFileSize proto.Option[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 QueryUinPackageUsageRsp struct { type QueryUinPackageUsageRsp struct {
Status *uint32 `protobuf:"varint,1,opt"` Status proto.Option[uint32] `protobuf:"varint,1,opt"`
LeftUinNum *uint64 `protobuf:"varint,2,opt"` LeftUinNum proto.Option[uint64] `protobuf:"varint,2,opt"`
MaxUinNum *uint64 `protobuf:"varint,3,opt"` MaxUinNum proto.Option[uint64] `protobuf:"varint,3,opt"`
Proportion *uint32 `protobuf:"varint,4,opt"` Proportion proto.Option[uint32] `protobuf:"varint,4,opt"`
UinPackageUsedList []*UinPackageUsedInfo `protobuf:"bytes,10,rep"` 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 { type D769ReqBody struct {
ConfigList []*D769ConfigSeq `protobuf:"bytes,1,rep"` ConfigList []*D769ConfigSeq `protobuf:"bytes,1,rep"`
DeviceInfo *D769DeviceInfo `protobuf:"bytes,2,opt"` DeviceInfo *D769DeviceInfo `protobuf:"bytes,2,opt"`
Info *string `protobuf:"bytes,3,opt"` Info proto.Option[string] `protobuf:"bytes,3,opt"`
Province *string `protobuf:"bytes,4,opt"` Province proto.Option[string] `protobuf:"bytes,4,opt"`
City *string `protobuf:"bytes,5,opt"` City proto.Option[string] `protobuf:"bytes,5,opt"`
ReqDebugMsg *int32 `protobuf:"varint,6,opt"` ReqDebugMsg proto.Option[int32] `protobuf:"varint,6,opt"`
QueryUinPackageUsageReq *QueryUinPackageUsageReq `protobuf:"bytes,101,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 { type D769RspBody struct {
Result *uint32 `protobuf:"varint,1,opt"` Result proto.Option[uint32] `protobuf:"varint,1,opt"`
ConfigList []*D769ConfigSeq `protobuf:"bytes,2,rep"` ConfigList []*D769ConfigSeq `protobuf:"bytes,2,rep"`
QueryUinPackageUsageRsp *QueryUinPackageUsageRsp `protobuf:"bytes,101,opt"` 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 { type Screen struct {
Model *string `protobuf:"bytes,1,opt"` Model proto.Option[string] `protobuf:"bytes,1,opt"`
Width *uint32 `protobuf:"varint,2,opt"` Width proto.Option[uint32] `protobuf:"varint,2,opt"`
Height *uint32 `protobuf:"varint,3,opt"` Height proto.Option[uint32] `protobuf:"varint,3,opt"`
Dpi *uint32 `protobuf:"varint,4,opt"` Dpi proto.Option[uint32] `protobuf:"varint,4,opt"`
MultiTouch *bool `protobuf:"varint,5,opt"` MultiTouch proto.Option[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
} }
type Storage struct { type Storage struct {
Builtin *uint64 `protobuf:"varint,1,opt"` Builtin proto.Option[uint64] `protobuf:"varint,1,opt"`
External *uint64 `protobuf:"varint,2,opt"` External proto.Option[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
} }
type UinPackageUsedInfo struct { type UinPackageUsedInfo struct {
RuleId *uint32 `protobuf:"varint,1,opt"` RuleId proto.Option[uint32] `protobuf:"varint,1,opt"`
Author *string `protobuf:"bytes,2,opt"` Author proto.Option[string] `protobuf:"bytes,2,opt"`
Url *string `protobuf:"bytes,3,opt"` Url proto.Option[string] `protobuf:"bytes,3,opt"`
UinNum *uint64 `protobuf:"varint,4,opt"` UinNum proto.Option[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
} }

View File

@ -3,779 +3,153 @@
package oidb package oidb
type D88DGroupHeadPortraitInfo struct { import (
PicId *uint32 `protobuf:"varint,1,opt"` proto "github.com/RomiChan/protobuf/proto"
} )
func (x *D88DGroupHeadPortraitInfo) GetPicId() uint32 { type D88DGroupHeadPortraitInfo struct {
if x != nil && x.PicId != nil { PicId proto.Option[uint32] `protobuf:"varint,1,opt"`
return *x.PicId
}
return 0
} }
type D88DGroupHeadPortrait struct { type D88DGroupHeadPortrait struct {
PicCount *uint32 `protobuf:"varint,1,opt"` PicCount proto.Option[uint32] `protobuf:"varint,1,opt"`
MsgInfo []*D88DGroupHeadPortraitInfo `protobuf:"bytes,2,rep"` MsgInfo []*D88DGroupHeadPortraitInfo `protobuf:"bytes,2,rep"`
DefaultId *uint32 `protobuf:"varint,3,opt"` DefaultId proto.Option[uint32] `protobuf:"varint,3,opt"`
VerifyingPicCnt *uint32 `protobuf:"varint,4,opt"` VerifyingPicCnt proto.Option[uint32] `protobuf:"varint,4,opt"`
MsgVerifyingPicInfo []*D88DGroupHeadPortraitInfo `protobuf:"bytes,5,rep"` 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 { type D88DGroupExInfoOnly struct {
TribeId *uint32 `protobuf:"varint,1,opt"` TribeId proto.Option[uint32] `protobuf:"varint,1,opt"`
MoneyForAddGroup *uint32 `protobuf:"varint,2,opt"` MoneyForAddGroup proto.Option[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
} }
type D88DGroupInfo struct { type D88DGroupInfo struct {
GroupOwner *uint64 `protobuf:"varint,1,opt"` GroupOwner proto.Option[uint64] `protobuf:"varint,1,opt"`
GroupCreateTime *uint32 `protobuf:"varint,2,opt"` GroupCreateTime proto.Option[uint32] `protobuf:"varint,2,opt"`
GroupFlag *uint32 `protobuf:"varint,3,opt"` GroupFlag proto.Option[uint32] `protobuf:"varint,3,opt"`
GroupFlagExt *uint32 `protobuf:"varint,4,opt"` GroupFlagExt proto.Option[uint32] `protobuf:"varint,4,opt"`
GroupMemberMaxNum *uint32 `protobuf:"varint,5,opt"` GroupMemberMaxNum proto.Option[uint32] `protobuf:"varint,5,opt"`
GroupMemberNum *uint32 `protobuf:"varint,6,opt"` GroupMemberNum proto.Option[uint32] `protobuf:"varint,6,opt"`
GroupOption *uint32 `protobuf:"varint,7,opt"` GroupOption proto.Option[uint32] `protobuf:"varint,7,opt"`
GroupClassExt *uint32 `protobuf:"varint,8,opt"` GroupClassExt proto.Option[uint32] `protobuf:"varint,8,opt"`
GroupSpecialClass *uint32 `protobuf:"varint,9,opt"` GroupSpecialClass proto.Option[uint32] `protobuf:"varint,9,opt"`
GroupLevel *uint32 `protobuf:"varint,10,opt"` GroupLevel proto.Option[uint32] `protobuf:"varint,10,opt"`
GroupFace *uint32 `protobuf:"varint,11,opt"` GroupFace proto.Option[uint32] `protobuf:"varint,11,opt"`
GroupDefaultPage *uint32 `protobuf:"varint,12,opt"` GroupDefaultPage proto.Option[uint32] `protobuf:"varint,12,opt"`
GroupInfoSeq *uint32 `protobuf:"varint,13,opt"` GroupInfoSeq proto.Option[uint32] `protobuf:"varint,13,opt"`
GroupRoamingTime *uint32 `protobuf:"varint,14,opt"` GroupRoamingTime proto.Option[uint32] `protobuf:"varint,14,opt"`
GroupName []byte `protobuf:"bytes,15,opt"` GroupName []byte `protobuf:"bytes,15,opt"`
GroupMemo []byte `protobuf:"bytes,16,opt"` GroupMemo []byte `protobuf:"bytes,16,opt"`
GroupFingerMemo []byte `protobuf:"bytes,17,opt"` GroupFingerMemo []byte `protobuf:"bytes,17,opt"`
GroupClassText []byte `protobuf:"bytes,18,opt"` GroupClassText []byte `protobuf:"bytes,18,opt"`
GroupAllianceCode []uint32 `protobuf:"varint,19,rep"` GroupAllianceCode []uint32 `protobuf:"varint,19,rep"`
GroupExtraAadmNum *uint32 `protobuf:"varint,20,opt"` GroupExtraAadmNum proto.Option[uint32] `protobuf:"varint,20,opt"`
GroupUin *uint64 `protobuf:"varint,21,opt"` GroupUin proto.Option[uint64] `protobuf:"varint,21,opt"`
GroupCurMsgSeq *uint32 `protobuf:"varint,22,opt"` GroupCurMsgSeq proto.Option[uint32] `protobuf:"varint,22,opt"`
GroupLastMsgTime *uint32 `protobuf:"varint,23,opt"` GroupLastMsgTime proto.Option[uint32] `protobuf:"varint,23,opt"`
GroupQuestion []byte `protobuf:"bytes,24,opt"` GroupQuestion []byte `protobuf:"bytes,24,opt"`
GroupAnswer []byte `protobuf:"bytes,25,opt"` GroupAnswer []byte `protobuf:"bytes,25,opt"`
GroupVisitorMaxNum *uint32 `protobuf:"varint,26,opt"` GroupVisitorMaxNum proto.Option[uint32] `protobuf:"varint,26,opt"`
GroupVisitorCurNum *uint32 `protobuf:"varint,27,opt"` GroupVisitorCurNum proto.Option[uint32] `protobuf:"varint,27,opt"`
LevelNameSeq *uint32 `protobuf:"varint,28,opt"` LevelNameSeq proto.Option[uint32] `protobuf:"varint,28,opt"`
GroupAdminMaxNum *uint32 `protobuf:"varint,29,opt"` GroupAdminMaxNum proto.Option[uint32] `protobuf:"varint,29,opt"`
GroupAioSkinTimestamp *uint32 `protobuf:"varint,30,opt"` GroupAioSkinTimestamp proto.Option[uint32] `protobuf:"varint,30,opt"`
GroupBoardSkinTimestamp *uint32 `protobuf:"varint,31,opt"` GroupBoardSkinTimestamp proto.Option[uint32] `protobuf:"varint,31,opt"`
GroupAioSkinUrl []byte `protobuf:"bytes,32,opt"` GroupAioSkinUrl []byte `protobuf:"bytes,32,opt"`
GroupBoardSkinUrl []byte `protobuf:"bytes,33,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"` GroupCoverSkinUrl []byte `protobuf:"bytes,35,opt"`
GroupGrade *uint32 `protobuf:"varint,36,opt"` GroupGrade proto.Option[uint32] `protobuf:"varint,36,opt"`
ActiveMemberNum *uint32 `protobuf:"varint,37,opt"` ActiveMemberNum proto.Option[uint32] `protobuf:"varint,37,opt"`
CertificationType *uint32 `protobuf:"varint,38,opt"` CertificationType proto.Option[uint32] `protobuf:"varint,38,opt"`
CertificationText []byte `protobuf:"bytes,39,opt"` CertificationText []byte `protobuf:"bytes,39,opt"`
GroupRichFingerMemo []byte `protobuf:"bytes,40,opt"` GroupRichFingerMemo []byte `protobuf:"bytes,40,opt"`
TagRecord []*D88DTagRecord `protobuf:"bytes,41,rep"` TagRecord []*D88DTagRecord `protobuf:"bytes,41,rep"`
GroupGeoInfo *D88DGroupGeoInfo `protobuf:"bytes,42,opt"` 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"` MsgHeadPortrait *D88DGroupHeadPortrait `protobuf:"bytes,44,opt"`
ShutupTimestamp *uint32 `protobuf:"varint,45,opt"` ShutupTimestamp proto.Option[uint32] `protobuf:"varint,45,opt"`
ShutupTimestampMe *uint32 `protobuf:"varint,46,opt"` ShutupTimestampMe proto.Option[uint32] `protobuf:"varint,46,opt"`
CreateSourceFlag *uint32 `protobuf:"varint,47,opt"` CreateSourceFlag proto.Option[uint32] `protobuf:"varint,47,opt"`
CmduinMsgSeq *uint32 `protobuf:"varint,48,opt"` CmduinMsgSeq proto.Option[uint32] `protobuf:"varint,48,opt"`
CmduinJoinTime *uint32 `protobuf:"varint,49,opt"` CmduinJoinTime proto.Option[uint32] `protobuf:"varint,49,opt"`
CmduinUinFlag *uint32 `protobuf:"varint,50,opt"` CmduinUinFlag proto.Option[uint32] `protobuf:"varint,50,opt"`
CmduinFlagEx *uint32 `protobuf:"varint,51,opt"` CmduinFlagEx proto.Option[uint32] `protobuf:"varint,51,opt"`
CmduinNewMobileFlag *uint32 `protobuf:"varint,52,opt"` CmduinNewMobileFlag proto.Option[uint32] `protobuf:"varint,52,opt"`
CmduinReadMsgSeq *uint32 `protobuf:"varint,53,opt"` CmduinReadMsgSeq proto.Option[uint32] `protobuf:"varint,53,opt"`
CmduinLastMsgTime *uint32 `protobuf:"varint,54,opt"` CmduinLastMsgTime proto.Option[uint32] `protobuf:"varint,54,opt"`
GroupTypeFlag *uint32 `protobuf:"varint,55,opt"` GroupTypeFlag proto.Option[uint32] `protobuf:"varint,55,opt"`
AppPrivilegeFlag *uint32 `protobuf:"varint,56,opt"` AppPrivilegeFlag proto.Option[uint32] `protobuf:"varint,56,opt"`
StGroupExInfo *D88DGroupExInfoOnly `protobuf:"bytes,57,opt"` StGroupExInfo *D88DGroupExInfoOnly `protobuf:"bytes,57,opt"`
GroupSecLevel *uint32 `protobuf:"varint,58,opt"` GroupSecLevel proto.Option[uint32] `protobuf:"varint,58,opt"`
GroupSecLevelInfo *uint32 `protobuf:"varint,59,opt"` GroupSecLevelInfo proto.Option[uint32] `protobuf:"varint,59,opt"`
CmduinPrivilege *uint32 `protobuf:"varint,60,opt"` CmduinPrivilege proto.Option[uint32] `protobuf:"varint,60,opt"`
PoidInfo []byte `protobuf:"bytes,61,opt"` PoidInfo []byte `protobuf:"bytes,61,opt"`
CmduinFlagEx2 *uint32 `protobuf:"varint,62,opt"` CmduinFlagEx2 proto.Option[uint32] `protobuf:"varint,62,opt"`
ConfUin *uint64 `protobuf:"varint,63,opt"` ConfUin proto.Option[uint64] `protobuf:"varint,63,opt"`
ConfMaxMsgSeq *uint32 `protobuf:"varint,64,opt"` ConfMaxMsgSeq proto.Option[uint32] `protobuf:"varint,64,opt"`
ConfToGroupTime *uint32 `protobuf:"varint,65,opt"` ConfToGroupTime proto.Option[uint32] `protobuf:"varint,65,opt"`
PasswordRedbagTime *uint32 `protobuf:"varint,66,opt"` PasswordRedbagTime proto.Option[uint32] `protobuf:"varint,66,opt"`
SubscriptionUin *uint64 `protobuf:"varint,67,opt"` SubscriptionUin proto.Option[uint64] `protobuf:"varint,67,opt"`
MemberListChangeSeq *uint32 `protobuf:"varint,68,opt"` MemberListChangeSeq proto.Option[uint32] `protobuf:"varint,68,opt"`
MembercardSeq *uint32 `protobuf:"varint,69,opt"` MembercardSeq proto.Option[uint32] `protobuf:"varint,69,opt"`
RootId *uint64 `protobuf:"varint,70,opt"` RootId proto.Option[uint64] `protobuf:"varint,70,opt"`
ParentId *uint64 `protobuf:"varint,71,opt"` ParentId proto.Option[uint64] `protobuf:"varint,71,opt"`
TeamSeq *uint32 `protobuf:"varint,72,opt"` TeamSeq proto.Option[uint32] `protobuf:"varint,72,opt"`
HistoryMsgBeginTime *uint64 `protobuf:"varint,73,opt"` HistoryMsgBeginTime proto.Option[uint64] `protobuf:"varint,73,opt"`
InviteNoAuthNumLimit *uint64 `protobuf:"varint,74,opt"` InviteNoAuthNumLimit proto.Option[uint64] `protobuf:"varint,74,opt"`
CmduinHistoryMsgSeq *uint32 `protobuf:"varint,75,opt"` CmduinHistoryMsgSeq proto.Option[uint32] `protobuf:"varint,75,opt"`
CmduinJoinMsgSeq *uint32 `protobuf:"varint,76,opt"` CmduinJoinMsgSeq proto.Option[uint32] `protobuf:"varint,76,opt"`
GroupFlagext3 *uint32 `protobuf:"varint,77,opt"` GroupFlagext3 proto.Option[uint32] `protobuf:"varint,77,opt"`
GroupOpenAppid *uint32 `protobuf:"varint,78,opt"` GroupOpenAppid proto.Option[uint32] `protobuf:"varint,78,opt"`
IsConfGroup *uint32 `protobuf:"varint,79,opt"` IsConfGroup proto.Option[uint32] `protobuf:"varint,79,opt"`
IsModifyConfGroupFace *uint32 `protobuf:"varint,80,opt"` IsModifyConfGroupFace proto.Option[uint32] `protobuf:"varint,80,opt"`
IsModifyConfGroupName *uint32 `protobuf:"varint,81,opt"` IsModifyConfGroupName proto.Option[uint32] `protobuf:"varint,81,opt"`
NoFingerOpenFlag *uint32 `protobuf:"varint,82,opt"` NoFingerOpenFlag proto.Option[uint32] `protobuf:"varint,82,opt"`
NoCodeFingerOpenFlag *uint32 `protobuf:"varint,83,opt"` NoCodeFingerOpenFlag proto.Option[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
} }
type ReqGroupInfo struct { type ReqGroupInfo struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
Stgroupinfo *D88DGroupInfo `protobuf:"bytes,2,opt"` Stgroupinfo *D88DGroupInfo `protobuf:"bytes,2,opt"`
LastGetGroupNameTime *uint32 `protobuf:"varint,3,opt"` LastGetGroupNameTime proto.Option[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
} }
type D88DReqBody struct { type D88DReqBody struct {
AppId *uint32 `protobuf:"varint,1,opt"` AppId proto.Option[uint32] `protobuf:"varint,1,opt"`
ReqGroupInfo []*ReqGroupInfo `protobuf:"bytes,2,rep"` ReqGroupInfo []*ReqGroupInfo `protobuf:"bytes,2,rep"`
PcClientVersion *uint32 `protobuf:"varint,3,opt"` PcClientVersion proto.Option[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
} }
type RspGroupInfo struct { type RspGroupInfo struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
Result *uint32 `protobuf:"varint,2,opt"` Result proto.Option[uint32] `protobuf:"varint,2,opt"`
GroupInfo *D88DGroupInfo `protobuf:"bytes,3,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
}
type D88DRspBody struct { type D88DRspBody struct {
RspGroupInfo []*RspGroupInfo `protobuf:"bytes,1,rep"` RspGroupInfo []*RspGroupInfo `protobuf:"bytes,1,rep"`
StrErrorInfo []byte `protobuf:"bytes,2,opt"` StrErrorInfo []byte `protobuf:"bytes,2,opt"`
} }
type D88DTagRecord struct { type D88DTagRecord struct {
FromUin *uint64 `protobuf:"varint,1,opt"` FromUin proto.Option[uint64] `protobuf:"varint,1,opt"`
GroupCode *uint64 `protobuf:"varint,2,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,2,opt"`
TagId []byte `protobuf:"bytes,3,opt"` TagId []byte `protobuf:"bytes,3,opt"`
SetTime *uint64 `protobuf:"varint,4,opt"` SetTime proto.Option[uint64] `protobuf:"varint,4,opt"`
GoodNum *uint32 `protobuf:"varint,5,opt"` GoodNum proto.Option[uint32] `protobuf:"varint,5,opt"`
BadNum *uint32 `protobuf:"varint,6,opt"` BadNum proto.Option[uint32] `protobuf:"varint,6,opt"`
TagLen *uint32 `protobuf:"varint,7,opt"` TagLen proto.Option[uint32] `protobuf:"varint,7,opt"`
TagValue []byte `protobuf:"bytes,8,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
}
type D88DGroupGeoInfo struct { type D88DGroupGeoInfo struct {
Owneruin *uint64 `protobuf:"varint,1,opt"` Owneruin proto.Option[uint64] `protobuf:"varint,1,opt"`
Settime *uint32 `protobuf:"varint,2,opt"` Settime proto.Option[uint32] `protobuf:"varint,2,opt"`
Cityid *uint32 `protobuf:"varint,3,opt"` Cityid proto.Option[uint32] `protobuf:"varint,3,opt"`
Longitude *int64 `protobuf:"varint,4,opt"` Longitude proto.Option[int64] `protobuf:"varint,4,opt"`
Latitude *int64 `protobuf:"varint,5,opt"` Latitude proto.Option[int64] `protobuf:"varint,5,opt"`
Geocontent []byte `protobuf:"bytes,6,opt"` Geocontent []byte `protobuf:"bytes,6,opt"`
PoiId *uint64 `protobuf:"varint,7,opt"` PoiId proto.Option[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
} }

View File

@ -3,74 +3,22 @@
package oidb package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type D8A7ReqBody struct { type D8A7ReqBody struct {
SubCmd *uint32 `protobuf:"varint,1,opt"` SubCmd proto.Option[uint32] `protobuf:"varint,1,opt"`
LimitIntervalTypeForUin *uint32 `protobuf:"varint,2,opt"` LimitIntervalTypeForUin proto.Option[uint32] `protobuf:"varint,2,opt"`
LimitIntervalTypeForGroup *uint32 `protobuf:"varint,3,opt"` LimitIntervalTypeForGroup proto.Option[uint32] `protobuf:"varint,3,opt"`
Uin *uint64 `protobuf:"varint,4,opt"` Uin proto.Option[uint64] `protobuf:"varint,4,opt"`
GroupCode *uint64 `protobuf:"varint,5,opt"` GroupCode proto.Option[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
} }
type D8A7RspBody struct { type D8A7RspBody struct {
CanAtAll *bool `protobuf:"varint,1,opt"` CanAtAll proto.Option[bool] `protobuf:"varint,1,opt"`
RemainAtAllCountForUin *uint32 `protobuf:"varint,2,opt"` RemainAtAllCountForUin proto.Option[uint32] `protobuf:"varint,2,opt"`
RemainAtAllCountForGroup *uint32 `protobuf:"varint,3,opt"` RemainAtAllCountForGroup proto.Option[uint32] `protobuf:"varint,3,opt"`
PromptMsg1 []byte `protobuf:"bytes,4,opt"` PromptMsg1 []byte `protobuf:"bytes,4,opt"`
PromptMsg2 []byte `protobuf:"bytes,5,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
}

View File

@ -3,177 +3,55 @@
package oidb package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type D8FCReqBody struct { type D8FCReqBody struct {
GroupCode *int64 `protobuf:"varint,1,opt"` GroupCode proto.Option[int64] `protobuf:"varint,1,opt"`
ShowFlag *int32 `protobuf:"varint,2,opt"` ShowFlag proto.Option[int32] `protobuf:"varint,2,opt"`
MemLevelInfo []*D8FCMemberInfo `protobuf:"bytes,3,rep"` MemLevelInfo []*D8FCMemberInfo `protobuf:"bytes,3,rep"`
LevelName []*D8FCLevelName `protobuf:"bytes,4,rep"` LevelName []*D8FCLevelName `protobuf:"bytes,4,rep"`
UpdateTime *int32 `protobuf:"varint,5,opt"` UpdateTime proto.Option[int32] `protobuf:"varint,5,opt"`
OfficeMode *int32 `protobuf:"varint,6,opt"` OfficeMode proto.Option[int32] `protobuf:"varint,6,opt"`
GroupOpenAppid *int32 `protobuf:"varint,7,opt"` GroupOpenAppid proto.Option[int32] `protobuf:"varint,7,opt"`
MsgClientInfo *D8FCClientInfo `protobuf:"bytes,8,opt"` MsgClientInfo *D8FCClientInfo `protobuf:"bytes,8,opt"`
AuthKey []byte `protobuf:"bytes,9,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
}
type D8FCMemberInfo struct { type D8FCMemberInfo struct {
Uin *int64 `protobuf:"varint,1,opt"` Uin proto.Option[int64] `protobuf:"varint,1,opt"`
Point *int32 `protobuf:"varint,2,opt"` Point proto.Option[int32] `protobuf:"varint,2,opt"`
ActiveDay *int32 `protobuf:"varint,3,opt"` ActiveDay proto.Option[int32] `protobuf:"varint,3,opt"`
Level *int32 `protobuf:"varint,4,opt"` Level proto.Option[int32] `protobuf:"varint,4,opt"`
SpecialTitle []byte `protobuf:"bytes,5,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"` UinName []byte `protobuf:"bytes,7,opt"`
MemberCardName []byte `protobuf:"bytes,8,opt"` MemberCardName []byte `protobuf:"bytes,8,opt"`
Phone []byte `protobuf:"bytes,9,opt"` Phone []byte `protobuf:"bytes,9,opt"`
Email []byte `protobuf:"bytes,10,opt"` Email []byte `protobuf:"bytes,10,opt"`
Remark []byte `protobuf:"bytes,11,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"` Job []byte `protobuf:"bytes,13,opt"`
TribeLevel *int32 `protobuf:"varint,14,opt"` TribeLevel proto.Option[int32] `protobuf:"varint,14,opt"`
TribePoint *int32 `protobuf:"varint,15,opt"` TribePoint proto.Option[int32] `protobuf:"varint,15,opt"`
RichCardName []*D8FCCardNameElem `protobuf:"bytes,16,rep"` RichCardName []*D8FCCardNameElem `protobuf:"bytes,16,rep"`
CommRichCardName []byte `protobuf:"bytes,17,opt"` 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 { type D8FCCardNameElem struct {
EnumCardType *int32 `protobuf:"varint,1,opt"` EnumCardType proto.Option[int32] `protobuf:"varint,1,opt"`
Value []byte `protobuf:"bytes,2,opt"` Value []byte `protobuf:"bytes,2,opt"`
} }
func (x *D8FCCardNameElem) GetEnumCardType() int32 {
if x != nil && x.EnumCardType != nil {
return *x.EnumCardType
}
return 0
}
type D8FCLevelName struct { type D8FCLevelName struct {
Level *int32 `protobuf:"varint,1,opt"` Level proto.Option[int32] `protobuf:"varint,1,opt"`
Name *string `protobuf:"bytes,2,opt"` Name proto.Option[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 ""
} }
type D8FCClientInfo struct { type D8FCClientInfo struct {
Implat *int32 `protobuf:"varint,1,opt"` Implat proto.Option[int32] `protobuf:"varint,1,opt"`
IngClientver *string `protobuf:"bytes,2,opt"` IngClientver proto.Option[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 ""
} }
type D8FCCommCardNameBuf struct { type D8FCCommCardNameBuf struct {

View File

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

View File

@ -3,321 +3,66 @@
package oidb package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type CheckUrlReq struct { type CheckUrlReq struct {
Url []string `protobuf:"bytes,1,rep"` Url []string `protobuf:"bytes,1,rep"`
Refer *string `protobuf:"bytes,2,opt"` Refer proto.Option[string] `protobuf:"bytes,2,opt"`
Plateform *string `protobuf:"bytes,3,opt"` Plateform proto.Option[string] `protobuf:"bytes,3,opt"`
QqPfTo *string `protobuf:"bytes,4,opt"` QqPfTo proto.Option[string] `protobuf:"bytes,4,opt"`
Type *uint32 `protobuf:"varint,5,opt"` Type proto.Option[uint32] `protobuf:"varint,5,opt"`
From *uint32 `protobuf:"varint,6,opt"` From proto.Option[uint32] `protobuf:"varint,6,opt"`
Chatid *uint64 `protobuf:"varint,7,opt"` Chatid proto.Option[uint64] `protobuf:"varint,7,opt"`
ServiceType *uint64 `protobuf:"varint,8,opt"` ServiceType proto.Option[uint64] `protobuf:"varint,8,opt"`
SendUin *uint64 `protobuf:"varint,9,opt"` SendUin proto.Option[uint64] `protobuf:"varint,9,opt"`
ReqType *string `protobuf:"bytes,10,opt"` ReqType proto.Option[string] `protobuf:"bytes,10,opt"`
OriginalUrl *string `protobuf:"bytes,11,opt"` OriginalUrl proto.Option[string] `protobuf:"bytes,11,opt"`
IsArk *bool `protobuf:"varint,12,opt"` IsArk proto.Option[bool] `protobuf:"varint,12,opt"`
ArkName *string `protobuf:"bytes,13,opt"` ArkName proto.Option[string] `protobuf:"bytes,13,opt"`
IsFinish *bool `protobuf:"varint,14,opt"` IsFinish proto.Option[bool] `protobuf:"varint,14,opt"`
SrcUrls []string `protobuf:"bytes,15,rep"` SrcUrls []string `protobuf:"bytes,15,rep"`
SrcPlatform *uint32 `protobuf:"varint,16,opt"` SrcPlatform proto.Option[uint32] `protobuf:"varint,16,opt"`
Qua *string `protobuf:"bytes,17,opt"` Qua proto.Option[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 ""
} }
type CheckUrlReqItem struct { type CheckUrlReqItem struct {
Url *string `protobuf:"bytes,1,opt"` Url proto.Option[string] `protobuf:"bytes,1,opt"`
Refer *string `protobuf:"bytes,2,opt"` Refer proto.Option[string] `protobuf:"bytes,2,opt"`
Plateform *string `protobuf:"bytes,3,opt"` Plateform proto.Option[string] `protobuf:"bytes,3,opt"`
QqPfTo *string `protobuf:"bytes,4,opt"` QqPfTo proto.Option[string] `protobuf:"bytes,4,opt"`
Type *uint32 `protobuf:"varint,5,opt"` Type proto.Option[uint32] `protobuf:"varint,5,opt"`
From *uint32 `protobuf:"varint,6,opt"` From proto.Option[uint32] `protobuf:"varint,6,opt"`
Chatid *uint64 `protobuf:"varint,7,opt"` Chatid proto.Option[uint64] `protobuf:"varint,7,opt"`
ServiceType *uint64 `protobuf:"varint,8,opt"` ServiceType proto.Option[uint64] `protobuf:"varint,8,opt"`
SendUin *uint64 `protobuf:"varint,9,opt"` SendUin proto.Option[uint64] `protobuf:"varint,9,opt"`
ReqType *string `protobuf:"bytes,10,opt"` ReqType proto.Option[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 ""
} }
type CheckUrlRsp struct { type CheckUrlRsp struct {
Results []*UrlCheckResult `protobuf:"bytes,1,rep"` Results []*UrlCheckResult `protobuf:"bytes,1,rep"`
NextReqDuration *uint32 `protobuf:"varint,2,opt"` NextReqDuration proto.Option[uint32] `protobuf:"varint,2,opt"`
}
func (x *CheckUrlRsp) GetNextReqDuration() uint32 {
if x != nil && x.NextReqDuration != nil {
return *x.NextReqDuration
}
return 0
} }
type DBCBReqBody struct { type DBCBReqBody struct {
NotUseCache *int32 `protobuf:"varint,9,opt"` NotUseCache proto.Option[int32] `protobuf:"varint,9,opt"`
CheckUrlReq *CheckUrlReq `protobuf:"bytes,10,opt"` CheckUrlReq *CheckUrlReq `protobuf:"bytes,10,opt"`
} }
func (x *DBCBReqBody) GetNotUseCache() int32 {
if x != nil && x.NotUseCache != nil {
return *x.NotUseCache
}
return 0
}
type DBCBRspBody struct { type DBCBRspBody struct {
Wording *string `protobuf:"bytes,1,opt"` Wording proto.Option[string] `protobuf:"bytes,1,opt"`
CheckUrlRsp *CheckUrlRsp `protobuf:"bytes,10,opt"` CheckUrlRsp *CheckUrlRsp `protobuf:"bytes,10,opt"`
} }
func (x *DBCBRspBody) GetWording() string {
if x != nil && x.Wording != nil {
return *x.Wording
}
return ""
}
type UrlCheckResult struct { type UrlCheckResult struct {
Url *string `protobuf:"bytes,1,opt"` Url proto.Option[string] `protobuf:"bytes,1,opt"`
Result *uint32 `protobuf:"varint,2,opt"` Result proto.Option[uint32] `protobuf:"varint,2,opt"`
JumpResult *uint32 `protobuf:"varint,3,opt"` JumpResult proto.Option[uint32] `protobuf:"varint,3,opt"`
JumpUrl *string `protobuf:"bytes,4,opt"` JumpUrl proto.Option[string] `protobuf:"bytes,4,opt"`
Level *uint32 `protobuf:"varint,5,opt"` Level proto.Option[uint32] `protobuf:"varint,5,opt"`
SubLevel *uint32 `protobuf:"varint,6,opt"` SubLevel proto.Option[uint32] `protobuf:"varint,6,opt"`
Umrtype *uint32 `protobuf:"varint,7,opt"` Umrtype proto.Option[uint32] `protobuf:"varint,7,opt"`
RetFrom *uint32 `protobuf:"varint,8,opt"` RetFrom proto.Option[uint32] `protobuf:"varint,8,opt"`
OperationBit *uint64 `protobuf:"varint,9,opt"` OperationBit proto.Option[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
} }

View File

@ -3,94 +3,28 @@
package oidb package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type LifeAchievementItem struct { type LifeAchievementItem struct {
AchievementId *uint32 `protobuf:"varint,1,opt"` AchievementId proto.Option[uint32] `protobuf:"varint,1,opt"`
AchievementTitle *string `protobuf:"bytes,2,opt"` AchievementTitle proto.Option[string] `protobuf:"bytes,2,opt"`
AchievementIcon *string `protobuf:"bytes,3,opt"` AchievementIcon proto.Option[string] `protobuf:"bytes,3,opt"`
HasPraised *bool `protobuf:"varint,4,opt"` HasPraised proto.Option[bool] `protobuf:"varint,4,opt"`
PraiseNum *uint32 `protobuf:"varint,5,opt"` PraiseNum proto.Option[uint32] `protobuf:"varint,5,opt"`
AchievementContent []byte `protobuf:"bytes,6,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
}
type DE5BReqBody struct { type DE5BReqBody struct {
Uin *uint64 `protobuf:"varint,1,opt"` Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
AchievementId []uint32 `protobuf:"varint,2,rep"` AchievementId []uint32 `protobuf:"varint,2,rep"`
MaxCount *uint32 `protobuf:"varint,3,opt"` MaxCount proto.Option[uint32] `protobuf:"varint,3,opt"`
ReqAchievementContent *bool `protobuf:"varint,4,opt"` ReqAchievementContent proto.Option[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
} }
type DE5BRspBody struct { type DE5BRspBody struct {
AchievementTotalCount *uint32 `protobuf:"varint,1,opt"` AchievementTotalCount proto.Option[uint32] `protobuf:"varint,1,opt"`
LifeAchItem []*LifeAchievementItem `protobuf:"bytes,2,rep"` LifeAchItem []*LifeAchievementItem `protobuf:"bytes,2,rep"`
AchievementOpenid *string `protobuf:"bytes,3,opt"` AchievementOpenid proto.Option[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 ""
} }

View File

@ -3,65 +3,20 @@
package oidb package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type EACReqBody struct { type EACReqBody struct {
GroupCode *uint64 `protobuf:"varint,1,opt"` GroupCode proto.Option[uint64] `protobuf:"varint,1,opt"`
Seq *uint32 `protobuf:"varint,2,opt"` Seq proto.Option[uint32] `protobuf:"varint,2,opt"`
Random *uint32 `protobuf:"varint,3,opt"` Random proto.Option[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
} }
type EACRspBody struct { type EACRspBody struct {
Wording *string `protobuf:"bytes,1,opt"` Wording proto.Option[string] `protobuf:"bytes,1,opt"`
DigestUin *uint64 `protobuf:"varint,2,opt"` DigestUin proto.Option[uint64] `protobuf:"varint,2,opt"`
DigestTime *uint32 `protobuf:"varint,3,opt"` DigestTime proto.Option[uint32] `protobuf:"varint,3,opt"`
//optional DigestMsg msg = 4; //optional DigestMsg msg = 4;
ErrorCode *uint32 `protobuf:"varint,10,opt"` ErrorCode proto.Option[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
} }

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 package oidb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type Comment struct { type Comment struct {
Id *string `protobuf:"bytes,1,opt"` Id proto.Option[string] `protobuf:"bytes,1,opt"`
Comment *string `protobuf:"bytes,2,opt"` Comment proto.Option[string] `protobuf:"bytes,2,opt"`
Time *uint64 `protobuf:"varint,3,opt"` Time proto.Option[uint64] `protobuf:"varint,3,opt"`
FromUin *uint64 `protobuf:"varint,4,opt"` FromUin proto.Option[uint64] `protobuf:"varint,4,opt"`
ToUin *uint64 `protobuf:"varint,5,opt"` ToUin proto.Option[uint64] `protobuf:"varint,5,opt"`
ReplyId *string `protobuf:"bytes,6,opt"` ReplyId proto.Option[string] `protobuf:"bytes,6,opt"`
FromNick *string `protobuf:"bytes,7,opt"` FromNick proto.Option[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 ""
} }
type Praise struct { type Praise struct {
FromUin *uint64 `protobuf:"varint,1,opt"` FromUin proto.Option[uint64] `protobuf:"varint,1,opt"`
ToUin *uint64 `protobuf:"varint,2,opt"` ToUin proto.Option[uint64] `protobuf:"varint,2,opt"`
Time *uint64 `protobuf:"varint,3,opt"` Time proto.Option[uint64] `protobuf:"varint,3,opt"`
FromNick *string `protobuf:"bytes,4,opt"` FromNick proto.Option[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 ""
} }
type Quest struct { type Quest struct {
Id *string `protobuf:"bytes,1,opt"` Id proto.Option[string] `protobuf:"bytes,1,opt"`
Quest *string `protobuf:"bytes,2,opt"` Quest proto.Option[string] `protobuf:"bytes,2,opt"`
QuestUin *uint64 `protobuf:"varint,3,opt"` QuestUin proto.Option[uint64] `protobuf:"varint,3,opt"`
Time *uint64 `protobuf:"varint,4,opt"` Time proto.Option[uint64] `protobuf:"varint,4,opt"`
Ans *string `protobuf:"bytes,5,opt"` Ans proto.Option[string] `protobuf:"bytes,5,opt"`
AnsTime *uint64 `protobuf:"varint,6,opt"` AnsTime proto.Option[uint64] `protobuf:"varint,6,opt"`
Comment []*Comment `protobuf:"bytes,7,rep"` Comment []*Comment `protobuf:"bytes,7,rep"`
Praise []*Praise `protobuf:"bytes,8,rep"` Praise []*Praise `protobuf:"bytes,8,rep"`
PraiseNum *uint64 `protobuf:"varint,9,opt"` PraiseNum proto.Option[uint64] `protobuf:"varint,9,opt"`
LikeKey *string `protobuf:"bytes,10,opt"` LikeKey proto.Option[string] `protobuf:"bytes,10,opt"`
SystemId *uint64 `protobuf:"varint,11,opt"` SystemId proto.Option[uint64] `protobuf:"varint,11,opt"`
CommentNum *uint64 `protobuf:"varint,12,opt"` CommentNum proto.Option[uint64] `protobuf:"varint,12,opt"`
ShowType *uint64 `protobuf:"varint,13,opt"` ShowType proto.Option[uint64] `protobuf:"varint,13,opt"`
ShowTimes *uint64 `protobuf:"varint,14,opt"` ShowTimes proto.Option[uint64] `protobuf:"varint,14,opt"`
BeenPraised *uint64 `protobuf:"varint,15,opt"` BeenPraised proto.Option[uint64] `protobuf:"varint,15,opt"`
QuestRead *bool `protobuf:"varint,16,opt"` QuestRead proto.Option[bool] `protobuf:"varint,16,opt"`
AnsShowType *uint64 `protobuf:"varint,17,opt"` AnsShowType proto.Option[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
} }
type DEC4ReqBody struct { type DEC4ReqBody struct {
Uin *uint64 `protobuf:"varint,1,opt"` Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
QuestNum *uint64 `protobuf:"varint,2,opt"` QuestNum proto.Option[uint64] `protobuf:"varint,2,opt"`
CommentNum *uint64 `protobuf:"varint,3,opt"` CommentNum proto.Option[uint64] `protobuf:"varint,3,opt"`
Cookie []byte `protobuf:"bytes,4,opt"` Cookie []byte `protobuf:"bytes,4,opt"`
FetchType *uint32 `protobuf:"varint,5,opt"` FetchType proto.Option[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
} }
type DEC4RspBody struct { type DEC4RspBody struct {
Quest []*Quest `protobuf:"bytes,1,rep"` Quest []*Quest `protobuf:"bytes,1,rep"`
IsFetchOver *bool `protobuf:"varint,2,opt"` IsFetchOver proto.Option[bool] `protobuf:"varint,2,opt"`
TotalQuestNum *uint32 `protobuf:"varint,3,opt"` TotalQuestNum proto.Option[uint32] `protobuf:"varint,3,opt"`
Cookie []byte `protobuf:"bytes,4,opt"` Cookie []byte `protobuf:"bytes,4,opt"`
Ret *uint32 `protobuf:"varint,5,opt"` Ret proto.Option[uint32] `protobuf:"varint,5,opt"`
AnsweredQuestNum *uint32 `protobuf:"varint,6,opt"` AnsweredQuestNum proto.Option[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
} }

View File

@ -3,23 +3,13 @@
package profilecard package profilecard
import (
proto "github.com/RomiChan/protobuf/proto"
)
type Location struct { type Location struct {
Latitude *float64 `protobuf:"fixed64,1,opt"` Latitude proto.Option[float64] `protobuf:"fixed64,1,opt"`
Longitude *float64 `protobuf:"fixed64,2,opt"` Longitude proto.Option[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
} }
type ResultItem struct { type ResultItem struct {
@ -31,410 +21,74 @@ type ResultItem struct {
Summary []byte `protobuf:"bytes,6,opt"` Summary []byte `protobuf:"bytes,6,opt"`
HasVideo []byte `protobuf:"bytes,7,opt"` HasVideo []byte `protobuf:"bytes,7,opt"`
PhtotUpdate []byte `protobuf:"bytes,8,opt"` PhtotUpdate []byte `protobuf:"bytes,8,opt"`
Uin *uint64 `protobuf:"varint,9,opt"` Uin proto.Option[uint64] `protobuf:"varint,9,opt"`
ResultId []byte `protobuf:"bytes,10,opt"` ResultId []byte `protobuf:"bytes,10,opt"`
Ftime *uint32 `protobuf:"varint,11,opt"` Ftime proto.Option[uint32] `protobuf:"varint,11,opt"`
NickName []byte `protobuf:"bytes,12,opt"` NickName []byte `protobuf:"bytes,12,opt"`
PicUrlList [][]byte `protobuf:"bytes,13,rep"` PicUrlList [][]byte `protobuf:"bytes,13,rep"`
TotalPicNum *uint32 `protobuf:"varint,14,opt"` TotalPicNum proto.Option[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
} }
type Hotwordrecord struct { type Hotwordrecord struct {
Hotword *string `protobuf:"bytes,1,opt"` Hotword proto.Option[string] `protobuf:"bytes,1,opt"`
HotwordType *uint32 `protobuf:"varint,2,opt"` HotwordType proto.Option[uint32] `protobuf:"varint,2,opt"`
HotwordCoverUrl *string `protobuf:"bytes,3,opt"` HotwordCoverUrl proto.Option[string] `protobuf:"bytes,3,opt"`
HotwordTitle *string `protobuf:"bytes,4,opt"` HotwordTitle proto.Option[string] `protobuf:"bytes,4,opt"`
HotwordDescription *string `protobuf:"bytes,5,opt"` HotwordDescription proto.Option[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 ""
} }
type AccountSearchRecord struct { type AccountSearchRecord struct {
Uin *uint64 `protobuf:"varint,1,opt"` Uin proto.Option[uint64] `protobuf:"varint,1,opt"`
Code *uint64 `protobuf:"varint,2,opt"` Code proto.Option[uint64] `protobuf:"varint,2,opt"`
Source *uint32 `protobuf:"varint,3,opt"` Source proto.Option[uint32] `protobuf:"varint,3,opt"`
Name *string `protobuf:"bytes,4,opt"` Name proto.Option[string] `protobuf:"bytes,4,opt"`
Sex *uint32 `protobuf:"varint,5,opt"` Sex proto.Option[uint32] `protobuf:"varint,5,opt"`
Age *uint32 `protobuf:"varint,6,opt"` Age proto.Option[uint32] `protobuf:"varint,6,opt"`
Accout *string `protobuf:"bytes,7,opt"` Accout proto.Option[string] `protobuf:"bytes,7,opt"`
Brief *string `protobuf:"bytes,8,opt"` Brief proto.Option[string] `protobuf:"bytes,8,opt"`
Number *uint32 `protobuf:"varint,9,opt"` Number proto.Option[uint32] `protobuf:"varint,9,opt"`
Flag *uint64 `protobuf:"varint,10,opt"` Flag proto.Option[uint64] `protobuf:"varint,10,opt"`
Relation *uint64 `protobuf:"varint,11,opt"` Relation proto.Option[uint64] `protobuf:"varint,11,opt"`
Mobile *string `protobuf:"bytes,12,opt"` Mobile proto.Option[string] `protobuf:"bytes,12,opt"`
Sign []byte `protobuf:"bytes,13,opt"` Sign []byte `protobuf:"bytes,13,opt"`
Country *uint32 `protobuf:"varint,14,opt"` Country proto.Option[uint32] `protobuf:"varint,14,opt"`
Province *uint32 `protobuf:"varint,15,opt"` Province proto.Option[uint32] `protobuf:"varint,15,opt"`
City *uint32 `protobuf:"varint,16,opt"` City proto.Option[uint32] `protobuf:"varint,16,opt"`
ClassIndex *uint32 `protobuf:"varint,17,opt"` ClassIndex proto.Option[uint32] `protobuf:"varint,17,opt"`
ClassName *string `protobuf:"bytes,18,opt"` ClassName proto.Option[string] `protobuf:"bytes,18,opt"`
CountryName *string `protobuf:"bytes,19,opt"` CountryName proto.Option[string] `protobuf:"bytes,19,opt"`
ProvinceName *string `protobuf:"bytes,20,opt"` ProvinceName proto.Option[string] `protobuf:"bytes,20,opt"`
CityName *string `protobuf:"bytes,21,opt"` CityName proto.Option[string] `protobuf:"bytes,21,opt"`
AccountFlag *uint32 `protobuf:"varint,22,opt"` AccountFlag proto.Option[uint32] `protobuf:"varint,22,opt"`
TitleImage *string `protobuf:"bytes,23,opt"` TitleImage proto.Option[string] `protobuf:"bytes,23,opt"`
ArticleShortUrl *string `protobuf:"bytes,24,opt"` ArticleShortUrl proto.Option[string] `protobuf:"bytes,24,opt"`
ArticleCreateTime *string `protobuf:"bytes,25,opt"` ArticleCreateTime proto.Option[string] `protobuf:"bytes,25,opt"`
ArticleAuthor *string `protobuf:"bytes,26,opt"` ArticleAuthor proto.Option[string] `protobuf:"bytes,26,opt"`
AccountId *uint64 `protobuf:"varint,27,opt"` AccountId proto.Option[uint64] `protobuf:"varint,27,opt"`
//repeated Label groupLabels = 30; //repeated Label groupLabels = 30;
VideoAccount *uint32 `protobuf:"varint,31,opt"` VideoAccount proto.Option[uint32] `protobuf:"varint,31,opt"`
VideoArticle *uint32 `protobuf:"varint,32,opt"` VideoArticle proto.Option[uint32] `protobuf:"varint,32,opt"`
UinPrivilege *int32 `protobuf:"varint,33,opt"` UinPrivilege proto.Option[int32] `protobuf:"varint,33,opt"`
JoinGroupAuth []byte `protobuf:"bytes,34,opt"` JoinGroupAuth []byte `protobuf:"bytes,34,opt"`
Token []byte `protobuf:"bytes,500,opt"` Token []byte `protobuf:"bytes,500,opt"`
Richflag1_59 *uint32 `protobuf:"varint,40603,opt"` Richflag1_59 proto.Option[uint32] `protobuf:"varint,40603,opt"`
Richflag4_409 *uint32 `protobuf:"varint,42409,opt"` Richflag4_409 proto.Option[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
} }
type AccountSearch struct { type AccountSearch struct {
Start *int32 `protobuf:"varint,1,opt"` Start proto.Option[int32] `protobuf:"varint,1,opt"`
Count *uint32 `protobuf:"varint,2,opt"` Count proto.Option[uint32] `protobuf:"varint,2,opt"`
End *uint32 `protobuf:"varint,3,opt"` End proto.Option[uint32] `protobuf:"varint,3,opt"`
Keyword *string `protobuf:"bytes,4,opt"` Keyword proto.Option[string] `protobuf:"bytes,4,opt"`
List []*AccountSearchRecord `protobuf:"bytes,5,rep"` List []*AccountSearchRecord `protobuf:"bytes,5,rep"`
Highlight []string `protobuf:"bytes,6,rep"` Highlight []string `protobuf:"bytes,6,rep"`
UserLocation *Location `protobuf:"bytes,10,opt"` UserLocation *Location `protobuf:"bytes,10,opt"`
LocationGroup *bool `protobuf:"varint,11,opt"` LocationGroup proto.Option[bool] `protobuf:"varint,11,opt"`
Filtertype *int32 `protobuf:"varint,12,opt"` Filtertype proto.Option[int32] `protobuf:"varint,12,opt"`
//repeated C33304record recommendList = 13; //repeated C33304record recommendList = 13;
HotwordRecord *Hotwordrecord `protobuf:"bytes,14,opt"` HotwordRecord *Hotwordrecord `protobuf:"bytes,14,opt"`
ArticleMoreUrl *string `protobuf:"bytes,15,opt"` ArticleMoreUrl proto.Option[string] `protobuf:"bytes,15,opt"`
ResultItems []*ResultItem `protobuf:"bytes,16,rep"` ResultItems []*ResultItem `protobuf:"bytes,16,rep"`
KeywordSuicide *bool `protobuf:"varint,17,opt"` KeywordSuicide proto.Option[bool] `protobuf:"varint,17,opt"`
ExactSearch *bool `protobuf:"varint,18,opt"` ExactSearch proto.Option[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
} }

View File

@ -3,426 +3,101 @@
package profilecard package profilecard
import (
proto "github.com/RomiChan/protobuf/proto"
)
type BusiColor struct { type BusiColor struct {
R *int32 `protobuf:"varint,1,opt"` R proto.Option[int32] `protobuf:"varint,1,opt"`
G *int32 `protobuf:"varint,2,opt"` G proto.Option[int32] `protobuf:"varint,2,opt"`
B *int32 `protobuf:"varint,3,opt"` B proto.Option[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
} }
type BusiComm struct { type BusiComm struct {
Ver *int32 `protobuf:"varint,1,opt"` Ver proto.Option[int32] `protobuf:"varint,1,opt"`
Seq *int32 `protobuf:"varint,2,opt"` Seq proto.Option[int32] `protobuf:"varint,2,opt"`
Fromuin *int64 `protobuf:"varint,3,opt"` Fromuin proto.Option[int64] `protobuf:"varint,3,opt"`
Touin *int64 `protobuf:"varint,4,opt"` Touin proto.Option[int64] `protobuf:"varint,4,opt"`
Service *int32 `protobuf:"varint,5,opt"` Service proto.Option[int32] `protobuf:"varint,5,opt"`
SessionType *int32 `protobuf:"varint,6,opt"` SessionType proto.Option[int32] `protobuf:"varint,6,opt"`
SessionKey []byte `protobuf:"bytes,7,opt"` SessionKey []byte `protobuf:"bytes,7,opt"`
ClientIp *int32 `protobuf:"varint,8,opt"` ClientIp proto.Option[int32] `protobuf:"varint,8,opt"`
Display *BusiUi `protobuf:"bytes,9,opt"` Display *BusiUi `protobuf:"bytes,9,opt"`
Result *int32 `protobuf:"varint,10,opt"` Result proto.Option[int32] `protobuf:"varint,10,opt"`
ErrMsg *string `protobuf:"bytes,11,opt"` ErrMsg proto.Option[string] `protobuf:"bytes,11,opt"`
Platform *int32 `protobuf:"varint,12,opt"` Platform proto.Option[int32] `protobuf:"varint,12,opt"`
Qqver *string `protobuf:"bytes,13,opt"` Qqver proto.Option[string] `protobuf:"bytes,13,opt"`
Build *int32 `protobuf:"varint,14,opt"` Build proto.Option[int32] `protobuf:"varint,14,opt"`
MsgLoginSig *BusiLoginSig `protobuf:"bytes,15,opt"` MsgLoginSig *BusiLoginSig `protobuf:"bytes,15,opt"`
Version *int32 `protobuf:"varint,17,opt"` Version proto.Option[int32] `protobuf:"varint,17,opt"`
MsgUinInfo *BusiUinInfo `protobuf:"bytes,18,opt"` MsgUinInfo *BusiUinInfo `protobuf:"bytes,18,opt"`
MsgRichDisplay *BusiRichUi `protobuf:"bytes,19,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
}
type BusiCommonReq struct { type BusiCommonReq struct {
ServiceCmd *string `protobuf:"bytes,1,opt"` ServiceCmd proto.Option[string] `protobuf:"bytes,1,opt"`
VcReq *BusiVisitorCountReq `protobuf:"bytes,2,opt"` VcReq *BusiVisitorCountReq `protobuf:"bytes,2,opt"`
HrReq *BusiHideRecordsReq `protobuf:"bytes,3,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 { type BusiDetailRecord struct {
Fuin *int32 `protobuf:"varint,1,opt"` Fuin proto.Option[int32] `protobuf:"varint,1,opt"`
Source *int32 `protobuf:"varint,2,opt"` Source proto.Option[int32] `protobuf:"varint,2,opt"`
Vtime *int32 `protobuf:"varint,3,opt"` Vtime proto.Option[int32] `protobuf:"varint,3,opt"`
Mod *int32 `protobuf:"varint,4,opt"` Mod proto.Option[int32] `protobuf:"varint,4,opt"`
HideFlag *int32 `protobuf:"varint,5,opt"` HideFlag proto.Option[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
} }
type BusiHideRecordsReq struct { type BusiHideRecordsReq struct {
Huin *int32 `protobuf:"varint,1,opt"` Huin proto.Option[int32] `protobuf:"varint,1,opt"`
Fuin *int32 `protobuf:"varint,2,opt"` Fuin proto.Option[int32] `protobuf:"varint,2,opt"`
Records []*BusiDetailRecord `protobuf:"bytes,3,rep"` 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 { type BusiLabel struct {
Name []byte `protobuf:"bytes,1,opt"` Name []byte `protobuf:"bytes,1,opt"`
EnumType *int32 `protobuf:"varint,2,opt"` EnumType proto.Option[int32] `protobuf:"varint,2,opt"`
TextColor *BusiColor `protobuf:"bytes,3,opt"` TextColor *BusiColor `protobuf:"bytes,3,opt"`
EdgingColor *BusiColor `protobuf:"bytes,4,opt"` EdgingColor *BusiColor `protobuf:"bytes,4,opt"`
LabelAttr *int32 `protobuf:"varint,5,opt"` LabelAttr proto.Option[int32] `protobuf:"varint,5,opt"`
LabelType *int32 `protobuf:"varint,6,opt"` LabelType proto.Option[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
} }
type BusiLoginSig struct { type BusiLoginSig struct {
Type *int32 `protobuf:"varint,1,opt"` Type proto.Option[int32] `protobuf:"varint,1,opt"`
Sig []byte `protobuf:"bytes,2,opt"` Sig []byte `protobuf:"bytes,2,opt"`
Appid *int32 `protobuf:"varint,3,opt"` Appid proto.Option[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 BusiRichUi struct { type BusiRichUi struct {
Name *string `protobuf:"bytes,1,opt"` Name proto.Option[string] `protobuf:"bytes,1,opt"`
ServiceUrl *string `protobuf:"bytes,2,opt"` //repeated UiInfo uiList = 3; ServiceUrl proto.Option[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 ""
} }
type BusiUi struct { type BusiUi struct {
Url *string `protobuf:"bytes,1,opt"` Url proto.Option[string] `protobuf:"bytes,1,opt"`
Title *string `protobuf:"bytes,2,opt"` Title proto.Option[string] `protobuf:"bytes,2,opt"`
Content *string `protobuf:"bytes,3,opt"` Content proto.Option[string] `protobuf:"bytes,3,opt"`
JumpUrl *string `protobuf:"bytes,4,opt"` JumpUrl proto.Option[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 ""
} }
type BusiUinInfo struct { type BusiUinInfo struct {
Int64Longitude *int64 `protobuf:"varint,1,opt"` Int64Longitude proto.Option[int64] `protobuf:"varint,1,opt"`
Int64Latitude *int64 `protobuf:"varint,2,opt"` Int64Latitude proto.Option[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
} }
type BusiVisitorCountReq struct { type BusiVisitorCountReq struct {
Requireuin *int32 `protobuf:"varint,1,opt"` Requireuin proto.Option[int32] `protobuf:"varint,1,opt"`
Operuin *int32 `protobuf:"varint,2,opt"` Operuin proto.Option[int32] `protobuf:"varint,2,opt"`
Mod *int32 `protobuf:"varint,3,opt"` Mod proto.Option[int32] `protobuf:"varint,3,opt"`
ReportFlag *int32 `protobuf:"varint,4,opt"` ReportFlag proto.Option[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
} }
type BusiVisitorCountRsp struct { type BusiVisitorCountRsp struct {
Requireuin *int32 `protobuf:"varint,1,opt"` Requireuin proto.Option[int32] `protobuf:"varint,1,opt"`
TotalLike *int32 `protobuf:"varint,2,opt"` TotalLike proto.Option[int32] `protobuf:"varint,2,opt"`
TotalView *int32 `protobuf:"varint,3,opt"` TotalView proto.Option[int32] `protobuf:"varint,3,opt"`
HotValue *int32 `protobuf:"varint,4,opt"` HotValue proto.Option[int32] `protobuf:"varint,4,opt"`
RedValue *int32 `protobuf:"varint,5,opt"` RedValue proto.Option[int32] `protobuf:"varint,5,opt"`
HotDiff *int32 `protobuf:"varint,6,opt"` HotDiff proto.Option[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
} }

View File

@ -3,108 +3,42 @@
package profilecard package profilecard
import (
proto "github.com/RomiChan/protobuf/proto"
)
type GateCommTaskInfo struct { type GateCommTaskInfo struct {
Appid *int32 `protobuf:"varint,1,opt"` Appid proto.Option[int32] `protobuf:"varint,1,opt"`
TaskData []byte `protobuf:"bytes,2,opt"` TaskData []byte `protobuf:"bytes,2,opt"`
} }
func (x *GateCommTaskInfo) GetAppid() int32 {
if x != nil && x.Appid != nil {
return *x.Appid
}
return 0
}
type GateGetGiftListReq struct { type GateGetGiftListReq struct {
Uin *int32 `protobuf:"varint,1,opt"` Uin proto.Option[int32] `protobuf:"varint,1,opt"`
}
func (x *GateGetGiftListReq) GetUin() int32 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
} }
type GateGetGiftListRsp struct { type GateGetGiftListRsp struct {
GiftUrl []string `protobuf:"bytes,1,rep"` GiftUrl []string `protobuf:"bytes,1,rep"`
CustomUrl *string `protobuf:"bytes,2,opt"` CustomUrl proto.Option[string] `protobuf:"bytes,2,opt"`
Desc *string `protobuf:"bytes,3,opt"` Desc proto.Option[string] `protobuf:"bytes,3,opt"`
IsOn *bool `protobuf:"varint,4,opt"` IsOn proto.Option[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
} }
type GateGetVipCareReq struct { type GateGetVipCareReq struct {
Uin *int64 `protobuf:"varint,1,opt"` Uin proto.Option[int64] `protobuf:"varint,1,opt"`
}
func (x *GateGetVipCareReq) GetUin() int64 {
if x != nil && x.Uin != nil {
return *x.Uin
}
return 0
} }
type GateGetVipCareRsp struct { type GateGetVipCareRsp struct {
Buss *int32 `protobuf:"varint,1,opt"` Buss proto.Option[int32] `protobuf:"varint,1,opt"`
Notice *int32 `protobuf:"varint,2,opt"` Notice proto.Option[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
} }
type GateOidbFlagInfo struct { type GateOidbFlagInfo struct {
Fieled *int32 `protobuf:"varint,1,opt"` Fieled proto.Option[int32] `protobuf:"varint,1,opt"`
ByetsValue []byte `protobuf:"bytes,2,opt"` ByetsValue []byte `protobuf:"bytes,2,opt"`
} }
func (x *GateOidbFlagInfo) GetFieled() int32 {
if x != nil && x.Fieled != nil {
return *x.Fieled
}
return 0
}
type GatePrivilegeBaseInfoReq struct { type GatePrivilegeBaseInfoReq struct {
UReqUin *int64 `protobuf:"varint,1,opt"` UReqUin proto.Option[int64] `protobuf:"varint,1,opt"`
}
func (x *GatePrivilegeBaseInfoReq) GetUReqUin() int64 {
if x != nil && x.UReqUin != nil {
return *x.UReqUin
}
return 0
} }
type GatePrivilegeBaseInfoRsp struct { type GatePrivilegeBaseInfoRsp struct {
@ -112,72 +46,23 @@ type GatePrivilegeBaseInfoRsp struct {
JumpUrl []byte `protobuf:"bytes,2,opt"` JumpUrl []byte `protobuf:"bytes,2,opt"`
VOpenPriv []*GatePrivilegeInfo `protobuf:"bytes,3,rep"` VOpenPriv []*GatePrivilegeInfo `protobuf:"bytes,3,rep"`
VClosePriv []*GatePrivilegeInfo `protobuf:"bytes,4,rep"` VClosePriv []*GatePrivilegeInfo `protobuf:"bytes,4,rep"`
UIsGrayUsr *int32 `protobuf:"varint,5,opt"` UIsGrayUsr proto.Option[int32] `protobuf:"varint,5,opt"`
}
func (x *GatePrivilegeBaseInfoRsp) GetUIsGrayUsr() int32 {
if x != nil && x.UIsGrayUsr != nil {
return *x.UIsGrayUsr
}
return 0
} }
type GatePrivilegeInfo struct { type GatePrivilegeInfo struct {
IType *int32 `protobuf:"varint,1,opt"` IType proto.Option[int32] `protobuf:"varint,1,opt"`
ISort *int32 `protobuf:"varint,2,opt"` ISort proto.Option[int32] `protobuf:"varint,2,opt"`
IFeeType *int32 `protobuf:"varint,3,opt"` IFeeType proto.Option[int32] `protobuf:"varint,3,opt"`
ILevel *int32 `protobuf:"varint,4,opt"` ILevel proto.Option[int32] `protobuf:"varint,4,opt"`
IFlag *int32 `protobuf:"varint,5,opt"` IFlag proto.Option[int32] `protobuf:"varint,5,opt"`
IconUrl []byte `protobuf:"bytes,6,opt"` IconUrl []byte `protobuf:"bytes,6,opt"`
DeluxeIconUrl []byte `protobuf:"bytes,7,opt"` DeluxeIconUrl []byte `protobuf:"bytes,7,opt"`
JumpUrl []byte `protobuf:"bytes,8,opt"` JumpUrl []byte `protobuf:"bytes,8,opt"`
IIsBig *int32 `protobuf:"varint,9,opt"` IIsBig proto.Option[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
} }
type GateVaProfileGateReq struct { type GateVaProfileGateReq struct {
UCmd *int32 `protobuf:"varint,1,opt"` UCmd proto.Option[int32] `protobuf:"varint,1,opt"`
StPrivilegeReq *GatePrivilegeBaseInfoReq `protobuf:"bytes,2,opt"` StPrivilegeReq *GatePrivilegeBaseInfoReq `protobuf:"bytes,2,opt"`
StGiftReq *GateGetGiftListReq `protobuf:"bytes,3,opt"` StGiftReq *GateGetGiftListReq `protobuf:"bytes,3,opt"`
TaskItem []*GateCommTaskInfo `protobuf:"bytes,4,rep"` TaskItem []*GateCommTaskInfo `protobuf:"bytes,4,rep"`
@ -185,50 +70,15 @@ type GateVaProfileGateReq struct {
StVipCare *GateGetVipCareReq `protobuf:"bytes,6,opt"` 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 { type GateQidInfoItem struct {
Qid *string `protobuf:"bytes,1,opt"` Qid proto.Option[string] `protobuf:"bytes,1,opt"`
Url *string `protobuf:"bytes,2,opt"` Url proto.Option[string] `protobuf:"bytes,2,opt"`
Color *string `protobuf:"bytes,3,opt"` Color proto.Option[string] `protobuf:"bytes,3,opt"`
LogoUrl *string `protobuf:"bytes,4,opt"` LogoUrl proto.Option[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 ""
} }
type GateVaProfileGateRsp struct { type GateVaProfileGateRsp struct {
IRetCode *int32 `protobuf:"varint,1,opt"` IRetCode proto.Option[int32] `protobuf:"varint,1,opt"`
SRetMsg []byte `protobuf:"bytes,2,opt"` SRetMsg []byte `protobuf:"bytes,2,opt"`
StPrivilegeRsp *GatePrivilegeBaseInfoRsp `protobuf:"bytes,3,opt"` StPrivilegeRsp *GatePrivilegeBaseInfoRsp `protobuf:"bytes,3,opt"`
StGiftRsp *GateGetGiftListRsp `protobuf:"bytes,4,opt"` StGiftRsp *GateGetGiftListRsp `protobuf:"bytes,4,opt"`
@ -237,10 +87,3 @@ type GateVaProfileGateRsp struct {
StVipCare *GateGetVipCareRsp `protobuf:"bytes,7,opt"` StVipCare *GateGetVipCareRsp `protobuf:"bytes,7,opt"`
QidInfo *GateQidInfoItem `protobuf:"bytes,9,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 package qweb
import (
proto "github.com/RomiChan/protobuf/proto"
)
type QWebReq struct { type QWebReq struct {
Seq *int64 `protobuf:"varint,1,opt"` Seq proto.Option[int64] `protobuf:"varint,1,opt"`
Qua *string `protobuf:"bytes,2,opt"` Qua proto.Option[string] `protobuf:"bytes,2,opt"`
DeviceInfo *string `protobuf:"bytes,3,opt"` DeviceInfo proto.Option[string] `protobuf:"bytes,3,opt"`
BusiBuff []byte `protobuf:"bytes,4,opt"` BusiBuff []byte `protobuf:"bytes,4,opt"`
TraceId *string `protobuf:"bytes,5,opt"` TraceId proto.Option[string] `protobuf:"bytes,5,opt"`
Module *string `protobuf:"bytes,6,opt"` Module proto.Option[string] `protobuf:"bytes,6,opt"`
Cmdname *string `protobuf:"bytes,7,opt"` Cmdname proto.Option[string] `protobuf:"bytes,7,opt"`
LoginSig *StAuthInfo `protobuf:"bytes,8,opt"` LoginSig *StAuthInfo `protobuf:"bytes,8,opt"`
Crypto *StEncryption `protobuf:"bytes,9,opt"` Crypto *StEncryption `protobuf:"bytes,9,opt"`
Extinfo []*COMMEntry `protobuf:"bytes,10,rep"` Extinfo []*COMMEntry `protobuf:"bytes,10,rep"`
ContentType *uint32 `protobuf:"varint,11,opt"` ContentType proto.Option[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
} }
type QWebRsp struct { type QWebRsp struct {
Seq *int64 `protobuf:"varint,1,opt"` Seq proto.Option[int64] `protobuf:"varint,1,opt"`
RetCode *int64 `protobuf:"varint,2,opt"` RetCode proto.Option[int64] `protobuf:"varint,2,opt"`
ErrMsg *string `protobuf:"bytes,3,opt"` ErrMsg proto.Option[string] `protobuf:"bytes,3,opt"`
BusiBuff []byte `protobuf:"bytes,4,opt"` BusiBuff []byte `protobuf:"bytes,4,opt"`
Traceid *string `protobuf:"bytes,5,opt"` Traceid proto.Option[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 ""
} }
type StAuthInfo struct { type StAuthInfo struct {
Uin *string `protobuf:"bytes,1,opt"` Uin proto.Option[string] `protobuf:"bytes,1,opt"`
Sig []byte `protobuf:"bytes,2,opt"` Sig []byte `protobuf:"bytes,2,opt"`
Platform *string `protobuf:"bytes,3,opt"` Platform proto.Option[string] `protobuf:"bytes,3,opt"`
Type *uint32 `protobuf:"varint,4,opt"` Type proto.Option[uint32] `protobuf:"varint,4,opt"`
Appid *string `protobuf:"bytes,5,opt"` Appid proto.Option[string] `protobuf:"bytes,5,opt"`
Openid *string `protobuf:"bytes,6,opt"` Openid proto.Option[string] `protobuf:"bytes,6,opt"`
Sessionkey []byte `protobuf:"bytes,7,opt"` Sessionkey []byte `protobuf:"bytes,7,opt"`
Extinfo []*COMMEntry `protobuf:"bytes,8,rep"` 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 ""
}
type StEncryption struct { type StEncryption struct {
Method *uint32 `protobuf:"varint,1,opt"` Method proto.Option[uint32] `protobuf:"varint,1,opt"`
Iv *string `protobuf:"bytes,2,opt"` Iv proto.Option[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 ""
} }
type COMMEntry struct { type COMMEntry struct {
Key *string `protobuf:"bytes,1,opt"` Key proto.Option[string] `protobuf:"bytes,1,opt"`
Value *string `protobuf:"bytes,2,opt"` Value proto.Option[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 ""
} }

View File

@ -3,47 +3,16 @@
package web package web
import (
proto "github.com/RomiChan/protobuf/proto"
)
type STServiceMonitItem struct { type STServiceMonitItem struct {
Cmd *string `protobuf:"bytes,1,opt"` Cmd proto.Option[string] `protobuf:"bytes,1,opt"`
Url *string `protobuf:"bytes,2,opt"` Url proto.Option[string] `protobuf:"bytes,2,opt"`
Errcode *int32 `protobuf:"varint,3,opt"` Errcode proto.Option[int32] `protobuf:"varint,3,opt"`
Cost *uint32 `protobuf:"varint,4,opt"` Cost proto.Option[uint32] `protobuf:"varint,4,opt"`
Src *uint32 `protobuf:"varint,5,opt"` Src proto.Option[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
} }
type STServiceMonitReq struct { type STServiceMonitReq struct {
@ -51,91 +20,21 @@ type STServiceMonitReq struct {
} }
type WebSsoControlData struct { type WebSsoControlData struct {
Frequency *uint32 `protobuf:"varint,1,opt"` Frequency proto.Option[uint32] `protobuf:"varint,1,opt"`
PackageSize *uint32 `protobuf:"varint,2,opt"` PackageSize proto.Option[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
} }
type WebSsoRequestBody struct { type WebSsoRequestBody struct {
Version *uint32 `protobuf:"varint,1,opt"` Version proto.Option[uint32] `protobuf:"varint,1,opt"`
Type *uint32 `protobuf:"varint,2,opt"` Type proto.Option[uint32] `protobuf:"varint,2,opt"`
Data *string `protobuf:"bytes,3,opt"` Data proto.Option[string] `protobuf:"bytes,3,opt"`
WebData *string `protobuf:"bytes,4,opt"` WebData proto.Option[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 ""
} }
type WebSsoResponseBody struct { type WebSsoResponseBody struct {
Version *uint32 `protobuf:"varint,1,opt"` Version proto.Option[uint32] `protobuf:"varint,1,opt"`
Type *uint32 `protobuf:"varint,2,opt"` Type proto.Option[uint32] `protobuf:"varint,2,opt"`
Ret *uint32 `protobuf:"varint,3,opt"` Ret proto.Option[uint32] `protobuf:"varint,3,opt"`
Data *string `protobuf:"bytes,4,opt"` Data proto.Option[string] `protobuf:"bytes,4,opt"`
ControlData *WebSsoControlData `protobuf:"bytes,5,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 ""
}

View File

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

View File

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

View File

@ -56,7 +56,7 @@ func (c *QQClient) getQiDianAddressDetailList() ([]*FriendInfo, error) {
continue continue
} }
ret = append(ret, &FriendInfo{ ret = append(ret, &FriendInfo{
Uin: int64(detail.Qq[0].GetAccount()), Uin: int64(detail.Qq[0].Account.Unwrap()),
Nickname: string(detail.Name), Nickname: string(detail.Name),
}) })
} }
@ -73,7 +73,7 @@ func (c *QQClient) buildLoginExtraPacket() (uint16, []byte) {
}, },
SubcmdLoginProcessCompleteReqBody: &cmd0x3f6.QDUserLoginProcessCompleteReqBody{ SubcmdLoginProcessCompleteReqBody: &cmd0x3f6.QDUserLoginProcessCompleteReqBody{
Kfext: proto.Uint64(uint64(c.Uin)), 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))), Buildno: proto.Uint32(uint32(utils.ConvertSubVersionToInt(c.version.SortVersionName))),
TerminalType: proto.Uint32(2), TerminalType: proto.Uint32(2),
Status: proto.Uint32(10), Status: proto.Uint32(10),
@ -81,8 +81,8 @@ func (c *QQClient) buildLoginExtraPacket() (uint16, []byte) {
HardwareInfo: proto.String(string(c.deviceInfo.Model)), HardwareInfo: proto.String(string(c.deviceInfo.Model)),
SoftwareInfo: proto.String(string(c.deviceInfo.Version.Release)), SoftwareInfo: proto.String(string(c.deviceInfo.Version.Release)),
Guid: c.deviceInfo.Guid, Guid: c.deviceInfo.Guid,
AppName: &c.version.ApkId, AppName: proto.Some(c.version.ApkId),
SubAppId: &c.version.AppId, SubAppId: proto.Some(c.version.AppId),
}, },
} }
payload, _ := proto.Marshal(req) payload, _ := proto.Marshal(req)
@ -114,7 +114,7 @@ func (c *QQClient) bigDataRequest(subCmd uint32, req proto.Message) ([]byte, err
HttpconnHead: &msg.HttpConnHead{ HttpconnHead: &msg.HttpConnHead{
Uin: proto.Uint64(uint64(c.Uin)), Uin: proto.Uint64(uint64(c.Uin)),
Command: proto.Uint32(1791), Command: proto.Uint32(1791),
SubCommand: &subCmd, SubCommand: proto.Some(subCmd),
Seq: proto.Uint32(uint32(c.nextHighwayApplySeq())), Seq: proto.Uint32(uint32(c.nextHighwayApplySeq())),
Version: proto.Uint32(500), // todo: short version convert Version: proto.Uint32(500), // todo: short version convert
Flag: proto.Uint32(1), Flag: proto.Uint32(1),
@ -164,9 +164,9 @@ func decodeLoginExtraResponse(c *QQClient, _ *network.IncomingPacketInfo, payloa
return nil, errors.New("login process resp is nil") return nil, errors.New("login process resp is nil")
} }
c.QiDian = &QiDianAccountInfo{ c.QiDian = &QiDianAccountInfo{
MasterUin: int64(rsp.SubcmdLoginProcessCompleteRspBody.GetCorpuin()), MasterUin: int64(rsp.SubcmdLoginProcessCompleteRspBody.Corpuin.Unwrap()),
ExtName: rsp.SubcmdLoginProcessCompleteRspBody.GetExtuinName(), ExtName: rsp.SubcmdLoginProcessCompleteRspBody.ExtuinName.Unwrap(),
CreateTime: int64(rsp.SubcmdLoginProcessCompleteRspBody.GetOpenAccountTime()), CreateTime: int64(rsp.SubcmdLoginProcessCompleteRspBody.OpenAccountTime.Unwrap()),
} }
return nil, nil return nil, nil
} }
@ -184,9 +184,9 @@ func decodeConnKeyResponse(c *QQClient, _ *network.IncomingPacketInfo, payload [
SessionKey: rsp.RspBody.SessionKey, SessionKey: rsp.RspBody.SessionKey,
} }
for _, srv := range rsp.RspBody.Addrs { for _, srv := range rsp.RspBody.Addrs {
if srv.GetServiceType() == 1 { if srv.ServiceType.Unwrap() == 1 {
for _, addr := range srv.Addrs { 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 { func (c *QQClient) RecallGroupMessage(groupCode int64, msgID, msgInternalId int32) error {
if m, _ := c.GetGroupMessages(groupCode, int64(msgID), int64(msgID)); len(m) > 0 { if m, _ := c.GetGroupMessages(groupCode, int64(msgID), int64(msgID)); len(m) > 0 {
content := m[0].OriginalObject.Content content := m[0].OriginalObject.Content
if content.GetPkgNum() > 1 { if content.PkgNum.Unwrap() > 1 {
if m, err := c.GetGroupMessages(groupCode, int64(msgID-content.GetPkgIndex()-1), int64(msgID+(content.GetPkgNum()-content.GetPkgIndex()+1))); err == nil { 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 { if flag, _ := c.internalGroupRecall(groupCode, msgInternalId, m); flag {
return nil return nil
} }
@ -49,11 +49,11 @@ func (c *QQClient) buildGroupRecallPacket(groupCode int64, msgSeq, msgRan int32)
GroupWithDraw: []*msg.GroupMsgWithDrawReq{ GroupWithDraw: []*msg.GroupMsgWithDrawReq{
{ {
SubCmd: proto.Int32(1), SubCmd: proto.Int32(1),
GroupCode: &groupCode, GroupCode: proto.Some(groupCode),
MsgList: []*msg.GroupMsgInfo{ MsgList: []*msg.GroupMsgInfo{
{ {
MsgSeq: &msgSeq, MsgSeq: proto.Some(msgSeq),
MsgRandom: &msgRan, MsgRandom: proto.Some(msgRan),
MsgType: proto.Int32(0), MsgType: proto.Int32(0),
}, },
}, },
@ -70,15 +70,15 @@ func (c *QQClient) buildPrivateRecallPacket(uin, ts int64, msgSeq, random int32)
{ {
MsgInfo: []*msg.C2CMsgInfo{ MsgInfo: []*msg.C2CMsgInfo{
{ {
FromUin: &c.Uin, FromUin: proto.Some(c.Uin),
ToUin: &uin, ToUin: proto.Some(uin),
MsgTime: &ts, MsgTime: proto.Some(ts),
MsgUid: proto.Int64(0x0100_0000_0000_0000 | (int64(random) & 0xFFFFFFFF)), MsgUid: proto.Int64(0x0100_0000_0000_0000 | (int64(random) & 0xFFFFFFFF)),
MsgSeq: &msgSeq, MsgSeq: proto.Some(msgSeq),
MsgRandom: &random, MsgRandom: proto.Some(random),
RoutingHead: &msg.RoutingHead{ RoutingHead: &msg.RoutingHead{
C2C: &msg.C2C{ 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") return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
} }
if len(rsp.C2CWithDraw) > 0 { if len(rsp.C2CWithDraw) > 0 {
if rsp.C2CWithDraw[0].GetErrMsg() != "" && rsp.C2CWithDraw[0].GetErrMsg() != "Success" { if rsp.C2CWithDraw[0].ErrMsg.Unwrap() != "" && rsp.C2CWithDraw[0].ErrMsg.Unwrap() != "Success" {
return nil, errors.Errorf("recall error: %v msg: %v", rsp.C2CWithDraw[0].GetResult(), rsp.C2CWithDraw[0].GetErrMsg()) 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 len(rsp.GroupWithDraw) > 0 {
if rsp.GroupWithDraw[0].GetErrMsg() != "" && rsp.GroupWithDraw[0].GetErrMsg() != "Success" { if rsp.GroupWithDraw[0].ErrMsg.Unwrap() != "" && rsp.GroupWithDraw[0].ErrMsg.Unwrap() != "Success" {
return nil, errors.Errorf("recall error: %v msg: %v", rsp.GroupWithDraw[0].GetResult(), rsp.GroupWithDraw[0].GetErrMsg()) return nil, errors.Errorf("recall error: %v msg: %v", rsp.GroupWithDraw[0].Result.Unwrap(), rsp.GroupWithDraw[0].ErrMsg.Unwrap())
} }
} }
return nil, nil return nil, nil

View File

@ -37,7 +37,7 @@ func (c *QQClient) buildUrlCheckRequest(url string) (uint16, []byte) {
Type: proto.Uint32(2), Type: proto.Uint32(2),
SendUin: proto.Uint64(uint64(c.Uin)), SendUin: proto.Uint64(uint64(c.Uin)),
ReqType: proto.String("webview"), ReqType: proto.String("webview"),
OriginalUrl: &url, OriginalUrl: proto.Some(url),
IsArk: proto.Bool(false), IsArk: proto.Bool(false),
IsFinish: proto.Bool(false), IsFinish: proto.Bool(false),
SrcUrls: []string{url}, SrcUrls: []string{url},
@ -57,10 +57,10 @@ func decodeUrlCheckResponse(_ *QQClient, _ *network.IncomingPacketInfo, payload
if rsp.CheckUrlRsp == nil || len(rsp.CheckUrlRsp.Results) == 0 { if rsp.CheckUrlRsp == nil || len(rsp.CheckUrlRsp.Results) == 0 {
return nil, errors.New("response is empty") return nil, errors.New("response is empty")
} }
if rsp.CheckUrlRsp.Results[0].JumpUrl != nil { if rsp.CheckUrlRsp.Results[0].JumpUrl.IsSome() {
return Danger, nil return Danger, nil
} }
if rsp.CheckUrlRsp.Results[0].GetUmrtype() == 2 { if rsp.CheckUrlRsp.Results[0].Umrtype.Unwrap() == 2 {
return Safe, nil return Safe, nil
} }
return Unknown, 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 // RegPrxySvc.getOffMsg
func (c *QQClient) buildGetOfflineMsgRequestPacket() (uint16, []byte) { func (c *QQClient) buildGetOfflineMsgRequestPacket() (uint16, []byte) {
t := c.stat.LastMessageTime.Load()
if t == 0 {
t = 1
}
regReq := &jce.SvcReqRegisterNew{ regReq := &jce.SvcReqRegisterNew{
RequestOptional: 0x101C2 | 32, RequestOptional: 0x101C2 | 32,
C2CMsg: &jce.SvcReqGetMsgV2{ C2CMsg: &jce.SvcReqGetMsgV2{
Uin: c.Uin, Uin: c.Uin,
DateTime: func() int32 { DateTime: int32(t),
t := c.stat.LastMessageTime.Load()
if t == 0 {
return 1
}
return int32(t)
}(),
RecivePic: 1, RecivePic: 1,
Ability: 15, Ability: 15,
Channel: 4, Channel: 4,
@ -171,7 +169,7 @@ func (c *QQClient) buildGetOfflineMsgRequestPacket() (uint16, []byte) {
} }
flag := msg.SyncFlag_START flag := msg.SyncFlag_START
msgReq, _ := proto.Marshal(&msg.GetMessageRequest{ msgReq, _ := proto.Marshal(&msg.GetMessageRequest{
SyncFlag: &flag, SyncFlag: proto.Some(int32(flag)),
SyncCookie: c.sig.SyncCookie, SyncCookie: c.sig.SyncCookie,
RambleFlag: proto.Int32(0), RambleFlag: proto.Int32(0),
ContextFlag: proto.Int32(1), 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{ regReq := &jce.SvcReqRegisterNew{
RequestOptional: 128 | 64 | 256 | 2 | 8192 | 16384 | 65536, RequestOptional: 128 | 64 | 256 | 2 | 8192 | 16384 | 65536,
DisGroupMsgFilter: 1, DisGroupMsgFilter: 1,
C2CMsg: &jce.SvcReqGetMsgV2{ C2CMsg: &jce.SvcReqGetMsgV2{
Uin: c.Uin, Uin: c.Uin,
DateTime: func() int32 { DateTime: int32(t),
t := c.stat.LastMessageTime.Load()
if t == 0 {
return 1
}
return int32(t)
}(),
RecivePic: 1, RecivePic: 1,
Ability: 15, Ability: 15,
Channel: 4, Channel: 4,
@ -236,7 +232,7 @@ func (c *QQClient) buildSyncMsgRequestPacket() (uint16, []byte) {
} }
flag := msg.SyncFlag_START flag := msg.SyncFlag_START
msgReq := &msg.GetMessageRequest{ msgReq := &msg.GetMessageRequest{
SyncFlag: &flag, SyncFlag: proto.Some(int32(flag)),
SyncCookie: c.sig.SyncCookie, SyncCookie: c.sig.SyncCookie,
RambleFlag: proto.Int32(0), RambleFlag: proto.Int32(0),
ContextFlag: proto.Int32(1), ContextFlag: proto.Int32(1),
@ -318,34 +314,30 @@ func decodePushParamPacket(c *QQClient, _ *network.IncomingPacketInfo, payload [
allowedClients, _ := c.GetAllowedClients() allowedClients, _ := c.GetAllowedClients()
c.OnlineClients = []*OtherClientInfo{} c.OnlineClients = []*OtherClientInfo{}
for _, i := range rsp.OnlineInfos { for _, i := range rsp.OnlineInfos {
c.OnlineClients = append(c.OnlineClients, &OtherClientInfo{ name, kind := i.SubPlatform, i.SubPlatform
AppId: int64(i.InstanceId),
DeviceName: func() string {
for _, ac := range allowedClients { for _, ac := range allowedClients {
if ac.AppId == int64(i.InstanceId) { if ac.AppId == int64(i.InstanceId) {
return ac.DeviceName name = ac.DeviceName
} }
} }
return i.SubPlatform
}(),
DeviceKind: func() string {
switch i.UClientType { switch i.UClientType {
case 65793: case 65793:
return "Windows" kind = "Windows"
case 65805, 68104: case 65805, 68104:
return "aPad" kind = "aPad"
case 66818, 66831, 81154: case 66818, 66831, 81154:
return "Mac" kind = "Mac"
case 68361, 72194: case 68361, 72194:
return "iPad" kind = "iPad"
case 75023, 78082, 78096: case 75023, 78082, 78096:
return "Watch" kind = "Watch"
case 77313: case 77313:
return "Windows TIM" kind = "Windows TIM"
default:
return i.SubPlatform
} }
}(), c.OnlineClients = append(c.OnlineClients, &OtherClientInfo{
AppId: int64(i.InstanceId),
DeviceName: name,
DeviceKind: kind,
}) })
} }
return nil, nil return nil, nil
@ -358,11 +350,11 @@ func decodeMsgSyncResponse(c *QQClient, info *network.IncomingPacketInfo, payloa
return nil, err return nil, err
} }
ret := &sessionSyncEvent{ ret := &sessionSyncEvent{
IsEnd: (rsp.GetFlag() & 2) == 2, IsEnd: (rsp.Flag.Unwrap() & 2) == 2,
GroupNum: -1, GroupNum: -1,
} }
if rsp.Info != nil { if rsp.Info != nil {
ret.GroupNum = int32(rsp.Info.GetGroupNum()) ret.GroupNum = int32(rsp.Info.GroupNum.Unwrap())
} }
if len(rsp.GroupMsg) > 0 { if len(rsp.GroupMsg) > 0 {
for _, gm := range rsp.GroupMsg { for _, gm := range rsp.GroupMsg {
@ -372,7 +364,7 @@ func decodeMsgSyncResponse(c *QQClient, info *network.IncomingPacketInfo, payloa
} }
var latest []*message.GroupMessage var latest []*message.GroupMessage
for _, m := range gmRsp.Msg { for _, m := range gmRsp.Msg {
if m.Head.GetFromUin() != 0 { if m.Head.FromUin.Unwrap() != 0 {
pm := c.parseGroupMessage(m) pm := c.parseGroupMessage(m)
if pm != nil { if pm != nil {
latest = append(latest, pm) latest = append(latest, pm)
@ -380,8 +372,8 @@ func decodeMsgSyncResponse(c *QQClient, info *network.IncomingPacketInfo, payloa
} }
} }
ret.GroupSessions = append(ret.GroupSessions, &GroupSessionInfo{ ret.GroupSessions = append(ret.GroupSessions, &GroupSessionInfo{
GroupCode: int64(gmRsp.GetGroupCode()), GroupCode: int64(gmRsp.GroupCode.Unwrap()),
UnreadCount: uint32(gmRsp.GetReturnEndSeq() - gm.GetMemberSeq()), UnreadCount: uint32(gmRsp.ReturnEndSeq.Unwrap() - gm.MemberSeq.Unwrap()),
LatestMessages: latest, LatestMessages: latest,
}) })
} }
@ -401,7 +393,7 @@ func decodeC2CSyncPacket(c *QQClient, info *network.IncomingPacketInfo, payload
if err := proto.Unmarshal(payload, &m); err != nil { if err := proto.Unmarshal(payload, &m); err != nil {
return nil, err 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) c.commMsgProcessor(m.Msg, info)
return nil, nil return nil, nil
} }
@ -412,7 +404,7 @@ func decodeMsgReadedResponse(_ *QQClient, _ *network.IncomingPacketInfo, payload
return nil, errors.Wrap(err, "failed to unmarshal protobuf message") return nil, errors.Wrap(err, "failed to unmarshal protobuf message")
} }
if len(rsp.GrpReadReport) > 0 { if len(rsp.GrpReadReport) > 0 {
return rsp.GrpReadReport[0].GetResult() == 0, nil return rsp.GrpReadReport[0].Result.Unwrap() == 0, nil
} }
return nil, 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 cmd := "MQUpdateSvc_" + sub + ".web." + webCmd
req, _ := proto.Marshal(&web.WebSsoRequestBody{ req, _ := proto.Marshal(&web.WebSsoRequestBody{
Type: proto.Uint32(0), Type: proto.Uint32(0),
Data: &data, Data: proto.Some(data),
}) })
rspData, err := c.sendAndWaitDynamic(c.uniPacket(cmd, req)) rspData, err := c.sendAndWaitDynamic(c.uniPacket(cmd, req))
if err != nil { 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 { if err = proto.Unmarshal(rspData, rsp); err != nil {
return "", errors.Wrap(err, "unmarshal response error") 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 go 1.18
require ( require (
github.com/RomiChan/protobuf v0.0.0-20220318113238-d8a99598f896 github.com/RomiChan/protobuf v0.1.1-0.20220602121309-9e3b8cbefd7a
github.com/RomiChan/syncx v0.0.0-20220320130821-c88644afda9c github.com/RomiChan/syncx v0.0.0-20220404072119-d7ea0ae15a4c
github.com/fumiama/imgsz v0.0.2 github.com/fumiama/imgsz v0.0.2
github.com/pierrec/lz4/v4 v4.1.11 github.com/pierrec/lz4/v4 v4.1.11
github.com/pkg/errors v0.9.1 github.com/pkg/errors v0.9.1
@ -19,5 +19,6 @@ require (
github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.0 // 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 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.1.1-0.20220602121309-9e3b8cbefd7a h1:WIfEWYj82oEuPtm5pqlyQmCJCoiw00C6ugZFqHA0cC8=
github.com/RomiChan/protobuf v0.0.0-20220318113238-d8a99598f896/go.mod h1:CKKOWC7mBxd36zxsCB1V8DTrwlTNRQvkSVbYqyUiGEE= github.com/RomiChan/protobuf v0.1.1-0.20220602121309-9e3b8cbefd7a/go.mod h1:2Ie+hdBFQpQFDHfeklgxoFmQRCE7O+KwFpISeXq7OwA=
github.com/RomiChan/syncx v0.0.0-20220320130821-c88644afda9c h1:zHWyqx7A71A/+mlzthPVcVrNGuTPyTpCW3meUPtaULU= github.com/RomiChan/syncx v0.0.0-20220404072119-d7ea0ae15a4c h1:cNPOdTNiVwxLpROLjXCgbIPvdkE+BwvxDvgmdYmWx6Q=
github.com/RomiChan/syncx v0.0.0-20220320130821-c88644afda9c/go.mod h1:KqZzu7slNKROh3TSYEH/IUMG6f4M+1qubZ5e52QypsE= 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.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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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 h1:fAkC0FnIscdKOXwAxlyw3EUba5NzxZdSxGaq3Uyfxak=
github.com/fumiama/imgsz v0.0.2/go.mod h1:dR71mI3I2O5u6+PCpd47M9TZptzP+39tRBcbdIkoqM4= 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 h1:LVs17FAZJFOjgmJXl9Tf13WfLUvZq7/RjfEJrnwZ9OE=
github.com/pierrec/lz4/v4 v4.1.11/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.11/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= 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= 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 h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 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= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=

View File

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

View File

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

View File

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

View File

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

View File

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