jr-common-micro 1.1.82 → 1.1.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -90,6 +90,26 @@ export interface ChatMediaDto {
90
90
  kind: string;
91
91
  width: number;
92
92
  height: number;
93
+ url: string;
94
+ still_url: string;
95
+ full_url: string;
96
+ }
97
+ export interface GifSearchRequest {
98
+ query: string;
99
+ offset: number;
100
+ limit: number;
101
+ }
102
+ export interface GifItemDto {
103
+ id: string;
104
+ title: string;
105
+ preview_url: string;
106
+ preview_width: number;
107
+ preview_height: number;
108
+ }
109
+ export interface GifSearchResponse {
110
+ status: ResponseStatus | undefined;
111
+ data: GifItemDto[];
112
+ next_offset: number;
93
113
  }
94
114
  export interface ChatMediaUploadRequest {
95
115
  group_slug: string;
@@ -168,6 +188,7 @@ export interface GroupStatsOverviewDto {
168
188
  notify_all: number;
169
189
  notify_mentions: number;
170
190
  notify_off: number;
191
+ active_members: number;
171
192
  }
172
193
  export interface GroupStatsResponse {
173
194
  status: ResponseStatus | undefined;
@@ -155,6 +155,9 @@ export declare class ChatMediaDto extends Message<ChatMediaDto> {
155
155
  kind: string;
156
156
  width: number;
157
157
  height: number;
158
+ url: string;
159
+ stillUrl: string;
160
+ fullUrl: string;
158
161
  constructor(data?: PartialMessage<ChatMediaDto>);
159
162
  static readonly runtime: typeof proto3;
160
163
  static readonly typeName = "micro.v1.chat.ChatMediaDto";
@@ -164,6 +167,47 @@ export declare class ChatMediaDto extends Message<ChatMediaDto> {
164
167
  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ChatMediaDto;
165
168
  static equals(a: ChatMediaDto | PlainMessage<ChatMediaDto> | undefined, b: ChatMediaDto | PlainMessage<ChatMediaDto> | undefined): boolean;
166
169
  }
170
+ export declare class GifSearchRequest extends Message<GifSearchRequest> {
171
+ query: string;
172
+ offset: number;
173
+ limit: number;
174
+ constructor(data?: PartialMessage<GifSearchRequest>);
175
+ static readonly runtime: typeof proto3;
176
+ static readonly typeName = "micro.v1.chat.GifSearchRequest";
177
+ static readonly fields: FieldList;
178
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GifSearchRequest;
179
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GifSearchRequest;
180
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GifSearchRequest;
181
+ static equals(a: GifSearchRequest | PlainMessage<GifSearchRequest> | undefined, b: GifSearchRequest | PlainMessage<GifSearchRequest> | undefined): boolean;
182
+ }
183
+ export declare class GifItemDto extends Message<GifItemDto> {
184
+ id: string;
185
+ title: string;
186
+ previewUrl: string;
187
+ previewWidth: number;
188
+ previewHeight: number;
189
+ constructor(data?: PartialMessage<GifItemDto>);
190
+ static readonly runtime: typeof proto3;
191
+ static readonly typeName = "micro.v1.chat.GifItemDto";
192
+ static readonly fields: FieldList;
193
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GifItemDto;
194
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GifItemDto;
195
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GifItemDto;
196
+ static equals(a: GifItemDto | PlainMessage<GifItemDto> | undefined, b: GifItemDto | PlainMessage<GifItemDto> | undefined): boolean;
197
+ }
198
+ export declare class GifSearchResponse extends Message<GifSearchResponse> {
199
+ status?: ResponseStatus;
200
+ data: GifItemDto[];
201
+ nextOffset: number;
202
+ constructor(data?: PartialMessage<GifSearchResponse>);
203
+ static readonly runtime: typeof proto3;
204
+ static readonly typeName = "micro.v1.chat.GifSearchResponse";
205
+ static readonly fields: FieldList;
206
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GifSearchResponse;
207
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GifSearchResponse;
208
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GifSearchResponse;
209
+ static equals(a: GifSearchResponse | PlainMessage<GifSearchResponse> | undefined, b: GifSearchResponse | PlainMessage<GifSearchResponse> | undefined): boolean;
210
+ }
167
211
  export declare class ChatMediaUploadRequest extends Message<ChatMediaUploadRequest> {
168
212
  groupSlug: string;
169
213
  kind: string;
@@ -321,6 +365,7 @@ export declare class GroupStatsOverviewDto extends Message<GroupStatsOverviewDto
321
365
  notifyAll: number;
322
366
  notifyMentions: number;
323
367
  notifyOff: number;
368
+ activeMembers: number;
324
369
  constructor(data?: PartialMessage<GroupStatsOverviewDto>);
325
370
  static readonly runtime: typeof proto3;
326
371
  static readonly typeName = "micro.v1.chat.GroupStatsOverviewDto";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReportDto = exports.SanctionListResponse = exports.SanctionDto = exports.ChatMemberListResponse = exports.ChatUserAdminListResponse = exports.ChatUserAdminDto = exports.GroupPhotoResponse = exports.GroupPhotoSetRequest = exports.ChatMemberDto = exports.ChatMemberListRequest = exports.PendingMembersRequest = exports.MemberActionRequest = exports.PinMessageRequest = exports.DeleteMessageRequest = exports.RevokeSanctionRequest = exports.SanctionRequest = exports.GroupUpsertRequest = exports.BlockedUsersResponse = exports.BlockUserRequest = exports.ReportMessageRequest = exports.PinnedMessagesResponse = exports.PinnedMessagesRequest = exports.MessageHistoryResponse = exports.MessageHistoryRequest = exports.ChatReplyPreviewDto = exports.ChatReactionCountDto = exports.ChatReactorDto = exports.ChatPollDto = exports.ChatPollOptionDto = exports.GroupStatsResponse = exports.GroupStatsOverviewDto = exports.GroupStatsMemberDto = exports.GroupStatsDayDto = exports.GroupStatsRequest = exports.ChatMediaGetResponse = exports.GroupMediaResponse = exports.ChatMediaItemDto = exports.GroupMediaRequest = exports.ChatMediaGetRequest = exports.ChatMediaUploadResponse = exports.ChatMediaUploadRequest = exports.ChatMediaDto = exports.ChatLinkPreviewDto = exports.ChatTickerCardDto = exports.ChatMessageDto = exports.ChatGroupSingleResponse = exports.JoinGroupResponse = exports.GroupBySlugRequest = exports.ChatGroupListResponse = exports.ChatGroupDto = void 0;
4
- exports.ReviewReportRequest = exports.ReportListResponse = void 0;
3
+ exports.ChatMemberListResponse = exports.ChatUserAdminListResponse = exports.ChatUserAdminDto = exports.GroupPhotoResponse = exports.GroupPhotoSetRequest = exports.ChatMemberDto = exports.ChatMemberListRequest = exports.PendingMembersRequest = exports.MemberActionRequest = exports.PinMessageRequest = exports.DeleteMessageRequest = exports.RevokeSanctionRequest = exports.SanctionRequest = exports.GroupUpsertRequest = exports.BlockedUsersResponse = exports.BlockUserRequest = exports.ReportMessageRequest = exports.PinnedMessagesResponse = exports.PinnedMessagesRequest = exports.MessageHistoryResponse = exports.MessageHistoryRequest = exports.ChatReplyPreviewDto = exports.ChatReactionCountDto = exports.ChatReactorDto = exports.ChatPollDto = exports.ChatPollOptionDto = exports.GroupStatsResponse = exports.GroupStatsOverviewDto = exports.GroupStatsMemberDto = exports.GroupStatsDayDto = exports.GroupStatsRequest = exports.ChatMediaGetResponse = exports.GroupMediaResponse = exports.ChatMediaItemDto = exports.GroupMediaRequest = exports.ChatMediaGetRequest = exports.ChatMediaUploadResponse = exports.ChatMediaUploadRequest = exports.GifSearchResponse = exports.GifItemDto = exports.GifSearchRequest = exports.ChatMediaDto = exports.ChatLinkPreviewDto = exports.ChatTickerCardDto = exports.ChatMessageDto = exports.ChatGroupSingleResponse = exports.JoinGroupResponse = exports.GroupBySlugRequest = exports.ChatGroupListResponse = exports.ChatGroupDto = void 0;
4
+ exports.ReviewReportRequest = exports.ReportListResponse = exports.ReportDto = exports.SanctionListResponse = exports.SanctionDto = void 0;
5
5
  const protobuf_1 = require("@bufbuild/protobuf");
6
6
  const general_pb_js_1 = require("../general_pb.js");
7
7
  class ChatGroupDto extends protobuf_1.Message {
@@ -331,6 +331,9 @@ class ChatMediaDto extends protobuf_1.Message {
331
331
  kind = "";
332
332
  width = 0;
333
333
  height = 0;
334
+ url = "";
335
+ stillUrl = "";
336
+ fullUrl = "";
334
337
  constructor(data) {
335
338
  super();
336
339
  protobuf_1.proto3.util.initPartial(data, this);
@@ -342,6 +345,9 @@ class ChatMediaDto extends protobuf_1.Message {
342
345
  { no: 2, name: "kind", kind: "scalar", T: 9 },
343
346
  { no: 3, name: "width", kind: "scalar", T: 13 },
344
347
  { no: 4, name: "height", kind: "scalar", T: 13 },
348
+ { no: 5, name: "url", kind: "scalar", T: 9 },
349
+ { no: 6, name: "still_url", kind: "scalar", T: 9 },
350
+ { no: 7, name: "full_url", kind: "scalar", T: 9 },
345
351
  ]);
346
352
  static fromBinary(bytes, options) {
347
353
  return new ChatMediaDto().fromBinary(bytes, options);
@@ -357,6 +363,97 @@ class ChatMediaDto extends protobuf_1.Message {
357
363
  }
358
364
  }
359
365
  exports.ChatMediaDto = ChatMediaDto;
366
+ class GifSearchRequest extends protobuf_1.Message {
367
+ query = "";
368
+ offset = 0;
369
+ limit = 0;
370
+ constructor(data) {
371
+ super();
372
+ protobuf_1.proto3.util.initPartial(data, this);
373
+ }
374
+ static runtime = protobuf_1.proto3;
375
+ static typeName = "micro.v1.chat.GifSearchRequest";
376
+ static fields = protobuf_1.proto3.util.newFieldList(() => [
377
+ { no: 1, name: "query", kind: "scalar", T: 9 },
378
+ { no: 2, name: "offset", kind: "scalar", T: 13 },
379
+ { no: 3, name: "limit", kind: "scalar", T: 13 },
380
+ ]);
381
+ static fromBinary(bytes, options) {
382
+ return new GifSearchRequest().fromBinary(bytes, options);
383
+ }
384
+ static fromJson(jsonValue, options) {
385
+ return new GifSearchRequest().fromJson(jsonValue, options);
386
+ }
387
+ static fromJsonString(jsonString, options) {
388
+ return new GifSearchRequest().fromJsonString(jsonString, options);
389
+ }
390
+ static equals(a, b) {
391
+ return protobuf_1.proto3.util.equals(GifSearchRequest, a, b);
392
+ }
393
+ }
394
+ exports.GifSearchRequest = GifSearchRequest;
395
+ class GifItemDto extends protobuf_1.Message {
396
+ id = "";
397
+ title = "";
398
+ previewUrl = "";
399
+ previewWidth = 0;
400
+ previewHeight = 0;
401
+ constructor(data) {
402
+ super();
403
+ protobuf_1.proto3.util.initPartial(data, this);
404
+ }
405
+ static runtime = protobuf_1.proto3;
406
+ static typeName = "micro.v1.chat.GifItemDto";
407
+ static fields = protobuf_1.proto3.util.newFieldList(() => [
408
+ { no: 1, name: "id", kind: "scalar", T: 9 },
409
+ { no: 2, name: "title", kind: "scalar", T: 9 },
410
+ { no: 3, name: "preview_url", kind: "scalar", T: 9 },
411
+ { no: 4, name: "preview_width", kind: "scalar", T: 13 },
412
+ { no: 5, name: "preview_height", kind: "scalar", T: 13 },
413
+ ]);
414
+ static fromBinary(bytes, options) {
415
+ return new GifItemDto().fromBinary(bytes, options);
416
+ }
417
+ static fromJson(jsonValue, options) {
418
+ return new GifItemDto().fromJson(jsonValue, options);
419
+ }
420
+ static fromJsonString(jsonString, options) {
421
+ return new GifItemDto().fromJsonString(jsonString, options);
422
+ }
423
+ static equals(a, b) {
424
+ return protobuf_1.proto3.util.equals(GifItemDto, a, b);
425
+ }
426
+ }
427
+ exports.GifItemDto = GifItemDto;
428
+ class GifSearchResponse extends protobuf_1.Message {
429
+ status;
430
+ data = [];
431
+ nextOffset = 0;
432
+ constructor(data) {
433
+ super();
434
+ protobuf_1.proto3.util.initPartial(data, this);
435
+ }
436
+ static runtime = protobuf_1.proto3;
437
+ static typeName = "micro.v1.chat.GifSearchResponse";
438
+ static fields = protobuf_1.proto3.util.newFieldList(() => [
439
+ { no: 1, name: "status", kind: "message", T: general_pb_js_1.ResponseStatus },
440
+ { no: 2, name: "data", kind: "message", T: GifItemDto, repeated: true },
441
+ { no: 3, name: "next_offset", kind: "scalar", T: 13 },
442
+ ]);
443
+ static fromBinary(bytes, options) {
444
+ return new GifSearchResponse().fromBinary(bytes, options);
445
+ }
446
+ static fromJson(jsonValue, options) {
447
+ return new GifSearchResponse().fromJson(jsonValue, options);
448
+ }
449
+ static fromJsonString(jsonString, options) {
450
+ return new GifSearchResponse().fromJsonString(jsonString, options);
451
+ }
452
+ static equals(a, b) {
453
+ return protobuf_1.proto3.util.equals(GifSearchResponse, a, b);
454
+ }
455
+ }
456
+ exports.GifSearchResponse = GifSearchResponse;
360
457
  class ChatMediaUploadRequest extends protobuf_1.Message {
361
458
  groupSlug = "";
362
459
  kind = "";
@@ -690,6 +787,7 @@ class GroupStatsOverviewDto extends protobuf_1.Message {
690
787
  notifyAll = 0;
691
788
  notifyMentions = 0;
692
789
  notifyOff = 0;
790
+ activeMembers = 0;
693
791
  constructor(data) {
694
792
  super();
695
793
  protobuf_1.proto3.util.initPartial(data, this);
@@ -707,6 +805,7 @@ class GroupStatsOverviewDto extends protobuf_1.Message {
707
805
  { no: 8, name: "notify_all", kind: "scalar", T: 13 },
708
806
  { no: 9, name: "notify_mentions", kind: "scalar", T: 13 },
709
807
  { no: 10, name: "notify_off", kind: "scalar", T: 13 },
808
+ { no: 11, name: "active_members", kind: "scalar", T: 13 },
710
809
  ]);
711
810
  static fromBinary(bytes, options) {
712
811
  return new GroupStatsOverviewDto().fromBinary(bytes, options);
@@ -1,5 +1,5 @@
1
1
  import { ByIdRequest, EmptyRequest, EmptyResponse, PaginateRequest } from "../general_pb.js";
2
- import { BlockedUsersResponse, BlockUserRequest, ChatGroupListResponse, ChatGroupSingleResponse, ChatMediaGetRequest, ChatMediaGetResponse, ChatMediaUploadRequest, ChatMediaUploadResponse, ChatMemberListRequest, ChatMemberListResponse, ChatUserAdminListResponse, DeleteMessageRequest, GroupBySlugRequest, GroupMediaRequest, GroupMediaResponse, GroupPhotoResponse, GroupPhotoSetRequest, GroupStatsRequest, GroupStatsResponse, GroupUpsertRequest, JoinGroupResponse, MemberActionRequest, MessageHistoryRequest, MessageHistoryResponse, PendingMembersRequest, PinMessageRequest, PinnedMessagesRequest, PinnedMessagesResponse, ReportListResponse, ReportMessageRequest, ReviewReportRequest, RevokeSanctionRequest, SanctionListResponse, SanctionRequest } from "./chat_messages_pb.js";
2
+ import { BlockedUsersResponse, BlockUserRequest, ChatGroupListResponse, ChatGroupSingleResponse, ChatMediaGetRequest, ChatMediaGetResponse, ChatMediaUploadRequest, ChatMediaUploadResponse, ChatMemberListRequest, ChatMemberListResponse, ChatUserAdminListResponse, DeleteMessageRequest, GifSearchRequest, GifSearchResponse, GroupBySlugRequest, GroupMediaRequest, GroupMediaResponse, GroupPhotoResponse, GroupPhotoSetRequest, GroupStatsRequest, GroupStatsResponse, GroupUpsertRequest, JoinGroupResponse, MemberActionRequest, MessageHistoryRequest, MessageHistoryResponse, PendingMembersRequest, PinMessageRequest, PinnedMessagesRequest, PinnedMessagesResponse, ReportListResponse, ReportMessageRequest, ReviewReportRequest, RevokeSanctionRequest, SanctionListResponse, SanctionRequest } from "./chat_messages_pb.js";
3
3
  import { MethodKind } from "@bufbuild/protobuf";
4
4
  export declare const PChatService: {
5
5
  readonly typeName: "micro.v1.chat.PChatService";
@@ -58,6 +58,12 @@ export declare const PChatService: {
58
58
  readonly O: typeof GroupStatsResponse;
59
59
  readonly kind: MethodKind.ServerStreaming;
60
60
  };
61
+ readonly gifSearch: {
62
+ readonly name: "GifSearch";
63
+ readonly I: typeof GifSearchRequest;
64
+ readonly O: typeof GifSearchResponse;
65
+ readonly kind: MethodKind.ServerStreaming;
66
+ };
61
67
  readonly getGroupPhoto: {
62
68
  readonly name: "GetGroupPhoto";
63
69
  readonly I: typeof ByIdRequest;
@@ -61,6 +61,12 @@ exports.PChatService = {
61
61
  O: chat_messages_pb_js_1.GroupStatsResponse,
62
62
  kind: protobuf_1.MethodKind.ServerStreaming,
63
63
  },
64
+ gifSearch: {
65
+ name: "GifSearch",
66
+ I: chat_messages_pb_js_1.GifSearchRequest,
67
+ O: chat_messages_pb_js_1.GifSearchResponse,
68
+ kind: protobuf_1.MethodKind.ServerStreaming,
69
+ },
64
70
  getGroupPhoto: {
65
71
  name: "GetGroupPhoto",
66
72
  I: general_pb_js_1.ByIdRequest,
@@ -1,7 +1,7 @@
1
1
  import type { Metadata } from "@grpc/grpc-js";
2
2
  import { Observable } from "rxjs";
3
3
  import { ByIdRequest, EmptyRequest, EmptyResponse, PaginateRequest } from "../general_nest";
4
- import { BlockedUsersResponse, BlockUserRequest, ChatGroupListResponse, ChatGroupSingleResponse, ChatMediaGetRequest, ChatMediaGetResponse, ChatMediaUploadRequest, ChatMediaUploadResponse, ChatMemberListRequest, ChatMemberListResponse, ChatUserAdminListResponse, DeleteMessageRequest, GroupBySlugRequest, GroupMediaRequest, GroupMediaResponse, GroupPhotoResponse, GroupPhotoSetRequest, GroupStatsRequest, GroupStatsResponse, GroupUpsertRequest, JoinGroupResponse, MemberActionRequest, MessageHistoryRequest, MessageHistoryResponse, PendingMembersRequest, PinMessageRequest, PinnedMessagesRequest, PinnedMessagesResponse, ReportListResponse, ReportMessageRequest, ReviewReportRequest, RevokeSanctionRequest, SanctionListResponse, SanctionRequest } from "./chat_messages_nest";
4
+ import { BlockedUsersResponse, BlockUserRequest, ChatGroupListResponse, ChatGroupSingleResponse, ChatMediaGetRequest, ChatMediaGetResponse, ChatMediaUploadRequest, ChatMediaUploadResponse, ChatMemberListRequest, ChatMemberListResponse, ChatUserAdminListResponse, DeleteMessageRequest, GifSearchRequest, GifSearchResponse, GroupBySlugRequest, GroupMediaRequest, GroupMediaResponse, GroupPhotoResponse, GroupPhotoSetRequest, GroupStatsRequest, GroupStatsResponse, GroupUpsertRequest, JoinGroupResponse, MemberActionRequest, MessageHistoryRequest, MessageHistoryResponse, PendingMembersRequest, PinMessageRequest, PinnedMessagesRequest, PinnedMessagesResponse, ReportListResponse, ReportMessageRequest, ReviewReportRequest, RevokeSanctionRequest, SanctionListResponse, SanctionRequest } from "./chat_messages_nest";
5
5
  export declare const protobufPackage = "micro.v1.chat";
6
6
  export declare const MICRO_V1_CHAT_PACKAGE_NAME = "micro.v1.chat";
7
7
  export interface PChatServiceClient {
@@ -14,6 +14,7 @@ export interface PChatServiceClient {
14
14
  listMembers(request: ChatMemberListRequest, metadata?: Metadata): Observable<ChatMemberListResponse>;
15
15
  groupMedia(request: GroupMediaRequest, metadata?: Metadata): Observable<GroupMediaResponse>;
16
16
  groupStats(request: GroupStatsRequest, metadata?: Metadata): Observable<GroupStatsResponse>;
17
+ gifSearch(request: GifSearchRequest, metadata?: Metadata): Observable<GifSearchResponse>;
17
18
  getGroupPhoto(request: ByIdRequest, metadata?: Metadata): Observable<GroupPhotoResponse>;
18
19
  uploadChatMedia(request: ChatMediaUploadRequest, metadata?: Metadata): Observable<ChatMediaUploadResponse>;
19
20
  getChatMedia(request: ChatMediaGetRequest, metadata?: Metadata): Observable<ChatMediaGetResponse>;
@@ -33,6 +34,7 @@ export interface PChatServiceController {
33
34
  listMembers(request: ChatMemberListRequest, metadata?: Metadata): Observable<ChatMemberListResponse>;
34
35
  groupMedia(request: GroupMediaRequest, metadata?: Metadata): Observable<GroupMediaResponse>;
35
36
  groupStats(request: GroupStatsRequest, metadata?: Metadata): Observable<GroupStatsResponse>;
37
+ gifSearch(request: GifSearchRequest, metadata?: Metadata): Observable<GifSearchResponse>;
36
38
  getGroupPhoto(request: ByIdRequest, metadata?: Metadata): Observable<GroupPhotoResponse>;
37
39
  uploadChatMedia(request: ChatMediaUploadRequest, metadata?: Metadata): Observable<ChatMediaUploadResponse>;
38
40
  getChatMedia(request: ChatMediaGetRequest, metadata?: Metadata): Observable<ChatMediaGetResponse>;
@@ -18,6 +18,7 @@ function PChatServiceControllerMethods() {
18
18
  "listMembers",
19
19
  "groupMedia",
20
20
  "groupStats",
21
+ "gifSearch",
21
22
  "getGroupPhoto",
22
23
  "uploadChatMedia",
23
24
  "getChatMedia",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jr-common-micro",
3
- "version": "1.1.82",
3
+ "version": "1.1.84",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "private": false,
@@ -140,10 +140,41 @@ message ChatLinkPreviewDto {
140
140
  // the message (fan-out stays light), it is fetched via GetChatMedia.
141
141
  message ChatMediaDto {
142
142
  string public_id = 1;
143
- // image | video
143
+ // image | video | gif
144
144
  string kind = 2;
145
145
  uint32 width = 3;
146
146
  uint32 height = 4;
147
+ // kind=gif only: served straight from GIPHY's CDN, no bytes on our side.
148
+ // Animated WebP (~200 px wide) for the bubble, its first frame, and the
149
+ // large variant for the viewer. Empty for uploads.
150
+ string url = 5;
151
+ string still_url = 6;
152
+ string full_url = 7;
153
+ }
154
+
155
+ // GIF search through the micro (the GIPHY key never reaches a client).
156
+ message GifSearchRequest {
157
+ // '' = trending.
158
+ string query = 1;
159
+ uint32 offset = 2;
160
+ // Page size, capped by the micro (default 24).
161
+ uint32 limit = 3;
162
+ }
163
+
164
+ message GifItemDto {
165
+ string id = 1;
166
+ string title = 2;
167
+ // Small animated WebP for the picker grid, with its dimensions.
168
+ string preview_url = 3;
169
+ uint32 preview_width = 4;
170
+ uint32 preview_height = 5;
171
+ }
172
+
173
+ message GifSearchResponse {
174
+ ResponseStatus status = 1;
175
+ repeated GifItemDto data = 2;
176
+ // Offset of the next page; 0 = no more.
177
+ uint32 next_offset = 3;
147
178
  }
148
179
 
149
180
  message ChatMediaUploadRequest {
@@ -255,6 +286,8 @@ message GroupStatsOverviewDto {
255
286
  uint32 notify_all = 8;
256
287
  uint32 notify_mentions = 9;
257
288
  uint32 notify_off = 10;
289
+ // Members who posted at least once in the period.
290
+ uint32 active_members = 11;
258
291
  }
259
292
 
260
293
  message GroupStatsResponse {
@@ -16,6 +16,7 @@ service PChatService {
16
16
  rpc ListMembers(ChatMemberListRequest) returns(stream ChatMemberListResponse) {}
17
17
  rpc GroupMedia(GroupMediaRequest) returns(stream GroupMediaResponse) {}
18
18
  rpc GroupStats(GroupStatsRequest) returns(stream GroupStatsResponse) {}
19
+ rpc GifSearch(GifSearchRequest) returns(stream GifSearchResponse) {}
19
20
  rpc GetGroupPhoto(ByIdRequest) returns(stream GroupPhotoResponse) {}
20
21
  // Authed upload (staging row); the send then references media_id.
21
22
  rpc UploadChatMedia(ChatMediaUploadRequest) returns(stream ChatMediaUploadResponse) {}