Kaynağa Gözat

纸条点赞

wfz 2 yıl önce
ebeveyn
işleme
07272e1cfc

Dosya farkı çok büyük olduğundan ihmal edildi
+ 165 - 102
api/common/common.pb.go


+ 6 - 0
api/common/common.proto

@@ -560,6 +560,7 @@ message ScripInfo {
   string city = 24;// 市
   int64 watchNum = 25;// 浏览次数
   int64 starNum = 26;// 点赞次数
+  bool isStar = 27;// 是否点赞
 }
 
 message ScripReplyMessage{
@@ -598,6 +599,11 @@ message ReplyScripRequest {
   bool isOldVersion = 9;
 }
 
+message ReplyStarRequest {
+  string personId = 1;
+  int64 scripId = 4; // 小纸条ID
+}
+
 message UpdateLastScripIDRequest{
   int64 scripId = 2;// 纸条id
 }

+ 32 - 24
api/scrip/scrip.pb.go

@@ -28,8 +28,8 @@ var file_scrip_proto_rawDesc = []byte{
 	0x70, 0x69, 0x2e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
 	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e,
 	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
-	0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xbf,
-	0x06, 0x0a, 0x05, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x44, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61,
+	0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x8e,
+	0x07, 0x0a, 0x05, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x44, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61,
 	0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f,
 	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70,
 	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f,
@@ -81,11 +81,16 @@ var file_scrip_proto_rawDesc = []byte{
 	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
 	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
 	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00,
-	0x42, 0x40, 0x0a, 0x09, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x50, 0x01, 0x5a,
-	0x31, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
-	0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x3b, 0x73, 0x63, 0x72,
-	0x69, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x12, 0x4d, 0x0a, 0x0f, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x53, 0x63,
+	0x72, 0x69, 0x70, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
+	0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43,
+	0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x42,
+	0x40, 0x0a, 0x09, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x50, 0x01, 0x5a, 0x31,
+	0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73,
+	0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+	0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x3b, 0x73, 0x63, 0x72, 0x69,
+	0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var file_scrip_proto_goTypes = []interface{}{
@@ -99,10 +104,11 @@ var file_scrip_proto_goTypes = []interface{}{
 	(*common.PersonIDParam)(nil),          // 7: api.common.PersonIDParam
 	(*common.ReportRequest)(nil),          // 8: api.common.ReportRequest
 	(*emptypb.Empty)(nil),                 // 9: google.protobuf.Empty
-	(*common.ScripID)(nil),                // 10: api.common.ScripID
-	(*common.ScripReply)(nil),             // 11: api.common.ScripReply
-	(*common.ScripInfo)(nil),              // 12: api.common.ScripInfo
-	(*common.ChatRecordInfo)(nil),         // 13: api.common.ChatRecordInfo
+	(*common.ReplyStarRequest)(nil),       // 10: api.common.ReplyStarRequest
+	(*common.ScripID)(nil),                // 11: api.common.ScripID
+	(*common.ScripReply)(nil),             // 12: api.common.ScripReply
+	(*common.ScripInfo)(nil),              // 13: api.common.ScripInfo
+	(*common.ChatRecordInfo)(nil),         // 14: api.common.ChatRecordInfo
 }
 var file_scrip_proto_depIdxs = []int32{
 	0,  // 0: api.scrip.Scrip.CreateScrip:input_type -> api.common.CreateScripRequest
@@ -116,19 +122,21 @@ var file_scrip_proto_depIdxs = []int32{
 	7,  // 8: api.scrip.Scrip.DeleteScripByPersonID:input_type -> api.common.PersonIDParam
 	8,  // 9: api.scrip.Scrip.ReportScrip:input_type -> api.common.ReportRequest
 	9,  // 10: api.scrip.Scrip.CronDeleteOldScrip:input_type -> google.protobuf.Empty
-	10, // 11: api.scrip.Scrip.CreateScrip:output_type -> api.common.ScripID
-	9,  // 12: api.scrip.Scrip.DeleteScrip:output_type -> google.protobuf.Empty
-	11, // 13: api.scrip.Scrip.FindMyScrip:output_type -> api.common.ScripReply
-	11, // 14: api.scrip.Scrip.FindOtherScrip:output_type -> api.common.ScripReply
-	11, // 15: api.scrip.Scrip.FindRecommendScrip:output_type -> api.common.ScripReply
-	9,  // 16: api.scrip.Scrip.PersonLookScrip:output_type -> google.protobuf.Empty
-	12, // 17: api.scrip.Scrip.PersonClickLookBack:output_type -> api.common.ScripInfo
-	13, // 18: api.scrip.Scrip.PersonReplyScrip:output_type -> api.common.ChatRecordInfo
-	9,  // 19: api.scrip.Scrip.DeleteScripByPersonID:output_type -> google.protobuf.Empty
-	9,  // 20: api.scrip.Scrip.ReportScrip:output_type -> google.protobuf.Empty
-	9,  // 21: api.scrip.Scrip.CronDeleteOldScrip:output_type -> google.protobuf.Empty
-	11, // [11:22] is the sub-list for method output_type
-	0,  // [0:11] is the sub-list for method input_type
+	10, // 11: api.scrip.Scrip.PersonStarScrip:input_type -> api.common.ReplyStarRequest
+	11, // 12: api.scrip.Scrip.CreateScrip:output_type -> api.common.ScripID
+	9,  // 13: api.scrip.Scrip.DeleteScrip:output_type -> google.protobuf.Empty
+	12, // 14: api.scrip.Scrip.FindMyScrip:output_type -> api.common.ScripReply
+	12, // 15: api.scrip.Scrip.FindOtherScrip:output_type -> api.common.ScripReply
+	12, // 16: api.scrip.Scrip.FindRecommendScrip:output_type -> api.common.ScripReply
+	9,  // 17: api.scrip.Scrip.PersonLookScrip:output_type -> google.protobuf.Empty
+	13, // 18: api.scrip.Scrip.PersonClickLookBack:output_type -> api.common.ScripInfo
+	14, // 19: api.scrip.Scrip.PersonReplyScrip:output_type -> api.common.ChatRecordInfo
+	9,  // 20: api.scrip.Scrip.DeleteScripByPersonID:output_type -> google.protobuf.Empty
+	9,  // 21: api.scrip.Scrip.ReportScrip:output_type -> google.protobuf.Empty
+	9,  // 22: api.scrip.Scrip.CronDeleteOldScrip:output_type -> google.protobuf.Empty
+	14, // 23: api.scrip.Scrip.PersonStarScrip:output_type -> api.common.ChatRecordInfo
+	12, // [12:24] is the sub-list for method output_type
+	0,  // [0:12] is the sub-list for method input_type
 	0,  // [0:0] is the sub-list for extension type_name
 	0,  // [0:0] is the sub-list for extension extendee
 	0,  // [0:0] is the sub-list for field type_name

+ 2 - 0
api/scrip/scrip.proto

@@ -34,4 +34,6 @@ service Scrip {
   rpc ReportScrip (common.ReportRequest) returns (google.protobuf.Empty){};
   // 定时删除纸条
   rpc CronDeleteOldScrip (google.protobuf.Empty) returns (google.protobuf.Empty){};
+  // 小纸条点赞
+  rpc PersonStarScrip (common.ReplyStarRequest) returns (common.ChatRecordInfo){};
 }

+ 38 - 0
api/scrip/scrip_grpc.pb.go

@@ -42,6 +42,8 @@ type ScripClient interface {
 	ReportScrip(ctx context.Context, in *common.ReportRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
 	// 定时删除纸条
 	CronDeleteOldScrip(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 小纸条点赞
+	PersonStarScrip(ctx context.Context, in *common.ReplyStarRequest, opts ...grpc.CallOption) (*common.ChatRecordInfo, error)
 }
 
 type scripClient struct {
@@ -151,6 +153,15 @@ func (c *scripClient) CronDeleteOldScrip(ctx context.Context, in *emptypb.Empty,
 	return out, nil
 }
 
+func (c *scripClient) PersonStarScrip(ctx context.Context, in *common.ReplyStarRequest, opts ...grpc.CallOption) (*common.ChatRecordInfo, error) {
+	out := new(common.ChatRecordInfo)
+	err := c.cc.Invoke(ctx, "/api.scrip.Scrip/PersonStarScrip", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // ScripServer is the server API for Scrip service.
 // All implementations must embed UnimplementedScripServer
 // for forward compatibility
@@ -177,6 +188,8 @@ type ScripServer interface {
 	ReportScrip(context.Context, *common.ReportRequest) (*emptypb.Empty, error)
 	// 定时删除纸条
 	CronDeleteOldScrip(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
+	// 小纸条点赞
+	PersonStarScrip(context.Context, *common.ReplyStarRequest) (*common.ChatRecordInfo, error)
 	mustEmbedUnimplementedScripServer()
 }
 
@@ -217,6 +230,9 @@ func (UnimplementedScripServer) ReportScrip(context.Context, *common.ReportReque
 func (UnimplementedScripServer) CronDeleteOldScrip(context.Context, *emptypb.Empty) (*emptypb.Empty, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method CronDeleteOldScrip not implemented")
 }
+func (UnimplementedScripServer) PersonStarScrip(context.Context, *common.ReplyStarRequest) (*common.ChatRecordInfo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method PersonStarScrip not implemented")
+}
 func (UnimplementedScripServer) mustEmbedUnimplementedScripServer() {}
 
 // UnsafeScripServer may be embedded to opt out of forward compatibility for this service.
@@ -428,6 +444,24 @@ func _Scrip_CronDeleteOldScrip_Handler(srv interface{}, ctx context.Context, dec
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Scrip_PersonStarScrip_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(common.ReplyStarRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ScripServer).PersonStarScrip(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.scrip.Scrip/PersonStarScrip",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ScripServer).PersonStarScrip(ctx, req.(*common.ReplyStarRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 // Scrip_ServiceDesc is the grpc.ServiceDesc for Scrip service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
@@ -479,6 +513,10 @@ var Scrip_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "CronDeleteOldScrip",
 			Handler:    _Scrip_CronDeleteOldScrip_Handler,
 		},
+		{
+			MethodName: "PersonStarScrip",
+			Handler:    _Scrip_PersonStarScrip_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "scrip.proto",

+ 303 - 293
api/user/user.pb.go

@@ -3548,7 +3548,7 @@ var file_user_proto_rawDesc = []byte{
 	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
 	0x2a, 0x0a, 0x10, 0x50, 0x61, 0x79, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65,
 	0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0c, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x32, 0xba, 0x51, 0x0a, 0x04,
+	0x01, 0x28, 0x0c, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x32, 0xa6, 0x52, 0x0a, 0x04,
 	0x55, 0x73, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49,
 	0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
 	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x61, 0x70,
@@ -4069,142 +4069,149 @@ var file_user_proto_rawDesc = []byte{
 	0x6f, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
 	0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02,
 	0x1a, 0x22, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x69,
-	0x76, 0x61, 0x63, 0x79, 0x2f, 0x73, 0x65, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x40, 0x0a, 0x0c, 0x47,
-	0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x12, 0x19, 0x2e, 0x61, 0x70,
+	0x76, 0x61, 0x63, 0x79, 0x2f, 0x73, 0x65, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x6a, 0x0a, 0x0f, 0x50,
+	0x65, 0x72, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x53, 0x63, 0x72, 0x69, 0x70, 0x12, 0x1a,
+	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x63, 0x72, 0x69,
+	0x70, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69,
+	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x63, 0x6f,
+	0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14,
+	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x2f,
+	0x73, 0x74, 0x61, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0x40, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73,
+	0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f,
+	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72,
+	0x61, 0x6d, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
+	0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x12, 0x45, 0x0a, 0x0e, 0x46, 0x69, 0x6e,
+	0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70,
 	0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49,
-	0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d,
-	0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x12, 0x45, 0x0a,
-	0x0e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12,
-	0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72,
-	0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e,
-	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x52,
-	0x65, 0x70, 0x6c, 0x79, 0x12, 0x57, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61,
-	0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x44, 0x42, 0x12, 0x26, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c,
-	0x61, 0x73, 0x74, 0x53, 0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a,
-	0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x73, 0x74, 0x4c,
-	0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61,
-	0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x45, 0x0a,
-	0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x42, 0x79, 0x41,
-	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x15, 0x2e,
-	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f,
-	0x6e, 0x4d, 0x73, 0x67, 0x12, 0x82, 0x01, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63,
-	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74,
-	0x79, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d,
-	0x6d, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55,
-	0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x70, 0x69,
-	0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d,
-	0x65, 0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73,
-	0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x19, 0x47, 0x65, 0x74,
-	0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62,
-	0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d,
-	0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61,
-	0x6d, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74,
-	0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62,
-	0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x53, 0x0a, 0x13, 0x53,
-	0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64,
-	0x69, 0x74, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65,
-	0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69,
-	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
-	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
-	0x12, 0x4c, 0x0a, 0x19, 0x4c, 0x6f, 0x6f, 0x6b, 0x42, 0x61, 0x63, 0x6b, 0x53, 0x63, 0x72, 0x69,
-	0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e,
-	0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f,
-	0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a,
-	0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64,
+	0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
+	0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79,
+	0x12, 0x57, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x63,
+	0x72, 0x69, 0x70, 0x49, 0x44, 0x44, 0x42, 0x12, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f,
+	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53,
+	0x63, 0x72, 0x69, 0x70, 0x49, 0x44, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+	0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x17, 0x55, 0x70, 0x64,
+	0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e,
+	0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
+	0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a,
+	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+	0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x17, 0x47, 0x65, 0x74,
+	0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x4d, 0x73, 0x67, 0x42, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75,
+	0x6e, 0x74, 0x49, 0x44, 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
+	0x6e, 0x2e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e,
+	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4d, 0x73, 0x67,
+	0x12, 0x82, 0x01, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+	0x6e, 0x64, 0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65,
+	0x72, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73,
+	0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64,
+	0x48, 0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65,
+	0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48,
+	0x69, 0x67, 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65,
+	0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
+	0x44, 0x42, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b,
+	0x65, 0x74, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
+	0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x28, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
+	0x44, 0x42, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b,
+	0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x53, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d,
+	0x73, 0x67, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x24,
+	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73,
+	0x67, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x19,
+	0x4c, 0x6f, 0x6f, 0x6b, 0x42, 0x61, 0x63, 0x6b, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64,
 	0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e,
 	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72,
 	0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x16, 0x52, 0x65,
-	0x70, 0x6c, 0x79, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72,
-	0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
-	0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e,
-	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
-	0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e,
-	0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d,
-	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x84, 0x01, 0x0a, 0x24, 0x55, 0x70, 0x64,
-	0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75,
-	0x6d, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73,
-	0x67, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64,
-	0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75,
-	0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75,
-	0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61,
-	0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74, 0x75, 0x72,
-	0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12,
-	0x51, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55,
-	0x73, 0x65, 0x72, 0x44, 0x42, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72,
-	0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65,
-	0x72, 0x44, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69,
-	0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42,
-	0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72,
-	0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72,
-	0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
-	0x00, 0x12, 0x49, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64,
-	0x69, 0x74, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64,
-	0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x17,
-	0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
-	0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x42, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f,
-	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72,
-	0x61, 0x6d, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x49, 0x6e,
-	0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
-	0x00, 0x12, 0x8b, 0x01, 0x0a, 0x21, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66,
-	0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41,
-	0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73,
-	0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69,
-	0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e,
-	0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79,
-	0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12,
-	0x51, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x44, 0x42,
-	0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
-	0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x20,
-	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73,
-	0x65, 0x72, 0x56, 0x69, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79,
-	0x22, 0x00, 0x12, 0x57, 0x0a, 0x15, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x44,
-	0x42, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4d, 0x61, 0x70, 0x12, 0x26, 0x2e, 0x61, 0x70,
-	0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72,
-	0x44, 0x42, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
-	0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x10, 0x47,
-	0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x12,
-	0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74,
-	0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71,
-	0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65,
-	0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x00, 0x12,
-	0x45, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x1c,
-	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
-	0x54, 0x6f, 0x64, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
+	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x17, 0x43, 0x72,
+	0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43,
+	0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
+	0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16,
+	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x53,
+	0x63, 0x72, 0x69, 0x70, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74,
+	0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65,
+	0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
+	0x79, 0x12, 0x41, 0x0a, 0x0e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65,
+	0x64, 0x69, 0x74, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
+	0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x16, 0x2e, 0x67,
 	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
-	0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
-	0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
-	0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
-	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65,
-	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x17, 0x43,
-	0x72, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x56, 0x69, 0x70, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16,
+	0x6d, 0x70, 0x74, 0x79, 0x12, 0x84, 0x01, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55,
+	0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64,
+	0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x25, 0x2e,
+	0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55,
+	0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e,
+	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65,
+	0x64, 0x4e, 0x75, 0x6d, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x73, 0x65,
+	0x72, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x12, 0x47,
+	0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44,
+	0x42, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74,
+	0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d,
+	0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x44, 0x42, 0x22, 0x00, 0x12, 0x4d,
+	0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63,
+	0x6b, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70,
+	0x6f, 0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x49, 0x0a,
+	0x0d, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x1e,
+	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65,
+	0x72, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
 	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
-	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0x3d, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x2e,
-	0x75, 0x73, 0x65, 0x72, 0x50, 0x01, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62,
-	0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77,
-	0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73,
-	0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x17, 0x55, 0x73, 0x65, 0x72,
+	0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
+	0x73, 0x44, 0x42, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
+	0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x1a, 0x1b,
+	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x8b, 0x01,
+	0x0a, 0x21, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76,
+	0x69, 0x74, 0x79, 0x12, 0x32, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55,
+	0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73,
+	0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x42, 0x79, 0x41, 0x63, 0x74, 0x69,
+	0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x11, 0x46,
+	0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69, 0x70, 0x44, 0x42, 0x4c, 0x69, 0x73, 0x74,
+	0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65,
+	0x72, 0x73, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69,
+	0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x56, 0x69,
+	0x70, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x42, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x57,
+	0x0a, 0x15, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x57, 0x69, 0x74,
+	0x68, 0x6f, 0x75, 0x74, 0x4d, 0x61, 0x70, 0x12, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73,
+	0x65, 0x72, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x44, 0x42, 0x57, 0x69,
+	0x74, 0x68, 0x6f, 0x75, 0x74, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72,
+	0x73, 0x6f, 0x6e, 0x44, 0x42, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x73,
+	0x65, 0x72, 0x44, 0x42, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x70,
+	0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
+	0x44, 0x42, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x61,
+	0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e,
+	0x44, 0x42, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0b, 0x55,
+	0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69,
+	0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x64, 0x61,
+	0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
+	0x22, 0x00, 0x12, 0x63, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74,
+	0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
+	0x12, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61,
+	0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
+	0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
+	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+	0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x17, 0x43, 0x72, 0x6f, 0x6e, 0x52,
+	0x65, 0x6d, 0x6f, 0x76, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56,
+	0x69, 0x70, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
+	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
+	0x74, 0x79, 0x22, 0x00, 0x42, 0x3d, 0x0a, 0x08, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72,
+	0x50, 0x01, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x2e, 0x69, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x2e, 0x63,
+	0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x77, 0x2d, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75,
+	0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -4292,43 +4299,44 @@ var file_user_proto_goTypes = []interface{}{
 	(*common.RoomIDRequest)(nil),                      // 68: api.common.RoomIDRequest
 	(*common.PartnerIDParam)(nil),                     // 69: api.common.PartnerIDParam
 	(*common.PersonIDParam)(nil),                      // 70: api.common.PersonIDParam
-	(*common.PersonIDList)(nil),                       // 71: api.common.PersonIDList
-	(*common.UpdateLastScripIDDBRequest)(nil),         // 72: api.common.UpdateLastScripIDDBRequest
-	(*common.IDParam)(nil),                            // 73: api.common.IDParam
-	(*common.GetUserDBAndInitReq)(nil),                // 74: api.common.GetUserDBAndInitReq
-	(*chat.RoomReply)(nil),                            // 75: api.chat.RoomReply
-	(*common.HomeInfo)(nil),                           // 76: api.common.HomeInfo
-	(*common.LookedAndLikedNum)(nil),                  // 77: api.common.LookedAndLikedNum
-	(*statistics.LookAndLikeListReply)(nil),           // 78: api.statistics.LookAndLikeListReply
-	(*common.TagListReply)(nil),                       // 79: api.common.TagListReply
-	(*common.RecommendPersonListReply)(nil),           // 80: api.common.RecommendPersonListReply
-	(*common.ChatRecordListReply)(nil),                // 81: api.common.ChatRecordListReply
-	(*common.ChatRoomMsg)(nil),                        // 82: api.common.ChatRoomMsg
-	(*common.IsLike)(nil),                             // 83: api.common.IsLike
-	(*common.MemeList)(nil),                           // 84: api.common.MemeList
-	(*common.ChatTopicList)(nil),                      // 85: api.common.ChatTopicList
-	(*common.CommonTextList)(nil),                     // 86: api.common.CommonTextList
-	(*common.MemeTitleList)(nil),                      // 87: api.common.MemeTitleList
-	(*common.ChatCardInfo)(nil),                       // 88: api.common.ChatCardInfo
-	(*common.FindOverSevenDayAvatarReply)(nil),        // 89: api.common.FindOverSevenDayAvatarReply
-	(*common.ScripID)(nil),                            // 90: api.common.ScripID
-	(*common.ScripReply)(nil),                         // 91: api.common.ScripReply
-	(*common.ScripInfo)(nil),                          // 92: api.common.ScripInfo
-	(*common.ChatRecordInfo)(nil),                     // 93: api.common.ChatRecordInfo
-	(*chat.UnreadNumReply)(nil),                       // 94: api.chat.UnreadNumReply
-	(*chat.UserRoomInfo)(nil),                         // 95: api.chat.UserRoomInfo
-	(*chat.CheckUserPartnerIsRelationshipReply)(nil),  // 96: api.chat.CheckUserPartnerIsRelationshipReply
-	(*common.AddFriendMessageInfo)(nil),               // 97: api.common.AddFriendMessageInfo
-	(*statistics.LookAndLikeMessageReply)(nil),        // 98: api.statistics.LookAndLikeMessageReply
-	(*statistics.LookMessageReply)(nil),               // 99: api.statistics.LookMessageReply
-	(*chat.WindowInfo)(nil),                           // 100: api.chat.WindowInfo
-	(*chat.GetRandomMatchingReply)(nil),               // 101: api.chat.GetRandomMatchingReply
-	(*common.SendMessageReply)(nil),                   // 102: api.common.SendMessageReply
-	(*common.HandpickPersonListReply)(nil),            // 103: api.common.HandpickPersonListReply
-	(*common.PersonMsg)(nil),                          // 104: api.common.PersonMsg
-	(*common.PersonDBReply)(nil),                      // 105: api.common.PersonDBReply
-	(*common.PersonDB)(nil),                           // 106: api.common.PersonDB
-	(*common.PersonDBDetails)(nil),                    // 107: api.common.PersonDBDetails
+	(*common.ScripIdRequest)(nil),                     // 71: api.common.ScripIdRequest
+	(*common.PersonIDList)(nil),                       // 72: api.common.PersonIDList
+	(*common.UpdateLastScripIDDBRequest)(nil),         // 73: api.common.UpdateLastScripIDDBRequest
+	(*common.IDParam)(nil),                            // 74: api.common.IDParam
+	(*common.GetUserDBAndInitReq)(nil),                // 75: api.common.GetUserDBAndInitReq
+	(*chat.RoomReply)(nil),                            // 76: api.chat.RoomReply
+	(*common.HomeInfo)(nil),                           // 77: api.common.HomeInfo
+	(*common.LookedAndLikedNum)(nil),                  // 78: api.common.LookedAndLikedNum
+	(*statistics.LookAndLikeListReply)(nil),           // 79: api.statistics.LookAndLikeListReply
+	(*common.TagListReply)(nil),                       // 80: api.common.TagListReply
+	(*common.RecommendPersonListReply)(nil),           // 81: api.common.RecommendPersonListReply
+	(*common.ChatRecordListReply)(nil),                // 82: api.common.ChatRecordListReply
+	(*common.ChatRoomMsg)(nil),                        // 83: api.common.ChatRoomMsg
+	(*common.IsLike)(nil),                             // 84: api.common.IsLike
+	(*common.MemeList)(nil),                           // 85: api.common.MemeList
+	(*common.ChatTopicList)(nil),                      // 86: api.common.ChatTopicList
+	(*common.CommonTextList)(nil),                     // 87: api.common.CommonTextList
+	(*common.MemeTitleList)(nil),                      // 88: api.common.MemeTitleList
+	(*common.ChatCardInfo)(nil),                       // 89: api.common.ChatCardInfo
+	(*common.FindOverSevenDayAvatarReply)(nil),        // 90: api.common.FindOverSevenDayAvatarReply
+	(*common.ScripID)(nil),                            // 91: api.common.ScripID
+	(*common.ScripReply)(nil),                         // 92: api.common.ScripReply
+	(*common.ScripInfo)(nil),                          // 93: api.common.ScripInfo
+	(*common.ChatRecordInfo)(nil),                     // 94: api.common.ChatRecordInfo
+	(*chat.UnreadNumReply)(nil),                       // 95: api.chat.UnreadNumReply
+	(*chat.UserRoomInfo)(nil),                         // 96: api.chat.UserRoomInfo
+	(*chat.CheckUserPartnerIsRelationshipReply)(nil),  // 97: api.chat.CheckUserPartnerIsRelationshipReply
+	(*common.AddFriendMessageInfo)(nil),               // 98: api.common.AddFriendMessageInfo
+	(*statistics.LookAndLikeMessageReply)(nil),        // 99: api.statistics.LookAndLikeMessageReply
+	(*statistics.LookMessageReply)(nil),               // 100: api.statistics.LookMessageReply
+	(*chat.WindowInfo)(nil),                           // 101: api.chat.WindowInfo
+	(*chat.GetRandomMatchingReply)(nil),               // 102: api.chat.GetRandomMatchingReply
+	(*common.SendMessageReply)(nil),                   // 103: api.common.SendMessageReply
+	(*common.HandpickPersonListReply)(nil),            // 104: api.common.HandpickPersonListReply
+	(*common.PersonMsg)(nil),                          // 105: api.common.PersonMsg
+	(*common.PersonDBReply)(nil),                      // 106: api.common.PersonDBReply
+	(*common.PersonDB)(nil),                           // 107: api.common.PersonDB
+	(*common.PersonDBDetails)(nil),                    // 108: api.common.PersonDBDetails
 }
 var file_user_proto_depIdxs = []int32{
 	46,  // 0: api.user.MatchUserDBWithoutMapRequest.isMatchingMap:type_name -> api.user.MatchUserDBWithoutMapRequest.IsMatchingMapEntry
@@ -4416,131 +4424,133 @@ var file_user_proto_depIdxs = []int32{
 	50,  // 82: api.user.User.UserGetReturnReword:input_type -> google.protobuf.Empty
 	50,  // 83: api.user.User.UserPrivacyStatus:input_type -> google.protobuf.Empty
 	2,   // 84: api.user.User.UserSetPrivacyStatus:input_type -> api.user.UserPrivacyStatusInfo
-	70,  // 85: api.user.User.GetUserDBMsg:input_type -> api.common.PersonIDParam
-	71,  // 86: api.user.User.FindUserDBList:input_type -> api.common.PersonIDList
-	72,  // 87: api.user.User.UpdateLastScripIDDB:input_type -> api.common.UpdateLastScripIDDBRequest
-	70,  // 88: api.user.User.UpdateUserLastLoginTime:input_type -> api.common.PersonIDParam
-	73,  // 89: api.user.User.GetUserDBMsgByAccountID:input_type -> api.common.IDParam
-	16,  // 90: api.user.User.FindRecommendHighQualityUserDBList:input_type -> api.user.FindRecommendHighQualityUserRequest
-	70,  // 91: api.user.User.GetUserDBMsgFromWebsocket:input_type -> api.common.PersonIDParam
-	9,   // 92: api.user.User.SendMsgReduceCredit:input_type -> api.user.SendMsgReduceCreditRequest
-	55,  // 93: api.user.User.LookBackScripReduceCredit:input_type -> api.common.PersonParam
-	55,  // 94: api.user.User.CreateScripReduceCredit:input_type -> api.common.PersonParam
-	55,  // 95: api.user.User.ReplyScripReduceCredit:input_type -> api.common.PersonParam
-	55,  // 96: api.user.User.MatchingCredit:input_type -> api.common.PersonParam
-	20,  // 97: api.user.User.UpdateUserMatchedNumAndReturnUserMsg:input_type -> api.user.UpdateUserMatchedNumRequest
-	15,  // 98: api.user.User.GetRecommendUserDB:input_type -> api.user.GetRecommendUserDBRequest
-	13,  // 99: api.user.User.ReportUserBlack:input_type -> api.user.ReportUserBlackRequest
-	12,  // 100: api.user.User.AddUserCredit:input_type -> api.user.AddUserCreditRequest
-	70,  // 101: api.user.User.UserInformationStatusDB:input_type -> api.common.PersonIDParam
-	10,  // 102: api.user.User.UserGetInformationAwardByActivity:input_type -> api.user.UserGetInformationAwardByActivityRequest
-	71,  // 103: api.user.User.FindUserVipDBList:input_type -> api.common.PersonIDList
-	5,   // 104: api.user.User.MatchUserDBWithoutMap:input_type -> api.user.MatchUserDBWithoutMapRequest
-	74,  // 105: api.user.User.GetUserDBAndInit:input_type -> api.common.GetUserDBAndInitReq
-	0,   // 106: api.user.User.UpdateToday:input_type -> api.user.UpdateTodayRequest
-	1,   // 107: api.user.User.UpdateLastSendTemplateTime:input_type -> api.user.UpdateLastSendTemplateTimeRequest
-	50,  // 108: api.user.User.CronRemoveExpirationVip:input_type -> google.protobuf.Empty
-	38,  // 109: api.user.User.GetUserInfo:output_type -> api.user.UserInfo
-	38,  // 110: api.user.User.GetUserInfo1:output_type -> api.user.UserInfo
-	50,  // 111: api.user.User.SendPhoneCode:output_type -> google.protobuf.Empty
-	50,  // 112: api.user.User.CheckPhoneCode:output_type -> google.protobuf.Empty
-	50,  // 113: api.user.User.UpdateUserInformation:output_type -> google.protobuf.Empty
-	75,  // 114: api.user.User.CreateUserPersonRoom:output_type -> api.chat.RoomReply
-	35,  // 115: api.user.User.GetUserBalance:output_type -> api.user.UserBalance
-	76,  // 116: api.user.User.UserGetHomeInfo:output_type -> api.common.HomeInfo
-	77,  // 117: api.user.User.UserGetPersonLikedAndLooked:output_type -> api.common.LookedAndLikedNum
-	78,  // 118: api.user.User.FindLookList:output_type -> api.statistics.LookAndLikeListReply
-	79,  // 119: api.user.User.FindTagListBySex:output_type -> api.common.TagListReply
-	80,  // 120: api.user.User.FindOnlineList:output_type -> api.common.RecommendPersonListReply
-	36,  // 121: api.user.User.FindWithinSevenDayRoomList:output_type -> api.user.UserFindChatListReply
-	36,  // 122: api.user.User.FindOverSevenDayRoomList:output_type -> api.user.UserFindChatListReply
-	36,  // 123: api.user.User.FindCloseFriendRoomList:output_type -> api.user.UserFindChatListReply
-	81,  // 124: api.user.User.FindChatRecordList:output_type -> api.common.ChatRecordListReply
-	82,  // 125: api.user.User.FindChatRoomMsg:output_type -> api.common.ChatRoomMsg
-	83,  // 126: api.user.User.GetUserIsLike:output_type -> api.common.IsLike
-	84,  // 127: api.user.User.FindMemeByType:output_type -> api.common.MemeList
-	85,  // 128: api.user.User.FindChatTopic:output_type -> api.common.ChatTopicList
-	86,  // 129: api.user.User.RandomMeme:output_type -> api.common.CommonTextList
-	86,  // 130: api.user.User.RandomSwiftMessage:output_type -> api.common.CommonTextList
-	87,  // 131: api.user.User.FindMemeTitle:output_type -> api.common.MemeTitleList
-	88,  // 132: api.user.User.UserGetChatCard:output_type -> api.common.ChatCardInfo
-	87,  // 133: api.user.User.FindChatTopicTitle:output_type -> api.common.MemeTitleList
-	50,  // 134: api.user.User.UserLike:output_type -> google.protobuf.Empty
-	50,  // 135: api.user.User.UserUnLike:output_type -> google.protobuf.Empty
-	50,  // 136: api.user.User.Report:output_type -> google.protobuf.Empty
-	89,  // 137: api.user.User.FindOverSevenDayAvatar:output_type -> api.common.FindOverSevenDayAvatarReply
-	50,  // 138: api.user.User.UpdateLastScripID:output_type -> google.protobuf.Empty
-	90,  // 139: api.user.User.CreateScrip:output_type -> api.common.ScripID
-	50,  // 140: api.user.User.DeleteScrip:output_type -> google.protobuf.Empty
-	91,  // 141: api.user.User.FindMyScrip:output_type -> api.common.ScripReply
-	91,  // 142: api.user.User.FindOtherScrip:output_type -> api.common.ScripReply
-	91,  // 143: api.user.User.FindRecommendScrip:output_type -> api.common.ScripReply
-	50,  // 144: api.user.User.PersonLookScrip:output_type -> google.protobuf.Empty
-	92,  // 145: api.user.User.PersonClickLookBack:output_type -> api.common.ScripInfo
-	93,  // 146: api.user.User.PersonReplyScrip:output_type -> api.common.ChatRecordInfo
-	50,  // 147: api.user.User.UserDeleteChat:output_type -> google.protobuf.Empty
-	94,  // 148: api.user.User.GetUserAllUnreadNum:output_type -> api.chat.UnreadNumReply
-	95,  // 149: api.user.User.GetUserRoomByPerson:output_type -> api.chat.UserRoomInfo
-	78,  // 150: api.user.User.FindLikeList:output_type -> api.statistics.LookAndLikeListReply
-	78,  // 151: api.user.User.FindLikedList:output_type -> api.statistics.LookAndLikeListReply
-	50,  // 152: api.user.User.UserSetBlackChat:output_type -> google.protobuf.Empty
-	96,  // 153: api.user.User.CheckUserPartnerIsRelationship:output_type -> api.chat.CheckUserPartnerIsRelationshipReply
-	97,  // 154: api.user.User.GetPartnerCircleInfo:output_type -> api.common.AddFriendMessageInfo
-	98,  // 155: api.user.User.GetLookAndLikeStatisticsMessage:output_type -> api.statistics.LookAndLikeMessageReply
-	99,  // 156: api.user.User.GetUserLookNum:output_type -> api.statistics.LookMessageReply
-	50,  // 157: api.user.User.UserFinishInformation:output_type -> google.protobuf.Empty
-	34,  // 158: api.user.User.UserInformationStatus:output_type -> api.user.InformationStatus
-	50,  // 159: api.user.User.UserGetInformationAward:output_type -> google.protobuf.Empty
-	50,  // 160: api.user.User.UnlockLookRecord:output_type -> google.protobuf.Empty
-	41,  // 161: api.user.User.UserRecharge:output_type -> api.user.PayInfo
-	41,  // 162: api.user.User.UserRechargeVip:output_type -> api.user.PayInfo
-	30,  // 163: api.user.User.FindRechargeList:output_type -> api.user.RechargeList
-	31,  // 164: api.user.User.FindVipRechargeList:output_type -> api.user.VipRechargeList
-	43,  // 165: api.user.User.FindPayList:output_type -> api.user.PayOrderList
-	80,  // 166: api.user.User.FindRecommendPersonList:output_type -> api.common.RecommendPersonListReply
-	28,  // 167: api.user.User.FindMatchingAvatarAndNum:output_type -> api.user.FindMatchingAvatarAndNumReply
-	100, // 168: api.user.User.GetWindowInfo:output_type -> api.chat.WindowInfo
-	22,  // 169: api.user.User.GetUserFreeNum:output_type -> api.user.UserFreeNum
-	101, // 170: api.user.User.GetRandomMatching:output_type -> api.chat.GetRandomMatchingReply
-	50,  // 171: api.user.User.UnlockVoice:output_type -> google.protobuf.Empty
-	50,  // 172: api.user.User.UnlockPicture:output_type -> google.protobuf.Empty
-	50,  // 173: api.user.User.UpdateUserIsRegister:output_type -> google.protobuf.Empty
-	75,  // 174: api.user.User.CreateUserPartnerRoom:output_type -> api.chat.RoomReply
-	102, // 175: api.user.User.SendMessage:output_type -> api.common.SendMessageReply
-	8,   // 176: api.user.User.GetVipInfo:output_type -> api.user.VipInfo
-	103, // 177: api.user.User.FindHandpickUser:output_type -> api.common.HandpickPersonListReply
-	6,   // 178: api.user.User.GetUserLookHandPickNum:output_type -> api.user.GetUserLookHandPickNumReply
-	50,  // 179: api.user.User.SetUserLookHandPickNum:output_type -> google.protobuf.Empty
-	3,   // 180: api.user.User.IsCanGetReturnReword:output_type -> api.user.IsCanGetReturnRewordReply
-	50,  // 181: api.user.User.UserGetReturnReword:output_type -> google.protobuf.Empty
-	2,   // 182: api.user.User.UserPrivacyStatus:output_type -> api.user.UserPrivacyStatusInfo
-	50,  // 183: api.user.User.UserSetPrivacyStatus:output_type -> google.protobuf.Empty
-	104, // 184: api.user.User.GetUserDBMsg:output_type -> api.common.PersonMsg
-	105, // 185: api.user.User.FindUserDBList:output_type -> api.common.PersonDBReply
-	50,  // 186: api.user.User.UpdateLastScripIDDB:output_type -> google.protobuf.Empty
-	50,  // 187: api.user.User.UpdateUserLastLoginTime:output_type -> google.protobuf.Empty
-	104, // 188: api.user.User.GetUserDBMsgByAccountID:output_type -> api.common.PersonMsg
-	17,  // 189: api.user.User.FindRecommendHighQualityUserDBList:output_type -> api.user.FindRecommendHighQualityUserReply
-	19,  // 190: api.user.User.GetUserDBMsgFromWebsocket:output_type -> api.user.GetUserDBMsgFromWebsocketReply
-	50,  // 191: api.user.User.SendMsgReduceCredit:output_type -> google.protobuf.Empty
-	50,  // 192: api.user.User.LookBackScripReduceCredit:output_type -> google.protobuf.Empty
-	50,  // 193: api.user.User.CreateScripReduceCredit:output_type -> google.protobuf.Empty
-	50,  // 194: api.user.User.ReplyScripReduceCredit:output_type -> google.protobuf.Empty
-	50,  // 195: api.user.User.MatchingCredit:output_type -> google.protobuf.Empty
-	18,  // 196: api.user.User.UpdateUserMatchedNumAndReturnUserMsg:output_type -> api.user.UpdateUserMatchedNumAndReturnUserMsgReply
-	106, // 197: api.user.User.GetRecommendUserDB:output_type -> api.common.PersonDB
-	50,  // 198: api.user.User.ReportUserBlack:output_type -> google.protobuf.Empty
-	50,  // 199: api.user.User.AddUserCredit:output_type -> google.protobuf.Empty
-	34,  // 200: api.user.User.UserInformationStatusDB:output_type -> api.user.InformationStatus
-	11,  // 201: api.user.User.UserGetInformationAwardByActivity:output_type -> api.user.UserGetInformationAwardByActivityReply
-	7,   // 202: api.user.User.FindUserVipDBList:output_type -> api.user.FindUserVipListDBReply
-	106, // 203: api.user.User.MatchUserDBWithoutMap:output_type -> api.common.PersonDB
-	107, // 204: api.user.User.GetUserDBAndInit:output_type -> api.common.PersonDBDetails
-	50,  // 205: api.user.User.UpdateToday:output_type -> google.protobuf.Empty
-	50,  // 206: api.user.User.UpdateLastSendTemplateTime:output_type -> google.protobuf.Empty
-	50,  // 207: api.user.User.CronRemoveExpirationVip:output_type -> google.protobuf.Empty
-	109, // [109:208] is the sub-list for method output_type
-	10,  // [10:109] is the sub-list for method input_type
+	71,  // 85: api.user.User.PersonStarScrip:input_type -> api.common.ScripIdRequest
+	70,  // 86: api.user.User.GetUserDBMsg:input_type -> api.common.PersonIDParam
+	72,  // 87: api.user.User.FindUserDBList:input_type -> api.common.PersonIDList
+	73,  // 88: api.user.User.UpdateLastScripIDDB:input_type -> api.common.UpdateLastScripIDDBRequest
+	70,  // 89: api.user.User.UpdateUserLastLoginTime:input_type -> api.common.PersonIDParam
+	74,  // 90: api.user.User.GetUserDBMsgByAccountID:input_type -> api.common.IDParam
+	16,  // 91: api.user.User.FindRecommendHighQualityUserDBList:input_type -> api.user.FindRecommendHighQualityUserRequest
+	70,  // 92: api.user.User.GetUserDBMsgFromWebsocket:input_type -> api.common.PersonIDParam
+	9,   // 93: api.user.User.SendMsgReduceCredit:input_type -> api.user.SendMsgReduceCreditRequest
+	55,  // 94: api.user.User.LookBackScripReduceCredit:input_type -> api.common.PersonParam
+	55,  // 95: api.user.User.CreateScripReduceCredit:input_type -> api.common.PersonParam
+	55,  // 96: api.user.User.ReplyScripReduceCredit:input_type -> api.common.PersonParam
+	55,  // 97: api.user.User.MatchingCredit:input_type -> api.common.PersonParam
+	20,  // 98: api.user.User.UpdateUserMatchedNumAndReturnUserMsg:input_type -> api.user.UpdateUserMatchedNumRequest
+	15,  // 99: api.user.User.GetRecommendUserDB:input_type -> api.user.GetRecommendUserDBRequest
+	13,  // 100: api.user.User.ReportUserBlack:input_type -> api.user.ReportUserBlackRequest
+	12,  // 101: api.user.User.AddUserCredit:input_type -> api.user.AddUserCreditRequest
+	70,  // 102: api.user.User.UserInformationStatusDB:input_type -> api.common.PersonIDParam
+	10,  // 103: api.user.User.UserGetInformationAwardByActivity:input_type -> api.user.UserGetInformationAwardByActivityRequest
+	72,  // 104: api.user.User.FindUserVipDBList:input_type -> api.common.PersonIDList
+	5,   // 105: api.user.User.MatchUserDBWithoutMap:input_type -> api.user.MatchUserDBWithoutMapRequest
+	75,  // 106: api.user.User.GetUserDBAndInit:input_type -> api.common.GetUserDBAndInitReq
+	0,   // 107: api.user.User.UpdateToday:input_type -> api.user.UpdateTodayRequest
+	1,   // 108: api.user.User.UpdateLastSendTemplateTime:input_type -> api.user.UpdateLastSendTemplateTimeRequest
+	50,  // 109: api.user.User.CronRemoveExpirationVip:input_type -> google.protobuf.Empty
+	38,  // 110: api.user.User.GetUserInfo:output_type -> api.user.UserInfo
+	38,  // 111: api.user.User.GetUserInfo1:output_type -> api.user.UserInfo
+	50,  // 112: api.user.User.SendPhoneCode:output_type -> google.protobuf.Empty
+	50,  // 113: api.user.User.CheckPhoneCode:output_type -> google.protobuf.Empty
+	50,  // 114: api.user.User.UpdateUserInformation:output_type -> google.protobuf.Empty
+	76,  // 115: api.user.User.CreateUserPersonRoom:output_type -> api.chat.RoomReply
+	35,  // 116: api.user.User.GetUserBalance:output_type -> api.user.UserBalance
+	77,  // 117: api.user.User.UserGetHomeInfo:output_type -> api.common.HomeInfo
+	78,  // 118: api.user.User.UserGetPersonLikedAndLooked:output_type -> api.common.LookedAndLikedNum
+	79,  // 119: api.user.User.FindLookList:output_type -> api.statistics.LookAndLikeListReply
+	80,  // 120: api.user.User.FindTagListBySex:output_type -> api.common.TagListReply
+	81,  // 121: api.user.User.FindOnlineList:output_type -> api.common.RecommendPersonListReply
+	36,  // 122: api.user.User.FindWithinSevenDayRoomList:output_type -> api.user.UserFindChatListReply
+	36,  // 123: api.user.User.FindOverSevenDayRoomList:output_type -> api.user.UserFindChatListReply
+	36,  // 124: api.user.User.FindCloseFriendRoomList:output_type -> api.user.UserFindChatListReply
+	82,  // 125: api.user.User.FindChatRecordList:output_type -> api.common.ChatRecordListReply
+	83,  // 126: api.user.User.FindChatRoomMsg:output_type -> api.common.ChatRoomMsg
+	84,  // 127: api.user.User.GetUserIsLike:output_type -> api.common.IsLike
+	85,  // 128: api.user.User.FindMemeByType:output_type -> api.common.MemeList
+	86,  // 129: api.user.User.FindChatTopic:output_type -> api.common.ChatTopicList
+	87,  // 130: api.user.User.RandomMeme:output_type -> api.common.CommonTextList
+	87,  // 131: api.user.User.RandomSwiftMessage:output_type -> api.common.CommonTextList
+	88,  // 132: api.user.User.FindMemeTitle:output_type -> api.common.MemeTitleList
+	89,  // 133: api.user.User.UserGetChatCard:output_type -> api.common.ChatCardInfo
+	88,  // 134: api.user.User.FindChatTopicTitle:output_type -> api.common.MemeTitleList
+	50,  // 135: api.user.User.UserLike:output_type -> google.protobuf.Empty
+	50,  // 136: api.user.User.UserUnLike:output_type -> google.protobuf.Empty
+	50,  // 137: api.user.User.Report:output_type -> google.protobuf.Empty
+	90,  // 138: api.user.User.FindOverSevenDayAvatar:output_type -> api.common.FindOverSevenDayAvatarReply
+	50,  // 139: api.user.User.UpdateLastScripID:output_type -> google.protobuf.Empty
+	91,  // 140: api.user.User.CreateScrip:output_type -> api.common.ScripID
+	50,  // 141: api.user.User.DeleteScrip:output_type -> google.protobuf.Empty
+	92,  // 142: api.user.User.FindMyScrip:output_type -> api.common.ScripReply
+	92,  // 143: api.user.User.FindOtherScrip:output_type -> api.common.ScripReply
+	92,  // 144: api.user.User.FindRecommendScrip:output_type -> api.common.ScripReply
+	50,  // 145: api.user.User.PersonLookScrip:output_type -> google.protobuf.Empty
+	93,  // 146: api.user.User.PersonClickLookBack:output_type -> api.common.ScripInfo
+	94,  // 147: api.user.User.PersonReplyScrip:output_type -> api.common.ChatRecordInfo
+	50,  // 148: api.user.User.UserDeleteChat:output_type -> google.protobuf.Empty
+	95,  // 149: api.user.User.GetUserAllUnreadNum:output_type -> api.chat.UnreadNumReply
+	96,  // 150: api.user.User.GetUserRoomByPerson:output_type -> api.chat.UserRoomInfo
+	79,  // 151: api.user.User.FindLikeList:output_type -> api.statistics.LookAndLikeListReply
+	79,  // 152: api.user.User.FindLikedList:output_type -> api.statistics.LookAndLikeListReply
+	50,  // 153: api.user.User.UserSetBlackChat:output_type -> google.protobuf.Empty
+	97,  // 154: api.user.User.CheckUserPartnerIsRelationship:output_type -> api.chat.CheckUserPartnerIsRelationshipReply
+	98,  // 155: api.user.User.GetPartnerCircleInfo:output_type -> api.common.AddFriendMessageInfo
+	99,  // 156: api.user.User.GetLookAndLikeStatisticsMessage:output_type -> api.statistics.LookAndLikeMessageReply
+	100, // 157: api.user.User.GetUserLookNum:output_type -> api.statistics.LookMessageReply
+	50,  // 158: api.user.User.UserFinishInformation:output_type -> google.protobuf.Empty
+	34,  // 159: api.user.User.UserInformationStatus:output_type -> api.user.InformationStatus
+	50,  // 160: api.user.User.UserGetInformationAward:output_type -> google.protobuf.Empty
+	50,  // 161: api.user.User.UnlockLookRecord:output_type -> google.protobuf.Empty
+	41,  // 162: api.user.User.UserRecharge:output_type -> api.user.PayInfo
+	41,  // 163: api.user.User.UserRechargeVip:output_type -> api.user.PayInfo
+	30,  // 164: api.user.User.FindRechargeList:output_type -> api.user.RechargeList
+	31,  // 165: api.user.User.FindVipRechargeList:output_type -> api.user.VipRechargeList
+	43,  // 166: api.user.User.FindPayList:output_type -> api.user.PayOrderList
+	81,  // 167: api.user.User.FindRecommendPersonList:output_type -> api.common.RecommendPersonListReply
+	28,  // 168: api.user.User.FindMatchingAvatarAndNum:output_type -> api.user.FindMatchingAvatarAndNumReply
+	101, // 169: api.user.User.GetWindowInfo:output_type -> api.chat.WindowInfo
+	22,  // 170: api.user.User.GetUserFreeNum:output_type -> api.user.UserFreeNum
+	102, // 171: api.user.User.GetRandomMatching:output_type -> api.chat.GetRandomMatchingReply
+	50,  // 172: api.user.User.UnlockVoice:output_type -> google.protobuf.Empty
+	50,  // 173: api.user.User.UnlockPicture:output_type -> google.protobuf.Empty
+	50,  // 174: api.user.User.UpdateUserIsRegister:output_type -> google.protobuf.Empty
+	76,  // 175: api.user.User.CreateUserPartnerRoom:output_type -> api.chat.RoomReply
+	103, // 176: api.user.User.SendMessage:output_type -> api.common.SendMessageReply
+	8,   // 177: api.user.User.GetVipInfo:output_type -> api.user.VipInfo
+	104, // 178: api.user.User.FindHandpickUser:output_type -> api.common.HandpickPersonListReply
+	6,   // 179: api.user.User.GetUserLookHandPickNum:output_type -> api.user.GetUserLookHandPickNumReply
+	50,  // 180: api.user.User.SetUserLookHandPickNum:output_type -> google.protobuf.Empty
+	3,   // 181: api.user.User.IsCanGetReturnReword:output_type -> api.user.IsCanGetReturnRewordReply
+	50,  // 182: api.user.User.UserGetReturnReword:output_type -> google.protobuf.Empty
+	2,   // 183: api.user.User.UserPrivacyStatus:output_type -> api.user.UserPrivacyStatusInfo
+	50,  // 184: api.user.User.UserSetPrivacyStatus:output_type -> google.protobuf.Empty
+	94,  // 185: api.user.User.PersonStarScrip:output_type -> api.common.ChatRecordInfo
+	105, // 186: api.user.User.GetUserDBMsg:output_type -> api.common.PersonMsg
+	106, // 187: api.user.User.FindUserDBList:output_type -> api.common.PersonDBReply
+	50,  // 188: api.user.User.UpdateLastScripIDDB:output_type -> google.protobuf.Empty
+	50,  // 189: api.user.User.UpdateUserLastLoginTime:output_type -> google.protobuf.Empty
+	105, // 190: api.user.User.GetUserDBMsgByAccountID:output_type -> api.common.PersonMsg
+	17,  // 191: api.user.User.FindRecommendHighQualityUserDBList:output_type -> api.user.FindRecommendHighQualityUserReply
+	19,  // 192: api.user.User.GetUserDBMsgFromWebsocket:output_type -> api.user.GetUserDBMsgFromWebsocketReply
+	50,  // 193: api.user.User.SendMsgReduceCredit:output_type -> google.protobuf.Empty
+	50,  // 194: api.user.User.LookBackScripReduceCredit:output_type -> google.protobuf.Empty
+	50,  // 195: api.user.User.CreateScripReduceCredit:output_type -> google.protobuf.Empty
+	50,  // 196: api.user.User.ReplyScripReduceCredit:output_type -> google.protobuf.Empty
+	50,  // 197: api.user.User.MatchingCredit:output_type -> google.protobuf.Empty
+	18,  // 198: api.user.User.UpdateUserMatchedNumAndReturnUserMsg:output_type -> api.user.UpdateUserMatchedNumAndReturnUserMsgReply
+	107, // 199: api.user.User.GetRecommendUserDB:output_type -> api.common.PersonDB
+	50,  // 200: api.user.User.ReportUserBlack:output_type -> google.protobuf.Empty
+	50,  // 201: api.user.User.AddUserCredit:output_type -> google.protobuf.Empty
+	34,  // 202: api.user.User.UserInformationStatusDB:output_type -> api.user.InformationStatus
+	11,  // 203: api.user.User.UserGetInformationAwardByActivity:output_type -> api.user.UserGetInformationAwardByActivityReply
+	7,   // 204: api.user.User.FindUserVipDBList:output_type -> api.user.FindUserVipListDBReply
+	107, // 205: api.user.User.MatchUserDBWithoutMap:output_type -> api.common.PersonDB
+	108, // 206: api.user.User.GetUserDBAndInit:output_type -> api.common.PersonDBDetails
+	50,  // 207: api.user.User.UpdateToday:output_type -> google.protobuf.Empty
+	50,  // 208: api.user.User.UpdateLastSendTemplateTime:output_type -> google.protobuf.Empty
+	50,  // 209: api.user.User.CronRemoveExpirationVip:output_type -> google.protobuf.Empty
+	110, // [110:210] is the sub-list for method output_type
+	10,  // [10:110] is the sub-list for method input_type
 	10,  // [10:10] is the sub-list for extension type_name
 	10,  // [10:10] is the sub-list for extension extendee
 	0,   // [0:10] is the sub-list for field type_name

+ 7 - 0
api/user/user.proto

@@ -539,6 +539,13 @@ service User {
       body:"*"
     };
   };
+  // 用户点赞小纸条
+  rpc PersonStarScrip(common.ScripIdRequest) returns (common.ChatRecordInfo){
+    option (google.api.http) = {
+      post: "/api/user/scrip/star",
+      body:"*"
+    };
+  };
 
   // ---rpc---
   // 获取用户详情

+ 38 - 0
api/user/user_grpc.pb.go

@@ -171,6 +171,8 @@ type UserClient interface {
 	UserPrivacyStatus(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*UserPrivacyStatusInfo, error)
 	// 75、用户设置隐私状态
 	UserSetPrivacyStatus(ctx context.Context, in *UserPrivacyStatusInfo, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// 用户点赞小纸条
+	PersonStarScrip(ctx context.Context, in *common.ScripIdRequest, opts ...grpc.CallOption) (*common.ChatRecordInfo, error)
 	// ---rpc---
 	// 获取用户详情
 	GetUserDBMsg(ctx context.Context, in *common.PersonIDParam, opts ...grpc.CallOption) (*common.PersonMsg, error)
@@ -905,6 +907,15 @@ func (c *userClient) UserSetPrivacyStatus(ctx context.Context, in *UserPrivacySt
 	return out, nil
 }
 
+func (c *userClient) PersonStarScrip(ctx context.Context, in *common.ScripIdRequest, opts ...grpc.CallOption) (*common.ChatRecordInfo, error) {
+	out := new(common.ChatRecordInfo)
+	err := c.cc.Invoke(ctx, "/api.user.User/PersonStarScrip", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *userClient) GetUserDBMsg(ctx context.Context, in *common.PersonIDParam, opts ...grpc.CallOption) (*common.PersonMsg, error) {
 	out := new(common.PersonMsg)
 	err := c.cc.Invoke(ctx, "/api.user.User/GetUserDBMsg", in, out, opts...)
@@ -1274,6 +1285,8 @@ type UserServer interface {
 	UserPrivacyStatus(context.Context, *emptypb.Empty) (*UserPrivacyStatusInfo, error)
 	// 75、用户设置隐私状态
 	UserSetPrivacyStatus(context.Context, *UserPrivacyStatusInfo) (*emptypb.Empty, error)
+	// 用户点赞小纸条
+	PersonStarScrip(context.Context, *common.ScripIdRequest) (*common.ChatRecordInfo, error)
 	// ---rpc---
 	// 获取用户详情
 	GetUserDBMsg(context.Context, *common.PersonIDParam) (*common.PersonMsg, error)
@@ -1555,6 +1568,9 @@ func (UnimplementedUserServer) UserPrivacyStatus(context.Context, *emptypb.Empty
 func (UnimplementedUserServer) UserSetPrivacyStatus(context.Context, *UserPrivacyStatusInfo) (*emptypb.Empty, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method UserSetPrivacyStatus not implemented")
 }
+func (UnimplementedUserServer) PersonStarScrip(context.Context, *common.ScripIdRequest) (*common.ChatRecordInfo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method PersonStarScrip not implemented")
+}
 func (UnimplementedUserServer) GetUserDBMsg(context.Context, *common.PersonIDParam) (*common.PersonMsg, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetUserDBMsg not implemented")
 }
@@ -2990,6 +3006,24 @@ func _User_UserSetPrivacyStatus_Handler(srv interface{}, ctx context.Context, de
 	return interceptor(ctx, in, info, handler)
 }
 
+func _User_PersonStarScrip_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(common.ScripIdRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(UserServer).PersonStarScrip(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/api.user.User/PersonStarScrip",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(UserServer).PersonStarScrip(ctx, req.(*common.ScripIdRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _User_GetUserDBMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(common.PersonIDParam)
 	if err := dec(in); err != nil {
@@ -3729,6 +3763,10 @@ var User_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "UserSetPrivacyStatus",
 			Handler:    _User_UserSetPrivacyStatus_Handler,
 		},
+		{
+			MethodName: "PersonStarScrip",
+			Handler:    _User_PersonStarScrip_Handler,
+		},
 		{
 			MethodName: "GetUserDBMsg",
 			Handler:    _User_GetUserDBMsg_Handler,

+ 43 - 0
api/user/user_http.pb.go

@@ -78,6 +78,7 @@ type UserHTTPServer interface {
 	PersonClickLookBack(context.Context, *emptypb.Empty) (*common.ScripInfo, error)
 	PersonLookScrip(context.Context, *PersonLookScripRequest) (*emptypb.Empty, error)
 	PersonReplyScrip(context.Context, *ReplyScripRequest) (*common.ChatRecordInfo, error)
+	PersonStarScrip(context.Context, *common.ScripIdRequest) (*common.ChatRecordInfo, error)
 	RandomMeme(context.Context, *common.RandomNum) (*common.CommonTextList, error)
 	RandomSwiftMessage(context.Context, *common.RandomNumAndSex) (*common.CommonTextList, error)
 	Report(context.Context, *common.ReportChatRequest) (*emptypb.Empty, error)
@@ -184,6 +185,7 @@ func RegisterUserHTTPServer(s *http.Server, srv UserHTTPServer) {
 	r.POST("/api/user/return/reword/get", _User_UserGetReturnReword0_HTTP_Handler(srv))
 	r.POST("/api/user/privacy/status", _User_UserPrivacyStatus0_HTTP_Handler(srv))
 	r.POST("/api/user/privacy/set", _User_UserSetPrivacyStatus0_HTTP_Handler(srv))
+	r.POST("/api/user/scrip/star", _User_PersonStarScrip0_HTTP_Handler(srv))
 }
 
 func _User_GetUserInfo0_HTTP_Handler(srv UserHTTPServer) func(ctx http.Context) error {
@@ -2211,6 +2213,33 @@ func _User_UserSetPrivacyStatus0_HTTP_Handler(srv UserHTTPServer) func(ctx http.
 	}
 }
 
+func _User_PersonStarScrip0_HTTP_Handler(srv UserHTTPServer) func(ctx http.Context) error {
+	return func(ctx http.Context) error {
+		var in common.ScripIdRequest
+		if err := ctx.Bind(&in); err != nil {
+			return err
+		}
+		if err := ctx.BindQuery(&in); err != nil {
+			return err
+		}
+		http.SetOperation(ctx, "/api.user.User/PersonStarScrip")
+		h := ctx.Middleware(func(ctx context.Context, req interface{}) (interface{}, error) {
+			return srv.PersonStarScrip(ctx, req.(*common.ScripIdRequest))
+		})
+		out, err := h(ctx, &in)
+		if err != nil {
+			return err
+		}
+		success := &reply.SuccessReply{
+			Code: 0,
+		}
+		if out != nil {
+			success.Data = out
+		}
+		return ctx.Result(200, success)
+	}
+}
+
 type UserHTTPClient interface {
 	CheckPhoneCode(ctx context.Context, req *common.CheckPhoneCodeRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 	CheckUserPartnerIsRelationship(ctx context.Context, req *common.PartnerIDParam, opts ...http.CallOption) (rsp *chat.CheckUserPartnerIsRelationshipReply, err error)
@@ -2260,6 +2289,7 @@ type UserHTTPClient interface {
 	PersonClickLookBack(ctx context.Context, req *emptypb.Empty, opts ...http.CallOption) (rsp *common.ScripInfo, err error)
 	PersonLookScrip(ctx context.Context, req *PersonLookScripRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
 	PersonReplyScrip(ctx context.Context, req *ReplyScripRequest, opts ...http.CallOption) (rsp *common.ChatRecordInfo, err error)
+	PersonStarScrip(ctx context.Context, req *common.ScripIdRequest, opts ...http.CallOption) (rsp *common.ChatRecordInfo, err error)
 	RandomMeme(ctx context.Context, req *common.RandomNum, opts ...http.CallOption) (rsp *common.CommonTextList, err error)
 	RandomSwiftMessage(ctx context.Context, req *common.RandomNumAndSex, opts ...http.CallOption) (rsp *common.CommonTextList, err error)
 	Report(ctx context.Context, req *common.ReportChatRequest, opts ...http.CallOption) (rsp *emptypb.Empty, err error)
@@ -2921,6 +2951,19 @@ func (c *UserHTTPClientImpl) PersonReplyScrip(ctx context.Context, in *ReplyScri
 	return &out, err
 }
 
+func (c *UserHTTPClientImpl) PersonStarScrip(ctx context.Context, in *common.ScripIdRequest, opts ...http.CallOption) (*common.ChatRecordInfo, error) {
+	var out common.ChatRecordInfo
+	pattern := "/api/user/scrip/star"
+	path := binding.EncodeURL(pattern, in, false)
+	opts = append(opts, http.Operation("/api.user.User/PersonStarScrip"))
+	opts = append(opts, http.PathTemplate(pattern))
+	err := c.cc.Invoke(ctx, "POST", path, in, &out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return &out, err
+}
+
 func (c *UserHTTPClientImpl) RandomMeme(ctx context.Context, in *common.RandomNum, opts ...http.CallOption) (*common.CommonTextList, error) {
 	var out common.CommonTextList
 	pattern := "/api/user/find/meme/random"

+ 1 - 0
define/chat.go

@@ -30,6 +30,7 @@ var (
 	ChatTypeScrip    = "scrip"    // 小纸条
 	ChatTypeEmoticon = "emoticon" // 表情包
 	ChatTypeLove     = "love"     // 爆灯
+	ChatTypeStar     = "star"     // 点赞
 )
 
 var (

+ 7 - 0
js/api/common/common_pb.ts

@@ -754,6 +754,8 @@ export interface ScripInfo{
     watchNum?:number;
     /**  点赞次数 */
     starNum?:number;
+    /**  是否点赞 */
+    isStar?:boolean;
 }
 export interface ScripReplyMessage{
     /**  小纸条回复的类型 */
@@ -791,6 +793,11 @@ export interface ReplyScripRequest{
     msgType?:string;
     isOldVersion?:boolean;
 }
+export interface ReplyStarRequest{
+    personId?:string;
+    /**  小纸条ID */
+    scripId?:number;
+}
 export interface UpdateLastScripIDRequest{
     /**  纸条id */
     scripId?:number;

+ 6 - 1
js/api/user/user_http_pb.ts

@@ -1,7 +1,7 @@
 // @ts-ignore
 import request from '@/libs/request';
 import {UserInfo,UserBalance,UserFindChatListReply,CreateScripRequest,DeleteScripRequest,UserFindScripRequest,PersonLookScripRequest,ReplyScripRequest,KeyRequest,InformationStatus,UserRechargeRequest,PayInfo,RechargeList,VipRechargeList,FindPayOrderListRequest,PayOrderList,FindMatchingAvatarAndNumReply,UserFreeNum,GetRandomMatchingRequest,SendMessageRequest,VipInfo,GetUserLookHandPickNumReply,IsCanGetReturnRewordReply,UserPrivacyStatusInfo,FindRecommendHighQualityUserRequest,FindRecommendHighQualityUserReply,GetUserDBMsgFromWebsocketReply,SendMsgReduceCreditRequest,UpdateUserMatchedNumRequest,UpdateUserMatchedNumAndReturnUserMsgReply,GetRecommendUserDBRequest,ReportUserBlackRequest,AddUserCreditRequest,UserGetInformationAwardByActivityRequest,UserGetInformationAwardByActivityReply,FindUserVipListDBReply,MatchUserDBWithoutMapRequest,UpdateTodayRequest,UpdateLastSendTemplateTimeRequest} from "./user_pb";
-import {SendPhoneCodeRequest,CheckPhoneCodeRequest,UpdateInformationRequest,CreateChatRoomParam,PersonParam,HomeInfo,LookedAndLikedNum,ListPageRequest,SexReq,TagListReply,ListPage2Request,RecommendPersonListReply,FindChatRecordListRequest,ChatRecordListReply,FindChatRoomMsgRequest,ChatRoomMsg,IsLike,MemeRequest,MemeList,FindChatTopicRequest,ChatTopicList,RandomNum,CommonTextList,RandomNumAndSex,MemeTitleList,ChatCardInfo,ReportChatRequest,FindOverSevenDayAvatarReply,UpdateLastScripIDRequest,ScripID,ScripReply,FindScripRequest,ScripInfo,ChatRecordInfo,RoomIDRequest,PartnerIDParam,AddFriendMessageInfo,SendMessageReply,HandpickPersonListReply,PersonIDParam,PersonMsg,PersonIDList,PersonDBReply,UpdateLastScripIDDBRequest,IDParam,PersonDB,GetUserDBAndInitReq,PersonDBDetails} from "../common/common_pb";
+import {SendPhoneCodeRequest,CheckPhoneCodeRequest,UpdateInformationRequest,CreateChatRoomParam,PersonParam,HomeInfo,LookedAndLikedNum,ListPageRequest,SexReq,TagListReply,ListPage2Request,RecommendPersonListReply,FindChatRecordListRequest,ChatRecordListReply,FindChatRoomMsgRequest,ChatRoomMsg,IsLike,MemeRequest,MemeList,FindChatTopicRequest,ChatTopicList,RandomNum,CommonTextList,RandomNumAndSex,MemeTitleList,ChatCardInfo,ReportChatRequest,FindOverSevenDayAvatarReply,UpdateLastScripIDRequest,ScripID,ScripReply,FindScripRequest,ScripInfo,ChatRecordInfo,RoomIDRequest,PartnerIDParam,AddFriendMessageInfo,SendMessageReply,HandpickPersonListReply,PersonIDParam,ScripIdRequest,PersonMsg,PersonIDList,PersonDBReply,UpdateLastScripIDDBRequest,IDParam,PersonDB,GetUserDBAndInitReq,PersonDBDetails} from "../common/common_pb";
 import {RoomReply,UnreadNumReply,UserRoomInfo,CheckUserPartnerIsRelationshipReply,WindowInfo,GetRandomMatchingReply} from "../chat/chat_pb";
 import {LookAndLikeListReply,LookAndLikeMessageReply,LookMessageReply} from "../statistics/statistics_pb";
 
@@ -380,6 +380,11 @@ const UserService = {
 	const res = await request.post('/api/user/privacy/set', req);
     return res.data.data;
   },
+  /**  用户点赞小纸条 */
+  PersonStarScrip: async (req?: ScripIdRequest) => {
+	const res = await request.post<{ data: ChatRecordInfo, code: string, message: string }>('/api/user/scrip/star', req);
+    return res.data.data;
+  },
 
 };
 

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor