From d86fdab1b3bf579cb22dca1b20f6ec272a579f6a Mon Sep 17 00:00:00 2001 From: danbai Date: Fri, 28 Jul 2023 13:49:26 +0800 Subject: [PATCH] go client update --- clients/go/go.mod | 12 +- clients/go/go.sum | 83 ----- clients/go/proto/wcf.proto | 31 +- clients/go/wcf/wcf.go | 85 ++++- clients/go/wcf/wcf.pb.go | 719 ++++++++++++++++++++----------------- clients/go/wcf/wcf_test.go | 73 +++- 6 files changed, 552 insertions(+), 451 deletions(-) delete mode 100644 clients/go/go.sum diff --git a/clients/go/go.mod b/clients/go/go.mod index 4533d27..b5c0940 100644 --- a/clients/go/go.mod +++ b/clients/go/go.mod @@ -3,16 +3,16 @@ module github.com/danbai225/WeChatFerry-go go 1.20 require ( - github.com/danbai225/go-logs v0.1.9 + github.com/danbai225/go-logs v0.2.2 go.nanomsg.org/mangos/v3 v3.4.2 - google.golang.org/protobuf v1.30.0 + google.golang.org/protobuf v1.31.0 ) require ( github.com/Microsoft/go-winio v0.5.2 // indirect - github.com/goccy/go-json v0.9.11 // indirect + github.com/goccy/go-json v0.10.2 // indirect github.com/gorilla/websocket v1.5.0 // indirect - github.com/kpango/fastime v1.1.4 // indirect - github.com/kpango/glg v1.6.13 // indirect - golang.org/x/sys v0.7.0 // indirect + github.com/kpango/fastime v1.1.9 // indirect + github.com/kpango/glg v1.6.15 // indirect + golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect ) diff --git a/clients/go/go.sum b/clients/go/go.sum deleted file mode 100644 index de933b6..0000000 --- a/clients/go/go.sum +++ /dev/null @@ -1,83 +0,0 @@ -github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA= -github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/danbai225/go-logs v0.1.9 h1:Q/CbLM2YXFCSSfS2TFJ+OoZGVakTuZNUQ8uBIrVWvng= -github.com/danbai225/go-logs v0.1.9/go.mod h1:giaa3Y1vBw9zODSzI+ad3NVhXAmU77cewMuBwgB0D7A= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/gdamore/optopia v0.2.0/go.mod h1:YKYEwo5C1Pa617H7NlPcmQXl+vG6YnSSNB44n8dNL0Q= -github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= -github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/kpango/fastime v1.1.4 h1:pus9JgJBg/8Jie3ozayA4yNIV67BUPhbq0wMZY3CtYo= -github.com/kpango/fastime v1.1.4/go.mod h1:tTNDbIo5qL6D7g5vh2YbkyUbOVP2kD/we3rSjN22PMY= -github.com/kpango/glg v1.6.13 h1:QMhxOm/Oo1k8qraMtH4SQOYIgB/SI2RW2Hvrn1kgAZw= -github.com/kpango/glg v1.6.13/go.mod h1:fwP/c6NJTXe0vd9L3He6myDnO33lFVfgQGtGmlMnyws= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.nanomsg.org/mangos/v3 v3.4.2 h1:gHlopxjWvJcVCcUilQIsRQk9jdj6/HB7wrTiUN8Ki7Q= -go.nanomsg.org/mangos/v3 v3.4.2/go.mod h1:8+hjBMQub6HvXmuGvIq6hf19uxGQIjCofmc62lbedLA= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.23.0 h1:OjGQ5KQDEUawVHxNwQgPpiypGHOxo2mNZsOqTak4fFY= -go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/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.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/clients/go/proto/wcf.proto b/clients/go/proto/wcf.proto index 6b23588..04e6cd4 100644 --- a/clients/go/proto/wcf.proto +++ b/clients/go/proto/wcf.proto @@ -1,8 +1,8 @@ syntax = "proto3"; package wcf; -option go_package = "./wcf"; option java_package = "com.iamteer"; +option go_package="../wcf"; enum Functions { FUNC_RESERVED = 0x00; @@ -22,9 +22,11 @@ enum Functions { FUNC_DISABLE_RECV_TXT = 0x40; FUNC_EXEC_DB_QUERY = 0x50; FUNC_ACCEPT_FRIEND = 0x51; - FUNC_ADD_ROOM_MEMBERS = 0x52; - FUNC_RECV_TRANSFER = 0x53; + FUNC_RECV_TRANSFER = 0x52; + FUNC_REFRESH_PYQ = 0x53; FUNC_DECRYPT_IMAGE = 0x60; + FUNC_ADD_ROOM_MEMBERS = 0x70; + FUNC_DEL_ROOM_MEMBERS = 0x71; } message Request @@ -42,6 +44,8 @@ message Request XmlMsg xml = 9; DecPath dec = 10; Transfer tf = 11; + uint64 ui64 = 12; // 64 位整数,通用 + bool flag = 13; } } @@ -68,14 +72,16 @@ message WxMsg { bool is_self = 1; // 是否自己发送的 bool is_group = 2; // 是否群消息 - int32 type = 3; // 消息类型 - string id = 4; // 消息 id - string xml = 5; // 消息 xml - string sender = 6; // 消息发送者 - string roomid = 7; // 群 id(如果是群消息的话) - string content = 8; // 消息内容 - string thumb = 9; // 缩略图 - string extra = 10; // 附加内容 + uint64 id = 3; // 消息 id + uint32 type = 4; // 消息类型 + uint32 ts = 5; // 消息类型 + string roomid = 6; // 群 id(如果是群消息的话) + string content = 7; // 消息内容 + string sender = 8; // 消息发送者 + string sign = 9; // Sign + string thumb = 10; // 缩略图 + string extra = 11; // 附加内容 + string xml = 12; // 消息 xml } message TextMsg @@ -168,5 +174,6 @@ message DecPath message Transfer { string wxid = 1; // 转账人 - string tid = 2; // 转账id transferid + string tfid = 2; // 转账id transferid + string taid = 3; // Transaction id } diff --git a/clients/go/wcf/wcf.go b/clients/go/wcf/wcf.go index ace1230..82719de 100644 --- a/clients/go/wcf/wcf.go +++ b/clients/go/wcf/wcf.go @@ -41,6 +41,10 @@ func (c *Client) Recv() (*Response, error) { err = proto.Unmarshal(recv, msg) return msg, err } +func (c *Client) Close() error { + c.DisableRecvTxt() + return c.socket.Close() +} func (c *Client) IsLogin() bool { err := c.send(genFunReq(Functions_FUNC_IS_LOGIN).build()) if err != nil { @@ -177,11 +181,39 @@ func (c *Client) AddChatroomMembers(roomID, wxIDs string) int32 { return recv.GetStatus() } -// ReceiveTransfer 接收转账 -func (c *Client) ReceiveTransfer(transferId, wxID string) int32 { +/* + ReceiveTransfer 接收转账 + string wxid = 1; // 转账人 + string tfid = 2; // 转账id transferid + string taid = 3; // Transaction id +*/ + +func (c *Client) ReceiveTransfer(wxid, tfid, taid string) int32 { req := genFunReq(Functions_FUNC_RECV_TRANSFER) q := Request_Tf{ - Tf: &Transfer{Tid: transferId, Wxid: wxID}, + Tf: &Transfer{ + Wxid: wxid, + Tfid: tfid, + Taid: taid, + }, + } + req.Msg = &q + err := c.send(req.build()) + if err != nil { + logs.Err(err) + } + recv, err := c.Recv() + if err != nil { + logs.Err(err) + } + return recv.GetStatus() +} + +// RefreshPYQ 刷新朋友圈 +func (c *Client) RefreshPYQ() int32 { + req := genFunReq(Functions_FUNC_REFRESH_PYQ) + q := Request_Ui64{ + Ui64: 0, } req.Msg = &q err := c.send(req.build()) @@ -230,6 +262,23 @@ func (c *Client) AddChatRoomMembers(roomId string, wxIds []string) int32 { } return recv.GetStatus() } +func (c *Client) DelChatRoomMembers(roomId string, wxIds []string) int32 { + req := genFunReq(Functions_FUNC_DEL_ROOM_MEMBERS) + q := Request_M{ + M: &AddMembers{Roomid: roomId, + Wxids: strings.Join(wxIds, ",")}, + } + req.Msg = &q + err := c.send(req.build()) + if err != nil { + logs.Err(err) + } + recv, err := c.Recv() + if err != nil { + logs.Err(err) + } + return recv.GetStatus() +} func (c *Client) GetUserInfo() *UserInfo { err := c.send(genFunReq(Functions_FUNC_GET_USER_INFO).build()) if err != nil { @@ -270,7 +319,7 @@ func (c *Client) SendTxt(msg string, receiver string, ates []string) int32 { /* SendIMG -path 绝对路径 +path 绝对路径InBot */ func (c *Client) SendIMG(path string, receiver string) int32 { req := genFunReq(Functions_FUNC_SEND_IMG) @@ -293,7 +342,7 @@ func (c *Client) SendIMG(path string, receiver string) int32 { /* SendFile -path 绝对路径 +path 绝对路径InBot */ func (c *Client) SendFile(path string, receiver string) int32 { req := genFunReq(Functions_FUNC_SEND_FILE) @@ -333,8 +382,30 @@ func (c *Client) SendXml(path, content, receiver string, Type int32) int32 { } return recv.GetStatus() } +func (c *Client) SendEmotion(path, receiver string) int32 { + req := genFunReq(Functions_FUNC_SEND_EMOTION) + req.Msg = &Request_File{ + File: &PathMsg{ + Path: path, + Receiver: receiver, + }, + } + err := c.send(req.build()) + if err != nil { + logs.Err(err) + } + recv, err := c.Recv() + if err != nil { + logs.Err(err) + } + return recv.GetStatus() +} func (c *Client) EnableRecvTxt() int32 { - err := c.send(genFunReq(Functions_FUNC_ENABLE_RECV_TXT).build()) + req := genFunReq(Functions_FUNC_ENABLE_RECV_TXT) + req.Msg = &Request_Flag{ + Flag: true, + } + err := c.send(req.build()) if err != nil { logs.Err(err) } @@ -365,10 +436,10 @@ func (c *Client) OnMSG(f func(msg *WxMsg)) error { _ = socket.SetOption(mangos.OptionRecvDeadline, 2000) _ = socket.SetOption(mangos.OptionSendDeadline, 2000) err = socket.Dial(addPort(c.add)) - if err != nil { return err } + defer socket.Close() for c.RecvTxt { msg := &Response{} recv, err := socket.Recv() diff --git a/clients/go/wcf/wcf.pb.go b/clients/go/wcf/wcf.pb.go index 05a3175..ecae68c 100644 --- a/clients/go/wcf/wcf.pb.go +++ b/clients/go/wcf/wcf.pb.go @@ -1,8 +1,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.22.3 -// source: proto/wcf.proto +// protoc-gen-go v1.26.0 +// protoc v3.21.11 +// source: wcf.proto package wcf @@ -40,34 +40,38 @@ const ( Functions_FUNC_DISABLE_RECV_TXT Functions = 64 Functions_FUNC_EXEC_DB_QUERY Functions = 80 Functions_FUNC_ACCEPT_FRIEND Functions = 81 - Functions_FUNC_ADD_ROOM_MEMBERS Functions = 82 - Functions_FUNC_RECV_TRANSFER Functions = 83 + Functions_FUNC_RECV_TRANSFER Functions = 82 + Functions_FUNC_REFRESH_PYQ Functions = 83 Functions_FUNC_DECRYPT_IMAGE Functions = 96 + Functions_FUNC_ADD_ROOM_MEMBERS Functions = 112 + Functions_FUNC_DEL_ROOM_MEMBERS Functions = 113 ) // Enum value maps for Functions. var ( Functions_name = map[int32]string{ - 0: "FUNC_RESERVED", - 1: "FUNC_IS_LOGIN", - 16: "FUNC_GET_SELF_WXID", - 17: "FUNC_GET_MSG_TYPES", - 18: "FUNC_GET_CONTACTS", - 19: "FUNC_GET_DB_NAMES", - 20: "FUNC_GET_DB_TABLES", - 21: "FUNC_GET_USER_INFO", - 32: "FUNC_SEND_TXT", - 33: "FUNC_SEND_IMG", - 34: "FUNC_SEND_FILE", - 35: "FUNC_SEND_XML", - 36: "FUNC_SEND_EMOTION", - 48: "FUNC_ENABLE_RECV_TXT", - 64: "FUNC_DISABLE_RECV_TXT", - 80: "FUNC_EXEC_DB_QUERY", - 81: "FUNC_ACCEPT_FRIEND", - 82: "FUNC_ADD_ROOM_MEMBERS", - 83: "FUNC_RECV_TRANSFER", - 96: "FUNC_DECRYPT_IMAGE", + 0: "FUNC_RESERVED", + 1: "FUNC_IS_LOGIN", + 16: "FUNC_GET_SELF_WXID", + 17: "FUNC_GET_MSG_TYPES", + 18: "FUNC_GET_CONTACTS", + 19: "FUNC_GET_DB_NAMES", + 20: "FUNC_GET_DB_TABLES", + 21: "FUNC_GET_USER_INFO", + 32: "FUNC_SEND_TXT", + 33: "FUNC_SEND_IMG", + 34: "FUNC_SEND_FILE", + 35: "FUNC_SEND_XML", + 36: "FUNC_SEND_EMOTION", + 48: "FUNC_ENABLE_RECV_TXT", + 64: "FUNC_DISABLE_RECV_TXT", + 80: "FUNC_EXEC_DB_QUERY", + 81: "FUNC_ACCEPT_FRIEND", + 82: "FUNC_RECV_TRANSFER", + 83: "FUNC_REFRESH_PYQ", + 96: "FUNC_DECRYPT_IMAGE", + 112: "FUNC_ADD_ROOM_MEMBERS", + 113: "FUNC_DEL_ROOM_MEMBERS", } Functions_value = map[string]int32{ "FUNC_RESERVED": 0, @@ -87,9 +91,11 @@ var ( "FUNC_DISABLE_RECV_TXT": 64, "FUNC_EXEC_DB_QUERY": 80, "FUNC_ACCEPT_FRIEND": 81, - "FUNC_ADD_ROOM_MEMBERS": 82, - "FUNC_RECV_TRANSFER": 83, + "FUNC_RECV_TRANSFER": 82, + "FUNC_REFRESH_PYQ": 83, "FUNC_DECRYPT_IMAGE": 96, + "FUNC_ADD_ROOM_MEMBERS": 112, + "FUNC_DEL_ROOM_MEMBERS": 113, } ) @@ -104,11 +110,11 @@ func (x Functions) String() string { } func (Functions) Descriptor() protoreflect.EnumDescriptor { - return file_proto_wcf_proto_enumTypes[0].Descriptor() + return file_wcf_proto_enumTypes[0].Descriptor() } func (Functions) Type() protoreflect.EnumType { - return &file_proto_wcf_proto_enumTypes[0] + return &file_wcf_proto_enumTypes[0] } func (x Functions) Number() protoreflect.EnumNumber { @@ -117,7 +123,7 @@ func (x Functions) Number() protoreflect.EnumNumber { // Deprecated: Use Functions.Descriptor instead. func (Functions) EnumDescriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{0} + return file_wcf_proto_rawDescGZIP(), []int{0} } type Request struct { @@ -138,13 +144,15 @@ type Request struct { // *Request_Xml // *Request_Dec // *Request_Tf + // *Request_Ui64 + // *Request_Flag Msg isRequest_Msg `protobuf_oneof:"msg"` } func (x *Request) Reset() { *x = Request{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[0] + mi := &file_wcf_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -157,7 +165,7 @@ func (x *Request) String() string { func (*Request) ProtoMessage() {} func (x *Request) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[0] + mi := &file_wcf_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -170,7 +178,7 @@ func (x *Request) ProtoReflect() protoreflect.Message { // Deprecated: Use Request.ProtoReflect.Descriptor instead. func (*Request) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{0} + return file_wcf_proto_rawDescGZIP(), []int{0} } func (x *Request) GetFunc() Functions { @@ -257,6 +265,20 @@ func (x *Request) GetTf() *Transfer { return nil } +func (x *Request) GetUi64() uint64 { + if x, ok := x.GetMsg().(*Request_Ui64); ok { + return x.Ui64 + } + return 0 +} + +func (x *Request) GetFlag() bool { + if x, ok := x.GetMsg().(*Request_Flag); ok { + return x.Flag + } + return false +} + type isRequest_Msg interface { isRequest_Msg() } @@ -301,6 +323,14 @@ type Request_Tf struct { Tf *Transfer `protobuf:"bytes,11,opt,name=tf,proto3,oneof"` } +type Request_Ui64 struct { + Ui64 uint64 `protobuf:"varint,12,opt,name=ui64,proto3,oneof"` // 64 位整数,通用 +} + +type Request_Flag struct { + Flag bool `protobuf:"varint,13,opt,name=flag,proto3,oneof"` +} + func (*Request_Empty) isRequest_Msg() {} func (*Request_Str) isRequest_Msg() {} @@ -321,6 +351,10 @@ func (*Request_Dec) isRequest_Msg() {} func (*Request_Tf) isRequest_Msg() {} +func (*Request_Ui64) isRequest_Msg() {} + +func (*Request_Flag) isRequest_Msg() {} + type Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -344,7 +378,7 @@ type Response struct { func (x *Response) Reset() { *x = Response{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[1] + mi := &file_wcf_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -357,7 +391,7 @@ func (x *Response) String() string { func (*Response) ProtoMessage() {} func (x *Response) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[1] + mi := &file_wcf_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -370,7 +404,7 @@ func (x *Response) ProtoReflect() protoreflect.Message { // Deprecated: Use Response.ProtoReflect.Descriptor instead. func (*Response) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{1} + return file_wcf_proto_rawDescGZIP(), []int{1} } func (x *Response) GetFunc() Functions { @@ -517,7 +551,7 @@ type Empty struct { func (x *Empty) Reset() { *x = Empty{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[2] + mi := &file_wcf_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -530,7 +564,7 @@ func (x *Empty) String() string { func (*Empty) ProtoMessage() {} func (x *Empty) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[2] + mi := &file_wcf_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -543,7 +577,7 @@ func (x *Empty) ProtoReflect() protoreflect.Message { // Deprecated: Use Empty.ProtoReflect.Descriptor instead. func (*Empty) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{2} + return file_wcf_proto_rawDescGZIP(), []int{2} } type WxMsg struct { @@ -553,20 +587,22 @@ type WxMsg struct { IsSelf bool `protobuf:"varint,1,opt,name=is_self,json=isSelf,proto3" json:"is_self,omitempty"` // 是否自己发送的 IsGroup bool `protobuf:"varint,2,opt,name=is_group,json=isGroup,proto3" json:"is_group,omitempty"` // 是否群消息 - Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` // 消息类型 - Id string `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"` // 消息 id - Xml string `protobuf:"bytes,5,opt,name=xml,proto3" json:"xml,omitempty"` // 消息 xml - Sender string `protobuf:"bytes,6,opt,name=sender,proto3" json:"sender,omitempty"` // 消息发送者 - Roomid string `protobuf:"bytes,7,opt,name=roomid,proto3" json:"roomid,omitempty"` // 群 id(如果是群消息的话) - Content string `protobuf:"bytes,8,opt,name=content,proto3" json:"content,omitempty"` // 消息内容 - Thumb string `protobuf:"bytes,9,opt,name=thumb,proto3" json:"thumb,omitempty"` // 缩略图 - Extra string `protobuf:"bytes,10,opt,name=extra,proto3" json:"extra,omitempty"` // 附加内容 + Id uint64 `protobuf:"varint,3,opt,name=id,proto3" json:"id,omitempty"` // 消息 id + Type uint32 `protobuf:"varint,4,opt,name=type,proto3" json:"type,omitempty"` // 消息类型 + Ts uint32 `protobuf:"varint,5,opt,name=ts,proto3" json:"ts,omitempty"` // 消息类型 + Roomid string `protobuf:"bytes,6,opt,name=roomid,proto3" json:"roomid,omitempty"` // 群 id(如果是群消息的话) + Content string `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"` // 消息内容 + Sender string `protobuf:"bytes,8,opt,name=sender,proto3" json:"sender,omitempty"` // 消息发送者 + Sign string `protobuf:"bytes,9,opt,name=sign,proto3" json:"sign,omitempty"` // Sign + Thumb string `protobuf:"bytes,10,opt,name=thumb,proto3" json:"thumb,omitempty"` // 缩略图 + Extra string `protobuf:"bytes,11,opt,name=extra,proto3" json:"extra,omitempty"` // 附加内容 + Xml string `protobuf:"bytes,12,opt,name=xml,proto3" json:"xml,omitempty"` // 消息 xml } func (x *WxMsg) Reset() { *x = WxMsg{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[3] + mi := &file_wcf_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -579,7 +615,7 @@ func (x *WxMsg) String() string { func (*WxMsg) ProtoMessage() {} func (x *WxMsg) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[3] + mi := &file_wcf_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -592,7 +628,7 @@ func (x *WxMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use WxMsg.ProtoReflect.Descriptor instead. func (*WxMsg) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{3} + return file_wcf_proto_rawDescGZIP(), []int{3} } func (x *WxMsg) GetIsSelf() bool { @@ -609,32 +645,25 @@ func (x *WxMsg) GetIsGroup() bool { return false } -func (x *WxMsg) GetType() int32 { +func (x *WxMsg) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *WxMsg) GetType() uint32 { if x != nil { return x.Type } return 0 } -func (x *WxMsg) GetId() string { +func (x *WxMsg) GetTs() uint32 { if x != nil { - return x.Id + return x.Ts } - return "" -} - -func (x *WxMsg) GetXml() string { - if x != nil { - return x.Xml - } - return "" -} - -func (x *WxMsg) GetSender() string { - if x != nil { - return x.Sender - } - return "" + return 0 } func (x *WxMsg) GetRoomid() string { @@ -651,6 +680,20 @@ func (x *WxMsg) GetContent() string { return "" } +func (x *WxMsg) GetSender() string { + if x != nil { + return x.Sender + } + return "" +} + +func (x *WxMsg) GetSign() string { + if x != nil { + return x.Sign + } + return "" +} + func (x *WxMsg) GetThumb() string { if x != nil { return x.Thumb @@ -665,6 +708,13 @@ func (x *WxMsg) GetExtra() string { return "" } +func (x *WxMsg) GetXml() string { + if x != nil { + return x.Xml + } + return "" +} + type TextMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -678,7 +728,7 @@ type TextMsg struct { func (x *TextMsg) Reset() { *x = TextMsg{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[4] + mi := &file_wcf_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -691,7 +741,7 @@ func (x *TextMsg) String() string { func (*TextMsg) ProtoMessage() {} func (x *TextMsg) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[4] + mi := &file_wcf_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -704,7 +754,7 @@ func (x *TextMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use TextMsg.ProtoReflect.Descriptor instead. func (*TextMsg) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{4} + return file_wcf_proto_rawDescGZIP(), []int{4} } func (x *TextMsg) GetMsg() string { @@ -740,7 +790,7 @@ type PathMsg struct { func (x *PathMsg) Reset() { *x = PathMsg{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[5] + mi := &file_wcf_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -753,7 +803,7 @@ func (x *PathMsg) String() string { func (*PathMsg) ProtoMessage() {} func (x *PathMsg) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[5] + mi := &file_wcf_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -766,7 +816,7 @@ func (x *PathMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use PathMsg.ProtoReflect.Descriptor instead. func (*PathMsg) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{5} + return file_wcf_proto_rawDescGZIP(), []int{5} } func (x *PathMsg) GetPath() string { @@ -797,7 +847,7 @@ type XmlMsg struct { func (x *XmlMsg) Reset() { *x = XmlMsg{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[6] + mi := &file_wcf_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -810,7 +860,7 @@ func (x *XmlMsg) String() string { func (*XmlMsg) ProtoMessage() {} func (x *XmlMsg) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[6] + mi := &file_wcf_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -823,7 +873,7 @@ func (x *XmlMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use XmlMsg.ProtoReflect.Descriptor instead. func (*XmlMsg) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{6} + return file_wcf_proto_rawDescGZIP(), []int{6} } func (x *XmlMsg) GetReceiver() string { @@ -865,7 +915,7 @@ type MsgTypes struct { func (x *MsgTypes) Reset() { *x = MsgTypes{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[7] + mi := &file_wcf_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -878,7 +928,7 @@ func (x *MsgTypes) String() string { func (*MsgTypes) ProtoMessage() {} func (x *MsgTypes) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[7] + mi := &file_wcf_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -891,7 +941,7 @@ func (x *MsgTypes) ProtoReflect() protoreflect.Message { // Deprecated: Use MsgTypes.ProtoReflect.Descriptor instead. func (*MsgTypes) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{7} + return file_wcf_proto_rawDescGZIP(), []int{7} } func (x *MsgTypes) GetTypes() map[int32]string { @@ -919,7 +969,7 @@ type RpcContact struct { func (x *RpcContact) Reset() { *x = RpcContact{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[8] + mi := &file_wcf_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -932,7 +982,7 @@ func (x *RpcContact) String() string { func (*RpcContact) ProtoMessage() {} func (x *RpcContact) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[8] + mi := &file_wcf_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -945,7 +995,7 @@ func (x *RpcContact) ProtoReflect() protoreflect.Message { // Deprecated: Use RpcContact.ProtoReflect.Descriptor instead. func (*RpcContact) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{8} + return file_wcf_proto_rawDescGZIP(), []int{8} } func (x *RpcContact) GetWxid() string { @@ -1015,7 +1065,7 @@ type RpcContacts struct { func (x *RpcContacts) Reset() { *x = RpcContacts{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[9] + mi := &file_wcf_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1028,7 +1078,7 @@ func (x *RpcContacts) String() string { func (*RpcContacts) ProtoMessage() {} func (x *RpcContacts) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[9] + mi := &file_wcf_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1041,7 +1091,7 @@ func (x *RpcContacts) ProtoReflect() protoreflect.Message { // Deprecated: Use RpcContacts.ProtoReflect.Descriptor instead. func (*RpcContacts) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{9} + return file_wcf_proto_rawDescGZIP(), []int{9} } func (x *RpcContacts) GetContacts() []*RpcContact { @@ -1062,7 +1112,7 @@ type DbNames struct { func (x *DbNames) Reset() { *x = DbNames{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[10] + mi := &file_wcf_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1075,7 +1125,7 @@ func (x *DbNames) String() string { func (*DbNames) ProtoMessage() {} func (x *DbNames) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[10] + mi := &file_wcf_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1088,7 +1138,7 @@ func (x *DbNames) ProtoReflect() protoreflect.Message { // Deprecated: Use DbNames.ProtoReflect.Descriptor instead. func (*DbNames) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{10} + return file_wcf_proto_rawDescGZIP(), []int{10} } func (x *DbNames) GetNames() []string { @@ -1110,7 +1160,7 @@ type DbTable struct { func (x *DbTable) Reset() { *x = DbTable{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[11] + mi := &file_wcf_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1123,7 +1173,7 @@ func (x *DbTable) String() string { func (*DbTable) ProtoMessage() {} func (x *DbTable) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[11] + mi := &file_wcf_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1136,7 +1186,7 @@ func (x *DbTable) ProtoReflect() protoreflect.Message { // Deprecated: Use DbTable.ProtoReflect.Descriptor instead. func (*DbTable) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{11} + return file_wcf_proto_rawDescGZIP(), []int{11} } func (x *DbTable) GetName() string { @@ -1164,7 +1214,7 @@ type DbTables struct { func (x *DbTables) Reset() { *x = DbTables{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[12] + mi := &file_wcf_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1177,7 +1227,7 @@ func (x *DbTables) String() string { func (*DbTables) ProtoMessage() {} func (x *DbTables) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[12] + mi := &file_wcf_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1190,7 +1240,7 @@ func (x *DbTables) ProtoReflect() protoreflect.Message { // Deprecated: Use DbTables.ProtoReflect.Descriptor instead. func (*DbTables) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{12} + return file_wcf_proto_rawDescGZIP(), []int{12} } func (x *DbTables) GetTables() []*DbTable { @@ -1212,7 +1262,7 @@ type DbQuery struct { func (x *DbQuery) Reset() { *x = DbQuery{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[13] + mi := &file_wcf_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1225,7 +1275,7 @@ func (x *DbQuery) String() string { func (*DbQuery) ProtoMessage() {} func (x *DbQuery) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[13] + mi := &file_wcf_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1238,7 +1288,7 @@ func (x *DbQuery) ProtoReflect() protoreflect.Message { // Deprecated: Use DbQuery.ProtoReflect.Descriptor instead. func (*DbQuery) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{13} + return file_wcf_proto_rawDescGZIP(), []int{13} } func (x *DbQuery) GetDb() string { @@ -1268,7 +1318,7 @@ type DbField struct { func (x *DbField) Reset() { *x = DbField{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[14] + mi := &file_wcf_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1281,7 +1331,7 @@ func (x *DbField) String() string { func (*DbField) ProtoMessage() {} func (x *DbField) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[14] + mi := &file_wcf_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1294,7 +1344,7 @@ func (x *DbField) ProtoReflect() protoreflect.Message { // Deprecated: Use DbField.ProtoReflect.Descriptor instead. func (*DbField) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{14} + return file_wcf_proto_rawDescGZIP(), []int{14} } func (x *DbField) GetType() int32 { @@ -1329,7 +1379,7 @@ type DbRow struct { func (x *DbRow) Reset() { *x = DbRow{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[15] + mi := &file_wcf_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1342,7 +1392,7 @@ func (x *DbRow) String() string { func (*DbRow) ProtoMessage() {} func (x *DbRow) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[15] + mi := &file_wcf_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1355,7 +1405,7 @@ func (x *DbRow) ProtoReflect() protoreflect.Message { // Deprecated: Use DbRow.ProtoReflect.Descriptor instead. func (*DbRow) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{15} + return file_wcf_proto_rawDescGZIP(), []int{15} } func (x *DbRow) GetFields() []*DbField { @@ -1376,7 +1426,7 @@ type DbRows struct { func (x *DbRows) Reset() { *x = DbRows{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[16] + mi := &file_wcf_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1389,7 +1439,7 @@ func (x *DbRows) String() string { func (*DbRows) ProtoMessage() {} func (x *DbRows) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[16] + mi := &file_wcf_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1402,7 +1452,7 @@ func (x *DbRows) ProtoReflect() protoreflect.Message { // Deprecated: Use DbRows.ProtoReflect.Descriptor instead. func (*DbRows) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{16} + return file_wcf_proto_rawDescGZIP(), []int{16} } func (x *DbRows) GetRows() []*DbRow { @@ -1425,7 +1475,7 @@ type Verification struct { func (x *Verification) Reset() { *x = Verification{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[17] + mi := &file_wcf_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1438,7 +1488,7 @@ func (x *Verification) String() string { func (*Verification) ProtoMessage() {} func (x *Verification) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[17] + mi := &file_wcf_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1451,7 +1501,7 @@ func (x *Verification) ProtoReflect() protoreflect.Message { // Deprecated: Use Verification.ProtoReflect.Descriptor instead. func (*Verification) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{17} + return file_wcf_proto_rawDescGZIP(), []int{17} } func (x *Verification) GetV3() string { @@ -1487,7 +1537,7 @@ type AddMembers struct { func (x *AddMembers) Reset() { *x = AddMembers{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[18] + mi := &file_wcf_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1500,7 +1550,7 @@ func (x *AddMembers) String() string { func (*AddMembers) ProtoMessage() {} func (x *AddMembers) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[18] + mi := &file_wcf_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1513,7 +1563,7 @@ func (x *AddMembers) ProtoReflect() protoreflect.Message { // Deprecated: Use AddMembers.ProtoReflect.Descriptor instead. func (*AddMembers) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{18} + return file_wcf_proto_rawDescGZIP(), []int{18} } func (x *AddMembers) GetRoomid() string { @@ -1544,7 +1594,7 @@ type UserInfo struct { func (x *UserInfo) Reset() { *x = UserInfo{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[19] + mi := &file_wcf_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1557,7 +1607,7 @@ func (x *UserInfo) String() string { func (*UserInfo) ProtoMessage() {} func (x *UserInfo) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[19] + mi := &file_wcf_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1570,7 +1620,7 @@ func (x *UserInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. func (*UserInfo) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{19} + return file_wcf_proto_rawDescGZIP(), []int{19} } func (x *UserInfo) GetWxid() string { @@ -1613,7 +1663,7 @@ type DecPath struct { func (x *DecPath) Reset() { *x = DecPath{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[20] + mi := &file_wcf_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1626,7 +1676,7 @@ func (x *DecPath) String() string { func (*DecPath) ProtoMessage() {} func (x *DecPath) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[20] + mi := &file_wcf_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1639,7 +1689,7 @@ func (x *DecPath) ProtoReflect() protoreflect.Message { // Deprecated: Use DecPath.ProtoReflect.Descriptor instead. func (*DecPath) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{20} + return file_wcf_proto_rawDescGZIP(), []int{20} } func (x *DecPath) GetSrc() string { @@ -1662,13 +1712,14 @@ type Transfer struct { unknownFields protoimpl.UnknownFields Wxid string `protobuf:"bytes,1,opt,name=wxid,proto3" json:"wxid,omitempty"` // 转账人 - Tid string `protobuf:"bytes,2,opt,name=tid,proto3" json:"tid,omitempty"` // 转账id transferid + Tfid string `protobuf:"bytes,2,opt,name=tfid,proto3" json:"tfid,omitempty"` // 转账id transferid + Taid string `protobuf:"bytes,3,opt,name=taid,proto3" json:"taid,omitempty"` // Transaction id } func (x *Transfer) Reset() { *x = Transfer{} if protoimpl.UnsafeEnabled { - mi := &file_proto_wcf_proto_msgTypes[21] + mi := &file_wcf_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1681,7 +1732,7 @@ func (x *Transfer) String() string { func (*Transfer) ProtoMessage() {} func (x *Transfer) ProtoReflect() protoreflect.Message { - mi := &file_proto_wcf_proto_msgTypes[21] + mi := &file_wcf_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1694,7 +1745,7 @@ func (x *Transfer) ProtoReflect() protoreflect.Message { // Deprecated: Use Transfer.ProtoReflect.Descriptor instead. func (*Transfer) Descriptor() ([]byte, []int) { - return file_proto_wcf_proto_rawDescGZIP(), []int{21} + return file_wcf_proto_rawDescGZIP(), []int{21} } func (x *Transfer) GetWxid() string { @@ -1704,161 +1755,174 @@ func (x *Transfer) GetWxid() string { return "" } -func (x *Transfer) GetTid() string { +func (x *Transfer) GetTfid() string { if x != nil { - return x.Tid + return x.Tfid } return "" } -var File_proto_wcf_proto protoreflect.FileDescriptor +func (x *Transfer) GetTaid() string { + if x != nil { + return x.Taid + } + return "" +} -var file_proto_wcf_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x77, 0x63, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x03, 0x77, 0x63, 0x66, 0x22, 0x80, 0x03, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x22, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x0e, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x22, 0x0a, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x48, 0x00, 0x52, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x03, 0x73, 0x74, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x20, - 0x0a, 0x03, 0x74, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x77, 0x63, - 0x66, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x73, 0x67, 0x48, 0x00, 0x52, 0x03, 0x74, 0x78, 0x74, - 0x12, 0x22, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x4d, 0x73, 0x67, 0x48, 0x00, 0x52, 0x04, - 0x66, 0x69, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x44, 0x62, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x01, 0x76, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x01, 0x76, 0x12, 0x1f, 0x0a, - 0x01, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x41, - 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x01, 0x6d, 0x12, 0x1f, - 0x0a, 0x03, 0x78, 0x6d, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x77, 0x63, - 0x66, 0x2e, 0x58, 0x6d, 0x6c, 0x4d, 0x73, 0x67, 0x48, 0x00, 0x52, 0x03, 0x78, 0x6d, 0x6c, 0x12, - 0x20, 0x0a, 0x03, 0x64, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x77, - 0x63, 0x66, 0x2e, 0x44, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x03, 0x64, 0x65, - 0x63, 0x12, 0x1f, 0x0a, 0x02, 0x74, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x77, 0x63, 0x66, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x48, 0x00, 0x52, 0x02, - 0x74, 0x66, 0x42, 0x05, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xed, 0x02, 0x0a, 0x08, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x22, 0x0a, 0x05, 0x77, 0x78, 0x6d, 0x73, - 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x57, 0x78, - 0x4d, 0x73, 0x67, 0x48, 0x00, 0x52, 0x05, 0x77, 0x78, 0x6d, 0x73, 0x67, 0x12, 0x25, 0x0a, 0x05, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x77, 0x63, - 0x66, 0x2e, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x73, 0x48, 0x00, 0x52, 0x05, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x52, 0x70, 0x63, 0x43, - 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x63, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x03, 0x64, 0x62, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x44, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x48, 0x00, - 0x52, 0x03, 0x64, 0x62, 0x73, 0x12, 0x27, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x44, 0x62, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x21, - 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x77, - 0x63, 0x66, 0x2e, 0x44, 0x62, 0x52, 0x6f, 0x77, 0x73, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, 0x77, - 0x73, 0x12, 0x1f, 0x0a, 0x02, 0x75, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x77, 0x63, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x02, - 0x75, 0x69, 0x42, 0x05, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0xe7, 0x01, 0x0a, 0x05, 0x57, 0x78, 0x4d, 0x73, 0x67, 0x12, 0x17, 0x0a, 0x07, - 0x69, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, - 0x73, 0x53, 0x65, 0x6c, 0x66, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x78, 0x6d, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x78, 0x6d, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x4d, 0x0a, 0x07, - 0x54, 0x65, 0x78, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x74, 0x65, 0x72, 0x73, 0x22, 0x39, 0x0a, 0x07, 0x50, - 0x61, 0x74, 0x68, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x22, 0x66, 0x0a, 0x06, 0x58, 0x6d, 0x6c, 0x4d, 0x73, 0x67, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x74, - 0x0a, 0x08, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x05, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x63, 0x66, 0x2e, - 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x54, 0x79, - 0x70, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc2, 0x01, 0x0a, 0x0a, 0x52, 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, - 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x77, 0x78, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, - 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, - 0x61, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, - 0x79, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x3a, 0x0a, 0x0b, 0x52, 0x70, 0x63, - 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x63, 0x66, - 0x2e, 0x52, 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, - 0x74, 0x61, 0x63, 0x74, 0x73, 0x22, 0x1f, 0x0a, 0x07, 0x44, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x2f, 0x0a, 0x07, 0x44, 0x62, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x71, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x73, 0x71, 0x6c, 0x22, 0x30, 0x0a, 0x08, 0x44, 0x62, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x44, 0x62, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x07, 0x44, 0x62, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x64, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x64, 0x62, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x71, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x73, 0x71, 0x6c, 0x22, 0x4f, 0x0a, 0x07, 0x44, 0x62, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x2d, 0x0a, 0x05, 0x44, 0x62, 0x52, 0x6f, 0x77, - 0x12, 0x24, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x44, 0x62, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0x28, 0x0a, 0x06, 0x44, 0x62, 0x52, 0x6f, 0x77, 0x73, - 0x12, 0x1e, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, - 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x44, 0x62, 0x52, 0x6f, 0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, - 0x22, 0x44, 0x0a, 0x0c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x0e, 0x0a, 0x02, 0x76, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x76, 0x33, - 0x12, 0x0e, 0x0a, 0x02, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x76, 0x34, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x22, 0x3a, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x77, 0x78, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x78, 0x69, - 0x64, 0x73, 0x22, 0x5e, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, - 0x0a, 0x04, 0x77, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x78, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x68, 0x6f, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, - 0x6d, 0x65, 0x22, 0x2d, 0x0a, 0x07, 0x44, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, - 0x03, 0x73, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, - 0x10, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, - 0x74, 0x22, 0x30, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x12, 0x0a, +var File_wcf_proto protoreflect.FileDescriptor + +var file_wcf_proto_rawDesc = []byte{ + 0x0a, 0x09, 0x77, 0x63, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x77, 0x63, 0x66, + 0x22, 0xac, 0x03, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x04, + 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x77, 0x63, 0x66, + 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, + 0x12, 0x22, 0x0a, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0a, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x05, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x20, 0x0a, 0x03, 0x74, 0x78, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x54, 0x65, 0x78, 0x74, + 0x4d, 0x73, 0x67, 0x48, 0x00, 0x52, 0x03, 0x74, 0x78, 0x74, 0x12, 0x22, 0x0a, 0x04, 0x66, 0x69, + 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x50, + 0x61, 0x74, 0x68, 0x4d, 0x73, 0x67, 0x48, 0x00, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x24, + 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x77, 0x63, 0x66, 0x2e, 0x44, 0x62, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x05, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x01, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x01, 0x76, 0x12, 0x1f, 0x0a, 0x01, 0x6d, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x01, 0x6d, 0x12, 0x1f, 0x0a, 0x03, 0x78, 0x6d, 0x6c, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x58, 0x6d, 0x6c, 0x4d, + 0x73, 0x67, 0x48, 0x00, 0x52, 0x03, 0x78, 0x6d, 0x6c, 0x12, 0x20, 0x0a, 0x03, 0x64, 0x65, 0x63, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x44, 0x65, 0x63, + 0x50, 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x03, 0x64, 0x65, 0x63, 0x12, 0x1f, 0x0a, 0x02, 0x74, + 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x48, 0x00, 0x52, 0x02, 0x74, 0x66, 0x12, 0x14, 0x0a, 0x04, + 0x75, 0x69, 0x36, 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, 0x75, 0x69, + 0x36, 0x34, 0x12, 0x14, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x05, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0xed, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x04, + 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x77, 0x63, 0x66, + 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, + 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x03, 0x73, 0x74, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x22, + 0x0a, 0x05, 0x77, 0x78, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, + 0x77, 0x63, 0x66, 0x2e, 0x57, 0x78, 0x4d, 0x73, 0x67, 0x48, 0x00, 0x52, 0x05, 0x77, 0x78, 0x6d, + 0x73, 0x67, 0x12, 0x25, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x48, 0x00, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x08, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x77, 0x63, + 0x66, 0x2e, 0x52, 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x48, 0x00, 0x52, + 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x03, 0x64, 0x62, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x44, 0x62, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x48, 0x00, 0x52, 0x03, 0x64, 0x62, 0x73, 0x12, 0x27, 0x0a, 0x06, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x77, 0x63, + 0x66, 0x2e, 0x44, 0x62, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x48, 0x00, 0x52, 0x06, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x44, 0x62, 0x52, 0x6f, 0x77, 0x73, 0x48, + 0x00, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x12, 0x1f, 0x0a, 0x02, 0x75, 0x69, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x48, 0x00, 0x52, 0x02, 0x75, 0x69, 0x42, 0x05, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x8b, 0x02, 0x0a, 0x05, 0x57, 0x78, 0x4d, + 0x73, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x53, 0x65, 0x6c, 0x66, 0x12, 0x19, 0x0a, 0x08, 0x69, + 0x73, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, + 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, + 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, + 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x68, 0x75, 0x6d, + 0x62, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x78, 0x6d, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x78, 0x6d, 0x6c, 0x22, 0x4d, 0x0a, 0x07, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x73, + 0x67, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x61, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x61, 0x74, 0x65, 0x72, 0x73, 0x22, 0x39, 0x0a, 0x07, 0x50, 0x61, 0x74, 0x68, 0x4d, 0x73, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x22, 0x66, 0x0a, 0x06, 0x58, 0x6d, 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x74, 0x0a, 0x08, 0x4d, 0x73, 0x67, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc2, + 0x01, 0x0a, 0x0a, 0x52, 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x78, 0x69, - 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x74, 0x69, 0x64, 0x2a, 0xd3, 0x03, 0x0a, 0x09, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x67, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x22, 0x3a, 0x0a, 0x0b, 0x52, 0x70, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, + 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x52, 0x70, 0x63, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x22, + 0x1f, 0x0a, 0x07, 0x44, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x22, 0x2f, 0x0a, 0x07, 0x44, 0x62, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x73, 0x71, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x71, + 0x6c, 0x22, 0x30, 0x0a, 0x08, 0x44, 0x62, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x0a, + 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x77, 0x63, 0x66, 0x2e, 0x44, 0x62, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x06, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x07, 0x44, 0x62, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x0e, + 0x0a, 0x02, 0x64, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x64, 0x62, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x71, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x71, 0x6c, + 0x22, 0x4f, 0x0a, 0x07, 0x44, 0x62, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x22, 0x2d, 0x0a, 0x05, 0x44, 0x62, 0x52, 0x6f, 0x77, 0x12, 0x24, 0x0a, 0x06, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x77, 0x63, 0x66, + 0x2e, 0x44, 0x62, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x22, 0x28, 0x0a, 0x06, 0x44, 0x62, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x72, 0x6f, + 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x77, 0x63, 0x66, 0x2e, 0x44, + 0x62, 0x52, 0x6f, 0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x22, 0x44, 0x0a, 0x0c, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x76, 0x33, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x76, 0x33, 0x12, 0x0e, 0x0a, 0x02, 0x76, 0x34, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x76, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, + 0x65, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x65, 0x6e, 0x65, + 0x22, 0x3a, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x6f, 0x6f, 0x6d, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x78, 0x69, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x78, 0x69, 0x64, 0x73, 0x22, 0x5e, 0x0a, 0x08, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x78, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x78, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x6d, 0x65, 0x22, 0x2d, 0x0a, 0x07, + 0x44, 0x65, 0x63, 0x50, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x74, 0x22, 0x46, 0x0a, 0x08, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x78, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x78, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x66, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x66, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x61, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x61, 0x69, 0x64, 0x2a, 0x84, 0x04, 0x0a, 0x09, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x49, 0x53, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x55, 0x4e, 0x43, 0x5f, @@ -1882,31 +1946,34 @@ var file_proto_wcf_proto_rawDesc = []byte{ 0x42, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x54, 0x58, 0x54, 0x10, 0x40, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x5f, 0x44, 0x42, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, 0x50, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x41, - 0x43, 0x43, 0x45, 0x50, 0x54, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x10, 0x51, 0x12, 0x19, - 0x0a, 0x15, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, - 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x10, 0x52, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x55, 0x4e, - 0x43, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, - 0x53, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, - 0x54, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x60, 0x42, 0x14, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, - 0x2e, 0x69, 0x61, 0x6d, 0x74, 0x65, 0x65, 0x72, 0x5a, 0x05, 0x2e, 0x2f, 0x77, 0x63, 0x66, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x43, 0x43, 0x45, 0x50, 0x54, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x10, 0x51, 0x12, 0x16, + 0x0a, 0x12, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x46, 0x45, 0x52, 0x10, 0x52, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x52, + 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x5f, 0x50, 0x59, 0x51, 0x10, 0x53, 0x12, 0x16, 0x0a, 0x12, + 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x49, 0x4d, 0x41, + 0x47, 0x45, 0x10, 0x60, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x41, 0x44, 0x44, + 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x10, 0x70, 0x12, + 0x19, 0x0a, 0x15, 0x46, 0x55, 0x4e, 0x43, 0x5f, 0x44, 0x45, 0x4c, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, + 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x53, 0x10, 0x71, 0x42, 0x15, 0x0a, 0x0b, 0x63, 0x6f, + 0x6d, 0x2e, 0x69, 0x61, 0x6d, 0x74, 0x65, 0x65, 0x72, 0x5a, 0x06, 0x2e, 0x2e, 0x2f, 0x77, 0x63, + 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_proto_wcf_proto_rawDescOnce sync.Once - file_proto_wcf_proto_rawDescData = file_proto_wcf_proto_rawDesc + file_wcf_proto_rawDescOnce sync.Once + file_wcf_proto_rawDescData = file_wcf_proto_rawDesc ) -func file_proto_wcf_proto_rawDescGZIP() []byte { - file_proto_wcf_proto_rawDescOnce.Do(func() { - file_proto_wcf_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_wcf_proto_rawDescData) +func file_wcf_proto_rawDescGZIP() []byte { + file_wcf_proto_rawDescOnce.Do(func() { + file_wcf_proto_rawDescData = protoimpl.X.CompressGZIP(file_wcf_proto_rawDescData) }) - return file_proto_wcf_proto_rawDescData + return file_wcf_proto_rawDescData } -var file_proto_wcf_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_proto_wcf_proto_msgTypes = make([]protoimpl.MessageInfo, 23) -var file_proto_wcf_proto_goTypes = []interface{}{ +var file_wcf_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_wcf_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_wcf_proto_goTypes = []interface{}{ (Functions)(0), // 0: wcf.Functions (*Request)(nil), // 1: wcf.Request (*Response)(nil), // 2: wcf.Response @@ -1932,7 +1999,7 @@ var file_proto_wcf_proto_goTypes = []interface{}{ (*Transfer)(nil), // 22: wcf.Transfer nil, // 23: wcf.MsgTypes.TypesEntry } -var file_proto_wcf_proto_depIdxs = []int32{ +var file_wcf_proto_depIdxs = []int32{ 0, // 0: wcf.Request.func:type_name -> wcf.Functions 3, // 1: wcf.Request.empty:type_name -> wcf.Empty 5, // 2: wcf.Request.txt:type_name -> wcf.TextMsg @@ -1963,13 +2030,13 @@ var file_proto_wcf_proto_depIdxs = []int32{ 0, // [0:23] is the sub-list for field type_name } -func init() { file_proto_wcf_proto_init() } -func file_proto_wcf_proto_init() { - if File_proto_wcf_proto != nil { +func init() { file_wcf_proto_init() } +func file_wcf_proto_init() { + if File_wcf_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_proto_wcf_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Request); i { case 0: return &v.state @@ -1981,7 +2048,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Response); i { case 0: return &v.state @@ -1993,7 +2060,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Empty); i { case 0: return &v.state @@ -2005,7 +2072,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WxMsg); i { case 0: return &v.state @@ -2017,7 +2084,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TextMsg); i { case 0: return &v.state @@ -2029,7 +2096,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PathMsg); i { case 0: return &v.state @@ -2041,7 +2108,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*XmlMsg); i { case 0: return &v.state @@ -2053,7 +2120,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgTypes); i { case 0: return &v.state @@ -2065,7 +2132,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RpcContact); i { case 0: return &v.state @@ -2077,7 +2144,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RpcContacts); i { case 0: return &v.state @@ -2089,7 +2156,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DbNames); i { case 0: return &v.state @@ -2101,7 +2168,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DbTable); i { case 0: return &v.state @@ -2113,7 +2180,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DbTables); i { case 0: return &v.state @@ -2125,7 +2192,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DbQuery); i { case 0: return &v.state @@ -2137,7 +2204,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DbField); i { case 0: return &v.state @@ -2149,7 +2216,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DbRow); i { case 0: return &v.state @@ -2161,7 +2228,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DbRows); i { case 0: return &v.state @@ -2173,7 +2240,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Verification); i { case 0: return &v.state @@ -2185,7 +2252,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddMembers); i { case 0: return &v.state @@ -2197,7 +2264,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserInfo); i { case 0: return &v.state @@ -2209,7 +2276,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DecPath); i { case 0: return &v.state @@ -2221,7 +2288,7 @@ func file_proto_wcf_proto_init() { return nil } } - file_proto_wcf_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_wcf_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Transfer); i { case 0: return &v.state @@ -2234,7 +2301,7 @@ func file_proto_wcf_proto_init() { } } } - file_proto_wcf_proto_msgTypes[0].OneofWrappers = []interface{}{ + file_wcf_proto_msgTypes[0].OneofWrappers = []interface{}{ (*Request_Empty)(nil), (*Request_Str)(nil), (*Request_Txt)(nil), @@ -2245,8 +2312,10 @@ func file_proto_wcf_proto_init() { (*Request_Xml)(nil), (*Request_Dec)(nil), (*Request_Tf)(nil), + (*Request_Ui64)(nil), + (*Request_Flag)(nil), } - file_proto_wcf_proto_msgTypes[1].OneofWrappers = []interface{}{ + file_wcf_proto_msgTypes[1].OneofWrappers = []interface{}{ (*Response_Status)(nil), (*Response_Str)(nil), (*Response_Wxmsg)(nil), @@ -2261,19 +2330,19 @@ func file_proto_wcf_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_proto_wcf_proto_rawDesc, + RawDescriptor: file_wcf_proto_rawDesc, NumEnums: 1, NumMessages: 23, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_proto_wcf_proto_goTypes, - DependencyIndexes: file_proto_wcf_proto_depIdxs, - EnumInfos: file_proto_wcf_proto_enumTypes, - MessageInfos: file_proto_wcf_proto_msgTypes, + GoTypes: file_wcf_proto_goTypes, + DependencyIndexes: file_wcf_proto_depIdxs, + EnumInfos: file_wcf_proto_enumTypes, + MessageInfos: file_wcf_proto_msgTypes, }.Build() - File_proto_wcf_proto = out.File - file_proto_wcf_proto_rawDesc = nil - file_proto_wcf_proto_goTypes = nil - file_proto_wcf_proto_depIdxs = nil + File_wcf_proto = out.File + file_wcf_proto_rawDesc = nil + file_wcf_proto_goTypes = nil + file_wcf_proto_depIdxs = nil } diff --git a/clients/go/wcf/wcf_test.go b/clients/go/wcf/wcf_test.go index 379d94b..e57076a 100644 --- a/clients/go/wcf/wcf_test.go +++ b/clients/go/wcf/wcf_test.go @@ -6,6 +6,7 @@ import ( _ "go.nanomsg.org/mangos/v3/transport/all" "google.golang.org/protobuf/proto" "testing" + "time" ) func TestConn(t *testing.T) { @@ -14,7 +15,7 @@ func TestConn(t *testing.T) { logs.Err(err) return } - err = socket.Dial("tcp://127.0.0.1:10086") + err = socket.Dial("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return @@ -48,7 +49,7 @@ func TestConn(t *testing.T) { } func TestIsLogin(t *testing.T) { - wcf, err := NewWCF("") + wcf, err := NewWCF("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return @@ -56,7 +57,7 @@ func TestIsLogin(t *testing.T) { logs.Info(wcf.IsLogin()) } func TestGetSelfWXID(t *testing.T) { - wcf, err := NewWCF("") + wcf, err := NewWCF("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return @@ -64,7 +65,7 @@ func TestGetSelfWXID(t *testing.T) { logs.Info(wcf.GetSelfWXID()) } func TestGetMsgTypes(t *testing.T) { - wcf, err := NewWCF("") + wcf, err := NewWCF("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return @@ -72,18 +73,18 @@ func TestGetMsgTypes(t *testing.T) { logs.Info(wcf.GetMsgTypes()) } func TestGetContacts(t *testing.T) { - wcf, err := NewWCF("") + wcf, err := NewWCF("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return } for _, contact := range wcf.GetContacts() { - logs.Info(contact.Remark, contact.Wxid) + logs.Info(contact.Name, contact.Wxid) } logs.Info(wcf.GetContacts()) } func TestGetDBNames(t *testing.T) { - wcf, err := NewWCF("") + wcf, err := NewWCF("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return @@ -91,7 +92,7 @@ func TestGetDBNames(t *testing.T) { logs.Info(wcf.GetDBNames()) } func TestGetDBTables(t *testing.T) { - wcf, err := NewWCF("") + wcf, err := NewWCF("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return @@ -99,7 +100,7 @@ func TestGetDBTables(t *testing.T) { logs.Info(wcf.GetDBTables("ChatMsg.db")) } func TestExecDBQuery(t *testing.T) { - wcf, err := NewWCF("") + wcf, err := NewWCF("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return @@ -107,7 +108,7 @@ func TestExecDBQuery(t *testing.T) { logs.Info(wcf.ExecDBQuery("ChatMsg.db", "SELECT * FROM Name2ID_v1")) } func TestAcceptFriend(t *testing.T) { - wcf, err := NewWCF("") + wcf, err := NewWCF("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return @@ -115,7 +116,7 @@ func TestAcceptFriend(t *testing.T) { logs.Info(wcf.AcceptFriend("encryptusername", "ticket", 17)) } func TestGetUserInfo(t *testing.T) { - wcf, err := NewWCF("") + wcf, err := NewWCF("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return @@ -123,30 +124,66 @@ func TestGetUserInfo(t *testing.T) { logs.Info(wcf.GetUserInfo()) } func TestSendTxT(t *testing.T) { - wcf, err := NewWCF("") + wcf, err := NewWCF("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return } - logs.Info(wcf.SendTxt(" Hello @ 淡白", "45415088466@chatroom", []string{"wxid_xxxxxxxx"})) + logs.Info(wcf.SendTxt(" Hello @ 淡白", "38975652309@chatroom", []string{"wxid_qvo0irhbw9fk22"})) } func TestSendIMG(t *testing.T) { - wcf, err := NewWCF("") + wcf, err := NewWCF("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return } - logs.Info(wcf.SendIMG("C:\\Users\\danbai\\Desktop\\work\\code\\WeChatFerry-go\\图片1.png", "wxid_qvo0irhbw9fk22")) + logs.Info(wcf.SendIMG("C:\\Users\\Administrator\\Pictures\\1.png", "wxid_qvo0irhbw9fk22")) } -func TestOnMSG(t *testing.T) { - wcf, err := NewWCF("") +func TestSendFile(t *testing.T) { + wcf, err := NewWCF("tcp://192.168.26.130:1000") + if err != nil { + logs.Err(err) + return + } + logs.Info(wcf.SendFile("C:\\Users\\Administrator\\Pictures\\1.txt", "wxid_qvo0irhbw9fk22")) +} +func TestRefreshPYQ(t *testing.T) { + wcf, err := NewWCF("tcp://192.168.26.130:1000") if err != nil { logs.Err(err) return } logs.Info(wcf.EnableRecvTxt()) + go wcf.OnMSG(func(msg *WxMsg) { + logs.Info(msg.GetType(), msg.GetContent()) + }) defer wcf.DisableRecvTxt() - wcf.OnMSG(func(msg *WxMsg) { + time.Sleep(time.Second * 2) + logs.Info(wcf.RefreshPYQ()) + time.Sleep(time.Minute) +} + +func TestOnMSG(t *testing.T) { + wcf, err := NewWCF("tcp://192.168.26.130:1000") + if err != nil { + logs.Err(err) + return + } + logs.Info(wcf.EnableRecvTxt()) + defer func() { + logs.Info(wcf.DisableRecvTxt()) + }() + go wcf.OnMSG(func(msg *WxMsg) { logs.Info(msg.GetContent()) }) + time.Sleep(time.Minute) +} + +func TestDisableRecvTxt(t *testing.T) { + wcf, err := NewWCF("tcp://192.168.26.130:1000") + if err != nil { + logs.Err(err) + return + } + logs.Info(wcf.DisableRecvTxt()) }