diff --git a/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..e5d8ed6fa --- /dev/null +++ b/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md @@ -0,0 +1,37 @@ +--- +name: "\U0001F41E Bug" +about: File a bug/issue +title: "[BUG] " +labels: '' +assignees: '' + +--- + +<!-- +Note: Please search to see if an issue already exists for the bug you encountered. +--> + +### Environment: +<!-- linux? windows? or Mac? +Example: +- OS: Ubuntu 20.04 --> + +### Physical Memory Capacity: +<!-- 8G or above is better --> + +### Docker Image: +<!-- Did you pull the docker image before execute docker images --> + +### Code Version: +<!-- Did you pull code from github? Make sure the code is up to date--> + +### Component installation: +<!-- Has etcd, mysql, mongodb, redis or Kafka been installed on the server before Open-IM-Server deployment--> + + +### Log File: +<!-- view log file(logs/openIM.log) content. --> + + +### screenshot: +<!----> diff --git a/.github/ISSUE_TEMPLATE/deployment-issues.md b/.github/ISSUE_TEMPLATE/deployment-issues.md new file mode 100644 index 000000000..57d7cbcb7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/deployment-issues.md @@ -0,0 +1,36 @@ +--- +name: Deployment issues +about: Deployment issues +title: '' +labels: '' +assignees: '' + +--- + +If you are deploying OpenIM for the first time + + + +``` +git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive +``` + +screenshot here + +``` +cd Open-IM-Server/script ; chmod +x *.sh ; ./env_check.sh +``` + +screenshot here + +``` +cd .. ; docker-compose up -d +``` + +screenshot here + +``` +cd script ; ./docker_check_service.sh +``` + +screenshot here diff --git a/.github/ISSUE_TEMPLATE/update-.md b/.github/ISSUE_TEMPLATE/update-.md new file mode 100644 index 000000000..ba8da7270 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/update-.md @@ -0,0 +1,38 @@ +--- +name: 'update ' +about: update docker image +title: update docker image +labels: '' +assignees: '' + +--- + +``` +cd Open-IM-Server ; docker-compose down +``` + +screenshot here + +``` +git pull +``` + +screenshot here + +``` +docker-compose pull +``` + +screenshot here + +``` +chmod +x script/*.sh ; docker-compose up -d +``` + +screenshot here + +``` +cd script ; ./docker_check_service.sh +``` + +screenshot here diff --git a/.gitignore b/.gitignore index e4b74c4e9..3390267f4 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ out-test .github .idea + deploy/open_im_demo deploy/open_im_api deploy/open_im_msg_gateway diff --git a/README.md b/README.md index ad3aa2129..4964bacb5 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ All images are available at https://hub.docker.com/r/lyt1123/open_im_server 4. Start docker-compose with one click(Docker automatically pulls all images) ``` + cd Open-IM-Server docker-compose up -d ``` @@ -99,6 +100,7 @@ All images are available at https://hub.docker.com/r/lyt1123/open_im_server ``` ./docker_check_service.sh + ./check_all.sh ``` ![OpenIMServersondockerpng](https://github.com/OpenIMSDK/Open-IM-Server/blob/main/docs/Open-IM-Servers-on-docker.png) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index a06dfeeda..a19440c3d 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit a06dfeeda56815ac9a9bb401dd30ab12b374d658 +Subproject commit a19440c3d6e6504655934cc432d8420bb1909816 diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 58378e119..2f93c97e8 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -67,7 +67,11 @@ func main() { groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 - groupRouterGroup.POST("/dismiss_group", group.DismissGroup) + groupRouterGroup.POST("/dismiss_group", group.DismissGroup) // + groupRouterGroup.POST("/mute_group_member", group.MuteGroupMember) + groupRouterGroup.POST("/cancel_mute_group_member", group.CancelMuteGroupMember) //MuteGroup + groupRouterGroup.POST("/mute_group", group.MuteGroup) + groupRouterGroup.POST("/cancel_mute_group", group.CancelMuteGroup) } //certificate authRouterGroup := r.Group("/auth") @@ -79,6 +83,7 @@ func main() { thirdGroup := r.Group("/third") { thirdGroup.POST("/tencent_cloud_storage_credential", apiThird.TencentCloudStorageCredential) + thirdGroup.POST("/ali_oss_credential", apiThird.AliOSSCredential) thirdGroup.POST("/minio_storage_credential", apiThird.MinioStorageCredential) thirdGroup.POST("/minio_upload", apiThird.MinioUploadFile) } @@ -119,13 +124,9 @@ func main() { officeGroup.POST("/send_msg_to_tag", office.SendMsg2Tag) officeGroup.POST("/get_send_tag_log", office.GetTagSendLogs) } - apiThird.MinioInit() log.NewPrivateLog("api") ginPort := flag.Int("port", 10000, "get ginServerPort from cmd,default 10000 as port") flag.Parse() - err := r.Run(":" + strconv.Itoa(*ginPort)) - if err != nil { - log.NewError("", utils.GetSelfFuncName(), "start gin failed", err.Error()) - } + r.Run(":" + strconv.Itoa(*ginPort)) } diff --git a/config/config.yaml b/config/config.yaml index 4f1c79279..7d864283c 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -19,7 +19,8 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 127.0.0.1:37017 ] #redis地址 目前仅支持单机,默认即可 + dbUri: ""#当dbUri值不为空则直接使用该值 + dbAddress: [ 127.0.0.1:37017 ] #mongo地址 目前仅支持单机,默认即可 dbDirect: false dbTimeout: 10 dbDatabase: openIM #mongo db 默认即可 @@ -91,9 +92,20 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申 minio: #MinIO 发送图片、视频、文件时需要,请自行申请后替换,必须修改。 客户端初始化InitSDK,中 object_storage参数为minio bucket: openim location: us-east-1 - endpoint: http://43.128.5.63:9000 + endpoint: http://127.0.0.1:9000 accessKeyID: user12345 secretAccessKey: key12345 + ali: # ali oss + regionID: "oss-cn-beijing" + accessKeyID: "" + accessKeySecret: "" + stsEndpoint: "sts.cn-beijing.aliyun.com" + ossEndpoint: "oss-cn-beijing.aliyuncs.com" + bucket: "bucket1" + finalHost: "http://bucket1.oss-cn-beijing.aliyuncs.com" + stsDurationSeconds: 3600 + OssRoleArn: "acs:ram::xxx:role/xxx" + rpcport: #rpc服务端口 默认即可 @@ -136,7 +148,7 @@ log: rotationTime: 24 remainRotationCount: 3 #日志数量 #日志级别 6表示全都打印,测试阶段建议设置为6 - remainLogLevel: 6 + remainLogLevel: 4 elasticSearchSwitch: false elasticSearchAddr: [ 127.0.0.1:9201 ] elasticSearchUser: "" diff --git a/deploy/config.example.yaml b/deploy/config.example.yaml index f0ae8314e..08d8858e4 100644 --- a/deploy/config.example.yaml +++ b/deploy/config.example.yaml @@ -19,6 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: + dbUri: ""#当dbUri值不为空则直接使用该值 dbAddress: [ openim_mongo:27017 ] dbDirect: false dbTimeout: 10 diff --git a/docker-compose.yaml b/docker-compose.yaml index f63b3c125..c67203773 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -32,6 +32,7 @@ services: # - MONGO_INITDB_ROOT_USERNAME=openIM # - MONGO_INITDB_ROOT_PASSWORD=openIM + #TZ: Asia/Shanghai restart: always @@ -93,7 +94,7 @@ services: command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379 --listen-peer-urls http://0.0.0.0:2380 --initial-advertise-peer-urls http://0.0.0.0:2380 --initial-cluster etcd0=http://0.0.0.0:2380 --initial-cluster-token tkn --initial-cluster-state new open_im_server: - image: openim/open_im_server:v2.0.2 + image: openim/open_im_server:v2.0.5 container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs diff --git a/go.mod b/go.mod index 4b9da4af5..f005f9ce0 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,7 @@ require ( github.com/Shopify/toxiproxy v2.1.4+incompatible // indirect github.com/alibabacloud-go/darabonba-openapi v0.1.11 github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8 + github.com/alibabacloud-go/sts-20150401 v1.1.0 github.com/alibabacloud-go/tea v1.1.17 github.com/antonfisher/nested-logrus-formatter v1.3.0 github.com/bwmarrin/snowflake v0.3.0 @@ -21,7 +22,7 @@ require ( github.com/gin-gonic/gin v1.7.0 github.com/go-playground/validator/v10 v10.4.1 github.com/go-sql-driver/mysql v1.6.0 // indirect - github.com/gogo/protobuf v1.3.2 // indirect + github.com/gogo/protobuf v1.3.2 github.com/golang-jwt/jwt/v4 v4.1.0 github.com/golang/protobuf v1.5.2 github.com/golang/snappy v0.0.4 // indirect @@ -59,6 +60,7 @@ require ( google.golang.org/protobuf v1.27.1 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df + gopkg.in/ini.v1 v1.66.2 // indirect gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b sigs.k8s.io/yaml v1.2.0 // indirect diff --git a/go.sum b/go.sum index 1defffaf3..cec54f0ff 100644 --- a/go.sum +++ b/go.sum @@ -53,6 +53,7 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/alibabacloud-go/darabonba-openapi v0.1.7/go.mod h1:6FV1Bt1AItYIlC2rVopPTumrRNtkfPBmrPVAZ8v2bLk= github.com/alibabacloud-go/darabonba-openapi v0.1.11 h1:w59gtSA0s87p0U5NNG/N/PIHsRP3rtj7qCP9hx9+GL8= github.com/alibabacloud-go/darabonba-openapi v0.1.11/go.mod h1:MPJMxv7HYrFm5m9uOZWkDYsAWyZztEgnBRfk9Fg0eIU= github.com/alibabacloud-go/darabonba-string v1.0.0/go.mod h1:93cTfV3vuPhhEwGGpKKqhVW4jLe7tDpo3LUM0i0g6mA= @@ -62,8 +63,11 @@ github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8 h1:KXMiCg99Jx7B6V+DlRFbWw github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8/go.mod h1:8aL6tSyQIWJygF7W/Vqxdf/QDbN2S+u57k36bEA8hD8= github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q= github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE= +github.com/alibabacloud-go/openapi-util v0.0.8/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= github.com/alibabacloud-go/openapi-util v0.0.9 h1:Z0DP4LFzkM/rW2nxOMiiLoQVZSeE3jVc5jrZ9Fd/UX0= github.com/alibabacloud-go/openapi-util v0.0.9/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= +github.com/alibabacloud-go/sts-20150401 v1.1.0 h1:1yVyKz02ES6aKo3xVjmoPLBH1OAmmSqPkhKRdjEkmYs= +github.com/alibabacloud-go/sts-20150401 v1.1.0/go.mod h1:QW4O/c7Hp4krHYt+6xwnoG8EyZW3V9GYkl6EgIBmxJc= github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg= github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= github.com/alibabacloud-go/tea v1.1.8/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= @@ -1095,6 +1099,8 @@ gopkg.in/ini.v1 v1.56.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c= gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI= +gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 588858982..35365cc10 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -259,7 +259,7 @@ func CreateGroup(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } - req.OwnerUserID = req.OpUserID + req.OwnerUserID = params.OwnerUserID req.OperationID = params.OperationID log.NewInfo(req.OperationID, "CreateGroup args ", req.String()) @@ -568,3 +568,131 @@ func DismissGroup(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) c.JSON(http.StatusOK, resp) } + +func MuteGroupMember(c *gin.Context) { + params := api.MuteGroupMemberReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.MuteGroupMemberReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + reply, err := client.MuteGroupMember(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + resp := api.MuteGroupMemberResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) + c.JSON(http.StatusOK, resp) +} + +func CancelMuteGroupMember(c *gin.Context) { + params := api.CancelMuteGroupMemberReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.CancelMuteGroupMemberReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + reply, err := client.CancelMuteGroupMember(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + resp := api.CancelMuteGroupMemberResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) + c.JSON(http.StatusOK, resp) +} + +func MuteGroup(c *gin.Context) { + params := api.MuteGroupReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.MuteGroupReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + reply, err := client.MuteGroup(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + resp := api.MuteGroupResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) + c.JSON(http.StatusOK, resp) +} + +func CancelMuteGroup(c *gin.Context) { + params := api.CancelMuteGroupReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.CancelMuteGroupReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + reply, err := client.CancelMuteGroup(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + resp := api.CancelMuteGroupResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) + c.JSON(http.StatusOK, resp) +} diff --git a/internal/api/third/ali_oss_credential.go b/internal/api/third/ali_oss_credential.go new file mode 100644 index 000000000..6f5bc7c04 --- /dev/null +++ b/internal/api/third/ali_oss_credential.go @@ -0,0 +1,95 @@ +package apiThird + +import ( + api "Open_IM/pkg/base_info" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "fmt" + openapi "github.com/alibabacloud-go/darabonba-openapi/client" + sts20150401 "github.com/alibabacloud-go/sts-20150401/client" + "github.com/alibabacloud-go/tea/tea" + "github.com/fatih/structs" + + //"github.com/fatih/structs" + "github.com/gin-gonic/gin" + "net/http" + "time" +) + +var stsClient *sts20150401.Client + +/** + * 使用AK&SK初始化账号Client + * @param accessKeyId + * @param accessKeySecret + * @return Client + * @throws Exception + */ +func getStsClient() *sts20150401.Client { + if stsClient != nil { + return stsClient + } + conf := &openapi.Config{ + // 您的AccessKey ID + AccessKeyId: tea.String(config.Config.Credential.Ali.AccessKeyID), + // 您的AccessKey Secret + AccessKeySecret: tea.String(config.Config.Credential.Ali.AccessKeySecret), + // Endpoint + Endpoint: tea.String(config.Config.Credential.Ali.StsEndpoint), + } + result, err := sts20150401.NewClient(conf) + if err != nil { + log.NewError("", "alists client初始化失败 ", err) + } + stsClient = result + return stsClient +} + +func AliOSSCredential(c *gin.Context) { + req := api.OSSCredentialReq{} + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, "AliOSSCredential args ", userID) + + stsResp, err := getStsClient().AssumeRole(&sts20150401.AssumeRoleRequest{ + DurationSeconds: tea.Int64(config.Config.Credential.Ali.StsDurationSeconds), + Policy: nil, + RoleArn: tea.String(config.Config.Credential.Ali.OssRoleArn), + RoleSessionName: tea.String(fmt.Sprintf("%s-%d", userID, time.Now().Unix())), + }) + + resp := api.OSSCredentialResp{} + if err != nil { + resp.ErrCode = constant.ErrTencentCredential.ErrCode + resp.ErrMsg = err.Error() + } else { + resp = api.OSSCredentialResp{ + CommResp: api.CommResp{}, + OssData: api.OSSCredentialRespData{ + Endpoint: config.Config.Credential.Ali.OssEndpoint, + AccessKeyId: *stsResp.Body.Credentials.AccessKeyId, + AccessKeySecret: *stsResp.Body.Credentials.AccessKeySecret, + Token: *stsResp.Body.Credentials.SecurityToken, + Bucket: config.Config.Credential.Ali.Bucket, + FinalHost: config.Config.Credential.Ali.FinalHost, + }, + Data: nil, + } + } + + resp.Data = structs.Map(&resp.OssData) + log.NewInfo(req.OperationID, "AliOSSCredential return ", resp) + + c.JSON(http.StatusOK, resp) +} diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 7540d9830..804e8eb11 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -17,6 +17,7 @@ import ( type ParamsSetPassword struct { Email string `json:"email"` + Name string `json:"name"` PhoneNumber string `json:"phoneNumber"` Password string `json:"password"` VerificationCode string `json:"verificationCode"` @@ -38,6 +39,9 @@ func SetPassword(c *gin.Context) { } else { account = params.PhoneNumber } + if params.Name == "" { + params.Name = account + } if params.VerificationCode != config.Config.Demo.SuperCode { accountKey := account + "_" + constant.VerificationCodeForRegisterSuffix v, err := db.DB.GetAccountCode(accountKey) @@ -54,7 +58,7 @@ func SetPassword(c *gin.Context) { openIMRegisterReq.OperationID = params.OperationID openIMRegisterReq.Platform = params.Platform openIMRegisterReq.UserID = account - openIMRegisterReq.Nickname = account + openIMRegisterReq.Nickname = params.Name openIMRegisterReq.Secret = config.Config.Secret openIMRegisterResp := api.UserRegisterResp{} bMsg, err := http2.Post(url, openIMRegisterReq, 2) @@ -69,7 +73,7 @@ func SetPassword(c *gin.Context) { if err != nil { log.NewError(params.OperationID, utils.GetSelfFuncName(), err.Error()) } - c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: "+openIMRegisterResp.ErrMsg}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: " + openIMRegisterResp.ErrMsg}) return } log.Info(params.OperationID, "begin store mysql", account, params.Password) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index fb90ef7c5..98198f598 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -41,16 +41,16 @@ func NewGroupServer(port int) *groupServer { } func (s *groupServer) Run() { - log.NewInfo("0", "group rpc start ") + log.NewInfo("", "group rpc start ") ip := utils.ServerIP registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) //listener network listener, err := net.Listen("tcp", registerAddress) if err != nil { - log.NewError("0", "Listen failed ", err.Error(), registerAddress) + log.NewError("", "Listen failed ", err.Error(), registerAddress) return } - log.NewInfo("0", "listen network success, ", registerAddress, listener) + log.NewInfo("", "listen network success, ", registerAddress, listener) defer listener.Close() //grpc server srv := grpc.NewServer() @@ -59,15 +59,15 @@ func (s *groupServer) Run() { pbGroup.RegisterGroupServer(srv, s) err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) if err != nil { - log.NewError("0", "RegisterEtcd failed ", err.Error()) + log.NewError("", "RegisterEtcd failed ", err.Error()) return } err = srv.Serve(listener) if err != nil { - log.NewError("0", "Serve failed ", err.Error()) + log.NewError("", "Serve failed ", err.Error()) return } - log.NewInfo("0", "group rpc success") + log.NewInfo("", "group rpc success") } func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { @@ -355,7 +355,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou //remove var resp pbGroup.KickGroupMemberResp for _, v := range req.KickedUserIDList { - //owner cant kicked + //owner can‘t kicked if v == groupOwnerUserID { log.NewError(req.OperationID, "failed, can't kick owner ", v) resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1}) @@ -961,3 +961,76 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } + +// rpc MuteGroupMember(MuteGroupMemberReq) returns(MuteGroupMemberResp); +// rpc CancelMuteGroupMember(CancelMuteGroupMemberReq) returns(CancelMuteGroupMemberResp); +// rpc MuteGroup(MuteGroupReq) returns(MuteGroupResp); +// rpc CancelMuteGroup(CancelMuteGroupReq) returns(CancelMuteGroupResp); + +func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGroupMemberReq) (*pbGroup.MuteGroupMemberResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) + if !imdb.IsGroupOwnerAdmin(req.GroupID, req.UserID) && !token_verify.IsMangerUserID(req.OpUserID) { + log.Error(req.OperationID, "verify failed ", req.GroupID, req.UserID) + return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + groupMemberInfo := db.GroupMember{GroupID: req.GroupID, UserID: req.UserID} + groupMemberInfo.MuteEndTime = time.Unix(int64(time.Now().Second())+int64(req.MutedSeconds), 0) + err := imdb.UpdateGroupMemberInfo(groupMemberInfo) + if err != nil { + log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo) + return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) + return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil +} + +func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.CancelMuteGroupMemberReq) (*pbGroup.CancelMuteGroupMemberResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) + if !imdb.IsGroupOwnerAdmin(req.GroupID, req.UserID) && !token_verify.IsMangerUserID(req.OpUserID) { + log.Error(req.OperationID, "verify failed ", req.OpUserID, req.GroupID) + return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + groupMemberInfo := db.GroupMember{GroupID: req.GroupID, UserID: req.UserID} + groupMemberInfo.MuteEndTime = time.Unix(0, 0) + err := imdb.UpdateGroupMemberInfo(groupMemberInfo) + if err != nil { + log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo) + return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) + return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil +} + +func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) (*pbGroup.MuteGroupResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) + if !imdb.IsGroupOwnerAdmin(req.GroupID, req.OpUserID) && !token_verify.IsMangerUserID(req.OpUserID) { + log.Error(req.OperationID, "verify failed ", req.GroupID, req.GroupID) + return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + err := imdb.OperateGroupStatus(req.GroupID, constant.GroupStatusMuted) + if err != nil { + log.Error(req.OperationID, "OperateGroupStatus failed ", err.Error(), req.GroupID, constant.GroupStatusMuted) + return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + chat.GroupInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) + return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil +} + +func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMuteGroupReq) (*pbGroup.CancelMuteGroupResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) + if !imdb.IsGroupOwnerAdmin(req.GroupID, req.OpUserID) && !token_verify.IsMangerUserID(req.OpUserID) { + log.Error(req.OperationID, "verify failed ", req.OpUserID, req.GroupID) + return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + groupInfo := db.Group{GroupID: req.GroupID} + + err := imdb.UpdateGroupInfoDefaultZero(groupInfo, map[string]interface{}{"status": constant.GroupOk}) + if err != nil { + log.Error(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), groupInfo) + return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + chat.GroupInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) + return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil +} diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 64b71b284..3c45c393e 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -21,7 +21,7 @@ type ImportFriendReq struct { FromUserID string `json:"fromUserID" binding:"required"` } type UserIDResult struct { - UserID string `json:"userID""` + UserID string `json:"userID"` Result int32 `json:"result"` } type ImportFriendResp struct { diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 68df84731..47b6a6c67 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -185,3 +185,38 @@ type DismissGroupReq struct { type DismissGroupResp struct { CommResp } + +type MuteGroupMemberReq struct { + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` + UserID string `json:"userID" binding:"required"` + MutedSeconds uint32 `json:"mutedSeconds" binding:"required"` +} +type MuteGroupMemberResp struct { + CommResp +} + +type CancelMuteGroupMemberReq struct { + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` + UserID string `json:"userID" binding:"required"` +} +type CancelMuteGroupMemberResp struct { + CommResp +} + +type MuteGroupReq struct { + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` +} +type MuteGroupResp struct { + CommResp +} + +type CancelMuteGroupReq struct { + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` +} +type CancelMuteGroupResp struct { + CommResp +} diff --git a/pkg/base_info/oss_api_struct.go b/pkg/base_info/oss_api_struct.go new file mode 100644 index 000000000..621d18820 --- /dev/null +++ b/pkg/base_info/oss_api_struct.go @@ -0,0 +1,22 @@ +package base_info + +type OSSCredentialReq struct { + OperationID string `json:"operationID"` + Filename string `json:"filename"` + FileType string `json:"file_type"` +} + +type OSSCredentialRespData struct { + Endpoint string `json:"endpoint"` + AccessKeyId string `json:"access_key_id"` + AccessKeySecret string `json:"access_key_secret"` + Token string `json:"token"` + Bucket string `json:"bucket"` + FinalHost string `json:"final_host"` +} + +type OSSCredentialResp struct { + CommResp + OssData OSSCredentialRespData `json:"-"` + Data map[string]interface{} `json:"data"` +} diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 1e0a54f1a..2a8ec36ff 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -45,6 +45,17 @@ type config struct { SecretID string `yaml:"secretID"` SecretKey string `yaml:"secretKey"` } + Ali struct { + RegionID string `yaml:"regionID"` + AccessKeyID string `yaml:"accessKeyID"` + AccessKeySecret string `yaml:"accessKeySecret"` + StsEndpoint string `yaml:"stsEndpoint"` + OssEndpoint string `yaml:"ossEndpoint"` + Bucket string `yaml:"bucket"` + FinalHost string `yaml:"finalHost"` + StsDurationSeconds int64 `yaml:"stsDurationSeconds"` + OssRoleArn string `yaml:"OssRoleArn"` + } Minio struct { Bucket string `yaml:"bucket"` Location string `yaml:"location"` @@ -66,6 +77,7 @@ type config struct { DBMaxLifeTime int `yaml:"dbMaxLifeTime"` } Mongo struct { + DBUri string `yaml:"dbUri"` // 当dbUri值不为空则直接使用该值 DBAddress []string `yaml:"dbAddress"` DBDirect bool `yaml:"dbDirect"` DBTimeout int `yaml:"dbTimeout"` diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 586093e5d..0a1e38168 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -79,6 +79,7 @@ const ( MemberInvitedNotification = 1509 MemberEnterNotification = 1510 GroupDismissedNotification = 1511 + GroupMemberInfoChangedNotification = 1512 SignalingNotificationBegin = 1600 SignalingNotification = 1601 @@ -138,6 +139,7 @@ const ( GroupOk = 0 GroupBanChat = 1 GroupStatusDismissed = 2 + GroupStatusMuted = 3 GroupBaned = 3 GroupBanPrivateChat = 4 diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 6e3048db9..812783e03 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -41,12 +41,17 @@ func init() { // mongo init // "mongodb://sysop:moon@localhost/records" uri := "mongodb://sample.host:27017/?maxPoolSize=20&w=majority" - uri = fmt.Sprintf("mongodb://%s/%s/?connect=direct&maxPoolSize=%d", - config.Config.Mongo.DBAddress[0], config.Config.Mongo.DBDatabase, - config.Config.Mongo.DBMaxPoolSize) + if config.Config.Mongo.DBUri != "" { + // example: mongodb://$user:$password@mongo1.mongo:27017,mongo2.mongo:27017,mongo3.mongo:27017/$DBDatabase/?replicaSet=rs0&readPreference=secondary&authSource=admin&maxPoolSize=$DBMaxPoolSize + uri = config.Config.Mongo.DBUri + } else { + uri = fmt.Sprintf("mongodb://%s/%s/?maxPoolSize=%d", + config.Config.Mongo.DBAddress[0], config.Config.Mongo.DBDatabase, + config.Config.Mongo.DBMaxPoolSize) + } mongoClient, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) - if err != nil { + if err != nil{ log.NewError(" mongo.Connect failed, try ", utils.GetSelfFuncName(), err.Error(), uri) time.Sleep(time.Duration(30) * time.Second) mongoClient, err1 = mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 493b78e4e..acf5a7a15 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -30,6 +30,9 @@ func InsertIntoGroupMember(toInsertInfo db.GroupMember) error { if toInsertInfo.RoleLevel == 0 { toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers } + if toInsertInfo.MuteEndTime.Unix() == 0 { + toInsertInfo.MuteEndTime = time.Unix(0, 0) + } err = dbConn.Table("group_members").Create(toInsertInfo).Error if err != nil { return err @@ -281,6 +284,14 @@ func GetGroupMembersCount(groupId, userName string) (int32, error) { return count, nil } +func UpdateGroupMemberInfoDefaultZero(groupMemberInfo db.GroupMember, args map[string]interface{}) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + return dbConn.Model(groupMemberInfo).Updates(args).Error +} + // //func SelectGroupList(groupID string) ([]string, error) { // var groupUserID string diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 587e3672e..2d1d0e4db 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -57,7 +57,6 @@ func SetGroupInfo(groupInfo db.Group) error { if err != nil { return err } - dbConn.LogMode(true) err = dbConn.Table("groups").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error return err } @@ -68,7 +67,7 @@ func GetGroupsByName(groupName string, pageNumber, showNumber int32) ([]db.Group if err != nil { return groups, err } - dbConn.LogMode(true) + err = dbConn.Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", groupName)).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error return groups, err } @@ -79,7 +78,7 @@ func GetGroups(pageNumber, showNumber int) ([]db.Group, error) { if err != nil { return groups, err } - dbConn.LogMode(true) + if err = dbConn.Table("groups").Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error; err != nil { return groups, err } @@ -102,7 +101,7 @@ func DeleteGroup(groupId string) error { if err != nil { return err } - dbConn.LogMode(true) + var group db.Group var groupMembers []db.GroupMember if err := dbConn.Table("groups").Where("group_id=?", groupId).Delete(&group).Error; err != nil { @@ -119,7 +118,6 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) (string, string, if err != nil { return "", "", err } - dbConn.LogMode(true) groupMember := db.GroupMember{ UserID: userId, GroupID: groupId, @@ -182,7 +180,7 @@ func GetGroupsCountNum(group db.Group) (int32, error) { if err != nil { return 0, err } - dbConn.LogMode(true) + var count int32 if err := dbConn.Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", group.GroupName)).Count(&count).Error; err != nil { return 0, err @@ -198,7 +196,7 @@ func GetGroupById(groupId string) (db.Group, error) { if err != nil { return group, err } - dbConn.LogMode(true) + if err := dbConn.Table("groups").Find(&group).Error; err != nil { return group, err } @@ -211,9 +209,17 @@ func GetGroupMaster(groupId string) (db.GroupMember, error) { if err != nil { return groupMember, err } - dbConn.LogMode(true) + if err := dbConn.Table("group_members").Where("role_level=? and group_id=?", constant.GroupOwner, groupId).Find(&groupMember).Error; err != nil { return groupMember, err } return groupMember, nil } + +func UpdateGroupInfoDefaultZero(groupInfo db.Group, args map[string]interface{}) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + return dbConn.Model(groupInfo).Updates(args).Error +} diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index 8e7346cc1..514063755 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -118,6 +118,10 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.Group dst.AppMangerLevel = 1 } dst.JoinTime = int32(src.JoinTime.Unix()) + dst.MuteEndTime = uint32(src.JoinTime.Unix()) + if dst.MuteEndTime < uint32(time.Now().Unix()) { + dst.MuteEndTime = 0 + } return nil } diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 0332aa1e9..2f8176fad 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{0} + return fileDescriptor_group_3c77315b028a1402, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -82,7 +82,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{1} + return fileDescriptor_group_3c77315b028a1402, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -131,7 +131,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{2} + return fileDescriptor_group_3c77315b028a1402, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -199,7 +199,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{3} + return fileDescriptor_group_3c77315b028a1402, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -253,7 +253,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{4} + return fileDescriptor_group_3c77315b028a1402, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -307,7 +307,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{5} + return fileDescriptor_group_3c77315b028a1402, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -361,7 +361,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{6} + return fileDescriptor_group_3c77315b028a1402, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -413,7 +413,7 @@ func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoResp) ProtoMessage() {} func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{7} + return fileDescriptor_group_3c77315b028a1402, []int{7} } func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) @@ -453,7 +453,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{8} + return fileDescriptor_group_3c77315b028a1402, []int{8} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -507,7 +507,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{9} + return fileDescriptor_group_3c77315b028a1402, []int{9} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -561,7 +561,7 @@ func (m *GetUserReqApplicationListReq) Reset() { *m = GetUserReqApplicat func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListReq) ProtoMessage() {} func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{10} + return fileDescriptor_group_3c77315b028a1402, []int{10} } func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b) @@ -614,7 +614,7 @@ func (m *GetUserReqApplicationListResp) Reset() { *m = GetUserReqApplica func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListResp) ProtoMessage() {} func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{11} + return fileDescriptor_group_3c77315b028a1402, []int{11} } func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b) @@ -663,7 +663,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{12} + return fileDescriptor_group_3c77315b028a1402, []int{12} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -729,7 +729,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{13} + return fileDescriptor_group_3c77315b028a1402, []int{13} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -770,7 +770,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{14} + return fileDescriptor_group_3c77315b028a1402, []int{14} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -829,7 +829,7 @@ func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} } func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } func (*JoinGroupResp) ProtoMessage() {} func (*JoinGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{15} + return fileDescriptor_group_3c77315b028a1402, []int{15} } func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) @@ -872,7 +872,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{16} + return fileDescriptor_group_3c77315b028a1402, []int{16} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -945,7 +945,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{17} + return fileDescriptor_group_3c77315b028a1402, []int{17} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -985,7 +985,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{18} + return fileDescriptor_group_3c77315b028a1402, []int{18} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1037,7 +1037,7 @@ func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} } func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } func (*QuitGroupResp) ProtoMessage() {} func (*QuitGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{19} + return fileDescriptor_group_3c77315b028a1402, []int{19} } func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) @@ -1079,7 +1079,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{20} + return fileDescriptor_group_3c77315b028a1402, []int{20} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1148,7 +1148,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{21} + return fileDescriptor_group_3c77315b028a1402, []int{21} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1210,7 +1210,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{22} + return fileDescriptor_group_3c77315b028a1402, []int{22} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1271,7 +1271,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{23} + return fileDescriptor_group_3c77315b028a1402, []int{23} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1327,7 +1327,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{24} + return fileDescriptor_group_3c77315b028a1402, []int{24} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1394,7 +1394,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{25} + return fileDescriptor_group_3c77315b028a1402, []int{25} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1441,7 +1441,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{26} + return fileDescriptor_group_3c77315b028a1402, []int{26} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1495,7 +1495,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{27} + return fileDescriptor_group_3c77315b028a1402, []int{27} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1549,7 +1549,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{28} + return fileDescriptor_group_3c77315b028a1402, []int{28} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1605,7 +1605,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{29} + return fileDescriptor_group_3c77315b028a1402, []int{29} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1673,7 +1673,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{30} + return fileDescriptor_group_3c77315b028a1402, []int{30} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1727,7 +1727,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{31} + return fileDescriptor_group_3c77315b028a1402, []int{31} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1781,7 +1781,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{32} + return fileDescriptor_group_3c77315b028a1402, []int{32} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -1835,7 +1835,7 @@ func (m *CMSGroup) Reset() { *m = CMSGroup{} } func (m *CMSGroup) String() string { return proto.CompactTextString(m) } func (*CMSGroup) ProtoMessage() {} func (*CMSGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{33} + return fileDescriptor_group_3c77315b028a1402, []int{33} } func (m *CMSGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CMSGroup.Unmarshal(m, b) @@ -1889,7 +1889,7 @@ func (m *GetGroupReq) Reset() { *m = GetGroupReq{} } func (m *GetGroupReq) String() string { return proto.CompactTextString(m) } func (*GetGroupReq) ProtoMessage() {} func (*GetGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{34} + return fileDescriptor_group_3c77315b028a1402, []int{34} } func (m *GetGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupReq.Unmarshal(m, b) @@ -1943,7 +1943,7 @@ func (m *GetGroupResp) Reset() { *m = GetGroupResp{} } func (m *GetGroupResp) String() string { return proto.CompactTextString(m) } func (*GetGroupResp) ProtoMessage() {} func (*GetGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{35} + return fileDescriptor_group_3c77315b028a1402, []int{35} } func (m *GetGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupResp.Unmarshal(m, b) @@ -1996,7 +1996,7 @@ func (m *GetGroupsReq) Reset() { *m = GetGroupsReq{} } func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsReq) ProtoMessage() {} func (*GetGroupsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{36} + return fileDescriptor_group_3c77315b028a1402, []int{36} } func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b) @@ -2043,7 +2043,7 @@ func (m *GetGroupsResp) Reset() { *m = GetGroupsResp{} } func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsResp) ProtoMessage() {} func (*GetGroupsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{37} + return fileDescriptor_group_3c77315b028a1402, []int{37} } func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b) @@ -2096,7 +2096,7 @@ func (m *GetGroupMemberReq) Reset() { *m = GetGroupMemberReq{} } func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberReq) ProtoMessage() {} func (*GetGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{38} + return fileDescriptor_group_3c77315b028a1402, []int{38} } func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b) @@ -2143,7 +2143,7 @@ func (m *OperateGroupStatusReq) Reset() { *m = OperateGroupStatusReq{} } func (m *OperateGroupStatusReq) String() string { return proto.CompactTextString(m) } func (*OperateGroupStatusReq) ProtoMessage() {} func (*OperateGroupStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{39} + return fileDescriptor_group_3c77315b028a1402, []int{39} } func (m *OperateGroupStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusReq.Unmarshal(m, b) @@ -2194,7 +2194,7 @@ func (m *OperateGroupStatusResp) Reset() { *m = OperateGroupStatusResp{} func (m *OperateGroupStatusResp) String() string { return proto.CompactTextString(m) } func (*OperateGroupStatusResp) ProtoMessage() {} func (*OperateGroupStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{40} + return fileDescriptor_group_3c77315b028a1402, []int{40} } func (m *OperateGroupStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateGroupStatusResp.Unmarshal(m, b) @@ -2228,7 +2228,7 @@ func (m *OperateUserRoleReq) Reset() { *m = OperateUserRoleReq{} } func (m *OperateUserRoleReq) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleReq) ProtoMessage() {} func (*OperateUserRoleReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{41} + return fileDescriptor_group_3c77315b028a1402, []int{41} } func (m *OperateUserRoleReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleReq.Unmarshal(m, b) @@ -2286,7 +2286,7 @@ func (m *OperateUserRoleResp) Reset() { *m = OperateUserRoleResp{} } func (m *OperateUserRoleResp) String() string { return proto.CompactTextString(m) } func (*OperateUserRoleResp) ProtoMessage() {} func (*OperateUserRoleResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{42} + return fileDescriptor_group_3c77315b028a1402, []int{42} } func (m *OperateUserRoleResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperateUserRoleResp.Unmarshal(m, b) @@ -2318,7 +2318,7 @@ func (m *DeleteGroupReq) Reset() { *m = DeleteGroupReq{} } func (m *DeleteGroupReq) String() string { return proto.CompactTextString(m) } func (*DeleteGroupReq) ProtoMessage() {} func (*DeleteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{43} + return fileDescriptor_group_3c77315b028a1402, []int{43} } func (m *DeleteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupReq.Unmarshal(m, b) @@ -2362,7 +2362,7 @@ func (m *DeleteGroupResp) Reset() { *m = DeleteGroupResp{} } func (m *DeleteGroupResp) String() string { return proto.CompactTextString(m) } func (*DeleteGroupResp) ProtoMessage() {} func (*DeleteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{44} + return fileDescriptor_group_3c77315b028a1402, []int{44} } func (m *DeleteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteGroupResp.Unmarshal(m, b) @@ -2394,7 +2394,7 @@ func (m *GetGroupByIdReq) Reset() { *m = GetGroupByIdReq{} } func (m *GetGroupByIdReq) String() string { return proto.CompactTextString(m) } func (*GetGroupByIdReq) ProtoMessage() {} func (*GetGroupByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{45} + return fileDescriptor_group_3c77315b028a1402, []int{45} } func (m *GetGroupByIdReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdReq.Unmarshal(m, b) @@ -2439,7 +2439,7 @@ func (m *GetGroupByIdResp) Reset() { *m = GetGroupByIdResp{} } func (m *GetGroupByIdResp) String() string { return proto.CompactTextString(m) } func (*GetGroupByIdResp) ProtoMessage() {} func (*GetGroupByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{46} + return fileDescriptor_group_3c77315b028a1402, []int{46} } func (m *GetGroupByIdResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupByIdResp.Unmarshal(m, b) @@ -2480,7 +2480,7 @@ func (m *GetGroupMembersCMSReq) Reset() { *m = GetGroupMembersCMSReq{} } func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSReq) ProtoMessage() {} func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{47} + return fileDescriptor_group_3c77315b028a1402, []int{47} } func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b) @@ -2541,7 +2541,7 @@ func (m *GetGroupMembersCMSResp) Reset() { *m = GetGroupMembersCMSResp{} func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSResp) ProtoMessage() {} func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{48} + return fileDescriptor_group_3c77315b028a1402, []int{48} } func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b) @@ -2596,7 +2596,7 @@ func (m *RemoveGroupMembersCMSReq) Reset() { *m = RemoveGroupMembersCMSR func (m *RemoveGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSReq) ProtoMessage() {} func (*RemoveGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{49} + return fileDescriptor_group_3c77315b028a1402, []int{49} } func (m *RemoveGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSReq.Unmarshal(m, b) @@ -2656,7 +2656,7 @@ func (m *RemoveGroupMembersCMSResp) Reset() { *m = RemoveGroupMembersCMS func (m *RemoveGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*RemoveGroupMembersCMSResp) ProtoMessage() {} func (*RemoveGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{50} + return fileDescriptor_group_3c77315b028a1402, []int{50} } func (m *RemoveGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveGroupMembersCMSResp.Unmarshal(m, b) @@ -2704,7 +2704,7 @@ func (m *AddGroupMembersCMSReq) Reset() { *m = AddGroupMembersCMSReq{} } func (m *AddGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSReq) ProtoMessage() {} func (*AddGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{51} + return fileDescriptor_group_3c77315b028a1402, []int{51} } func (m *AddGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSReq.Unmarshal(m, b) @@ -2764,7 +2764,7 @@ func (m *AddGroupMembersCMSResp) Reset() { *m = AddGroupMembersCMSResp{} func (m *AddGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*AddGroupMembersCMSResp) ProtoMessage() {} func (*AddGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{52} + return fileDescriptor_group_3c77315b028a1402, []int{52} } func (m *AddGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddGroupMembersCMSResp.Unmarshal(m, b) @@ -2811,7 +2811,7 @@ func (m *DismissGroupReq) Reset() { *m = DismissGroupReq{} } func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) } func (*DismissGroupReq) ProtoMessage() {} func (*DismissGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{53} + return fileDescriptor_group_3c77315b028a1402, []int{53} } func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b) @@ -2863,7 +2863,7 @@ func (m *DismissGroupResp) Reset() { *m = DismissGroupResp{} } func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) } func (*DismissGroupResp) ProtoMessage() {} func (*DismissGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_48ef48bf92e641e9, []int{54} + return fileDescriptor_group_3c77315b028a1402, []int{54} } func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b) @@ -2890,6 +2890,398 @@ func (m *DismissGroupResp) GetCommonResp() *CommonResp { return nil } +type MuteGroupMemberReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + UserID string `protobuf:"bytes,4,opt,name=userID" json:"userID,omitempty"` + MutedSeconds uint32 `protobuf:"varint,5,opt,name=mutedSeconds" json:"mutedSeconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MuteGroupMemberReq) Reset() { *m = MuteGroupMemberReq{} } +func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) } +func (*MuteGroupMemberReq) ProtoMessage() {} +func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{55} +} +func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b) +} +func (m *MuteGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MuteGroupMemberReq.Marshal(b, m, deterministic) +} +func (dst *MuteGroupMemberReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_MuteGroupMemberReq.Merge(dst, src) +} +func (m *MuteGroupMemberReq) XXX_Size() int { + return xxx_messageInfo_MuteGroupMemberReq.Size(m) +} +func (m *MuteGroupMemberReq) XXX_DiscardUnknown() { + xxx_messageInfo_MuteGroupMemberReq.DiscardUnknown(m) +} + +var xxx_messageInfo_MuteGroupMemberReq proto.InternalMessageInfo + +func (m *MuteGroupMemberReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *MuteGroupMemberReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *MuteGroupMemberReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *MuteGroupMemberReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *MuteGroupMemberReq) GetMutedSeconds() uint32 { + if m != nil { + return m.MutedSeconds + } + return 0 +} + +type MuteGroupMemberResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MuteGroupMemberResp) Reset() { *m = MuteGroupMemberResp{} } +func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) } +func (*MuteGroupMemberResp) ProtoMessage() {} +func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{56} +} +func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b) +} +func (m *MuteGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MuteGroupMemberResp.Marshal(b, m, deterministic) +} +func (dst *MuteGroupMemberResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_MuteGroupMemberResp.Merge(dst, src) +} +func (m *MuteGroupMemberResp) XXX_Size() int { + return xxx_messageInfo_MuteGroupMemberResp.Size(m) +} +func (m *MuteGroupMemberResp) XXX_DiscardUnknown() { + xxx_messageInfo_MuteGroupMemberResp.DiscardUnknown(m) +} + +var xxx_messageInfo_MuteGroupMemberResp proto.InternalMessageInfo + +func (m *MuteGroupMemberResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type CancelMuteGroupMemberReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + UserID string `protobuf:"bytes,4,opt,name=userID" json:"userID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberReq{} } +func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) } +func (*CancelMuteGroupMemberReq) ProtoMessage() {} +func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{57} +} +func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b) +} +func (m *CancelMuteGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelMuteGroupMemberReq.Marshal(b, m, deterministic) +} +func (dst *CancelMuteGroupMemberReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelMuteGroupMemberReq.Merge(dst, src) +} +func (m *CancelMuteGroupMemberReq) XXX_Size() int { + return xxx_messageInfo_CancelMuteGroupMemberReq.Size(m) +} +func (m *CancelMuteGroupMemberReq) XXX_DiscardUnknown() { + xxx_messageInfo_CancelMuteGroupMemberReq.DiscardUnknown(m) +} + +var xxx_messageInfo_CancelMuteGroupMemberReq proto.InternalMessageInfo + +func (m *CancelMuteGroupMemberReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *CancelMuteGroupMemberReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *CancelMuteGroupMemberReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *CancelMuteGroupMemberReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +type CancelMuteGroupMemberResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMemberResp{} } +func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) } +func (*CancelMuteGroupMemberResp) ProtoMessage() {} +func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{58} +} +func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b) +} +func (m *CancelMuteGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelMuteGroupMemberResp.Marshal(b, m, deterministic) +} +func (dst *CancelMuteGroupMemberResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelMuteGroupMemberResp.Merge(dst, src) +} +func (m *CancelMuteGroupMemberResp) XXX_Size() int { + return xxx_messageInfo_CancelMuteGroupMemberResp.Size(m) +} +func (m *CancelMuteGroupMemberResp) XXX_DiscardUnknown() { + xxx_messageInfo_CancelMuteGroupMemberResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CancelMuteGroupMemberResp proto.InternalMessageInfo + +func (m *CancelMuteGroupMemberResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type MuteGroupReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MuteGroupReq) Reset() { *m = MuteGroupReq{} } +func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) } +func (*MuteGroupReq) ProtoMessage() {} +func (*MuteGroupReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{59} +} +func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b) +} +func (m *MuteGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MuteGroupReq.Marshal(b, m, deterministic) +} +func (dst *MuteGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_MuteGroupReq.Merge(dst, src) +} +func (m *MuteGroupReq) XXX_Size() int { + return xxx_messageInfo_MuteGroupReq.Size(m) +} +func (m *MuteGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_MuteGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_MuteGroupReq proto.InternalMessageInfo + +func (m *MuteGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *MuteGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *MuteGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +type MuteGroupResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MuteGroupResp) Reset() { *m = MuteGroupResp{} } +func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) } +func (*MuteGroupResp) ProtoMessage() {} +func (*MuteGroupResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{60} +} +func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b) +} +func (m *MuteGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MuteGroupResp.Marshal(b, m, deterministic) +} +func (dst *MuteGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_MuteGroupResp.Merge(dst, src) +} +func (m *MuteGroupResp) XXX_Size() int { + return xxx_messageInfo_MuteGroupResp.Size(m) +} +func (m *MuteGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_MuteGroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_MuteGroupResp proto.InternalMessageInfo + +func (m *MuteGroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type CancelMuteGroupReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CancelMuteGroupReq) Reset() { *m = CancelMuteGroupReq{} } +func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) } +func (*CancelMuteGroupReq) ProtoMessage() {} +func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{61} +} +func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b) +} +func (m *CancelMuteGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelMuteGroupReq.Marshal(b, m, deterministic) +} +func (dst *CancelMuteGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelMuteGroupReq.Merge(dst, src) +} +func (m *CancelMuteGroupReq) XXX_Size() int { + return xxx_messageInfo_CancelMuteGroupReq.Size(m) +} +func (m *CancelMuteGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_CancelMuteGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_CancelMuteGroupReq proto.InternalMessageInfo + +func (m *CancelMuteGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *CancelMuteGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *CancelMuteGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +type CancelMuteGroupResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CancelMuteGroupResp) Reset() { *m = CancelMuteGroupResp{} } +func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) } +func (*CancelMuteGroupResp) ProtoMessage() {} +func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{62} +} +func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b) +} +func (m *CancelMuteGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelMuteGroupResp.Marshal(b, m, deterministic) +} +func (dst *CancelMuteGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelMuteGroupResp.Merge(dst, src) +} +func (m *CancelMuteGroupResp) XXX_Size() int { + return xxx_messageInfo_CancelMuteGroupResp.Size(m) +} +func (m *CancelMuteGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_CancelMuteGroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CancelMuteGroupResp proto.InternalMessageInfo + +func (m *CancelMuteGroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + func init() { proto.RegisterType((*CommonResp)(nil), "group.CommonResp") proto.RegisterType((*GroupAddMemberInfo)(nil), "group.GroupAddMemberInfo") @@ -2946,6 +3338,14 @@ func init() { proto.RegisterType((*AddGroupMembersCMSResp)(nil), "group.AddGroupMembersCMSResp") proto.RegisterType((*DismissGroupReq)(nil), "group.DismissGroupReq") proto.RegisterType((*DismissGroupResp)(nil), "group.DismissGroupResp") + proto.RegisterType((*MuteGroupMemberReq)(nil), "group.MuteGroupMemberReq") + proto.RegisterType((*MuteGroupMemberResp)(nil), "group.MuteGroupMemberResp") + proto.RegisterType((*CancelMuteGroupMemberReq)(nil), "group.CancelMuteGroupMemberReq") + proto.RegisterType((*CancelMuteGroupMemberResp)(nil), "group.CancelMuteGroupMemberResp") + proto.RegisterType((*MuteGroupReq)(nil), "group.MuteGroupReq") + proto.RegisterType((*MuteGroupResp)(nil), "group.MuteGroupResp") + proto.RegisterType((*CancelMuteGroupReq)(nil), "group.CancelMuteGroupReq") + proto.RegisterType((*CancelMuteGroupResp)(nil), "group.CancelMuteGroupResp") } // Reference imports to suppress errors if they are not otherwise used. @@ -2984,6 +3384,10 @@ type GroupClient interface { RemoveGroupMembersCMS(ctx context.Context, in *RemoveGroupMembersCMSReq, opts ...grpc.CallOption) (*RemoveGroupMembersCMSResp, error) AddGroupMembersCMS(ctx context.Context, in *AddGroupMembersCMSReq, opts ...grpc.CallOption) (*AddGroupMembersCMSResp, error) DismissGroup(ctx context.Context, in *DismissGroupReq, opts ...grpc.CallOption) (*DismissGroupResp, error) + MuteGroupMember(ctx context.Context, in *MuteGroupMemberReq, opts ...grpc.CallOption) (*MuteGroupMemberResp, error) + CancelMuteGroupMember(ctx context.Context, in *CancelMuteGroupMemberReq, opts ...grpc.CallOption) (*CancelMuteGroupMemberResp, error) + MuteGroup(ctx context.Context, in *MuteGroupReq, opts ...grpc.CallOption) (*MuteGroupResp, error) + CancelMuteGroup(ctx context.Context, in *CancelMuteGroupReq, opts ...grpc.CallOption) (*CancelMuteGroupResp, error) } type groupClient struct { @@ -3219,6 +3623,42 @@ func (c *groupClient) DismissGroup(ctx context.Context, in *DismissGroupReq, opt return out, nil } +func (c *groupClient) MuteGroupMember(ctx context.Context, in *MuteGroupMemberReq, opts ...grpc.CallOption) (*MuteGroupMemberResp, error) { + out := new(MuteGroupMemberResp) + err := grpc.Invoke(ctx, "/group.group/MuteGroupMember", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) CancelMuteGroupMember(ctx context.Context, in *CancelMuteGroupMemberReq, opts ...grpc.CallOption) (*CancelMuteGroupMemberResp, error) { + out := new(CancelMuteGroupMemberResp) + err := grpc.Invoke(ctx, "/group.group/CancelMuteGroupMember", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) MuteGroup(ctx context.Context, in *MuteGroupReq, opts ...grpc.CallOption) (*MuteGroupResp, error) { + out := new(MuteGroupResp) + err := grpc.Invoke(ctx, "/group.group/MuteGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) CancelMuteGroup(ctx context.Context, in *CancelMuteGroupReq, opts ...grpc.CallOption) (*CancelMuteGroupResp, error) { + out := new(CancelMuteGroupResp) + err := grpc.Invoke(ctx, "/group.group/CancelMuteGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for Group service type GroupServer interface { @@ -3247,6 +3687,10 @@ type GroupServer interface { RemoveGroupMembersCMS(context.Context, *RemoveGroupMembersCMSReq) (*RemoveGroupMembersCMSResp, error) AddGroupMembersCMS(context.Context, *AddGroupMembersCMSReq) (*AddGroupMembersCMSResp, error) DismissGroup(context.Context, *DismissGroupReq) (*DismissGroupResp, error) + MuteGroupMember(context.Context, *MuteGroupMemberReq) (*MuteGroupMemberResp, error) + CancelMuteGroupMember(context.Context, *CancelMuteGroupMemberReq) (*CancelMuteGroupMemberResp, error) + MuteGroup(context.Context, *MuteGroupReq) (*MuteGroupResp, error) + CancelMuteGroup(context.Context, *CancelMuteGroupReq) (*CancelMuteGroupResp, error) } func RegisterGroupServer(s *grpc.Server, srv GroupServer) { @@ -3703,6 +4147,78 @@ func _Group_DismissGroup_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } +func _Group_MuteGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MuteGroupMemberReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).MuteGroupMember(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/MuteGroupMember", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).MuteGroupMember(ctx, req.(*MuteGroupMemberReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_CancelMuteGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CancelMuteGroupMemberReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).CancelMuteGroupMember(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/CancelMuteGroupMember", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).CancelMuteGroupMember(ctx, req.(*CancelMuteGroupMemberReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_MuteGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MuteGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).MuteGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/MuteGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).MuteGroup(ctx, req.(*MuteGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_CancelMuteGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CancelMuteGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).CancelMuteGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/CancelMuteGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).CancelMuteGroup(ctx, req.(*CancelMuteGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + var _Group_serviceDesc = grpc.ServiceDesc{ ServiceName: "group.group", HandlerType: (*GroupServer)(nil), @@ -3807,133 +4323,159 @@ var _Group_serviceDesc = grpc.ServiceDesc{ MethodName: "DismissGroup", Handler: _Group_DismissGroup_Handler, }, + { + MethodName: "MuteGroupMember", + Handler: _Group_MuteGroupMember_Handler, + }, + { + MethodName: "CancelMuteGroupMember", + Handler: _Group_CancelMuteGroupMember_Handler, + }, + { + MethodName: "MuteGroup", + Handler: _Group_MuteGroup_Handler, + }, + { + MethodName: "CancelMuteGroup", + Handler: _Group_CancelMuteGroup_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_48ef48bf92e641e9) } +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_3c77315b028a1402) } -var fileDescriptor_group_48ef48bf92e641e9 = []byte{ - // 1913 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4f, 0x6f, 0xdb, 0xca, - 0x11, 0x07, 0x2d, 0xcb, 0xb6, 0xc6, 0x7f, 0x64, 0xaf, 0x23, 0x5b, 0xe1, 0xd3, 0xf3, 0xf3, 0xdb, - 0x97, 0x3e, 0x18, 0xfd, 0x63, 0xa3, 0x0e, 0x90, 0x43, 0x53, 0x34, 0xf5, 0xdf, 0x44, 0x49, 0x64, - 0xd7, 0x74, 0x7a, 0xc9, 0xc5, 0x55, 0xcc, 0xb5, 0xc0, 0x5a, 0x12, 0x69, 0x2e, 0x65, 0xb7, 0xbd, - 0x04, 0xbd, 0x04, 0x08, 0xda, 0x43, 0x8b, 0x02, 0x3d, 0x15, 0x68, 0x73, 0xef, 0xa1, 0x87, 0xf6, - 0x5c, 0xf4, 0x63, 0xf4, 0x4b, 0xb4, 0x5f, 0xa1, 0xe0, 0xee, 0x72, 0xb9, 0x24, 0x97, 0xb4, 0x2c, - 0xa5, 0x2f, 0x17, 0x01, 0x33, 0x3b, 0xbb, 0xf3, 0x9b, 0xd9, 0x9d, 0xd9, 0xd9, 0xa1, 0x60, 0xa9, - 0xe3, 0xbb, 0x03, 0x6f, 0x8b, 0xfd, 0x6e, 0x7a, 0xbe, 0x1b, 0xb8, 0xa8, 0xcc, 0x08, 0xf3, 0xcb, - 0x63, 0x8f, 0xf4, 0xcf, 0x9a, 0xad, 0x2d, 0xef, 0xb2, 0xb3, 0xc5, 0x46, 0xb6, 0xa8, 0x7d, 0x79, - 0x76, 0x43, 0xb7, 0x6e, 0x28, 0x97, 0xc4, 0x3f, 0x02, 0xd8, 0x73, 0x7b, 0x3d, 0xb7, 0x6f, 0x11, - 0xea, 0xa1, 0x3a, 0x4c, 0x1f, 0xf8, 0xfe, 0x9e, 0x6b, 0x93, 0xba, 0xb1, 0x6e, 0x6c, 0x94, 0xad, - 0x88, 0x44, 0x2b, 0x30, 0x75, 0xe0, 0xfb, 0x2d, 0xda, 0xa9, 0x4f, 0xac, 0x1b, 0x1b, 0x15, 0x4b, - 0x50, 0xf8, 0x39, 0xa0, 0xa7, 0xa1, 0xae, 0x1d, 0xdb, 0x6e, 0x91, 0xde, 0x1b, 0xe2, 0x37, 0xfb, - 0x17, 0x6e, 0x28, 0xfd, 0x53, 0x4a, 0xfc, 0xe6, 0x3e, 0x5b, 0xa6, 0x62, 0x09, 0x0a, 0x35, 0xa0, - 0x62, 0xb9, 0x5d, 0xf2, 0x92, 0x5c, 0x93, 0x2e, 0x5b, 0xa8, 0x6c, 0xc5, 0x0c, 0xfc, 0x5f, 0x03, - 0x16, 0xf6, 0x7c, 0xd2, 0x0e, 0x08, 0x5b, 0xd2, 0x22, 0x57, 0x68, 0x07, 0x16, 0x9a, 0x7d, 0x27, - 0xe0, 0x4b, 0xbf, 0x74, 0x68, 0x50, 0x37, 0xd6, 0x4b, 0x1b, 0xb3, 0xdb, 0xf7, 0x37, 0xb9, 0xb9, - 0x59, 0xdd, 0x56, 0x6a, 0x02, 0xfa, 0x01, 0x54, 0x98, 0x54, 0x38, 0xc8, 0x74, 0xce, 0x6e, 0x37, - 0x36, 0x29, 0xf1, 0xaf, 0x89, 0x7f, 0xd6, 0xf6, 0x9c, 0x33, 0xaf, 0xed, 0xb7, 0x7b, 0x74, 0x53, - 0xca, 0x58, 0xb1, 0x38, 0x5a, 0x87, 0xd9, 0x63, 0x8f, 0xf8, 0xed, 0xc0, 0x71, 0xfb, 0xcd, 0xfd, - 0x7a, 0x89, 0x19, 0xa3, 0xb2, 0x90, 0x09, 0x33, 0xc7, 0x9e, 0xb0, 0x75, 0x92, 0x0d, 0x4b, 0x9a, - 0xcd, 0xbe, 0xe9, 0x13, 0x5f, 0x0c, 0x97, 0xc5, 0xec, 0x98, 0x85, 0xdf, 0x42, 0x35, 0x61, 0xf0, - 0x28, 0x5b, 0x90, 0x34, 0xb0, 0x74, 0x27, 0x03, 0xb1, 0x0f, 0x8b, 0x4f, 0x49, 0xc0, 0x68, 0xca, - 0xc6, 0xc8, 0x55, 0x08, 0x9b, 0x0b, 0xec, 0x4b, 0x87, 0x57, 0x2c, 0x95, 0x95, 0x76, 0xcb, 0x44, - 0xb1, 0x5b, 0x4a, 0x49, 0xb7, 0xe0, 0xf7, 0x06, 0x2c, 0xa5, 0x94, 0x8e, 0x64, 0xf7, 0x2e, 0xcc, - 0x4b, 0x43, 0x18, 0xd2, 0x12, 0x3b, 0x1a, 0xc5, 0xb6, 0x27, 0xa7, 0xe0, 0xdf, 0x18, 0x50, 0x3d, - 0x15, 0x58, 0x22, 0xfb, 0x13, 0xfe, 0x34, 0xee, 0x76, 0x60, 0x54, 0xbb, 0x27, 0x34, 0xc7, 0xa1, - 0xf0, 0x30, 0xe1, 0x03, 0x58, 0x4c, 0x82, 0xa1, 0x1e, 0xfa, 0xbe, 0x1a, 0xa0, 0x02, 0xce, 0x92, - 0x38, 0xfd, 0xf1, 0x80, 0xa5, 0x08, 0xe1, 0x5f, 0x81, 0x19, 0xf9, 0x77, 0xc7, 0xf3, 0xba, 0xce, - 0x39, 0x5b, 0x3f, 0xb4, 0x37, 0x34, 0x4f, 0x85, 0x68, 0x14, 0x43, 0xd4, 0x6c, 0xec, 0x1a, 0xc0, - 0xa1, 0xef, 0xf6, 0x12, 0x5b, 0xab, 0x70, 0xf0, 0x9f, 0x0c, 0xf8, 0x2c, 0x57, 0xf9, 0x48, 0xdb, - 0xfc, 0x02, 0x16, 0xa3, 0x74, 0x30, 0x20, 0x34, 0x50, 0x76, 0xfa, 0x8b, 0xbc, 0x5d, 0x11, 0xa2, - 0x56, 0x66, 0x22, 0x0e, 0xa0, 0xf1, 0x94, 0x04, 0x21, 0x56, 0x8b, 0x5c, 0x69, 0x9c, 0x93, 0x97, - 0xb8, 0xc6, 0xdb, 0xd7, 0x3f, 0x1b, 0xf0, 0x79, 0x81, 0xda, 0x91, 0x76, 0x59, 0xeb, 0x97, 0x89, - 0x51, 0xfd, 0xf2, 0x4f, 0x03, 0x6a, 0xaf, 0xfc, 0x76, 0x9f, 0x5e, 0x10, 0x9f, 0x0d, 0xb2, 0x2c, - 0x15, 0x7a, 0xa4, 0x0e, 0xd3, 0x22, 0xf4, 0x85, 0x4b, 0x22, 0x12, 0x7d, 0x0d, 0x0b, 0xc7, 0x5d, - 0x5b, 0xcd, 0x70, 0xdc, 0x33, 0x29, 0x6e, 0x28, 0x77, 0x44, 0x6e, 0x54, 0x39, 0xee, 0xa2, 0x14, - 0x37, 0xed, 0xc7, 0xc9, 0xe2, 0xac, 0x52, 0x4e, 0x65, 0x95, 0x17, 0xb0, 0xa2, 0x33, 0x60, 0xb4, - 0x08, 0x7a, 0x67, 0xc0, 0xdc, 0x73, 0xd7, 0xe9, 0xcb, 0x7b, 0x28, 0xdf, 0x0b, 0x6b, 0x00, 0x16, - 0xb9, 0x6a, 0x11, 0x4a, 0xdb, 0x1d, 0x22, 0x3c, 0xa0, 0x70, 0x8a, 0x32, 0xe1, 0xed, 0x16, 0xe3, - 0x5d, 0x98, 0x57, 0x70, 0x8c, 0x66, 0xcc, 0xbf, 0xc3, 0x90, 0x4c, 0xc5, 0x63, 0x38, 0xe0, 0xf6, - 0x29, 0x11, 0xf9, 0x5e, 0x45, 0x61, 0x14, 0xfb, 0x3d, 0x7d, 0xfa, 0x15, 0xcf, 0x94, 0x32, 0x9e, - 0x51, 0x52, 0xc5, 0x64, 0x3a, 0x55, 0x84, 0xe3, 0xcf, 0xda, 0x7d, 0xbb, 0x4b, 0xec, 0x30, 0xe8, - 0xf9, 0x7e, 0x2a, 0x1c, 0x84, 0x61, 0x8e, 0x53, 0x16, 0xa1, 0x83, 0x6e, 0x50, 0x9f, 0x62, 0xf9, - 0x22, 0xc1, 0xc3, 0x27, 0xd0, 0xc8, 0x37, 0x6d, 0x34, 0x77, 0x5d, 0xc0, 0xdc, 0xc9, 0xc0, 0x09, - 0x86, 0xd8, 0xfa, 0xf1, 0xae, 0xc1, 0x5d, 0x98, 0x57, 0xf4, 0x8c, 0x86, 0xf5, 0x83, 0x01, 0xb5, - 0x28, 0xdb, 0xc6, 0x25, 0x4f, 0x31, 0xea, 0xb1, 0x52, 0x59, 0x98, 0x20, 0x0f, 0x9d, 0x6e, 0x40, - 0x7c, 0xb6, 0xa1, 0x65, 0x4b, 0x50, 0xa1, 0xbe, 0x23, 0xf2, 0x8b, 0xe0, 0x94, 0x5c, 0xb1, 0x9d, - 0x2c, 0x5b, 0x11, 0x89, 0xff, 0x6a, 0xc0, 0x8a, 0x0e, 0xe3, 0x48, 0x97, 0xc1, 0x21, 0x40, 0x2f, - 0xae, 0x05, 0xf9, 0x35, 0xf0, 0x75, 0x5e, 0xba, 0xe3, 0xda, 0x0e, 0x07, 0xdd, 0x2e, 0xbb, 0x4d, - 0x95, 0x99, 0xa1, 0xe6, 0xbe, 0x80, 0xcb, 0xed, 0x88, 0x48, 0xfc, 0xbb, 0x0c, 0x5c, 0x59, 0x18, - 0x15, 0x26, 0x01, 0x05, 0xd6, 0x04, 0xab, 0x98, 0x54, 0x75, 0xe3, 0x25, 0x81, 0x3f, 0x18, 0xb0, - 0xaa, 0x85, 0xf4, 0x29, 0x5d, 0x88, 0xff, 0x66, 0x00, 0x7a, 0xe1, 0x9c, 0x5f, 0x2a, 0x72, 0xc5, - 0x4e, 0xfa, 0x36, 0x2c, 0x86, 0xf2, 0xc4, 0xe6, 0x86, 0x2b, 0xae, 0xca, 0xf0, 0x43, 0xf0, 0x16, - 0x69, 0x53, 0xb7, 0x2f, 0xdc, 0x25, 0xa8, 0xb4, 0xb3, 0xca, 0xc5, 0x21, 0x37, 0x95, 0x0a, 0xb9, - 0xc7, 0x50, 0x69, 0xda, 0xdb, 0x3c, 0x75, 0xe4, 0x5e, 0xf5, 0x4c, 0x35, 0x4b, 0x38, 0xfc, 0x81, - 0x22, 0x28, 0xfc, 0x16, 0x96, 0x33, 0xe6, 0x8e, 0xb4, 0x01, 0x8f, 0x60, 0x5e, 0xa2, 0x50, 0xf6, - 0x60, 0x51, 0x84, 0xba, 0x1c, 0xb3, 0x92, 0x62, 0x78, 0xc0, 0x62, 0x3d, 0xbc, 0x0e, 0x88, 0xcd, - 0x50, 0x44, 0xb1, 0x9e, 0x4c, 0xb4, 0x46, 0x26, 0xd1, 0xae, 0xc3, 0xac, 0x9b, 0xcd, 0x53, 0xee, - 0x90, 0x79, 0xea, 0x1d, 0x0f, 0x88, 0x8c, 0xde, 0xb1, 0xde, 0x2a, 0x43, 0xd7, 0xeb, 0xb1, 0x38, - 0xfe, 0xbb, 0x01, 0xf7, 0x9a, 0xfd, 0x6b, 0x27, 0x20, 0x21, 0xb2, 0x57, 0xae, 0xcc, 0xd0, 0xb7, - 0xe7, 0xe1, 0xfc, 0x4b, 0x2a, 0x3e, 0x68, 0x93, 0x89, 0x83, 0xf6, 0x5d, 0x58, 0xe2, 0xba, 0xd4, - 0xd3, 0x5a, 0x66, 0xa7, 0x35, 0x3b, 0x50, 0x78, 0xe8, 0x7e, 0x6d, 0x40, 0x4d, 0x03, 0xfb, 0x1b, - 0x3d, 0x3a, 0x7d, 0xb8, 0x27, 0x8b, 0xf2, 0x6e, 0x77, 0x98, 0x60, 0x1d, 0xaf, 0xe0, 0xfd, 0xbd, - 0x72, 0x2f, 0x29, 0x0a, 0x3f, 0x69, 0xbe, 0xfa, 0xa3, 0x01, 0x33, 0x7b, 0xad, 0x53, 0x26, 0x36, - 0xd6, 0x1b, 0x6f, 0x03, 0xaa, 0x5c, 0x57, 0x9b, 0x06, 0xc4, 0x3f, 0x6a, 0xf7, 0xa2, 0xb2, 0x2f, - 0xcd, 0x46, 0x0f, 0xc4, 0x0b, 0x95, 0xb3, 0x9a, 0xb6, 0x70, 0x55, 0x92, 0x19, 0xa6, 0xf7, 0xd9, - 0xc8, 0x59, 0xe1, 0xa6, 0x34, 0x04, 0x36, 0xb6, 0x32, 0xdf, 0x96, 0x98, 0x81, 0xf6, 0x01, 0x7e, - 0xd2, 0xee, 0x38, 0x7d, 0xe6, 0x6a, 0xd1, 0xcf, 0x78, 0xa0, 0x81, 0x2e, 0xaa, 0xfb, 0x58, 0xd6, - 0x52, 0xe6, 0x0d, 0xb1, 0x85, 0x1f, 0x0c, 0x98, 0x8b, 0x51, 0x51, 0x0f, 0x7d, 0x0f, 0x2a, 0x91, - 0xfb, 0xa8, 0xe8, 0xc2, 0x54, 0xa3, 0xea, 0x44, 0xf0, 0xad, 0x58, 0xe2, 0x23, 0xe1, 0x94, 0xbe, - 0x18, 0xf4, 0x28, 0x43, 0x59, 0xb6, 0x62, 0x06, 0xbe, 0x8e, 0x21, 0xd2, 0xd0, 0x73, 0x49, 0x9d, - 0xc6, 0xc7, 0xf1, 0x4d, 0x36, 0x9d, 0xe0, 0xbf, 0x18, 0x30, 0xaf, 0x28, 0xfe, 0x54, 0xce, 0x31, - 0x61, 0x26, 0xf2, 0x85, 0xf0, 0x8d, 0xa4, 0xf1, 0x71, 0xdc, 0x63, 0xd1, 0x84, 0xbb, 0x9d, 0x0c, - 0x77, 0x7b, 0x08, 0x9b, 0x2f, 0xa1, 0xc6, 0x49, 0xde, 0xab, 0x3a, 0x0d, 0xda, 0xc1, 0x80, 0x16, - 0x2f, 0xba, 0x02, 0x53, 0x5c, 0x2c, 0xba, 0x49, 0x39, 0x35, 0xc4, 0xe1, 0xab, 0xc3, 0x8a, 0x4e, - 0x19, 0x7f, 0x99, 0x21, 0x31, 0xc4, 0x9e, 0xd3, 0x6e, 0x97, 0xdc, 0x0a, 0x82, 0xa5, 0x2d, 0x3b, - 0x4a, 0x2b, 0x9c, 0x4a, 0xb6, 0x22, 0x4b, 0xa9, 0x56, 0xe4, 0x10, 0x45, 0x59, 0x0d, 0x96, 0x33, - 0x38, 0xa8, 0x87, 0x5f, 0xc2, 0xc2, 0x3e, 0xe9, 0x12, 0xa5, 0x85, 0x39, 0x8e, 0xd3, 0x97, 0xa0, - 0x9a, 0x58, 0x8d, 0x7a, 0xb8, 0x05, 0xd5, 0x68, 0x63, 0x77, 0x7f, 0xd9, 0xb4, 0xc7, 0xd5, 0xf0, - 0x24, 0x6e, 0x00, 0xf2, 0xe5, 0xa8, 0x87, 0xbe, 0x13, 0x27, 0x4a, 0x11, 0x44, 0x99, 0xb3, 0x2c, - 0x05, 0xf0, 0x3f, 0x32, 0x4f, 0x10, 0xba, 0xd7, 0x3a, 0x2d, 0x86, 0x65, 0xc2, 0x4c, 0xe8, 0x34, - 0x25, 0x75, 0x4a, 0x3a, 0x15, 0x1a, 0xa5, 0x8f, 0x13, 0xc3, 0x9a, 0xfd, 0xfb, 0x57, 0xb6, 0xce, - 0x67, 0xb8, 0xa9, 0x87, 0x7e, 0x0c, 0xd3, 0xfc, 0xde, 0x88, 0x42, 0x79, 0xd8, 0xeb, 0x26, 0x9a, - 0x86, 0x0e, 0x34, 0xf1, 0xfd, 0x2d, 0xad, 0x11, 0xfc, 0xad, 0x9a, 0x63, 0xc5, 0x1a, 0x00, 0xd7, - 0xa0, 0xa4, 0x3f, 0x85, 0x83, 0x7f, 0x6b, 0x40, 0xdd, 0x22, 0x3d, 0xf7, 0x9a, 0xdc, 0xc9, 0xfd, - 0x75, 0x98, 0xe6, 0x41, 0x40, 0x45, 0xfd, 0x1d, 0x91, 0x77, 0xea, 0x77, 0xdb, 0xa9, 0x7e, 0xb7, - 0x8d, 0x5b, 0x70, 0x3f, 0x07, 0x0d, 0xbf, 0xf8, 0xe9, 0xe0, 0xfc, 0x9c, 0x50, 0x2a, 0x3a, 0xca, - 0x11, 0x19, 0x46, 0xe8, 0x45, 0xdb, 0xe9, 0x12, 0x5b, 0xa0, 0x11, 0x14, 0x7e, 0x6f, 0x40, 0x6d, - 0xc7, 0xb6, 0xff, 0x1f, 0xa6, 0xd9, 0x59, 0xd3, 0xec, 0x42, 0xd3, 0x9e, 0xc3, 0x8a, 0x0e, 0xca, - 0x48, 0x76, 0x39, 0x50, 0xdd, 0x77, 0x68, 0xcf, 0xa1, 0x54, 0xe6, 0x08, 0x13, 0x66, 0xdc, 0x54, - 0x4f, 0xd6, 0xf5, 0x86, 0xae, 0xde, 0xeb, 0x30, 0xdd, 0x49, 0x56, 0xb7, 0x82, 0xc4, 0x07, 0xb0, - 0x98, 0x54, 0xc5, 0xdb, 0x0c, 0xe7, 0xc3, 0xb4, 0x19, 0x62, 0xa1, 0xed, 0xff, 0x2c, 0x00, 0xff, - 0xa2, 0x84, 0x7e, 0x08, 0xb3, 0xe7, 0xf1, 0x07, 0x0b, 0x54, 0x8b, 0xe6, 0x25, 0xbe, 0xda, 0x98, - 0x2b, 0x3a, 0x36, 0xf5, 0xd0, 0x23, 0xa8, 0xfc, 0x3c, 0xea, 0x66, 0xa1, 0x65, 0x21, 0xa4, 0xf6, - 0xd9, 0xcc, 0x7b, 0x59, 0x26, 0x9f, 0x77, 0x15, 0xb5, 0x4a, 0xe4, 0x3c, 0xb5, 0x49, 0x23, 0xe7, - 0x25, 0x3b, 0x2a, 0xbb, 0x30, 0xdf, 0x51, 0x3f, 0x34, 0xa0, 0xd5, 0xe8, 0xb3, 0x51, 0xea, 0x9b, - 0x87, 0x59, 0xd7, 0x0f, 0x50, 0x0f, 0x3d, 0x81, 0x39, 0xaa, 0xf4, 0xe4, 0x51, 0x64, 0x5b, 0xea, - 0xab, 0x81, 0xb9, 0xaa, 0xe5, 0x53, 0x0f, 0xfd, 0x0c, 0x56, 0x3b, 0xfa, 0x86, 0x38, 0xfa, 0x32, - 0xa5, 0x35, 0xdb, 0x90, 0x36, 0xf1, 0x6d, 0x22, 0xd4, 0x43, 0x17, 0x70, 0xbf, 0x93, 0xd7, 0x5d, - 0x46, 0x5f, 0xc5, 0x0b, 0xe4, 0xb6, 0xbd, 0xcd, 0x07, 0xb7, 0x0b, 0x51, 0x0f, 0x9d, 0x00, 0x0a, - 0x32, 0x2d, 0x56, 0xd4, 0x10, 0x73, 0xb5, 0xed, 0x63, 0xf3, 0xf3, 0x82, 0x51, 0xea, 0xa1, 0x73, - 0xa8, 0x77, 0x72, 0xfa, 0x77, 0x08, 0x27, 0xbe, 0xf1, 0x69, 0x7b, 0x97, 0xe6, 0x57, 0xb7, 0xca, - 0x70, 0xdc, 0x9d, 0x4c, 0x03, 0x4a, 0xe2, 0xd6, 0xf6, 0xcf, 0x24, 0xee, 0x9c, 0xce, 0xd5, 0x2b, - 0x58, 0xee, 0x64, 0x3b, 0x32, 0x48, 0x3f, 0x4b, 0x9e, 0xb2, 0xb5, 0xa2, 0x61, 0xea, 0xa1, 0x67, - 0x50, 0xbd, 0x4c, 0xb6, 0x18, 0x50, 0xf4, 0xa1, 0x33, 0xdb, 0x69, 0x31, 0xcd, 0xbc, 0x21, 0x69, - 0x72, 0xea, 0xcd, 0xae, 0x9a, 0x9c, 0x6d, 0x23, 0xa8, 0x26, 0xeb, 0x1e, 0xfb, 0x47, 0xb0, 0xe4, - 0xa4, 0x9f, 0xb1, 0xe8, 0xb3, 0xe8, 0xe5, 0xa9, 0x79, 0x97, 0x9b, 0x8d, 0xfc, 0x41, 0xbe, 0x5e, - 0x27, 0xfd, 0x44, 0x94, 0xeb, 0xe9, 0x5e, 0xab, 0x66, 0x23, 0x7f, 0x90, 0x07, 0xaa, 0x5a, 0xc9, - 0xc8, 0x40, 0x4d, 0x55, 0x4b, 0xe6, 0xaa, 0x96, 0x4f, 0x3d, 0xf4, 0x10, 0x66, 0x22, 0x1e, 0x42, - 0x29, 0xa1, 0x70, 0xe2, 0x72, 0x86, 0xc7, 0x53, 0x93, 0xcc, 0x19, 0x28, 0x2d, 0x41, 0xd5, 0xd4, - 0x94, 0x7c, 0x30, 0x9c, 0xc8, 0x32, 0x56, 0xa9, 0x70, 0xe5, 0x06, 0x69, 0x2b, 0x6d, 0xb9, 0x41, - 0xfa, 0xd2, 0x38, 0x3c, 0x3d, 0xa9, 0x8a, 0x54, 0x9e, 0x9e, 0x6c, 0xc5, 0x2c, 0x4f, 0x8f, 0xa6, - 0x88, 0x0d, 0xb3, 0xbc, 0x52, 0x76, 0xca, 0x2c, 0x9f, 0x2c, 0x6c, 0x65, 0x96, 0x4f, 0x55, 0xa8, - 0xa1, 0x69, 0xd9, 0xc2, 0x2a, 0x27, 0xdc, 0xc4, 0x8d, 0x9e, 0x13, 0x6e, 0xf2, 0x92, 0x7d, 0x0d, - 0x35, 0x6d, 0x65, 0x81, 0xbe, 0x10, 0xf3, 0xf2, 0xaa, 0x20, 0x73, 0xbd, 0x58, 0x80, 0xc3, 0xcd, - 0x5e, 0xed, 0x12, 0xae, 0xb6, 0x00, 0x91, 0x70, 0x73, 0x6a, 0x82, 0x27, 0x30, 0xa7, 0x5e, 0xbb, - 0xf2, 0x28, 0xa6, 0xae, 0x7d, 0x79, 0x14, 0xd3, 0x77, 0xf4, 0x6e, 0xf5, 0xf5, 0xfc, 0x26, 0xff, - 0x43, 0xc7, 0x63, 0xf6, 0xfb, 0x66, 0x8a, 0xfd, 0x5b, 0xe3, 0xe1, 0xff, 0x02, 0x00, 0x00, 0xff, - 0xff, 0x9c, 0x9b, 0x8c, 0x7a, 0xec, 0x21, 0x00, 0x00, +var fileDescriptor_group_3c77315b028a1402 = []byte{ + // 2068 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4f, 0x6f, 0xdb, 0xc8, + 0x15, 0x07, 0xed, 0xc8, 0xb6, 0x9e, 0xad, 0xc8, 0x1e, 0x47, 0xb6, 0xc2, 0xf5, 0x66, 0xbd, 0xb3, + 0xe9, 0x22, 0xe8, 0x1f, 0x1b, 0xcd, 0x02, 0x39, 0x74, 0x8b, 0xa6, 0xf1, 0x9f, 0xc4, 0x4a, 0x22, + 0xbb, 0xa1, 0xd3, 0x4b, 0x2e, 0xa9, 0x56, 0x1c, 0x0b, 0xaa, 0x25, 0x92, 0xe6, 0x50, 0x4e, 0xdb, + 0xcb, 0xa2, 0x97, 0x05, 0xb6, 0xed, 0xa1, 0x45, 0x81, 0x3d, 0x15, 0x68, 0x73, 0xeb, 0xa1, 0x87, + 0x1e, 0xda, 0x73, 0xd1, 0x8f, 0xd1, 0x4f, 0xd1, 0xaf, 0x50, 0x70, 0x66, 0x38, 0x1c, 0x0e, 0x87, + 0xb4, 0x42, 0x25, 0xcd, 0x45, 0xc0, 0xbc, 0x79, 0xc3, 0xf7, 0x7b, 0x6f, 0xe6, 0xbd, 0x79, 0xef, + 0x8d, 0x60, 0x6d, 0x10, 0xfa, 0x93, 0x60, 0x97, 0xfd, 0xee, 0x04, 0xa1, 0x1f, 0xf9, 0xa8, 0xc6, + 0x06, 0xf6, 0xc7, 0x27, 0x01, 0xf1, 0x5e, 0x76, 0xba, 0xbb, 0xc1, 0xf9, 0x60, 0x97, 0xcd, 0xec, + 0x52, 0xf7, 0xfc, 0xe5, 0x2b, 0xba, 0xfb, 0x8a, 0x72, 0x4e, 0xfc, 0x23, 0x80, 0x7d, 0x7f, 0x3c, + 0xf6, 0x3d, 0x87, 0xd0, 0x00, 0xb5, 0x61, 0xf1, 0x30, 0x0c, 0xf7, 0x7d, 0x97, 0xb4, 0xad, 0x6d, + 0xeb, 0x4e, 0xcd, 0x49, 0x86, 0x68, 0x03, 0x16, 0x0e, 0xc3, 0xb0, 0x4b, 0x07, 0xed, 0xb9, 0x6d, + 0xeb, 0x4e, 0xdd, 0x11, 0x23, 0xfc, 0x18, 0xd0, 0xa3, 0x58, 0xd6, 0x03, 0xd7, 0xed, 0x92, 0xf1, + 0x17, 0x24, 0xec, 0x78, 0x67, 0x7e, 0xcc, 0xfd, 0x53, 0x4a, 0xc2, 0xce, 0x01, 0xfb, 0x4c, 0xdd, + 0x11, 0x23, 0xb4, 0x05, 0x75, 0xc7, 0x1f, 0x91, 0xa7, 0xe4, 0x92, 0x8c, 0xd8, 0x87, 0x6a, 0x4e, + 0x4a, 0xc0, 0xff, 0xb5, 0xe0, 0xfa, 0x7e, 0x48, 0x7a, 0x11, 0x61, 0x9f, 0x74, 0xc8, 0x05, 0x7a, + 0x00, 0xd7, 0x3b, 0xde, 0x30, 0xe2, 0x9f, 0x7e, 0x3a, 0xa4, 0x51, 0xdb, 0xda, 0x9e, 0xbf, 0xb3, + 0x7c, 0xf7, 0xe6, 0x0e, 0x57, 0x37, 0x2f, 0xdb, 0xd1, 0x16, 0xa0, 0x1f, 0x40, 0x9d, 0x71, 0xc5, + 0x93, 0x4c, 0xe6, 0xf2, 0xdd, 0xad, 0x1d, 0x4a, 0xc2, 0x4b, 0x12, 0xbe, 0xec, 0x05, 0xc3, 0x97, + 0x41, 0x2f, 0xec, 0x8d, 0xe9, 0x8e, 0xe4, 0x71, 0x52, 0x76, 0xb4, 0x0d, 0xcb, 0x27, 0x01, 0x09, + 0x7b, 0xd1, 0xd0, 0xf7, 0x3a, 0x07, 0xed, 0x79, 0xa6, 0x8c, 0x4a, 0x42, 0x36, 0x2c, 0x9d, 0x04, + 0x42, 0xd7, 0x6b, 0x6c, 0x5a, 0x8e, 0xd9, 0xea, 0x57, 0x1e, 0x09, 0xc5, 0x74, 0x4d, 0xac, 0x4e, + 0x49, 0xf8, 0x4b, 0x68, 0x66, 0x14, 0xae, 0xb2, 0x05, 0x59, 0x05, 0xe7, 0xdf, 0x48, 0x41, 0x1c, + 0xc2, 0xea, 0x23, 0x12, 0xb1, 0x31, 0x65, 0x73, 0xe4, 0x22, 0x86, 0xcd, 0x19, 0x0e, 0xa4, 0xc1, + 0xeb, 0x8e, 0x4a, 0xd2, 0xcd, 0x32, 0x57, 0x6e, 0x96, 0xf9, 0xac, 0x59, 0xf0, 0xd7, 0x16, 0xac, + 0x69, 0x42, 0x2b, 0xe9, 0xbd, 0x07, 0x0d, 0xa9, 0x08, 0x43, 0x3a, 0xcf, 0x8e, 0x46, 0xb9, 0xee, + 0xd9, 0x25, 0xf8, 0xb7, 0x16, 0x34, 0x4f, 0x05, 0x96, 0x44, 0xff, 0x8c, 0x3d, 0xad, 0x37, 0x3b, + 0x30, 0xaa, 0xde, 0x73, 0x86, 0xe3, 0x50, 0x7a, 0x98, 0xf0, 0x21, 0xac, 0x66, 0xc1, 0xd0, 0x00, + 0x7d, 0x5f, 0x75, 0x50, 0x01, 0x67, 0x4d, 0x9c, 0xfe, 0x74, 0xc2, 0x51, 0x98, 0xf0, 0xaf, 0xc0, + 0x4e, 0xec, 0xfb, 0x20, 0x08, 0x46, 0xc3, 0x3e, 0xfb, 0x7e, 0xac, 0x6f, 0xac, 0x9e, 0x0a, 0xd1, + 0x2a, 0x87, 0x68, 0xd8, 0xd8, 0x5b, 0x00, 0x0f, 0x43, 0x7f, 0x9c, 0xd9, 0x5a, 0x85, 0x82, 0xff, + 0x64, 0xc1, 0x07, 0x85, 0xc2, 0x2b, 0x6d, 0xf3, 0x13, 0x58, 0x4d, 0xc2, 0xc1, 0x84, 0xd0, 0x48, + 0xd9, 0xe9, 0x8f, 0x8a, 0x76, 0x45, 0xb0, 0x3a, 0xb9, 0x85, 0x38, 0x82, 0xad, 0x47, 0x24, 0x8a, + 0xb1, 0x3a, 0xe4, 0xc2, 0x60, 0x9c, 0xa2, 0xc0, 0x35, 0xdb, 0xbe, 0xfe, 0xd9, 0x82, 0x0f, 0x4b, + 0xc4, 0x56, 0xda, 0x65, 0xa3, 0x5d, 0xe6, 0xaa, 0xda, 0xe5, 0x5f, 0x16, 0xb4, 0x9e, 0x87, 0x3d, + 0x8f, 0x9e, 0x91, 0x90, 0x4d, 0xb2, 0x28, 0x15, 0x5b, 0xa4, 0x0d, 0x8b, 0xc2, 0xf5, 0x85, 0x49, + 0x92, 0x21, 0xfa, 0x14, 0xae, 0x9f, 0x8c, 0x5c, 0x35, 0xc2, 0x71, 0xcb, 0x68, 0xd4, 0x98, 0xef, + 0x98, 0xbc, 0x52, 0xf9, 0xb8, 0x89, 0x34, 0xaa, 0x6e, 0xc7, 0x6b, 0xe5, 0x51, 0xa5, 0xa6, 0x45, + 0x95, 0x27, 0xb0, 0x61, 0x52, 0xa0, 0x9a, 0x07, 0x7d, 0x65, 0xc1, 0xca, 0x63, 0x7f, 0xe8, 0xc9, + 0x7b, 0xa8, 0xd8, 0x0a, 0xb7, 0x00, 0x1c, 0x72, 0xd1, 0x25, 0x94, 0xf6, 0x06, 0x44, 0x58, 0x40, + 0xa1, 0x94, 0x45, 0xc2, 0xab, 0x35, 0xc6, 0x7b, 0xd0, 0x50, 0x70, 0x54, 0x53, 0xe6, 0x3f, 0xb1, + 0x4b, 0x6a, 0xfe, 0x18, 0x4f, 0xf8, 0x1e, 0x25, 0x22, 0xde, 0xab, 0x28, 0xac, 0x72, 0xbb, 0xeb, + 0xa7, 0x5f, 0xb1, 0xcc, 0x7c, 0xce, 0x32, 0x4a, 0xa8, 0xb8, 0xa6, 0x87, 0x8a, 0x78, 0xfe, 0xa8, + 0xe7, 0xb9, 0x23, 0xe2, 0xc6, 0x4e, 0xcf, 0xf7, 0x53, 0xa1, 0x20, 0x0c, 0x2b, 0x7c, 0xe4, 0x10, + 0x3a, 0x19, 0x45, 0xed, 0x05, 0x16, 0x2f, 0x32, 0x34, 0xfc, 0x0c, 0xb6, 0x8a, 0x55, 0xab, 0x66, + 0xae, 0x33, 0x58, 0x79, 0x36, 0x19, 0x46, 0x53, 0x6c, 0xfd, 0x6c, 0xd7, 0xe0, 0x1e, 0x34, 0x14, + 0x39, 0xd5, 0xb0, 0xbe, 0xb6, 0xa0, 0x95, 0x44, 0xdb, 0x34, 0xe5, 0x29, 0x47, 0x3d, 0x53, 0x28, + 0x8b, 0x03, 0xe4, 0xc3, 0xe1, 0x28, 0x22, 0x21, 0xdb, 0xd0, 0x9a, 0x23, 0x46, 0xb1, 0xbc, 0x63, + 0xf2, 0x8b, 0xe8, 0x94, 0x5c, 0xb0, 0x9d, 0xac, 0x39, 0xc9, 0x10, 0xff, 0xcd, 0x82, 0x0d, 0x13, + 0xc6, 0x4a, 0x97, 0xc1, 0x43, 0x80, 0x71, 0x9a, 0x0b, 0xf2, 0x6b, 0xe0, 0xd3, 0xa2, 0x70, 0xc7, + 0xa5, 0x3d, 0x9c, 0x8c, 0x46, 0xec, 0x36, 0x55, 0x56, 0xc6, 0x92, 0x3d, 0x01, 0x97, 0xeb, 0x91, + 0x0c, 0xf1, 0xef, 0x73, 0x70, 0x65, 0x62, 0x54, 0x1a, 0x04, 0x14, 0x58, 0x73, 0x2c, 0x63, 0x52, + 0xc5, 0xcd, 0x16, 0x04, 0xfe, 0x68, 0xc1, 0xa6, 0x11, 0xd2, 0xfb, 0x34, 0x21, 0xfe, 0xbb, 0x05, + 0xe8, 0xc9, 0xb0, 0x7f, 0xae, 0xf0, 0x95, 0x1b, 0xe9, 0xdb, 0xb0, 0x1a, 0xf3, 0x13, 0x97, 0x2b, + 0xae, 0x98, 0x2a, 0x47, 0x8f, 0xc1, 0x3b, 0xa4, 0x47, 0x7d, 0x4f, 0x98, 0x4b, 0x8c, 0x74, 0x63, + 0xd5, 0xca, 0x5d, 0x6e, 0x41, 0x73, 0xb9, 0xcf, 0xa1, 0xde, 0x71, 0xef, 0xf2, 0xd0, 0x51, 0x78, + 0xd5, 0x33, 0xd1, 0x2c, 0xe0, 0xf0, 0x02, 0x45, 0x8c, 0xf0, 0x97, 0xb0, 0x9e, 0x53, 0xb7, 0xd2, + 0x06, 0xdc, 0x83, 0x86, 0x44, 0xa1, 0xec, 0xc1, 0xaa, 0x70, 0x75, 0x39, 0xe7, 0x64, 0xd9, 0xf0, + 0x84, 0xf9, 0x7a, 0x7c, 0x1d, 0x10, 0x97, 0xa1, 0x48, 0x7c, 0x3d, 0x1b, 0x68, 0xad, 0x5c, 0xa0, + 0xdd, 0x86, 0x65, 0x3f, 0x1f, 0xa7, 0xfc, 0x29, 0xe3, 0xd4, 0x57, 0xdc, 0x21, 0x72, 0x72, 0x67, + 0xaa, 0x55, 0xa6, 0xce, 0xd7, 0x53, 0x76, 0xfc, 0x0f, 0x0b, 0x6e, 0x74, 0xbc, 0xcb, 0x61, 0x44, + 0x62, 0x64, 0xcf, 0x7d, 0x19, 0xa1, 0xaf, 0x8e, 0xc3, 0xc5, 0x97, 0x54, 0x7a, 0xd0, 0xae, 0x65, + 0x0e, 0xda, 0x77, 0x61, 0x8d, 0xcb, 0x52, 0x4f, 0x6b, 0x8d, 0x9d, 0xd6, 0xfc, 0x44, 0xe9, 0xa1, + 0xfb, 0xb5, 0x05, 0x2d, 0x03, 0xec, 0xff, 0xeb, 0xd1, 0xf1, 0xe0, 0x86, 0x4c, 0xca, 0x47, 0xa3, + 0x69, 0x9c, 0x75, 0xb6, 0x84, 0xf7, 0x0f, 0xca, 0xbd, 0xa4, 0x08, 0x7c, 0xaf, 0xf1, 0xea, 0x1b, + 0x0b, 0x96, 0xf6, 0xbb, 0xa7, 0x8c, 0x6d, 0xa6, 0x1a, 0xef, 0x0e, 0x34, 0xb9, 0xac, 0x1e, 0x8d, + 0x48, 0x78, 0xdc, 0x1b, 0x27, 0x69, 0x9f, 0x4e, 0x46, 0xb7, 0x45, 0x85, 0xca, 0x49, 0x1d, 0x57, + 0x98, 0x2a, 0x4b, 0x8c, 0xc3, 0xfb, 0x72, 0x62, 0xac, 0x78, 0x53, 0xb6, 0x04, 0x36, 0xf6, 0x65, + 0xbe, 0x2d, 0x29, 0x01, 0x1d, 0x00, 0xfc, 0xa4, 0x37, 0x18, 0x7a, 0xcc, 0xd4, 0xa2, 0x9f, 0x71, + 0xdb, 0x00, 0x5d, 0x64, 0xf7, 0x29, 0xaf, 0xa3, 0xac, 0x9b, 0x62, 0x0b, 0x5f, 0x5b, 0xb0, 0x92, + 0xa2, 0xa2, 0x01, 0xfa, 0x1e, 0xd4, 0x13, 0xf3, 0x51, 0xd1, 0x85, 0x69, 0x26, 0xd9, 0x89, 0xa0, + 0x3b, 0x29, 0xc7, 0x5b, 0xc2, 0x29, 0x6d, 0x31, 0x19, 0x53, 0x86, 0xb2, 0xe6, 0xa4, 0x04, 0x7c, + 0x99, 0x42, 0xa4, 0xb1, 0xe5, 0xb2, 0x32, 0xad, 0xb7, 0x63, 0x9b, 0x7c, 0x38, 0xc1, 0x7f, 0xb1, + 0xa0, 0xa1, 0x08, 0x7e, 0x5f, 0xc6, 0xb1, 0x61, 0x29, 0xb1, 0x85, 0xb0, 0x8d, 0x1c, 0xe3, 0x93, + 0xb4, 0xc7, 0x62, 0x70, 0x77, 0x37, 0xeb, 0xee, 0xee, 0x14, 0x3a, 0x9f, 0x43, 0x8b, 0x0f, 0x79, + 0xaf, 0xea, 0x34, 0xea, 0x45, 0x13, 0x5a, 0xfe, 0xd1, 0x0d, 0x58, 0xe0, 0x6c, 0xc9, 0x4d, 0xca, + 0x47, 0x53, 0x1c, 0xbe, 0x36, 0x6c, 0x98, 0x84, 0xf1, 0xca, 0x0c, 0x89, 0x29, 0x56, 0x4e, 0xfb, + 0x23, 0x72, 0x25, 0x08, 0x16, 0xb6, 0xdc, 0x24, 0xac, 0xf0, 0x51, 0xb6, 0x15, 0x39, 0xaf, 0xb5, + 0x22, 0xa7, 0x48, 0xca, 0x5a, 0xb0, 0x9e, 0xc3, 0x41, 0x03, 0xfc, 0x14, 0xae, 0x1f, 0x90, 0x11, + 0x51, 0x5a, 0x98, 0xb3, 0x18, 0x7d, 0x0d, 0x9a, 0x99, 0xaf, 0xd1, 0x00, 0x77, 0xa1, 0x99, 0x6c, + 0xec, 0xde, 0x2f, 0x3b, 0xee, 0xac, 0x12, 0xee, 0xa7, 0x0d, 0x40, 0xfe, 0x39, 0x1a, 0xa0, 0xef, + 0xa4, 0x81, 0x52, 0x38, 0x51, 0xee, 0x2c, 0x4b, 0x06, 0xfc, 0xcf, 0x5c, 0x09, 0x42, 0xf7, 0xbb, + 0xa7, 0xe5, 0xb0, 0x6c, 0x58, 0x8a, 0x8d, 0xa6, 0x84, 0x4e, 0x39, 0xd6, 0x5c, 0x63, 0xfe, 0xed, + 0xf8, 0xb0, 0x61, 0xff, 0xfe, 0x9d, 0xcf, 0xf3, 0x19, 0x6e, 0x1a, 0xa0, 0x1f, 0xc3, 0x22, 0xbf, + 0x37, 0x12, 0x57, 0x9e, 0xf6, 0xba, 0x49, 0x96, 0xa1, 0x43, 0x83, 0x7f, 0x7f, 0xcb, 0xa8, 0x04, + 0xaf, 0x55, 0x0b, 0xb4, 0xb8, 0x05, 0xc0, 0x25, 0x28, 0xe1, 0x4f, 0xa1, 0xe0, 0xdf, 0x59, 0xd0, + 0x76, 0xc8, 0xd8, 0xbf, 0x24, 0x6f, 0x64, 0xfe, 0x36, 0x2c, 0x72, 0x27, 0xa0, 0x22, 0xff, 0x4e, + 0x86, 0x6f, 0xd4, 0xef, 0x76, 0xb5, 0x7e, 0xb7, 0x8b, 0xbb, 0x70, 0xb3, 0x00, 0x0d, 0xbf, 0xf8, + 0xe9, 0xa4, 0xdf, 0x27, 0x94, 0x8a, 0x8e, 0x72, 0x32, 0x8c, 0x3d, 0xf4, 0xac, 0x37, 0x1c, 0x11, + 0x57, 0xa0, 0x11, 0x23, 0xfc, 0xb5, 0x05, 0xad, 0x07, 0xae, 0xfb, 0x2e, 0x54, 0x73, 0xf3, 0xaa, + 0xb9, 0xa5, 0xaa, 0x3d, 0x86, 0x0d, 0x13, 0x94, 0x4a, 0x7a, 0x0d, 0xa1, 0x79, 0x30, 0xa4, 0xe3, + 0x21, 0xa5, 0x32, 0x46, 0xd8, 0xb0, 0xe4, 0x6b, 0x3d, 0x59, 0x3f, 0x98, 0x3a, 0x7b, 0x6f, 0xc3, + 0xe2, 0x20, 0x9b, 0xdd, 0x8a, 0x21, 0x3e, 0x84, 0xd5, 0xac, 0x28, 0xde, 0x66, 0xe8, 0x4f, 0xd3, + 0x66, 0x48, 0x99, 0xf0, 0x5f, 0x2d, 0x40, 0xdd, 0x49, 0x44, 0xb4, 0xeb, 0xe4, 0x1d, 0xa1, 0x8e, + 0x0d, 0x37, 0x51, 0x9b, 0x46, 0x62, 0x84, 0x30, 0xac, 0x8c, 0x27, 0x11, 0x71, 0x4f, 0x49, 0xdf, + 0xf7, 0x5c, 0xca, 0xaa, 0xbf, 0x86, 0x93, 0xa1, 0xe1, 0x23, 0x58, 0xcf, 0x21, 0xad, 0xa6, 0xf4, + 0x6f, 0x2c, 0x68, 0xef, 0xf7, 0xbc, 0x3e, 0x19, 0xbd, 0x7f, 0xd5, 0xf1, 0x31, 0xdc, 0x2c, 0xc0, + 0x52, 0x4d, 0xb9, 0x33, 0x58, 0x91, 0x5f, 0x7a, 0x97, 0x07, 0x70, 0x0f, 0x1a, 0x8a, 0x9c, 0x6a, + 0x58, 0x47, 0x80, 0x34, 0xdd, 0xdf, 0x25, 0xe2, 0x23, 0x58, 0xcf, 0x49, 0xab, 0x84, 0xfb, 0xee, + 0x37, 0x6b, 0xc0, 0xdf, 0x61, 0xd1, 0x0f, 0x61, 0xb9, 0x9f, 0x3e, 0xf3, 0xa1, 0x56, 0xb2, 0x2e, + 0xf3, 0xd6, 0x69, 0x6f, 0x98, 0xc8, 0x34, 0x40, 0xf7, 0xa0, 0xfe, 0xf3, 0xa4, 0x07, 0x8c, 0xd6, + 0x05, 0x93, 0xda, 0x9d, 0xb6, 0x6f, 0xe4, 0x89, 0x7c, 0xdd, 0x45, 0xd2, 0x60, 0x94, 0xeb, 0xd4, + 0xd6, 0xa6, 0x5c, 0x97, 0xed, 0x43, 0xee, 0x41, 0x63, 0xa0, 0x3e, 0xcf, 0xa1, 0xcd, 0xe4, 0xb1, + 0x55, 0x7b, 0x29, 0xb4, 0xdb, 0xe6, 0x09, 0x1a, 0xa0, 0xfb, 0xb0, 0x42, 0x95, 0x97, 0x2c, 0x94, + 0xe8, 0xa6, 0xbd, 0xb5, 0xd9, 0x9b, 0x46, 0x3a, 0x0d, 0xd0, 0xcf, 0x60, 0x73, 0x60, 0x7e, 0x46, + 0x42, 0x1f, 0x6b, 0x52, 0xf3, 0xcf, 0x38, 0x36, 0xbe, 0x8a, 0x85, 0x06, 0xe8, 0x0c, 0x6e, 0x0e, + 0x8a, 0xde, 0x64, 0xd0, 0x27, 0xe9, 0x07, 0x0a, 0x1f, 0x8b, 0xec, 0xdb, 0x57, 0x33, 0xd1, 0x00, + 0x3d, 0x03, 0x14, 0xe5, 0x1e, 0x26, 0xd0, 0x96, 0x58, 0x6b, 0x7c, 0x74, 0xb1, 0x3f, 0x2c, 0x99, + 0xa5, 0x01, 0xea, 0x43, 0x7b, 0x50, 0xd0, 0xf5, 0x46, 0x38, 0xf3, 0x32, 0x6e, 0xec, 0xf8, 0xdb, + 0x9f, 0x5c, 0xc9, 0xc3, 0x71, 0x0f, 0x72, 0x6d, 0x5b, 0x89, 0xdb, 0xd8, 0x75, 0x96, 0xb8, 0x0b, + 0xfa, 0xbd, 0xcf, 0x61, 0x7d, 0x90, 0xef, 0x63, 0x22, 0xf3, 0x2a, 0x79, 0xca, 0x6e, 0x95, 0x4d, + 0xd3, 0x00, 0x1d, 0x41, 0xf3, 0x3c, 0xdb, 0x98, 0x43, 0xc9, 0xdf, 0x03, 0xf2, 0xfd, 0x49, 0xdb, + 0x2e, 0x9a, 0x92, 0x2a, 0x6b, 0x9d, 0x2e, 0x55, 0xe5, 0x7c, 0xf3, 0x4d, 0x55, 0xd9, 0xd4, 0x22, + 0x3b, 0x86, 0xb5, 0xa1, 0xde, 0xfc, 0x41, 0x1f, 0x24, 0xfd, 0x1a, 0x43, 0x37, 0xcb, 0xde, 0x2a, + 0x9e, 0xe4, 0xdf, 0x1b, 0xe8, 0x8d, 0x15, 0xf9, 0x3d, 0x53, 0x8f, 0xc7, 0xde, 0x2a, 0x9e, 0xe4, + 0x8e, 0xaa, 0xe6, 0xff, 0xd2, 0x51, 0xb5, 0x1a, 0xc3, 0xde, 0x34, 0xd2, 0x69, 0x80, 0x3e, 0x83, + 0xa5, 0x84, 0x86, 0x90, 0xc6, 0x14, 0x2f, 0x5c, 0xcf, 0xd1, 0x78, 0x68, 0x92, 0x31, 0x03, 0xe9, + 0x1c, 0x54, 0x0d, 0x4d, 0xd9, 0x32, 0xfb, 0x99, 0x2c, 0xfe, 0x94, 0xba, 0x50, 0x6e, 0x90, 0xb1, + 0x3e, 0x95, 0x1b, 0x64, 0x2e, 0x28, 0xe3, 0xd3, 0xa3, 0xd5, 0x71, 0xf2, 0xf4, 0xe4, 0xeb, 0x4c, + 0x79, 0x7a, 0x0c, 0xa5, 0x5f, 0x1c, 0xe5, 0x95, 0x62, 0x4d, 0x46, 0xf9, 0x6c, 0x39, 0x28, 0xa3, + 0xbc, 0x56, 0xd7, 0xc5, 0xaa, 0xe5, 0xcb, 0x91, 0x02, 0x77, 0x13, 0x79, 0x70, 0x81, 0xbb, 0xc9, + 0xd4, 0xf4, 0x05, 0xb4, 0x8c, 0xf9, 0x38, 0xfa, 0x48, 0xac, 0x2b, 0xaa, 0x1d, 0xec, 0xed, 0x72, + 0x06, 0x0e, 0x37, 0x9f, 0x10, 0x4b, 0xb8, 0xc6, 0xb4, 0x5d, 0xc2, 0x2d, 0xc8, 0xa4, 0xef, 0xc3, + 0x8a, 0x9a, 0xac, 0xca, 0xa3, 0xa8, 0x25, 0xcb, 0xf2, 0x28, 0xe6, 0x32, 0xdb, 0x23, 0x68, 0x6a, + 0xe9, 0x91, 0xdc, 0xca, 0x7c, 0x0a, 0x27, 0xb7, 0xd2, 0x94, 0x51, 0xbd, 0x80, 0x96, 0x31, 0xdd, + 0x92, 0x96, 0x2b, 0x4a, 0x0c, 0xa5, 0xe5, 0x8a, 0xb3, 0xb5, 0x7b, 0x50, 0x97, 0x64, 0x79, 0xf6, + 0xd5, 0xd4, 0x46, 0x9e, 0xfd, 0x6c, 0x06, 0x72, 0x04, 0x4d, 0xed, 0xa3, 0x52, 0xbb, 0x7c, 0x7a, + 0x24, 0xb5, 0x33, 0xe4, 0x32, 0x7b, 0xcd, 0x17, 0x8d, 0x1d, 0xfe, 0x77, 0xb1, 0xcf, 0xd9, 0xef, + 0x17, 0x0b, 0xec, 0xbf, 0x60, 0x9f, 0xfd, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xa9, 0x2b, 0x24, 0xa7, + 0x4a, 0x26, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 62c845f1e..201bf6ef5 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -319,7 +319,7 @@ message AddGroupMembersCMSResp { } message DismissGroupReq{ - string opUserID = 1; //group member or app manager + string opUserID = 1; //group or app manager string operationID = 2; string groupID = 3; } @@ -328,6 +328,59 @@ message DismissGroupResp{ CommonResp commonResp = 1; } + +message MuteGroupMemberReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; + string userID = 4; + uint32 mutedSeconds = 5; +} + +message MuteGroupMemberResp{ + CommonResp commonResp = 1; +} + + + +message CancelMuteGroupMemberReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; + string userID = 4; +} + +message CancelMuteGroupMemberResp{ + CommonResp commonResp = 1; +} + + +message MuteGroupReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; +} + +message MuteGroupResp{ + CommonResp commonResp = 1; +} + + + +message CancelMuteGroupReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; +} + +message CancelMuteGroupResp{ + CommonResp commonResp = 1; +} + + + + + service group{ rpc createGroup(CreateGroupReq) returns(CreateGroupResp); rpc joinGroup(JoinGroupReq) returns(JoinGroupResp); @@ -356,6 +409,10 @@ service group{ rpc AddGroupMembersCMS(AddGroupMembersCMSReq) returns(AddGroupMembersCMSResp); rpc DismissGroup(DismissGroupReq) returns(DismissGroupResp); + rpc MuteGroupMember(MuteGroupMemberReq) returns(MuteGroupMemberResp); + rpc CancelMuteGroupMember(CancelMuteGroupMemberReq) returns(CancelMuteGroupMemberResp); + rpc MuteGroup(MuteGroupReq) returns(MuteGroupResp); + rpc CancelMuteGroup(CancelMuteGroupReq) returns(CancelMuteGroupResp); } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 1675ad2bc..43fd488b8 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -40,7 +40,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{0} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -155,6 +155,7 @@ type GroupMemberFullInfo struct { JoinSource int32 `protobuf:"varint,8,opt,name=joinSource" json:"joinSource,omitempty"` OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID" json:"operatorUserID,omitempty"` Ex string `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"` + MuteEndTime uint32 `protobuf:"varint,11,opt,name=muteEndTime" json:"muteEndTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -164,7 +165,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{1} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -254,6 +255,13 @@ func (m *GroupMemberFullInfo) GetEx() string { return "" } +func (m *GroupMemberFullInfo) GetMuteEndTime() uint32 { + if m != nil { + return m.MuteEndTime + } + return 0 +} + type PublicUserInfo struct { UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` @@ -269,7 +277,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{2} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +352,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{3} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +459,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{4} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +544,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{5} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +625,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{6} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -725,7 +733,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{7} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -863,7 +871,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{8} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -917,7 +925,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{9} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -968,7 +976,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{10} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{10} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1000,7 +1008,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{11} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{11} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1047,7 +1055,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{12} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{12} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1116,7 +1124,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{13} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{13} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1277,7 +1285,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{14} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{14} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1345,7 +1353,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{15} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{15} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1402,7 +1410,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{16} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{16} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1471,7 +1479,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{17} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{17} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1526,7 +1534,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{18} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{18} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1582,7 +1590,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{19} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{19} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -1637,7 +1645,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{20} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{20} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -1692,7 +1700,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{21} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{21} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -1748,7 +1756,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{22} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{22} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -1811,7 +1819,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{23} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{23} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1874,7 +1882,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{24} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{24} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1936,7 +1944,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{25} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{25} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1990,7 +1998,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{26} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{26} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2031,6 +2039,246 @@ func (m *GroupDismissedTips) GetOperationTime() int64 { return 0 } +type GroupMemberMutedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser" json:"mutedUser,omitempty"` + MutedSeconds uint32 `protobuf:"varint,5,opt,name=mutedSeconds" json:"mutedSeconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } +func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } +func (*GroupMemberMutedTips) ProtoMessage() {} +func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_f1fa7995a968e7fe, []int{27} +} +func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) +} +func (m *GroupMemberMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberMutedTips.Marshal(b, m, deterministic) +} +func (dst *GroupMemberMutedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberMutedTips.Merge(dst, src) +} +func (m *GroupMemberMutedTips) XXX_Size() int { + return xxx_messageInfo_GroupMemberMutedTips.Size(m) +} +func (m *GroupMemberMutedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberMutedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMemberMutedTips proto.InternalMessageInfo + +func (m *GroupMemberMutedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupMemberMutedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *GroupMemberMutedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +func (m *GroupMemberMutedTips) GetMutedUser() *GroupMemberFullInfo { + if m != nil { + return m.MutedUser + } + return nil +} + +func (m *GroupMemberMutedTips) GetMutedSeconds() uint32 { + if m != nil { + return m.MutedSeconds + } + return 0 +} + +type GroupMemberCancelMutedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser" json:"mutedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMutedTips{} } +func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } +func (*GroupMemberCancelMutedTips) ProtoMessage() {} +func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_f1fa7995a968e7fe, []int{28} +} +func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) +} +func (m *GroupMemberCancelMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberCancelMutedTips.Marshal(b, m, deterministic) +} +func (dst *GroupMemberCancelMutedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberCancelMutedTips.Merge(dst, src) +} +func (m *GroupMemberCancelMutedTips) XXX_Size() int { + return xxx_messageInfo_GroupMemberCancelMutedTips.Size(m) +} +func (m *GroupMemberCancelMutedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberCancelMutedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMemberCancelMutedTips proto.InternalMessageInfo + +func (m *GroupMemberCancelMutedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupMemberCancelMutedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *GroupMemberCancelMutedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +func (m *GroupMemberCancelMutedTips) GetMutedUser() *GroupMemberFullInfo { + if m != nil { + return m.MutedUser + } + return nil +} + +type GroupMutedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } +func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } +func (*GroupMutedTips) ProtoMessage() {} +func (*GroupMutedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_f1fa7995a968e7fe, []int{29} +} +func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) +} +func (m *GroupMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMutedTips.Marshal(b, m, deterministic) +} +func (dst *GroupMutedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMutedTips.Merge(dst, src) +} +func (m *GroupMutedTips) XXX_Size() int { + return xxx_messageInfo_GroupMutedTips.Size(m) +} +func (m *GroupMutedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMutedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMutedTips proto.InternalMessageInfo + +func (m *GroupMutedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupMutedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *GroupMutedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type GroupCancelMutedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } +func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } +func (*GroupCancelMutedTips) ProtoMessage() {} +func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_f1fa7995a968e7fe, []int{30} +} +func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) +} +func (m *GroupCancelMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupCancelMutedTips.Marshal(b, m, deterministic) +} +func (dst *GroupCancelMutedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupCancelMutedTips.Merge(dst, src) +} +func (m *GroupCancelMutedTips) XXX_Size() int { + return xxx_messageInfo_GroupCancelMutedTips.Size(m) +} +func (m *GroupCancelMutedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupCancelMutedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupCancelMutedTips proto.InternalMessageInfo + +func (m *GroupCancelMutedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupCancelMutedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *GroupCancelMutedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime + } + return 0 +} + type FriendApplication struct { AddTime int64 `protobuf:"varint,1,opt,name=addTime" json:"addTime,omitempty"` AddSource string `protobuf:"bytes,2,opt,name=addSource" json:"addSource,omitempty"` @@ -2044,7 +2292,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{27} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{31} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2097,7 +2345,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{28} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{32} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2143,7 +2391,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{29} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{33} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2183,7 +2431,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{30} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{34} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2230,7 +2478,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{31} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{35} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -2278,7 +2526,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{32} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{36} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2331,7 +2579,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{33} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{37} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2369,7 +2617,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{34} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{38} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2407,7 +2655,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{35} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{39} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2445,7 +2693,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{36} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{40} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2484,7 +2732,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{37} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{41} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -2523,7 +2771,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{38} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{42} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -2563,7 +2811,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{39} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{43} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -2609,7 +2857,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{40} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{44} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -2662,7 +2910,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{41} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{45} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -2929,7 +3177,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{42} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{46} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -3197,7 +3445,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{43} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{47} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -3293,7 +3541,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{44} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{48} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -3348,7 +3596,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{45} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{49} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -3409,7 +3657,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{46} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{50} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -3464,7 +3712,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{47} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{51} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -3525,7 +3773,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{48} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{52} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -3580,7 +3828,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{49} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{53} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -3638,7 +3886,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{50} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{54} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -3673,7 +3921,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{51} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{55} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -3741,7 +3989,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{52} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{56} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -3795,7 +4043,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{53} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{57} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -3846,7 +4094,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{54} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{58} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -3881,7 +4129,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{55} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{59} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -3946,7 +4194,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{56} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{60} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -3980,7 +4228,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{57} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{61} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -4040,7 +4288,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_489fb152692e30da, []int{58} + return fileDescriptor_ws_f1fa7995a968e7fe, []int{62} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -4103,6 +4351,10 @@ func init() { proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips") proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips") proto.RegisterType((*GroupDismissedTips)(nil), "server_api_params.GroupDismissedTips") + proto.RegisterType((*GroupMemberMutedTips)(nil), "server_api_params.GroupMemberMutedTips") + proto.RegisterType((*GroupMemberCancelMutedTips)(nil), "server_api_params.GroupMemberCancelMutedTips") + proto.RegisterType((*GroupMutedTips)(nil), "server_api_params.GroupMutedTips") + proto.RegisterType((*GroupCancelMutedTips)(nil), "server_api_params.GroupCancelMutedTips") proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication") proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID") proto.RegisterType((*FriendApplicationTips)(nil), "server_api_params.FriendApplicationTips") @@ -4137,170 +4389,176 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_489fb152692e30da) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_f1fa7995a968e7fe) } -var fileDescriptor_ws_489fb152692e30da = []byte{ - // 2589 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0xe4, 0x48, - 0x15, 0xc7, 0xee, 0x74, 0x27, 0xfd, 0x92, 0x4e, 0x27, 0xce, 0x12, 0x9a, 0x61, 0x76, 0x08, 0x56, - 0xb4, 0x0c, 0x0b, 0x64, 0xd1, 0x20, 0x24, 0xd8, 0x85, 0x41, 0xf9, 0x98, 0xaf, 0x25, 0x3d, 0x93, - 0x75, 0xcf, 0xb0, 0x08, 0x90, 0x46, 0x95, 0x76, 0xa5, 0xe3, 0x8d, 0x5d, 0xe5, 0x76, 0xd9, 0x99, - 0x89, 0x84, 0x84, 0x04, 0x12, 0xe2, 0xc6, 0x09, 0xae, 0x48, 0x5c, 0x10, 0x12, 0x5a, 0xed, 0x01, - 0xc4, 0x05, 0x71, 0xe2, 0x1f, 0xe0, 0xcc, 0x8d, 0x33, 0x57, 0x0e, 0x48, 0x48, 0xa0, 0xfa, 0xb0, - 0x5d, 0x65, 0x77, 0x27, 0xbd, 0x51, 0xb4, 0x03, 0x1a, 0x6e, 0xfd, 0x9e, 0xeb, 0xbd, 0x7a, 0xf5, - 0x7e, 0xef, 0xbd, 0x7a, 0x7e, 0x6e, 0xe8, 0x32, 0xff, 0xe4, 0xe9, 0x33, 0xf6, 0xc6, 0x33, 0xb6, - 0x15, 0x27, 0x34, 0xa5, 0xce, 0x2a, 0xc3, 0xc9, 0x29, 0x4e, 0x9e, 0xa2, 0x38, 0x78, 0x1a, 0xa3, - 0x04, 0x45, 0xcc, 0xfd, 0x87, 0x0d, 0xed, 0x7b, 0x09, 0xcd, 0xe2, 0x07, 0xe4, 0x88, 0x3a, 0x3d, - 0x98, 0x1f, 0x09, 0x62, 0xaf, 0x67, 0x6d, 0x58, 0x37, 0xdb, 0x5e, 0x4e, 0x3a, 0xd7, 0xa1, 0x2d, - 0x7e, 0x3e, 0x44, 0x11, 0xee, 0xd9, 0xe2, 0x59, 0xc9, 0x70, 0x5c, 0x58, 0x22, 0x34, 0x0d, 0x8e, - 0x82, 0x21, 0x4a, 0x03, 0x4a, 0x7a, 0x0d, 0xb1, 0xc0, 0xe0, 0xf1, 0x35, 0x01, 0x49, 0x13, 0xea, - 0x67, 0x43, 0xb1, 0x66, 0x4e, 0xae, 0xd1, 0x79, 0x7c, 0xff, 0x23, 0x34, 0xc4, 0x4f, 0xbc, 0xfd, - 0x5e, 0x53, 0xee, 0xaf, 0x48, 0x67, 0x03, 0x16, 0xe9, 0x33, 0x82, 0x93, 0x27, 0x0c, 0x27, 0x0f, - 0xf6, 0x7a, 0x2d, 0xf1, 0x54, 0x67, 0x39, 0x37, 0x00, 0x86, 0x09, 0x46, 0x29, 0x7e, 0x1c, 0x44, - 0xb8, 0x37, 0xbf, 0x61, 0xdd, 0xec, 0x78, 0x1a, 0x87, 0x6b, 0x88, 0x70, 0x74, 0x88, 0x93, 0x5d, - 0x9a, 0x91, 0xb4, 0xb7, 0x20, 0x16, 0xe8, 0x2c, 0x67, 0x19, 0x6c, 0xfc, 0xbc, 0xd7, 0x16, 0xaa, - 0x6d, 0xfc, 0xdc, 0x59, 0x87, 0x16, 0x4b, 0x51, 0x9a, 0xb1, 0x1e, 0x6c, 0x58, 0x37, 0x9b, 0x9e, - 0xa2, 0x9c, 0x4d, 0xe8, 0x08, 0xbd, 0x34, 0xb7, 0x66, 0x51, 0x88, 0x98, 0xcc, 0xc2, 0x63, 0x8f, - 0xcf, 0x62, 0xdc, 0x5b, 0x12, 0x0a, 0x4a, 0x86, 0xfb, 0x07, 0x1b, 0xd6, 0x84, 0xdf, 0xfb, 0xc2, - 0x80, 0xbb, 0x59, 0x18, 0x5e, 0x80, 0xc0, 0x3a, 0xb4, 0x32, 0xb9, 0x9d, 0x74, 0xbf, 0xa2, 0xf8, - 0x3e, 0x09, 0x0d, 0xf1, 0x3e, 0x3e, 0xc5, 0xa1, 0x70, 0x7c, 0xd3, 0x2b, 0x19, 0xce, 0x35, 0x58, - 0x78, 0x8f, 0x06, 0x44, 0xf8, 0x64, 0x4e, 0x3c, 0x2c, 0x68, 0xfe, 0x8c, 0x04, 0xc3, 0x13, 0xc2, - 0x21, 0x95, 0xee, 0x2e, 0x68, 0x1d, 0x89, 0x96, 0x89, 0xc4, 0x6b, 0xb0, 0x8c, 0xe2, 0xb8, 0x8f, - 0xc8, 0x08, 0x27, 0x72, 0xd3, 0x79, 0xa1, 0xb7, 0xc2, 0xe5, 0x78, 0xf0, 0x9d, 0x06, 0x34, 0x4b, - 0x86, 0x58, 0xb8, 0xbb, 0xe9, 0x69, 0x1c, 0xae, 0x87, 0xc6, 0x38, 0xd1, 0xdc, 0x28, 0x3d, 0x5f, - 0xe1, 0x2a, 0x54, 0x20, 0x47, 0xc5, 0xfd, 0x89, 0x05, 0xcb, 0x07, 0xd9, 0x61, 0x18, 0x0c, 0xc5, - 0x02, 0xee, 0xb4, 0xd2, 0x35, 0x96, 0xe1, 0x1a, 0xfd, 0x80, 0xf6, 0xf4, 0x03, 0x36, 0xcc, 0x03, - 0xae, 0x43, 0x6b, 0x84, 0x89, 0x8f, 0x13, 0xe5, 0x30, 0x45, 0x29, 0x43, 0x9a, 0x85, 0x21, 0xbf, - 0xb0, 0x61, 0xe1, 0x23, 0x36, 0x61, 0x03, 0x16, 0xe3, 0x63, 0x4a, 0xf0, 0xc3, 0x8c, 0x07, 0x8d, - 0xb2, 0x45, 0x67, 0x39, 0xaf, 0x40, 0xf3, 0x30, 0x48, 0xd2, 0x63, 0x81, 0x5a, 0xc7, 0x93, 0x04, - 0xe7, 0xe2, 0x08, 0x05, 0x12, 0xaa, 0xb6, 0x27, 0x09, 0x75, 0xa0, 0x85, 0x22, 0xde, 0xcd, 0x0c, - 0x6a, 0xd7, 0x32, 0xa8, 0x8e, 0x3c, 0x4c, 0x42, 0xde, 0xfd, 0xa7, 0x05, 0x70, 0x37, 0x09, 0x30, - 0xf1, 0x85, 0x6b, 0x2a, 0xa9, 0x6b, 0xd5, 0x53, 0x77, 0x1d, 0x5a, 0x09, 0x8e, 0x50, 0x72, 0x92, - 0x87, 0xb6, 0xa4, 0x2a, 0x06, 0x35, 0x6a, 0x06, 0xbd, 0x05, 0x70, 0x24, 0xf6, 0xe1, 0x7a, 0x84, - 0xab, 0x16, 0x6f, 0x7d, 0x6a, 0xab, 0x56, 0xe4, 0xb6, 0x72, 0x94, 0x3c, 0x6d, 0x39, 0xcf, 0x1b, - 0xe4, 0xfb, 0x2a, 0x3c, 0x9b, 0x32, 0x6f, 0x0a, 0xc6, 0x84, 0xe8, 0x6c, 0x9d, 0x13, 0x9d, 0xf3, - 0x45, 0x50, 0xfc, 0xdd, 0x82, 0xf6, 0x4e, 0x88, 0x86, 0x27, 0x33, 0x1e, 0xdd, 0x3c, 0xa2, 0x5d, - 0x3b, 0xe2, 0x3d, 0xe8, 0x1c, 0x72, 0x75, 0xf9, 0x11, 0x84, 0x17, 0x16, 0x6f, 0x7d, 0x66, 0xc2, - 0x29, 0xcd, 0xa4, 0xf0, 0x4c, 0x39, 0xf3, 0xb8, 0x73, 0x17, 0x1f, 0xb7, 0x79, 0xce, 0x71, 0x5b, - 0xc5, 0x71, 0xff, 0x62, 0xc3, 0x92, 0x28, 0x63, 0x1e, 0x1e, 0x67, 0x98, 0xa5, 0xce, 0x37, 0x60, - 0x21, 0xcb, 0x4d, 0xb5, 0x66, 0x35, 0xb5, 0x10, 0x71, 0xde, 0x54, 0x45, 0x53, 0xc8, 0xdb, 0x42, - 0xfe, 0xfa, 0x04, 0xf9, 0xe2, 0xc6, 0xf2, 0xca, 0xe5, 0xfc, 0x82, 0x39, 0x46, 0xc4, 0x0f, 0xb1, - 0x87, 0x59, 0x16, 0xa6, 0xaa, 0x16, 0x1a, 0x3c, 0x19, 0x69, 0xe3, 0x3e, 0x1b, 0xa9, 0xeb, 0x47, - 0x51, 0xdc, 0x3b, 0x72, 0x1d, 0x7f, 0x24, 0x8f, 0x5e, 0x32, 0x78, 0xa2, 0x26, 0x78, 0x2c, 0x10, - 0x92, 0x69, 0x95, 0x93, 0xe5, 0x9e, 0xca, 0x6b, 0x32, 0x10, 0x0c, 0x1e, 0x87, 0x58, 0xd2, 0x42, - 0x81, 0xbc, 0x77, 0x34, 0x4e, 0xf5, 0xda, 0x71, 0xff, 0xda, 0x80, 0x8e, 0x4c, 0x9f, 0xdc, 0xa9, - 0x37, 0x78, 0x9c, 0xd3, 0xc8, 0x88, 0x22, 0x8d, 0xc3, 0xad, 0xe0, 0xd4, 0x43, 0xb3, 0xd0, 0x18, - 0x3c, 0x1e, 0x8a, 0x9c, 0xbe, 0x6b, 0x14, 0x1c, 0x9d, 0x95, 0xef, 0x72, 0x4f, 0x2f, 0x3c, 0x1a, - 0x87, 0x97, 0xb2, 0x94, 0x1a, 0xd1, 0x51, 0xd0, 0x5c, 0x36, 0xa5, 0xc5, 0xfe, 0x32, 0x3e, 0x34, - 0x0e, 0xf7, 0x6f, 0x4a, 0xf3, 0xbd, 0xa5, 0x93, 0x4a, 0x86, 0xd4, 0xac, 0xf6, 0x95, 0x17, 0x45, - 0x41, 0xd7, 0x50, 0x6d, 0x9f, 0x8b, 0x2a, 0x18, 0xa8, 0x9a, 0xc9, 0xb5, 0x58, 0x4b, 0xae, 0x4d, - 0xe8, 0x48, 0x3d, 0x79, 0xd0, 0x2f, 0xc9, 0x8b, 0xdc, 0x60, 0x9a, 0xb1, 0xd1, 0xa9, 0xc6, 0x86, - 0x89, 0xee, 0xf2, 0x14, 0x74, 0xbb, 0x05, 0xba, 0x3f, 0x80, 0xde, 0x41, 0x16, 0x86, 0x7d, 0xcc, - 0x18, 0x1a, 0xe1, 0x9d, 0xb3, 0x01, 0x1e, 0xef, 0x07, 0x2c, 0xf5, 0x30, 0x8b, 0x79, 0x9c, 0xe1, - 0x24, 0xd9, 0xa5, 0x3e, 0x16, 0x20, 0x37, 0xbd, 0x9c, 0xe4, 0x27, 0xc4, 0x49, 0xc2, 0x0d, 0x50, - 0x15, 0x52, 0x52, 0xce, 0x16, 0xcc, 0x85, 0x01, 0xe3, 0xb1, 0xde, 0xb8, 0xb9, 0x78, 0xeb, 0xda, - 0x84, 0x54, 0xe9, 0xb3, 0xd1, 0x1e, 0x4a, 0x91, 0x27, 0xd6, 0xb9, 0x11, 0x7c, 0x62, 0xf2, 0xee, - 0xe3, 0xa9, 0x37, 0x18, 0xaf, 0x61, 0xa2, 0x08, 0x04, 0x94, 0x14, 0xcd, 0x87, 0xce, 0xe2, 0x66, - 0x33, 0xa9, 0x47, 0xd8, 0xd1, 0xf1, 0x72, 0xd2, 0x7d, 0x05, 0x9c, 0x7b, 0x38, 0xed, 0xa3, 0xe7, - 0xdb, 0xc4, 0xef, 0x07, 0x64, 0x80, 0xc7, 0x1e, 0x1e, 0xbb, 0x77, 0x60, 0xad, 0xc6, 0x65, 0x31, - 0x37, 0x20, 0x42, 0xcf, 0x07, 0x78, 0x2c, 0x0c, 0xe8, 0x78, 0x8a, 0x12, 0x7c, 0xb1, 0x4a, 0x95, - 0x47, 0x45, 0xb9, 0x63, 0xe8, 0x72, 0x84, 0x06, 0x98, 0xf8, 0x7d, 0x36, 0x12, 0x2a, 0x36, 0x60, - 0x51, 0x7a, 0xa0, 0xcf, 0x46, 0x65, 0xbd, 0xd5, 0x58, 0x7c, 0xc5, 0x30, 0x0c, 0x30, 0x49, 0xe5, - 0x0a, 0x75, 0x1a, 0x8d, 0xc5, 0x83, 0x91, 0x61, 0xe2, 0x17, 0x57, 0x4e, 0xc3, 0x2b, 0x68, 0xf7, - 0x8f, 0x4d, 0x98, 0x57, 0x0e, 0x15, 0xdd, 0x21, 0xbf, 0xe2, 0x0a, 0x7f, 0x49, 0x4a, 0x06, 0xe3, - 0xf0, 0xb4, 0xec, 0xd3, 0x24, 0xa5, 0x77, 0x76, 0x0d, 0xb3, 0xb3, 0xab, 0xd8, 0x34, 0x57, 0xb7, - 0xa9, 0x72, 0xae, 0x66, 0xfd, 0x5c, 0xaf, 0xc3, 0x0a, 0x13, 0x09, 0x73, 0x10, 0xa2, 0xf4, 0x88, - 0x26, 0x91, 0xba, 0xb1, 0x9a, 0x5e, 0x8d, 0xcf, 0x8b, 0xbd, 0xe4, 0x15, 0x09, 0x2b, 0x33, 0xb2, - 0xc2, 0xe5, 0xe9, 0x21, 0x39, 0x79, 0xe2, 0xca, 0x56, 0xc1, 0x64, 0x4a, 0xdb, 0x18, 0x0b, 0x28, - 0x11, 0x9d, 0xae, 0xcc, 0x4f, 0x9d, 0xc5, 0x4f, 0x1e, 0xb1, 0xd1, 0xdd, 0x84, 0x46, 0xaa, 0x61, - 0xc8, 0x49, 0x71, 0x72, 0x4a, 0x52, 0x4c, 0x52, 0x21, 0xbb, 0x28, 0x65, 0x35, 0x16, 0x97, 0x55, - 0xa4, 0x48, 0xce, 0x25, 0x2f, 0x27, 0x9d, 0x15, 0x68, 0x30, 0x3c, 0x56, 0x19, 0xc7, 0x7f, 0x1a, - 0xc8, 0x75, 0x4d, 0xe4, 0x2a, 0xa5, 0x60, 0x45, 0x3c, 0xd5, 0x4b, 0x41, 0xd9, 0xeb, 0xaf, 0x1a, - 0xbd, 0xfe, 0x36, 0xcc, 0xd3, 0x98, 0xc7, 0x39, 0xeb, 0x39, 0x22, 0xc7, 0x3e, 0x3b, 0x3d, 0xc7, - 0xb6, 0x1e, 0xc9, 0x95, 0x77, 0x48, 0x9a, 0x9c, 0x79, 0xb9, 0x9c, 0xb3, 0x0f, 0x5d, 0x7a, 0x74, - 0x14, 0x06, 0x04, 0x1f, 0x64, 0xec, 0x58, 0xdc, 0x6c, 0x6b, 0xe2, 0x66, 0x73, 0x27, 0xa8, 0x7a, - 0x64, 0xae, 0xf4, 0xaa, 0xa2, 0xd7, 0xde, 0x84, 0x25, 0x7d, 0x1b, 0xee, 0x86, 0x13, 0x7c, 0xa6, - 0x62, 0x90, 0xff, 0xe4, 0xcd, 0xde, 0x29, 0x0a, 0x33, 0x79, 0x0d, 0x2c, 0x78, 0x92, 0x78, 0xd3, - 0xfe, 0xaa, 0xe5, 0xfe, 0xdc, 0x82, 0x6e, 0x65, 0x03, 0xbe, 0x3a, 0x0d, 0xd2, 0x10, 0x2b, 0x0d, - 0x92, 0x70, 0x1c, 0x98, 0xf3, 0x31, 0x1b, 0xaa, 0x10, 0x16, 0xbf, 0x55, 0x25, 0x6b, 0x14, 0xed, - 0x22, 0x7f, 0xa1, 0x7b, 0x34, 0xe0, 0x8a, 0x06, 0x34, 0x23, 0x7e, 0xf1, 0x42, 0xa7, 0xf1, 0x78, - 0x08, 0x05, 0x8f, 0x06, 0x3b, 0xc8, 0x1f, 0x61, 0xf9, 0xda, 0xd5, 0x14, 0x36, 0x99, 0x4c, 0xd7, - 0x87, 0x85, 0xc7, 0x41, 0xcc, 0x76, 0x69, 0x14, 0x71, 0x20, 0x7c, 0x9c, 0xf2, 0x5e, 0xd5, 0x12, - 0x78, 0x2b, 0x8a, 0x87, 0x8a, 0x8f, 0x8f, 0x50, 0x16, 0xa6, 0x7c, 0x69, 0x9e, 0xb8, 0x1a, 0x4b, - 0xbc, 0x70, 0x30, 0x4a, 0xf6, 0xa4, 0xb4, 0xb4, 0x53, 0xe3, 0xb8, 0x7f, 0xb6, 0x61, 0x45, 0x34, - 0x0e, 0xbb, 0x02, 0x76, 0x5f, 0x08, 0xdd, 0x82, 0xa6, 0x48, 0x43, 0xd5, 0xac, 0x9c, 0xdf, 0x6c, - 0xc8, 0xa5, 0xce, 0x6d, 0x68, 0xd1, 0x58, 0xb4, 0x9c, 0xb2, 0x43, 0x79, 0x6d, 0x9a, 0x90, 0xf9, - 0x6e, 0xe7, 0x29, 0x29, 0xe7, 0x2e, 0x80, 0x7c, 0xed, 0xdc, 0x2f, 0x4b, 0xf7, 0xac, 0x3a, 0x34, - 0x49, 0xee, 0xdc, 0xa2, 0x0c, 0x17, 0x2f, 0x78, 0x0d, 0xcf, 0x64, 0x3a, 0x0f, 0x61, 0x59, 0x98, - 0xfd, 0x28, 0xef, 0x3a, 0x05, 0x06, 0xb3, 0xef, 0x58, 0x91, 0x76, 0x7f, 0x65, 0x29, 0x37, 0xf2, - 0xa7, 0x03, 0x2c, 0x7d, 0x5f, 0xba, 0xc4, 0xba, 0x94, 0x4b, 0xae, 0xc1, 0x42, 0x94, 0x69, 0x4d, - 0x70, 0xc3, 0x2b, 0xe8, 0x12, 0xa2, 0xc6, 0xcc, 0x10, 0xb9, 0xbf, 0xb6, 0xa0, 0xf7, 0x36, 0x0d, - 0x88, 0x78, 0xb0, 0x1d, 0xc7, 0xa1, 0x9a, 0x42, 0x5c, 0x1a, 0xf3, 0x6f, 0x42, 0x1b, 0x49, 0x35, - 0x24, 0x55, 0xb0, 0xcf, 0xd0, 0xd8, 0x96, 0x32, 0x5a, 0x8f, 0xd2, 0xd0, 0x7b, 0x14, 0xf7, 0x7d, - 0x0b, 0x96, 0xa5, 0x53, 0xde, 0xc9, 0x82, 0xf4, 0xd2, 0xf6, 0xed, 0xc0, 0xc2, 0x38, 0x0b, 0xd2, - 0x4b, 0x44, 0x65, 0x21, 0x57, 0x8f, 0xa7, 0xc6, 0x84, 0x78, 0x72, 0x3f, 0xb0, 0xe0, 0x7a, 0xd5, - 0xad, 0xdb, 0xc3, 0x21, 0x8e, 0x5f, 0x64, 0x4a, 0x19, 0x3d, 0xda, 0x5c, 0xa5, 0x47, 0x9b, 0x68, - 0xb2, 0x87, 0xdf, 0xc3, 0xc3, 0xff, 0x5e, 0x93, 0x7f, 0x6c, 0xc3, 0x27, 0xef, 0x15, 0x89, 0xf7, - 0x38, 0x41, 0x84, 0x1d, 0xe1, 0x24, 0x79, 0x81, 0xf6, 0xee, 0x43, 0x87, 0xe0, 0x67, 0xa5, 0x4d, - 0x2a, 0x1d, 0x67, 0x55, 0x63, 0x0a, 0xcf, 0x56, 0xbb, 0xdc, 0x7f, 0x59, 0xb0, 0x22, 0xf5, 0x7c, - 0x2b, 0x18, 0x9e, 0xbc, 0xc0, 0xc3, 0x3f, 0x84, 0xe5, 0x13, 0x61, 0x01, 0xa7, 0x2e, 0x51, 0xb6, - 0x2b, 0xd2, 0x33, 0x1e, 0xff, 0xdf, 0x16, 0xac, 0x4a, 0x45, 0x0f, 0xc8, 0x69, 0xf0, 0x22, 0x83, - 0xf5, 0x00, 0xba, 0x81, 0x34, 0xe1, 0x92, 0x0e, 0xa8, 0x8a, 0xcf, 0xe8, 0x81, 0xdf, 0x5b, 0xd0, - 0x95, 0x9a, 0xee, 0x90, 0x14, 0x27, 0x97, 0x3e, 0xff, 0x7d, 0x58, 0xc4, 0x24, 0x4d, 0x10, 0xb9, - 0x4c, 0x85, 0xd4, 0x45, 0x67, 0x2c, 0x92, 0xef, 0x5b, 0xe0, 0x08, 0x55, 0x7b, 0x01, 0x8b, 0x02, - 0xc6, 0x5e, 0x20, 0x74, 0xb3, 0x19, 0x7c, 0x02, 0xab, 0x72, 0xe6, 0xa0, 0x95, 0x48, 0xde, 0x7c, - 0x23, 0x5f, 0xf6, 0xd3, 0x96, 0x10, 0xca, 0x49, 0x73, 0x9a, 0xa4, 0x3e, 0x07, 0x94, 0xd3, 0xa4, - 0x1b, 0x00, 0xc8, 0xf7, 0xdf, 0xa5, 0x89, 0x1f, 0x90, 0xfc, 0xbe, 0xd3, 0x38, 0xee, 0xdb, 0xb0, - 0xc4, 0xdb, 0xff, 0xc7, 0xda, 0xf4, 0xe0, 0xdc, 0xf9, 0x86, 0x3e, 0x79, 0xb0, 0xcd, 0xc9, 0x83, - 0xfb, 0x7d, 0xf8, 0x78, 0xcd, 0x70, 0xe1, 0xeb, 0x5d, 0x39, 0x14, 0xc9, 0x37, 0x51, 0x2e, 0xff, - 0xf4, 0x04, 0xef, 0xe9, 0xb6, 0x78, 0x86, 0x90, 0xfb, 0x23, 0x0b, 0x5e, 0xad, 0xa9, 0xdf, 0x8e, - 0xe3, 0x84, 0x9e, 0x2a, 0x48, 0xaf, 0x62, 0x1b, 0xf3, 0x2e, 0xb0, 0xab, 0x77, 0xc1, 0x44, 0x23, - 0x8c, 0xfb, 0xeb, 0x23, 0x30, 0xe2, 0x37, 0x16, 0x74, 0x95, 0x11, 0xbe, 0xaf, 0xb6, 0xfd, 0x0a, - 0xb4, 0xe4, 0x40, 0x55, 0x6d, 0xf8, 0xea, 0xc4, 0x0d, 0xf3, 0x41, 0xb0, 0xa7, 0x16, 0xd7, 0x23, - 0xd2, 0x9e, 0xd4, 0xb7, 0x7e, 0xad, 0x88, 0xfb, 0x99, 0x47, 0x9e, 0x4a, 0xc0, 0xfd, 0x4e, 0x1e, - 0xcc, 0x7b, 0x38, 0xc4, 0x57, 0xe9, 0x23, 0xf7, 0x09, 0x2c, 0x8b, 0xe9, 0x6e, 0xe9, 0x83, 0x2b, - 0x51, 0xfb, 0x2e, 0xac, 0x08, 0xb5, 0x57, 0x6e, 0x6f, 0x91, 0x1d, 0xdc, 0x3f, 0xbb, 0xc7, 0x88, - 0x8c, 0xae, 0x52, 0xfb, 0x17, 0x61, 0x2d, 0xf7, 0xfd, 0x93, 0xd8, 0x2f, 0xde, 0xa9, 0xa6, 0x4c, - 0x92, 0xdc, 0x2f, 0xc1, 0xfa, 0x2e, 0x25, 0xa7, 0x38, 0x61, 0x02, 0x65, 0x29, 0x92, 0x4b, 0x18, - 0xc9, 0xaf, 0x28, 0x77, 0x00, 0xab, 0x6a, 0x06, 0x7a, 0x80, 0x46, 0x01, 0x91, 0x55, 0xe9, 0x06, - 0x40, 0x8c, 0x46, 0xf9, 0x37, 0x10, 0x39, 0x28, 0xd3, 0x38, 0xfc, 0x39, 0x3b, 0xa6, 0xcf, 0xd4, - 0x73, 0x5b, 0x3e, 0x2f, 0x39, 0xee, 0xb7, 0xc1, 0xf1, 0x30, 0x8b, 0x29, 0x61, 0x58, 0xd3, 0xba, - 0x01, 0x8b, 0xbb, 0x59, 0x92, 0x60, 0xc2, 0xb7, 0xca, 0x3f, 0x08, 0xe8, 0x2c, 0xae, 0x77, 0x50, - 0xea, 0x95, 0xc3, 0x15, 0x8d, 0xe3, 0xfe, 0xb2, 0x01, 0xed, 0x41, 0x30, 0x22, 0x28, 0xf4, 0xf0, - 0xd8, 0xf9, 0x3a, 0xb4, 0xe4, 0x95, 0xa7, 0x5c, 0x3b, 0xe9, 0x65, 0x5f, 0xae, 0x96, 0x77, 0xbb, - 0x87, 0xc7, 0xf7, 0x3f, 0xe6, 0x29, 0x19, 0xe7, 0x1d, 0xe8, 0xc8, 0x5f, 0x0f, 0xe4, 0x2b, 0x8c, - 0xaa, 0xfd, 0x9f, 0xbb, 0x40, 0x89, 0x5a, 0x2d, 0x75, 0x99, 0x1a, 0xb8, 0x41, 0x43, 0x44, 0x86, - 0xea, 0x23, 0xe1, 0x79, 0x06, 0xed, 0x8a, 0x65, 0xca, 0x20, 0x29, 0xc3, 0xa5, 0x91, 0x68, 0xf2, - 0xd5, 0x67, 0x96, 0xe9, 0xd2, 0xf2, 0x5d, 0x40, 0x49, 0x4b, 0x19, 0x2e, 0x7d, 0x9c, 0x91, 0xd1, - 0x93, 0x58, 0xbd, 0x7b, 0x4e, 0x97, 0xbe, 0x2f, 0x96, 0x29, 0x69, 0x29, 0xc3, 0xa5, 0x13, 0x51, - 0xed, 0x84, 0xd3, 0xcf, 0x93, 0x96, 0x45, 0x51, 0x49, 0x4b, 0x99, 0x9d, 0x36, 0xcc, 0xc7, 0xe8, - 0x2c, 0xa4, 0xc8, 0x77, 0x7f, 0xdb, 0x00, 0xc8, 0x17, 0x32, 0x71, 0xb3, 0x1a, 0x10, 0x6d, 0x5e, - 0x08, 0x51, 0x1c, 0x9e, 0x69, 0x20, 0x0d, 0x26, 0x83, 0xf4, 0xf9, 0x59, 0x41, 0x92, 0xda, 0x2a, - 0x30, 0xdd, 0xae, 0xc0, 0xb4, 0x79, 0x21, 0x4c, 0xca, 0x28, 0x05, 0xd4, 0xed, 0x0a, 0x50, 0x9b, - 0x17, 0x02, 0xa5, 0xe4, 0x15, 0x54, 0xb7, 0x2b, 0x50, 0x6d, 0x5e, 0x08, 0x95, 0x92, 0x57, 0x60, - 0xdd, 0xae, 0x80, 0xb5, 0x79, 0x21, 0x58, 0x4a, 0xbe, 0x0e, 0xd7, 0x07, 0x36, 0x2c, 0x0b, 0x97, - 0xc9, 0x41, 0x33, 0x39, 0xa2, 0x62, 0x9e, 0x24, 0xdc, 0x65, 0x7e, 0x52, 0x33, 0x99, 0xce, 0x17, - 0x60, 0x55, 0x32, 0xd4, 0x27, 0x18, 0xd1, 0xaf, 0xda, 0x1b, 0x8d, 0x9b, 0x6d, 0xaf, 0xfe, 0x40, - 0x8c, 0x06, 0x33, 0x96, 0xd2, 0x68, 0x0f, 0xa5, 0x28, 0xef, 0x56, 0x4a, 0x8e, 0x3e, 0xb8, 0x9d, - 0xab, 0x7d, 0x92, 0x4f, 0x28, 0x8d, 0x8a, 0x89, 0xac, 0xa2, 0xb8, 0x44, 0x1a, 0x44, 0x98, 0x66, - 0xa9, 0x2a, 0x13, 0x39, 0xc9, 0xef, 0xd8, 0x08, 0xfb, 0x01, 0x12, 0xe3, 0x4e, 0xf5, 0x1d, 0xa4, - 0x60, 0x88, 0xca, 0x56, 0x8e, 0x6f, 0xd5, 0x27, 0xf3, 0x92, 0x73, 0xf1, 0xa8, 0xd5, 0xfd, 0x9b, - 0x05, 0x6b, 0x07, 0x28, 0x49, 0x83, 0x61, 0x10, 0x23, 0x92, 0xf6, 0x71, 0x8a, 0xc4, 0x19, 0x8c, - 0xef, 0x6a, 0xd6, 0x87, 0xfb, 0xae, 0x76, 0x00, 0xdd, 0x51, 0xd9, 0x5f, 0x6a, 0x5f, 0xe6, 0x66, - 0xee, 0xfd, 0x2b, 0xe2, 0xc6, 0x47, 0xc2, 0xc6, 0x87, 0xfe, 0x48, 0xe8, 0xfe, 0xd4, 0x86, 0x6e, - 0xa5, 0x74, 0xf2, 0x16, 0x51, 0x5e, 0xfe, 0x45, 0x4c, 0x14, 0xb4, 0xb3, 0x0d, 0x10, 0x14, 0x61, - 0x74, 0xce, 0xf0, 0xc6, 0x8c, 0x35, 0x4f, 0x13, 0x9a, 0x34, 0xc3, 0x6d, 0x5c, 0x7a, 0x86, 0xcb, - 0xdf, 0x46, 0xe2, 0x12, 0x24, 0x95, 0xa8, 0x93, 0xbc, 0x39, 0x01, 0x4a, 0x4f, 0x17, 0x75, 0xbf, - 0x07, 0xab, 0xb5, 0x0a, 0x25, 0x46, 0xba, 0xf4, 0x04, 0x93, 0x62, 0xa4, 0xcb, 0x09, 0x2d, 0x58, - 0xed, 0x6a, 0xb0, 0x86, 0xc1, 0xa9, 0xfe, 0x2f, 0x04, 0x45, 0xba, 0x3f, 0xb3, 0x61, 0x7d, 0xf2, - 0xed, 0xf2, 0xb2, 0xba, 0xfb, 0x10, 0x7a, 0xd3, 0x2a, 0xf9, 0x95, 0x79, 0xbd, 0x8c, 0xee, 0xe2, - 0x1e, 0x7e, 0x59, 0xdd, 0xbd, 0x96, 0x47, 0xb7, 0x76, 0xd5, 0xb9, 0xbf, 0x2b, 0xfc, 0x53, 0x74, - 0x1a, 0x2f, 0xa9, 0x7f, 0x9c, 0xd7, 0x61, 0x45, 0x1e, 0x53, 0xfb, 0xe8, 0x27, 0x1b, 0xd7, 0x1a, - 0xbf, 0xac, 0x14, 0xda, 0xb5, 0x7f, 0x65, 0x31, 0xfb, 0x27, 0x2b, 0xc7, 0xa4, 0xe8, 0xdf, 0xfe, - 0xa7, 0x30, 0x29, 0x23, 0x4d, 0x6b, 0x6a, 0xb4, 0x48, 0x2b, 0xfa, 0xca, 0xff, 0x47, 0xda, 0xc5, - 0x91, 0x56, 0xf8, 0x52, 0x6b, 0xf0, 0xdc, 0x1f, 0x42, 0x67, 0x0f, 0x87, 0x7d, 0x36, 0xca, 0xff, - 0x6e, 0x70, 0x9e, 0x23, 0xa7, 0xfd, 0xd5, 0x71, 0xea, 0x1f, 0x0d, 0xaa, 0x7f, 0x52, 0x98, 0xab, - 0xfd, 0x49, 0xc1, 0xdd, 0x81, 0x65, 0xdd, 0x80, 0xcb, 0xfc, 0xdb, 0x62, 0xe7, 0xfa, 0x77, 0xaf, - 0x6d, 0xbd, 0x21, 0xff, 0x54, 0xfb, 0x56, 0xcd, 0x89, 0x87, 0x2d, 0xf1, 0x27, 0xdb, 0x2f, 0xff, - 0x27, 0x00, 0x00, 0xff, 0xff, 0xd8, 0x98, 0x6b, 0xf4, 0x77, 0x2b, 0x00, 0x00, +var fileDescriptor_ws_f1fa7995a968e7fe = []byte{ + // 2676 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x23, 0x49, + 0x15, 0xa7, 0xdb, 0xb1, 0x13, 0x3f, 0xc7, 0x71, 0xd2, 0x59, 0x82, 0x09, 0xb3, 0x43, 0x68, 0x45, + 0xcb, 0xb0, 0x40, 0x16, 0x0d, 0x42, 0x82, 0x5d, 0x18, 0x94, 0x8f, 0xf9, 0x5a, 0xe2, 0x99, 0x6c, + 0x7b, 0x86, 0x45, 0x80, 0xb4, 0xea, 0xb8, 0x2b, 0x4e, 0x6f, 0xda, 0x55, 0xed, 0xfe, 0xc8, 0x4c, + 0x24, 0x24, 0x24, 0x90, 0x10, 0x37, 0x4e, 0x70, 0xe0, 0x82, 0xc4, 0x05, 0x81, 0xd0, 0x6a, 0x0f, + 0x70, 0x43, 0x9c, 0xf8, 0x07, 0x38, 0x22, 0x6e, 0x9c, 0xb9, 0x72, 0x40, 0x42, 0x02, 0x55, 0xbd, + 0xea, 0xee, 0xaa, 0x6e, 0x3b, 0xf1, 0x46, 0xd1, 0xce, 0xac, 0x86, 0x9b, 0xdf, 0xeb, 0x7a, 0xaf, + 0x5e, 0xbd, 0xdf, 0x7b, 0xaf, 0x5e, 0x55, 0x19, 0x3a, 0xb1, 0x77, 0xf2, 0xce, 0x93, 0xf8, 0xb5, + 0x27, 0xf1, 0x56, 0x18, 0xb1, 0x84, 0x59, 0x2b, 0x31, 0x89, 0x4e, 0x49, 0xf4, 0x8e, 0x1b, 0xfa, + 0xef, 0x84, 0x6e, 0xe4, 0x8e, 0x62, 0xfb, 0x5f, 0x26, 0x34, 0xef, 0x46, 0x2c, 0x0d, 0xef, 0xd3, + 0x23, 0x66, 0x75, 0x61, 0x7e, 0x28, 0x88, 0xbd, 0xae, 0xb1, 0x61, 0xdc, 0x68, 0x3a, 0x19, 0x69, + 0x5d, 0x83, 0xa6, 0xf8, 0xf9, 0xc0, 0x1d, 0x91, 0xae, 0x29, 0xbe, 0x15, 0x0c, 0xcb, 0x86, 0x45, + 0xca, 0x12, 0xff, 0xc8, 0x1f, 0xb8, 0x89, 0xcf, 0x68, 0xb7, 0x26, 0x06, 0x68, 0x3c, 0x3e, 0xc6, + 0xa7, 0x49, 0xc4, 0xbc, 0x74, 0x20, 0xc6, 0xcc, 0xe1, 0x18, 0x95, 0xc7, 0xe7, 0x3f, 0x72, 0x07, + 0xe4, 0xb1, 0xb3, 0xdf, 0xad, 0xe3, 0xfc, 0x92, 0xb4, 0x36, 0xa0, 0xc5, 0x9e, 0x50, 0x12, 0x3d, + 0x8e, 0x49, 0x74, 0x7f, 0xaf, 0xdb, 0x10, 0x5f, 0x55, 0x96, 0x75, 0x1d, 0x60, 0x10, 0x11, 0x37, + 0x21, 0x8f, 0xfc, 0x11, 0xe9, 0xce, 0x6f, 0x18, 0x37, 0xda, 0x8e, 0xc2, 0xe1, 0x1a, 0x46, 0x64, + 0x74, 0x48, 0xa2, 0x5d, 0x96, 0xd2, 0xa4, 0xbb, 0x20, 0x06, 0xa8, 0x2c, 0x6b, 0x09, 0x4c, 0xf2, + 0xb4, 0xdb, 0x14, 0xaa, 0x4d, 0xf2, 0xd4, 0x5a, 0x83, 0x46, 0x9c, 0xb8, 0x49, 0x1a, 0x77, 0x61, + 0xc3, 0xb8, 0x51, 0x77, 0x24, 0x65, 0x6d, 0x42, 0x5b, 0xe8, 0x65, 0x99, 0x35, 0x2d, 0x21, 0xa2, + 0x33, 0x73, 0x8f, 0x3d, 0x3a, 0x0b, 0x49, 0x77, 0x51, 0x28, 0x28, 0x18, 0xf6, 0xdf, 0x4c, 0x58, + 0x15, 0x7e, 0xef, 0x09, 0x03, 0xee, 0xa4, 0x41, 0x70, 0x01, 0x02, 0x6b, 0xd0, 0x48, 0x71, 0x3a, + 0x74, 0xbf, 0xa4, 0xf8, 0x3c, 0x11, 0x0b, 0xc8, 0x3e, 0x39, 0x25, 0x81, 0x70, 0x7c, 0xdd, 0x29, + 0x18, 0xd6, 0x3a, 0x2c, 0xbc, 0xcb, 0x7c, 0x2a, 0x7c, 0x32, 0x27, 0x3e, 0xe6, 0x34, 0xff, 0x46, + 0xfd, 0xc1, 0x09, 0xe5, 0x90, 0xa2, 0xbb, 0x73, 0x5a, 0x45, 0xa2, 0xa1, 0x23, 0xf1, 0x0a, 0x2c, + 0xb9, 0x61, 0xd8, 0x73, 0xe9, 0x90, 0x44, 0x38, 0xe9, 0xbc, 0xd0, 0x5b, 0xe2, 0x72, 0x3c, 0xf8, + 0x4c, 0x7d, 0x96, 0x46, 0x03, 0x22, 0xdc, 0x5d, 0x77, 0x14, 0x0e, 0xd7, 0xc3, 0x42, 0x12, 0x29, + 0x6e, 0x44, 0xcf, 0x97, 0xb8, 0x12, 0x15, 0xc8, 0x51, 0xe1, 0x38, 0xa6, 0x09, 0xb9, 0x4d, 0x3d, + 0xb1, 0xa8, 0x96, 0xc4, 0xb1, 0x60, 0xd9, 0x3f, 0x31, 0x60, 0xe9, 0x20, 0x3d, 0x0c, 0xfc, 0x81, + 0x50, 0xc1, 0xdd, 0x5a, 0x38, 0xcf, 0xd0, 0x9c, 0xa7, 0xba, 0xc0, 0x9c, 0xee, 0x82, 0x9a, 0xee, + 0x82, 0x35, 0x68, 0x0c, 0x09, 0xf5, 0x48, 0x24, 0x5d, 0x2a, 0x29, 0x69, 0x6a, 0x3d, 0x33, 0xd5, + 0xfe, 0x85, 0x09, 0x0b, 0x1f, 0xb2, 0x09, 0x1b, 0xd0, 0x0a, 0x8f, 0x19, 0x25, 0x0f, 0x52, 0x1e, + 0x56, 0xd2, 0x16, 0x95, 0x65, 0xbd, 0x04, 0xf5, 0x43, 0x3f, 0x4a, 0x8e, 0x05, 0xae, 0x6d, 0x07, + 0x09, 0xce, 0x25, 0x23, 0xd7, 0x47, 0x30, 0x9b, 0x0e, 0x12, 0x72, 0x41, 0x0b, 0xb9, 0xef, 0xf5, + 0x1c, 0x6b, 0x56, 0x72, 0xac, 0x1a, 0x1b, 0x30, 0x29, 0x36, 0xec, 0x7f, 0x1b, 0x00, 0x77, 0x22, + 0x9f, 0x50, 0x4f, 0xb8, 0xa6, 0x94, 0xdc, 0x46, 0x35, 0xb9, 0xd7, 0xa0, 0x11, 0x91, 0x91, 0x1b, + 0x9d, 0x64, 0xc1, 0x8f, 0x54, 0xc9, 0xa0, 0x5a, 0xc5, 0xa0, 0x37, 0x00, 0x8e, 0xc4, 0x3c, 0x5c, + 0x8f, 0x70, 0x55, 0xeb, 0xe6, 0xa7, 0xb6, 0x2a, 0x65, 0x70, 0x2b, 0x43, 0xc9, 0x51, 0x86, 0xf3, + 0xcc, 0x72, 0x3d, 0x4f, 0x06, 0x70, 0x1d, 0x33, 0x2b, 0x67, 0x4c, 0x88, 0xdf, 0xc6, 0x39, 0xf1, + 0x3b, 0x9f, 0x07, 0xc5, 0x3f, 0x0d, 0x68, 0xee, 0x04, 0xee, 0xe0, 0x64, 0xc6, 0xa5, 0xeb, 0x4b, + 0x34, 0x2b, 0x4b, 0xbc, 0x0b, 0xed, 0x43, 0xae, 0x2e, 0x5b, 0x82, 0xf0, 0x42, 0xeb, 0xe6, 0x67, + 0x26, 0xac, 0x52, 0x4f, 0x0a, 0x47, 0x97, 0xd3, 0x97, 0x3b, 0x77, 0xf1, 0x72, 0xeb, 0xe7, 0x2c, + 0xb7, 0x91, 0x2f, 0xf7, 0xaf, 0x26, 0x2c, 0x8a, 0x42, 0xe7, 0x90, 0x71, 0x4a, 0xe2, 0xc4, 0xfa, + 0x06, 0x2c, 0xa4, 0x99, 0xa9, 0xc6, 0xac, 0xa6, 0xe6, 0x22, 0xd6, 0xeb, 0xb2, 0xac, 0x0a, 0x79, + 0x53, 0xc8, 0x5f, 0x9b, 0x20, 0x9f, 0xef, 0x69, 0x4e, 0x31, 0x9c, 0x6f, 0x41, 0xc7, 0x2e, 0xf5, + 0x02, 0xe2, 0x90, 0x38, 0x0d, 0x12, 0x59, 0x2d, 0x35, 0x1e, 0x46, 0xda, 0xb8, 0x17, 0x0f, 0xe5, + 0x06, 0x25, 0x29, 0xee, 0x1d, 0x1c, 0xc7, 0x3f, 0xe1, 0xd2, 0x0b, 0x06, 0x4f, 0xd4, 0x88, 0x8c, + 0x05, 0x42, 0x98, 0x56, 0x19, 0x59, 0xcc, 0x29, 0xbd, 0x86, 0x81, 0xa0, 0xf1, 0x38, 0xc4, 0x48, + 0x0b, 0x05, 0xb8, 0x33, 0x29, 0x9c, 0xf2, 0xc6, 0x64, 0xff, 0xbd, 0x06, 0x6d, 0x4c, 0x9f, 0xcc, + 0xa9, 0xd7, 0x79, 0x9c, 0xb3, 0x91, 0x16, 0x45, 0x0a, 0x87, 0x5b, 0xc1, 0xa9, 0x07, 0x7a, 0xa1, + 0xd1, 0x78, 0x3c, 0x14, 0x39, 0x7d, 0x47, 0x2b, 0x38, 0x2a, 0x2b, 0x9b, 0xe5, 0xae, 0x5a, 0x78, + 0x14, 0x0e, 0x2f, 0x65, 0x09, 0xd3, 0xa2, 0x23, 0xa7, 0xb9, 0x6c, 0xc2, 0xf2, 0xf9, 0x31, 0x3e, + 0x14, 0x0e, 0xf7, 0x6f, 0xc2, 0xb2, 0xb9, 0xd1, 0x49, 0x05, 0x03, 0x35, 0xcb, 0x79, 0x71, 0x2b, + 0xc9, 0xe9, 0x0a, 0xaa, 0xcd, 0x73, 0x51, 0x05, 0x0d, 0x55, 0x3d, 0xb9, 0x5a, 0x95, 0xe4, 0xda, + 0x84, 0x36, 0xea, 0xc9, 0x82, 0x7e, 0x11, 0xb7, 0x7a, 0x8d, 0xa9, 0xc7, 0x46, 0xbb, 0x1c, 0x1b, + 0x3a, 0xba, 0x4b, 0x53, 0xd0, 0xed, 0xe4, 0xe8, 0xfe, 0x00, 0xba, 0x07, 0x69, 0x10, 0xf4, 0x48, + 0x1c, 0xbb, 0x43, 0xb2, 0x73, 0xd6, 0x27, 0xe3, 0x7d, 0x3f, 0x4e, 0x1c, 0x12, 0x87, 0x3c, 0xce, + 0x48, 0x14, 0xed, 0x32, 0x8f, 0x08, 0x90, 0xeb, 0x4e, 0x46, 0xf2, 0x15, 0x92, 0x28, 0xe2, 0x06, + 0xc8, 0x0a, 0x89, 0x94, 0xb5, 0x05, 0x73, 0x81, 0x1f, 0xf3, 0x58, 0xaf, 0xdd, 0x68, 0xdd, 0x5c, + 0x9f, 0x90, 0x2a, 0xbd, 0x78, 0xb8, 0xe7, 0x26, 0xae, 0x23, 0xc6, 0xd9, 0x23, 0xf8, 0xc4, 0xe4, + 0xd9, 0xc7, 0x53, 0x77, 0x30, 0x5e, 0xc3, 0x44, 0x11, 0xf0, 0x19, 0xcd, 0xdb, 0x13, 0x95, 0xc5, + 0xcd, 0x8e, 0x51, 0x8f, 0xb0, 0xa3, 0xed, 0x64, 0xa4, 0xfd, 0x12, 0x58, 0x77, 0x49, 0xd2, 0x73, + 0x9f, 0x6e, 0x53, 0xaf, 0xe7, 0xd3, 0x3e, 0x19, 0x3b, 0x64, 0x6c, 0xdf, 0x86, 0xd5, 0x0a, 0x37, + 0x0e, 0xb9, 0x01, 0x23, 0xf7, 0x69, 0x9f, 0x8c, 0x85, 0x01, 0x6d, 0x47, 0x52, 0x82, 0x2f, 0x46, + 0xc9, 0xf2, 0x28, 0x29, 0x7b, 0x0c, 0x1d, 0x8e, 0x50, 0x9f, 0x50, 0xaf, 0x17, 0x0f, 0x85, 0x8a, + 0x0d, 0x68, 0xa1, 0x07, 0x7a, 0xf1, 0xb0, 0xa8, 0xb7, 0x0a, 0x8b, 0x8f, 0x18, 0x04, 0x3e, 0xa1, + 0x09, 0x8e, 0x90, 0xab, 0x51, 0x58, 0x3c, 0x18, 0x63, 0x22, 0xdb, 0x0f, 0x9e, 0x25, 0x35, 0x27, + 0xa7, 0xed, 0x3f, 0xd5, 0x61, 0x5e, 0x3a, 0x54, 0xf4, 0x8f, 0x7c, 0x8b, 0xcb, 0xfd, 0x85, 0x14, + 0x06, 0xe3, 0xe0, 0xb4, 0xe8, 0xe4, 0x90, 0x52, 0x7b, 0xbf, 0x9a, 0xde, 0xfb, 0x95, 0x6c, 0x9a, + 0xab, 0xda, 0x54, 0x5a, 0x57, 0xbd, 0xba, 0xae, 0x57, 0x61, 0x39, 0x16, 0x09, 0x73, 0x10, 0xb8, + 0xc9, 0x11, 0x8b, 0x46, 0x72, 0xc7, 0xaa, 0x3b, 0x15, 0x3e, 0x2f, 0xf6, 0xc8, 0xcb, 0x13, 0x16, + 0x33, 0xb2, 0xc4, 0xe5, 0xe9, 0x81, 0x9c, 0x2c, 0x71, 0xb1, 0x55, 0xd0, 0x99, 0x68, 0x5b, 0x1c, + 0xfb, 0x8c, 0x8a, 0x5e, 0x18, 0xf3, 0x53, 0x65, 0xf1, 0x95, 0x8f, 0xe2, 0xe1, 0x9d, 0x88, 0x8d, + 0x64, 0xc3, 0x90, 0x91, 0x62, 0xe5, 0x8c, 0x26, 0x84, 0x26, 0x42, 0xb6, 0x85, 0xb2, 0x0a, 0x8b, + 0xcb, 0x4a, 0x52, 0x24, 0xe7, 0xa2, 0x93, 0x91, 0xd6, 0x32, 0xd4, 0x62, 0x32, 0x96, 0x19, 0xc7, + 0x7f, 0x6a, 0xc8, 0x75, 0x74, 0xe4, 0x4a, 0xa5, 0x60, 0x59, 0x7c, 0x55, 0x4b, 0x41, 0x71, 0x1a, + 0x58, 0xd1, 0x4e, 0x03, 0xdb, 0x30, 0xcf, 0x42, 0x1e, 0xe7, 0x71, 0xd7, 0x12, 0x39, 0xf6, 0xd9, + 0xe9, 0x39, 0xb6, 0xf5, 0x10, 0x47, 0xde, 0xa6, 0x49, 0x74, 0xe6, 0x64, 0x72, 0xd6, 0x3e, 0x74, + 0xd8, 0xd1, 0x51, 0xe0, 0x53, 0x72, 0x90, 0xc6, 0xc7, 0x62, 0x67, 0x5b, 0x15, 0x3b, 0x9b, 0x3d, + 0x41, 0xd5, 0x43, 0x7d, 0xa4, 0x53, 0x16, 0x5d, 0x7f, 0x1d, 0x16, 0xd5, 0x69, 0xb8, 0x1b, 0x4e, + 0xc8, 0x99, 0x8c, 0x41, 0xfe, 0x93, 0x37, 0x7b, 0xa7, 0x6e, 0x90, 0xe2, 0x36, 0xb0, 0xe0, 0x20, + 0xf1, 0xba, 0xf9, 0x55, 0xc3, 0xfe, 0xb9, 0x01, 0x9d, 0xd2, 0x04, 0x7c, 0x74, 0xe2, 0x27, 0x01, + 0x91, 0x1a, 0x90, 0xb0, 0x2c, 0x98, 0xf3, 0x48, 0x3c, 0x90, 0x21, 0x2c, 0x7e, 0xcb, 0x4a, 0x56, + 0xcb, 0xdb, 0x45, 0x7e, 0xe4, 0x7b, 0xd8, 0xe7, 0x8a, 0xfa, 0x2c, 0xa5, 0x5e, 0x7e, 0xe4, 0x53, + 0x78, 0x3c, 0x84, 0xfc, 0x87, 0xfd, 0x1d, 0xd7, 0x1b, 0x12, 0x3c, 0x98, 0xd5, 0x85, 0x4d, 0x3a, + 0xd3, 0xf6, 0x60, 0xe1, 0x91, 0x1f, 0xc6, 0xbb, 0x6c, 0x34, 0xe2, 0x40, 0x78, 0x24, 0xe1, 0xbd, + 0xaa, 0x21, 0xf0, 0x96, 0x14, 0x0f, 0x15, 0x8f, 0x1c, 0xb9, 0x69, 0x90, 0xf0, 0xa1, 0x59, 0xe2, + 0x2a, 0x2c, 0x71, 0x24, 0x89, 0x19, 0xdd, 0x43, 0x69, 0xb4, 0x53, 0xe1, 0xd8, 0x7f, 0x31, 0x61, + 0x59, 0x34, 0x0e, 0xbb, 0x02, 0x76, 0x4f, 0x08, 0xdd, 0x84, 0xba, 0x48, 0x43, 0xd9, 0xac, 0x9c, + 0xdf, 0x6c, 0xe0, 0x50, 0xeb, 0x16, 0x34, 0x58, 0x28, 0x5a, 0x4e, 0xec, 0x50, 0x5e, 0x99, 0x26, + 0xa4, 0x9f, 0xfe, 0x1c, 0x29, 0x65, 0xdd, 0x01, 0xc0, 0x83, 0xe9, 0x7e, 0x51, 0xba, 0x67, 0xd5, + 0xa1, 0x48, 0x72, 0xe7, 0xe6, 0x65, 0x38, 0x3f, 0x02, 0xd6, 0x1c, 0x9d, 0x69, 0x3d, 0x80, 0x25, + 0x61, 0xf6, 0xc3, 0xac, 0xeb, 0x14, 0x18, 0xcc, 0x3e, 0x63, 0x49, 0xda, 0xfe, 0xb5, 0x21, 0xdd, + 0xc8, 0xbf, 0xf6, 0x09, 0xfa, 0xbe, 0x70, 0x89, 0x71, 0x29, 0x97, 0xac, 0xc3, 0x02, 0x3f, 0xe3, + 0xe5, 0x4d, 0x70, 0xcd, 0xc9, 0xe9, 0x02, 0xa2, 0xda, 0xcc, 0x10, 0xd9, 0xbf, 0x31, 0xa0, 0xfb, + 0x26, 0xf3, 0xa9, 0xf8, 0xb0, 0x1d, 0x86, 0x81, 0xbc, 0xa7, 0xb8, 0x34, 0xe6, 0xdf, 0x84, 0xa6, + 0x8b, 0x6a, 0x68, 0x22, 0x61, 0x9f, 0xa1, 0xb1, 0x2d, 0x64, 0x94, 0x1e, 0xa5, 0xa6, 0xf6, 0x28, + 0xf6, 0x7b, 0x06, 0x2c, 0xa1, 0x53, 0xde, 0x4a, 0xfd, 0xe4, 0xd2, 0xf6, 0xed, 0xc0, 0xc2, 0x38, + 0xf5, 0x93, 0x4b, 0x44, 0x65, 0x2e, 0x57, 0x8d, 0xa7, 0xda, 0x84, 0x78, 0xb2, 0xdf, 0x37, 0xe0, + 0x5a, 0xd9, 0xad, 0xdb, 0x83, 0x01, 0x09, 0x9f, 0x65, 0x4a, 0x69, 0x3d, 0xda, 0x5c, 0xa9, 0x47, + 0x9b, 0x68, 0xb2, 0x43, 0xde, 0x25, 0x83, 0xe7, 0xd7, 0xe4, 0x1f, 0x9b, 0xf0, 0xc9, 0xbb, 0x79, + 0xe2, 0x3d, 0x8a, 0x5c, 0x1a, 0x1f, 0x91, 0x28, 0x7a, 0x86, 0xf6, 0xee, 0x43, 0x9b, 0x92, 0x27, + 0x85, 0x4d, 0x32, 0x1d, 0x67, 0x55, 0xa3, 0x0b, 0xcf, 0x56, 0xbb, 0xec, 0xff, 0x18, 0xb0, 0x8c, + 0x7a, 0xbe, 0xe5, 0x0f, 0x4e, 0x9e, 0xe1, 0xe2, 0x1f, 0xc0, 0xd2, 0x89, 0xb0, 0x80, 0x53, 0x97, + 0x28, 0xdb, 0x25, 0xe9, 0x19, 0x97, 0xff, 0x5f, 0x03, 0x56, 0x50, 0xd1, 0x7d, 0x7a, 0xea, 0x3f, + 0xcb, 0x60, 0x3d, 0x80, 0x8e, 0x8f, 0x26, 0x5c, 0xd2, 0x01, 0x65, 0xf1, 0x19, 0x3d, 0xf0, 0x47, + 0x03, 0x3a, 0xa8, 0xe9, 0x36, 0x4d, 0x48, 0x74, 0xe9, 0xf5, 0xdf, 0x83, 0x16, 0xa1, 0x49, 0xe4, + 0xd2, 0xcb, 0x54, 0x48, 0x55, 0x74, 0xc6, 0x22, 0xf9, 0x9e, 0x01, 0x96, 0x50, 0xb5, 0xe7, 0xc7, + 0x23, 0x3f, 0x8e, 0x9f, 0x21, 0x74, 0xb3, 0x19, 0xfc, 0x4b, 0x13, 0x5e, 0x52, 0xb4, 0xf4, 0xd2, + 0xe4, 0x79, 0x37, 0xd9, 0xda, 0x83, 0x26, 0xef, 0x11, 0xd4, 0xcb, 0xbf, 0x59, 0x27, 0x2a, 0x04, + 0x79, 0x17, 0x2b, 0x88, 0x3e, 0x19, 0x30, 0xea, 0xc5, 0xa2, 0x39, 0x6a, 0x3b, 0x1a, 0x8f, 0x97, + 0xa1, 0x75, 0x45, 0xcd, 0xae, 0x4b, 0x07, 0x24, 0x78, 0x61, 0x5c, 0x64, 0xff, 0xce, 0x80, 0x25, + 0x1c, 0xf2, 0xfc, 0x2f, 0x99, 0xef, 0xf5, 0x18, 0xc8, 0x1f, 0x19, 0x94, 0xec, 0x13, 0x58, 0xc1, + 0xfb, 0x3e, 0xa5, 0x3d, 0xe1, 0x07, 0x5f, 0xd7, 0xc3, 0xb3, 0xac, 0x21, 0x84, 0x32, 0x52, 0xbf, + 0xc9, 0x95, 0x8f, 0x75, 0xc5, 0x4d, 0xee, 0x75, 0x00, 0xd7, 0xf3, 0xde, 0x66, 0x91, 0xe7, 0xd3, + 0xac, 0xd7, 0x54, 0x38, 0xf6, 0x9b, 0xb0, 0xc8, 0x8f, 0xde, 0x8f, 0x94, 0x9b, 0xbb, 0x73, 0xef, + 0x16, 0xd5, 0x5b, 0x3f, 0x53, 0xbf, 0xf5, 0xb3, 0xbf, 0x0f, 0x1f, 0xaf, 0x18, 0x2e, 0x7c, 0xbd, + 0x8b, 0x17, 0x92, 0xd9, 0x24, 0xd2, 0xe5, 0x9f, 0x9e, 0xe0, 0x3d, 0xd5, 0x16, 0x47, 0x13, 0xb2, + 0x7f, 0x64, 0xc0, 0xcb, 0x15, 0xf5, 0xdb, 0x61, 0x18, 0xb1, 0x53, 0x09, 0xe9, 0x55, 0x4c, 0xa3, + 0xf7, 0x61, 0x66, 0xb9, 0x0f, 0x9b, 0x68, 0x84, 0xd6, 0x3b, 0x7e, 0x08, 0x46, 0xfc, 0xd6, 0x80, + 0x8e, 0x34, 0xc2, 0xf3, 0xe4, 0xb4, 0x5f, 0x81, 0x06, 0x3e, 0x66, 0xc8, 0x09, 0x5f, 0x9e, 0x38, + 0x61, 0xf6, 0x08, 0xe3, 0xc8, 0xc1, 0xd5, 0x88, 0x34, 0x27, 0xd5, 0x8d, 0xaf, 0xe5, 0x71, 0x3f, + 0xf3, 0x73, 0x83, 0x14, 0xb0, 0xbf, 0x93, 0x05, 0xf3, 0x1e, 0x09, 0xc8, 0x55, 0xfa, 0xc8, 0x7e, + 0x0c, 0x4b, 0xe2, 0x65, 0xa5, 0xf0, 0xc1, 0x95, 0xa8, 0x7d, 0x1b, 0x96, 0x85, 0xda, 0x2b, 0xb7, + 0x37, 0xcf, 0x0e, 0xee, 0x9f, 0xdd, 0x63, 0x97, 0x0e, 0xaf, 0x52, 0xfb, 0x17, 0x61, 0x35, 0xf3, + 0xfd, 0xe3, 0xd0, 0xcb, 0xef, 0x33, 0xa6, 0xdc, 0xe2, 0xda, 0x5f, 0x82, 0xb5, 0x5d, 0x46, 0x4f, + 0x49, 0x14, 0x0b, 0x94, 0x51, 0x24, 0x93, 0xd0, 0x92, 0x5f, 0x52, 0x76, 0x1f, 0x56, 0xe4, 0xfb, + 0xc3, 0x81, 0x3b, 0xf4, 0x29, 0x56, 0xa5, 0xeb, 0x00, 0xa1, 0x3b, 0xcc, 0xde, 0x1f, 0xf1, 0x92, + 0x5a, 0xe1, 0xf0, 0xef, 0xf1, 0x31, 0x7b, 0x22, 0xbf, 0x9b, 0xf8, 0xbd, 0xe0, 0xd8, 0xdf, 0x06, + 0xcb, 0x21, 0x71, 0xc8, 0x68, 0x4c, 0x14, 0xad, 0x1b, 0xd0, 0xda, 0x4d, 0xa3, 0x88, 0x50, 0x3e, + 0x55, 0xf6, 0x18, 0xa7, 0xb2, 0xb8, 0xde, 0x7e, 0xa1, 0x17, 0x2f, 0x36, 0x15, 0x8e, 0xfd, 0xab, + 0x1a, 0x34, 0xfb, 0xfe, 0x90, 0xba, 0x81, 0x43, 0xc6, 0xd6, 0xd7, 0xa1, 0x81, 0xed, 0xa6, 0x74, + 0xed, 0xa4, 0x8b, 0x36, 0x1c, 0x8d, 0x7d, 0xb5, 0x43, 0xc6, 0xf7, 0x3e, 0xe6, 0x48, 0x19, 0xeb, + 0x2d, 0x68, 0xe3, 0xaf, 0xfb, 0x78, 0x7d, 0x20, 0x6b, 0xff, 0xe7, 0x2e, 0x50, 0x22, 0x47, 0xa3, + 0x2e, 0x5d, 0x03, 0x37, 0x68, 0x20, 0xb6, 0x23, 0x99, 0x4f, 0xd3, 0x0d, 0xc2, 0x5d, 0x4b, 0x1a, + 0x84, 0x32, 0x5c, 0xda, 0x15, 0x07, 0x6c, 0xb9, 0x85, 0x4f, 0x97, 0xc6, 0x73, 0xb8, 0x94, 0x46, + 0x19, 0x2e, 0x7d, 0x9c, 0xd2, 0xe1, 0xe3, 0x50, 0xde, 0xfb, 0x4c, 0x97, 0xbe, 0x27, 0x86, 0x49, + 0x69, 0x94, 0xe1, 0xd2, 0x91, 0xa8, 0x76, 0xc2, 0xe9, 0xe7, 0x49, 0x63, 0x51, 0x94, 0xd2, 0x28, + 0xb3, 0xd3, 0x84, 0xf9, 0xd0, 0x3d, 0x0b, 0x98, 0xeb, 0xd9, 0xbf, 0xaf, 0x01, 0x64, 0x03, 0x63, + 0xb1, 0xb3, 0x6a, 0x10, 0x6d, 0x5e, 0x08, 0x51, 0x18, 0x9c, 0x29, 0x20, 0xf5, 0x27, 0x83, 0xf4, + 0xf9, 0x59, 0x41, 0x42, 0x6d, 0x25, 0x98, 0x6e, 0x95, 0x60, 0xda, 0xbc, 0x10, 0x26, 0x69, 0x94, + 0x04, 0xea, 0x56, 0x09, 0xa8, 0xcd, 0x0b, 0x81, 0x92, 0xf2, 0x12, 0xaa, 0x5b, 0x25, 0xa8, 0x36, + 0x2f, 0x84, 0x4a, 0xca, 0x4b, 0xb0, 0x6e, 0x95, 0xc0, 0xda, 0xbc, 0x10, 0x2c, 0x29, 0x5f, 0x85, + 0xeb, 0x7d, 0x13, 0x96, 0x84, 0xcb, 0xf0, 0x91, 0x87, 0x1e, 0x31, 0x71, 0x97, 0x2b, 0xdc, 0xa5, + 0x3f, 0x67, 0xeb, 0x4c, 0xeb, 0x0b, 0xb0, 0x82, 0x0c, 0xf9, 0xfc, 0x29, 0xce, 0x8a, 0xe6, 0x46, + 0xed, 0x46, 0xd3, 0xa9, 0x7e, 0x10, 0xd7, 0xf2, 0x69, 0x9c, 0xb0, 0xd1, 0x9e, 0x9b, 0xb8, 0x59, + 0xb7, 0x52, 0x70, 0xd4, 0x47, 0x93, 0xb9, 0xca, 0x1f, 0x66, 0x22, 0xc6, 0x46, 0xf9, 0x6b, 0x88, + 0xa4, 0xb8, 0x44, 0xe2, 0x8f, 0x08, 0x4b, 0x13, 0x59, 0x26, 0x32, 0x92, 0xef, 0xb1, 0x23, 0xe2, + 0xf9, 0xae, 0x78, 0x6a, 0x90, 0x6f, 0x90, 0x39, 0x43, 0x54, 0xb6, 0xe2, 0xe9, 0x44, 0xfe, 0xa1, + 0xa5, 0xe0, 0x5c, 0xfc, 0xcc, 0x61, 0xff, 0xc3, 0x80, 0xd5, 0x03, 0x37, 0x4a, 0xfc, 0x81, 0x1f, + 0xba, 0x34, 0xe9, 0x91, 0xc4, 0x15, 0x6b, 0xd0, 0xde, 0xb4, 0x8d, 0x0f, 0xf6, 0xa6, 0x7d, 0x00, + 0x9d, 0x61, 0xd1, 0x5f, 0x2a, 0xaf, 0xe2, 0x33, 0x9f, 0xbb, 0x4b, 0xe2, 0xda, 0x03, 0x7d, 0xed, + 0x03, 0x3f, 0xd0, 0xdb, 0x3f, 0x35, 0xa1, 0x53, 0x2a, 0x9d, 0xbc, 0x45, 0xc4, 0xcd, 0x3f, 0x8f, + 0x89, 0x9c, 0xb6, 0xb6, 0x01, 0xfc, 0x3c, 0x8c, 0xce, 0xb9, 0x38, 0xd5, 0x63, 0xcd, 0x51, 0x84, + 0x26, 0xbd, 0x9f, 0xd4, 0x2e, 0xfd, 0x7e, 0x62, 0xdd, 0x83, 0x56, 0x58, 0x80, 0x74, 0xce, 0xa1, + 0x68, 0x02, 0x94, 0x8e, 0x2a, 0x6a, 0x7f, 0x0f, 0x56, 0x2a, 0x15, 0x4a, 0x3c, 0xa7, 0xb0, 0x13, + 0x42, 0xf3, 0xe7, 0x14, 0x4e, 0x28, 0xc1, 0x6a, 0x96, 0x83, 0x35, 0xf0, 0x4f, 0xd5, 0x7f, 0x00, + 0x49, 0xd2, 0xfe, 0x99, 0x09, 0x6b, 0x93, 0x77, 0x97, 0x17, 0xd5, 0xdd, 0x87, 0xd0, 0x9d, 0x56, + 0xc9, 0xaf, 0xcc, 0xeb, 0x45, 0x74, 0xe7, 0xfb, 0xf0, 0x8b, 0xea, 0xee, 0xd5, 0x2c, 0xba, 0x95, + 0xad, 0xce, 0xfe, 0x43, 0xee, 0x9f, 0xbc, 0xd3, 0x78, 0x41, 0xfd, 0x63, 0xbd, 0x0a, 0xcb, 0xb8, + 0x4c, 0xe5, 0xc1, 0x1d, 0x1b, 0xd7, 0x0a, 0xbf, 0xa8, 0x14, 0xca, 0xb6, 0x7f, 0x65, 0x31, 0xfb, + 0x67, 0x23, 0xc3, 0x24, 0xef, 0xdf, 0x3e, 0x52, 0x98, 0x14, 0x91, 0xa6, 0x34, 0x35, 0x4a, 0xa4, + 0xe5, 0x7d, 0xe5, 0xff, 0x23, 0xed, 0xe2, 0x48, 0xcb, 0x7d, 0xa9, 0x34, 0x78, 0xf6, 0x0f, 0xa1, + 0xbd, 0x47, 0x82, 0x5e, 0x3c, 0xcc, 0xfe, 0xea, 0x73, 0x9e, 0x23, 0xa7, 0xfd, 0x11, 0x79, 0xea, + 0x9f, 0x7c, 0xca, 0x7f, 0x10, 0x9a, 0xab, 0xfc, 0x41, 0xc8, 0xde, 0x81, 0x25, 0xd5, 0x80, 0xcb, + 0xfc, 0xd3, 0x69, 0xe7, 0xda, 0x77, 0xd7, 0xb7, 0x5e, 0xc3, 0xbf, 0xbc, 0xbf, 0x51, 0x71, 0xe2, + 0x61, 0x43, 0xfc, 0x05, 0xfe, 0xcb, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x93, 0x6d, 0x96, 0x68, + 0x15, 0x2f, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 5c54da954..a1cc2ce63 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -32,6 +32,7 @@ message GroupMemberFullInfo { int32 joinSource = 8; string operatorUserID = 9; string ex = 10; + uint32 muteEndTime = 11; } message PublicUserInfo{ @@ -260,6 +261,33 @@ message GroupDismissedTips{ int64 operationTime = 3; } +message GroupMemberMutedTips{ + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + int64 operationTime = 3; + GroupMemberFullInfo mutedUser = 4; + uint32 mutedSeconds = 5; +} + +message GroupMemberCancelMutedTips{ + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + int64 operationTime = 3; + GroupMemberFullInfo mutedUser = 4; +} + +message GroupMutedTips{ + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + int64 operationTime = 3; +} + +message GroupCancelMutedTips{ + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + int64 operationTime = 3; +} + //////////////////////friend///////////////////// //message FriendInfo{ diff --git a/script/demo_svr_start.sh b/script/demo_svr_start.sh index 55aaa88b1..85b36ab25 100644 --- a/script/demo_svr_start.sh +++ b/script/demo_svr_start.sh @@ -44,4 +44,4 @@ if [ $check -ge 1 ]; then echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} else echo -e ${YELLOW_PREFIX}${demo_server_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} -fi +fi \ No newline at end of file diff --git a/script/docker_check_service.sh b/script/docker_check_service.sh index 6579d400c..6236712ba 100644 --- a/script/docker_check_service.sh +++ b/script/docker_check_service.sh @@ -8,3 +8,4 @@ sleep 30 echo "check OpenIM................................" ./check_all.sh + diff --git a/script/env_check.sh b/script/env_check.sh index 6af30a37b..a3a9857f6 100644 --- a/script/env_check.sh +++ b/script/env_check.sh @@ -17,4 +17,3 @@ if [ $available -lt 2000 ] ; then else echo -e ${GREEN_PREFIX} "Memory is ok, available is: "$available"m${COLOR_SUFFIX}" fi - diff --git a/script/path_info.cfg b/script/path_info.cfg index f9038d11f..84e81adfd 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -80,4 +80,3 @@ service_names=( - diff --git a/script/start_all.sh b/script/start_all.sh index 4354eace9..4125ca50a 100644 --- a/script/start_all.sh +++ b/script/start_all.sh @@ -16,4 +16,3 @@ for i in ${need_to_start_server_shell[*]}; do chmod +x $i ./$i done - diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index 8cf9bb6df..0b54493c2 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -65,4 +65,4 @@ for ((i = 0; i < ${#service_filename[*]}; i++)); do pid="netstat -ntlp|grep $j |awk '{printf \$7}'|cut -d/ -f1" echo -e "${RED_PREFIX}${service_filename[$i]} Service is started,port number:$j pid:$(eval $pid)$COLOR_SUFFIX" done -done +done \ No newline at end of file