node-karin 0.0.3

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.
Files changed (107) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +57 -0
  3. package/config/defSet/App.yaml +37 -0
  4. package/config/defSet/config.yaml +43 -0
  5. package/config/defSet/group.yaml +18 -0
  6. package/config/defSet/pm2.yaml +21 -0
  7. package/config/defSet/redis.yaml +18 -0
  8. package/config/defSet/server.yaml +42 -0
  9. package/config/view/App.yaml +74 -0
  10. package/config/view/config.yaml +100 -0
  11. package/config/view/group.yaml +62 -0
  12. package/config/view/pm2.yaml +41 -0
  13. package/config/view/redis.yaml +25 -0
  14. package/config/view/server.yaml +93 -0
  15. package/lib/adapter/onebot/onebot11.d.ts +430 -0
  16. package/lib/adapter/onebot/onebot11.js +1302 -0
  17. package/lib/core/init.d.ts +0 -0
  18. package/lib/core/init.js +4 -0
  19. package/lib/core/karin.d.ts +72 -0
  20. package/lib/core/karin.js +51 -0
  21. package/lib/core/listener.d.ts +121 -0
  22. package/lib/core/listener.js +188 -0
  23. package/lib/core/plugin.app.d.ts +15 -0
  24. package/lib/core/plugin.app.js +18 -0
  25. package/lib/core/plugin.d.ts +182 -0
  26. package/lib/core/plugin.js +138 -0
  27. package/lib/core/plugin.loader.d.ts +149 -0
  28. package/lib/core/plugin.loader.js +462 -0
  29. package/lib/core/server.d.ts +26 -0
  30. package/lib/core/server.js +213 -0
  31. package/lib/db/level.d.ts +20 -0
  32. package/lib/db/level.js +38 -0
  33. package/lib/db/redis.d.ts +41 -0
  34. package/lib/db/redis.js +137 -0
  35. package/lib/db/redis_level.d.ts +113 -0
  36. package/lib/db/redis_level.js +290 -0
  37. package/lib/event/event.d.ts +138 -0
  38. package/lib/event/event.handler.d.ts +29 -0
  39. package/lib/event/event.handler.js +142 -0
  40. package/lib/event/event.js +120 -0
  41. package/lib/event/message.d.ts +102 -0
  42. package/lib/event/message.handler.d.ts +25 -0
  43. package/lib/event/message.handler.js +240 -0
  44. package/lib/event/message.js +70 -0
  45. package/lib/event/notice.d.ts +49 -0
  46. package/lib/event/notice.js +15 -0
  47. package/lib/event/request.d.ts +49 -0
  48. package/lib/event/request.js +15 -0
  49. package/lib/event/review.handler.d.ts +54 -0
  50. package/lib/event/review.handler.js +382 -0
  51. package/lib/index.d.ts +23 -0
  52. package/lib/index.js +40 -0
  53. package/lib/renderer/app.d.ts +53 -0
  54. package/lib/renderer/app.js +93 -0
  55. package/lib/renderer/base.d.ts +30 -0
  56. package/lib/renderer/base.js +71 -0
  57. package/lib/renderer/client.d.ts +30 -0
  58. package/lib/renderer/client.js +159 -0
  59. package/lib/renderer/http.d.ts +19 -0
  60. package/lib/renderer/http.js +51 -0
  61. package/lib/renderer/server.d.ts +42 -0
  62. package/lib/renderer/server.js +112 -0
  63. package/lib/renderer/wormhole.d.ts +1 -0
  64. package/lib/renderer/wormhole.js +154 -0
  65. package/lib/types/adapter.d.ts +575 -0
  66. package/lib/types/adapter.js +1 -0
  67. package/lib/types/config.d.ts +327 -0
  68. package/lib/types/config.js +1 -0
  69. package/lib/types/element.d.ts +576 -0
  70. package/lib/types/element.js +1 -0
  71. package/lib/types/index.d.ts +8 -0
  72. package/lib/types/index.js +8 -0
  73. package/lib/types/logger.d.ts +109 -0
  74. package/lib/types/logger.js +1 -0
  75. package/lib/types/onebots11.d.ts +1371 -0
  76. package/lib/types/onebots11.js +1 -0
  77. package/lib/types/plugin.d.ts +282 -0
  78. package/lib/types/plugin.js +1 -0
  79. package/lib/types/render.d.ts +111 -0
  80. package/lib/types/render.js +1 -0
  81. package/lib/types/reply.d.ts +40 -0
  82. package/lib/types/reply.js +1 -0
  83. package/lib/types/types.d.ts +898 -0
  84. package/lib/types/types.js +1 -0
  85. package/lib/utils/YamlEditor.d.ts +62 -0
  86. package/lib/utils/YamlEditor.js +208 -0
  87. package/lib/utils/button.d.ts +49 -0
  88. package/lib/utils/button.js +79 -0
  89. package/lib/utils/common.d.ts +123 -0
  90. package/lib/utils/common.js +413 -0
  91. package/lib/utils/config.d.ts +72 -0
  92. package/lib/utils/config.js +254 -0
  93. package/lib/utils/exec.d.ts +22 -0
  94. package/lib/utils/exec.js +36 -0
  95. package/lib/utils/ffmpeg.d.ts +12 -0
  96. package/lib/utils/ffmpeg.js +25 -0
  97. package/lib/utils/handler.d.ts +76 -0
  98. package/lib/utils/handler.js +102 -0
  99. package/lib/utils/logger.d.ts +3 -0
  100. package/lib/utils/logger.js +104 -0
  101. package/lib/utils/segment.d.ts +276 -0
  102. package/lib/utils/segment.js +448 -0
  103. package/lib/utils/update.d.ts +69 -0
  104. package/lib/utils/update.js +151 -0
  105. package/lib/utils/updateVersion.d.ts +33 -0
  106. package/lib/utils/updateVersion.js +145 -0
  107. package/package.json +92 -0
@@ -0,0 +1,898 @@
1
+ import { KarinElement } from './element.js';
2
+ import { KarinMessage } from '../event/message.js';
3
+ import { KarinNotice } from '../event/notice.js';
4
+ import { KarinRequest } from '../event/request.js';
5
+ /**
6
+ * - 事件类型
7
+ */
8
+ export type Event = 'message' | 'notice' | 'request' | 'meta_event' | 'message_sent';
9
+ /**
10
+ * - 事件来源
11
+ */
12
+ export type Scene = 'group' | 'private' | 'guild' | 'nearby' | 'stranger' | 'stranger_from_group';
13
+ /**
14
+ * - 事件子类型
15
+ */
16
+ export type SubEvent = 'group_message' | 'friend_message' | 'guild_message' | 'nearby' | 'stranger' | 'stranger_from_group' | 'friend_poke' | 'friend_recall' | 'friend_file_uploaded' | 'group_poke' | 'group_card_changed' | 'group_member_unique_title_changed' | 'group_essence_changed' | 'group_recall' | 'group_member_increase' | 'group_member_decrease' | 'group_admin_changed' | 'group_member_ban' | 'group_sign' | 'group_whole_ban' | 'group_file_uploaded' | 'friend_apply' | 'group_apply' | 'invited_group';
17
+ /**
18
+ * - 类型映射
19
+ */
20
+ export type EventToSubEvent = {
21
+ message: 'group_message' | 'friend_message' | 'guild_message' | 'nearby' | 'stranger' | 'stranger_from_group';
22
+ notice: 'friend_poke' | 'friend_recall' | 'friend_file_uploaded' | 'group_poke' | 'group_card_changed' | 'group_member_unique_title_changed' | 'group_essence_changed' | 'group_recall' | 'group_member_increase' | 'group_member_decrease' | 'group_admin_changed' | 'group_member_ban' | 'group_sign' | 'group_whole_ban' | 'group_file_uploaded' | 'group_message_reaction';
23
+ request: 'friend_apply' | 'group_apply' | 'invited_group';
24
+ meta_event: 'group_message' | 'friend_message' | 'guild_message';
25
+ };
26
+ /**
27
+ * - 事件子类型泛型
28
+ */
29
+ export type SubEventForEvent<E extends Event> = E extends keyof EventToSubEvent ? EventToSubEvent[E] : never;
30
+ /**
31
+ * - 权限类型
32
+ */
33
+ export type Permission = 'all' | 'master' | 'admin' | 'group.owner' | 'group.admin';
34
+ /**
35
+ * - 群角色
36
+ */
37
+ export type Role = 'owner' | 'admin' | 'member' | 'unknown' | '';
38
+ /**
39
+ * - 事件联系人信息
40
+ */
41
+ export interface contact {
42
+ /**
43
+ * - 事件来源场景
44
+ */
45
+ scene: Scene;
46
+ /**
47
+ * - 事件来源id 群号或者用户id
48
+ */
49
+ peer: string;
50
+ /**
51
+ * - 事件来源子id 仅在频道和临时会话中存在
52
+ */
53
+ sub_peer?: string;
54
+ }
55
+ /**
56
+ * - 事件发送者信息
57
+ */
58
+ export interface Sender {
59
+ /**
60
+ * - 发送者uid
61
+ */
62
+ uid: string;
63
+ /**
64
+ * - 发送者uin
65
+ */
66
+ uin: string;
67
+ /**
68
+ * - 发送者昵称
69
+ */
70
+ nick: string | '';
71
+ /**
72
+ * - 发送者在群的角色身份
73
+ */
74
+ role: Role;
75
+ }
76
+ /**
77
+ * - 通知事件类型
78
+ */
79
+ export interface NoticeTytpe {
80
+ /**
81
+ * - 私聊戳一戳
82
+ */
83
+ friend_poke: {
84
+ /**
85
+ * - 操作者uid
86
+ */
87
+ operator_uid: string;
88
+ /**
89
+ * - 操作者uin
90
+ */
91
+ operator_uin: string;
92
+ /**
93
+ * - 操作名称,如“戳了戳”
94
+ */
95
+ action: string;
96
+ /**
97
+ * - 后缀,未设置则未空字符串
98
+ */
99
+ suffix: string;
100
+ /**
101
+ * - 操作图标url
102
+ */
103
+ action_image: string;
104
+ };
105
+ /**
106
+ * - 私聊撤回消息
107
+ */
108
+ friend_recall: {
109
+ /**
110
+ * - 操作者uid
111
+ */
112
+ operator_uid: string;
113
+ /**
114
+ * - 操作者uin
115
+ */
116
+ operator_uin: string;
117
+ /**
118
+ * - 撤回的消息id
119
+ */
120
+ message_id: string;
121
+ /**
122
+ * - 操作名称,如“撤回了一条消息” 一般此项为空字符串
123
+ */
124
+ tip_text: string;
125
+ };
126
+ /**
127
+ * - 私聊文件上传
128
+ * - 文件信息最少需要提供一个url
129
+ */
130
+ friend_file_uploaded: {
131
+ /**
132
+ * - 操作者uid
133
+ */
134
+ operator_uid: string;
135
+ /**
136
+ * - 操作者uin
137
+ */
138
+ operator_uin: string;
139
+ /**
140
+ * - 文件ID 此项没有则为空字符串
141
+ */
142
+ file_id: string;
143
+ /**
144
+ * - 文件子ID 此项没有则为空字符串
145
+ */
146
+ file_sub_id: string;
147
+ /**
148
+ * - 文件名 此项没有则为空字符串
149
+ */
150
+ file_name: string;
151
+ /**
152
+ * - 文件大小 此项没有则为0
153
+ */
154
+ file_size: number;
155
+ /**
156
+ * - 过期时间 此项没有则为0
157
+ */
158
+ expire_time: number;
159
+ /**
160
+ * - 文件URL
161
+ */
162
+ url: string;
163
+ };
164
+ /**
165
+ * - 群聊戳一戳
166
+ */
167
+ group_poke: {
168
+ /**
169
+ * - 操作者uid
170
+ */
171
+ operator_uid: string;
172
+ /**
173
+ * - 操作者uin
174
+ */
175
+ operator_uin: string;
176
+ /**
177
+ * - 目标uid 一般为被戳的uid
178
+ */
179
+ target_uid: string;
180
+ /**
181
+ * - 目标uin 一般为被戳的uin
182
+ */
183
+ target_uin: string;
184
+ /**
185
+ * - 操作名称,如“戳了戳”
186
+ */
187
+ action: string;
188
+ /**
189
+ * - 后缀,未设置则未空字符串
190
+ */
191
+ suffix: string;
192
+ /**
193
+ * - 操作图标url
194
+ */
195
+ action_image: string;
196
+ };
197
+ /**
198
+ * - 群聊消息撤回
199
+ * - 撤回自己消息时,operator和target为自己
200
+ * - 撤回别人消息时,operator为操作者,target为被撤回者
201
+ */
202
+ group_recall: {
203
+ /**
204
+ * - 操作者uid
205
+ */
206
+ operator_uid: string;
207
+ /**
208
+ * - 操作者uin
209
+ */
210
+ operator_uin: string;
211
+ /**
212
+ * - 目标uid
213
+ */
214
+ target_uid: string;
215
+ /**
216
+ * - 目标uin
217
+ */
218
+ target_uin: string;
219
+ /**
220
+ * - 撤回的消息id
221
+ */
222
+ message_id: string;
223
+ /**
224
+ * - 操作名称,如“撤回了一条消息” 一般此项为空字符串
225
+ */
226
+ tip_text: string;
227
+ };
228
+ /**
229
+ * - 群文件上传
230
+ * - 文件信息最少需要提供一个url
231
+ */
232
+ group_file_uploaded: {
233
+ /**
234
+ * - 操作者uid
235
+ */
236
+ operator_uid: string;
237
+ /**
238
+ * - 操作者uin
239
+ */
240
+ operator_uin: string;
241
+ /**
242
+ * - 文件ID 此项没有则为空字符串
243
+ */
244
+ file_id: string;
245
+ /**
246
+ * - 文件子ID 此项没有则为空字符串
247
+ */
248
+ file_sub_id: string;
249
+ /**
250
+ * - 文件名 此项没有则为空字符串
251
+ */
252
+ file_name: string;
253
+ /**
254
+ * - 文件大小 此项没有则为0
255
+ */
256
+ file_size: number;
257
+ /**
258
+ * - 目前未知
259
+ */
260
+ bus_id: number;
261
+ /**
262
+ * - 过期时间 此项没有则为0
263
+ */
264
+ expire_time: number;
265
+ /**
266
+ * - 文件URL
267
+ */
268
+ url: string;
269
+ };
270
+ /**
271
+ * - 群名片变动
272
+ */
273
+ group_card_changed: {
274
+ /**
275
+ * - 操作者uid
276
+ */
277
+ operator_uid: string;
278
+ /**
279
+ * - 操作者uin
280
+ */
281
+ operator_uin: string;
282
+ /**
283
+ * - 目标uid
284
+ */
285
+ target_uid: string;
286
+ /**
287
+ * - 目标uin
288
+ */
289
+ target_uin: string;
290
+ /**
291
+ * - 新名片
292
+ */
293
+ new_card: string;
294
+ };
295
+ /**
296
+ * - 群成员头衔变动
297
+ */
298
+ group_member_unique_title_changed: {
299
+ /**
300
+ * - 目标uid
301
+ */
302
+ target_uid: string;
303
+ /**
304
+ * - 目标uin
305
+ */
306
+ target_uin: string;
307
+ /**
308
+ * - 新头衔
309
+ */
310
+ title: string;
311
+ };
312
+ /**
313
+ * - 群精华消息变动
314
+ */
315
+ group_essence_changed: {
316
+ /**
317
+ * - 群ID
318
+ */
319
+ group_id: string;
320
+ /**
321
+ * - 操作者uid
322
+ */
323
+ operator_uid: string;
324
+ /**
325
+ * - 操作者uin
326
+ */
327
+ operator_uin: string;
328
+ /**
329
+ * - 目标uid
330
+ */
331
+ target_uid: string;
332
+ /**
333
+ * - 目标uin
334
+ */
335
+ target_uin: string;
336
+ /**
337
+ * - 被操作的消息id
338
+ */
339
+ message_id: string;
340
+ /**
341
+ * - 设置、取消精华
342
+ */
343
+ is_set: boolean;
344
+ };
345
+ /**
346
+ * - 群成员增加
347
+ */
348
+ group_member_increase: {
349
+ /**
350
+ * - 群ID
351
+ */
352
+ group_id: string;
353
+ /**
354
+ * - 操作者uid
355
+ */
356
+ operator_uid: string;
357
+ /**
358
+ * - 操作者uin
359
+ */
360
+ operator_uin: string;
361
+ /**
362
+ * - 目标uid
363
+ */
364
+ target_uid: string;
365
+ /**
366
+ * - 目标uin
367
+ */
368
+ target_uin: string;
369
+ /**
370
+ * - 加入方式 APPROVE:管理员批准 INVITE:管理员邀请
371
+ */
372
+ type: 'invite' | 'approve';
373
+ };
374
+ /**
375
+ * - 群成员减少
376
+ */
377
+ group_member_decrease: {
378
+ /**
379
+ * - 群ID
380
+ */
381
+ group_id: string;
382
+ /**
383
+ * - 操作者uid
384
+ */
385
+ operator_uid: string;
386
+ /**
387
+ * - 操作者uin
388
+ */
389
+ operator_uin: string;
390
+ /**
391
+ * - 目标uid
392
+ */
393
+ target_uid: string;
394
+ /**
395
+ * - 目标uin
396
+ */
397
+ target_uin: string;
398
+ /**
399
+ * - 减少方式 leave:主动退群 kick:成员被踢 kick_me:机器人自身被踢
400
+ */
401
+ type: 'leave' | 'kick' | 'kick_me';
402
+ };
403
+ /**
404
+ * - 群管理员变动
405
+ */
406
+ group_admin_changed: {
407
+ /**
408
+ * - 群ID
409
+ */
410
+ group_id: string;
411
+ /**
412
+ * - 目标uid
413
+ */
414
+ target_uid: string;
415
+ /**
416
+ * - 目标uin
417
+ */
418
+ target_uin: string;
419
+ /**
420
+ * - 设置、取消管理员
421
+ */
422
+ is_admin: boolean;
423
+ };
424
+ /**
425
+ * - 群打卡
426
+ */
427
+ group_sign: {
428
+ /**
429
+ * - 群ID
430
+ */
431
+ group_id: string;
432
+ /**
433
+ * - 目标uid
434
+ */
435
+ target_uid: string;
436
+ /**
437
+ * - 目标uin
438
+ */
439
+ target_uin: string;
440
+ /**
441
+ * - 操作名称,如“打卡了”
442
+ */
443
+ action: string;
444
+ /**
445
+ * - 打卡图标url
446
+ */
447
+ rank_image: string;
448
+ };
449
+ /**
450
+ * - 群成员被禁言
451
+ */
452
+ group_member_ban: {
453
+ /**
454
+ * - 群ID
455
+ */
456
+ group_id: string;
457
+ /**
458
+ * - 操作者uid
459
+ */
460
+ operator_uid: string;
461
+ /**
462
+ * - 操作者uin
463
+ */
464
+ operator_uin: string;
465
+ /**
466
+ * - 目标uid
467
+ */
468
+ target_uid: string;
469
+ /**
470
+ * - 目标uin
471
+ */
472
+ target_uin: string;
473
+ /**
474
+ * - 禁言时长,单位秒
475
+ */
476
+ duration: number;
477
+ /**
478
+ * - 禁言类型 ban:禁言 lift_ban:解禁
479
+ */
480
+ type: 'ban' | 'lift_ban';
481
+ };
482
+ /**
483
+ * - 群全员禁言
484
+ */
485
+ group_whole_ban: {
486
+ /**
487
+ * - 群ID
488
+ */
489
+ group_id: string;
490
+ /**
491
+ * - 操作者uid
492
+ */
493
+ operator_uid: string;
494
+ /**
495
+ * - 操作者uin
496
+ */
497
+ operator_uin: string;
498
+ /**
499
+ * - 是否开启全体禁言
500
+ */
501
+ is_ban: boolean;
502
+ };
503
+ /**
504
+ * - 群表情动态
505
+ */
506
+ group_message_reaction: {
507
+ /**
508
+ * - 群ID
509
+ */
510
+ group_id: string;
511
+ /**
512
+ * - 操作者uid
513
+ */
514
+ message_id: string;
515
+ /**
516
+ * - 表情ID 参考: https://bot.q.qq.com/wiki/develop/api-v2/openapi/emoji/model.html#EmojiType
517
+ */
518
+ face_id: number;
519
+ /**
520
+ * - 添加、取消回应
521
+ */
522
+ is_set: boolean;
523
+ };
524
+ }
525
+ /**
526
+ * - 通知事件泛型
527
+ */
528
+ export type NoticeEvent<E extends keyof NoticeTytpe> = E extends keyof NoticeTytpe ? NoticeTytpe[E] : never;
529
+ /**
530
+ * - 请求事件类型
531
+ */
532
+ export interface RequestType {
533
+ /**
534
+ * - 好友申请
535
+ */
536
+ friend_apply: {
537
+ /**
538
+ * - 申请者uid
539
+ */
540
+ applier_uid: string;
541
+ /**
542
+ * - 申请者uin
543
+ */
544
+ applier_uin: string;
545
+ /**
546
+ * - 申请理由
547
+ */
548
+ message: string;
549
+ };
550
+ /**
551
+ * - 群申请
552
+ */
553
+ group_apply: {
554
+ /**
555
+ * - 群ID
556
+ */
557
+ group_id: string;
558
+ /**
559
+ * - 申请者uid
560
+ */
561
+ applier_uid: string;
562
+ /**
563
+ * - 申请者uin
564
+ */
565
+ applier_uin: string;
566
+ /**
567
+ * - 邀请者uid
568
+ */
569
+ inviter_uid: string;
570
+ /**
571
+ * - 邀请者uin
572
+ */
573
+ inviter_uin: string;
574
+ /**
575
+ * - 申请理由
576
+ */
577
+ reason: string;
578
+ };
579
+ /**
580
+ * - 邀请入群
581
+ */
582
+ invited_group: {
583
+ /**
584
+ * - 群ID
585
+ */
586
+ group_id: string;
587
+ /**
588
+ * - 邀请者uid
589
+ */
590
+ inviter_uid: string;
591
+ /**
592
+ * - 邀请者uin
593
+ */
594
+ inviter_uin: string;
595
+ };
596
+ }
597
+ /**
598
+ * - 请求事件泛型
599
+ */
600
+ export type RequestEvent<E extends keyof RequestType> = E extends keyof RequestType ? RequestType[E] : never;
601
+ /**
602
+ * - 转发、历史消息返回的结构
603
+ */
604
+ export interface PushMessageBody {
605
+ /**
606
+ * - 消息发送时间
607
+ */
608
+ time: number;
609
+ /**
610
+ * - 消息ID
611
+ */
612
+ message_id: string;
613
+ /**
614
+ * - 消息序列号
615
+ */
616
+ message_seq: number;
617
+ /**
618
+ * - 消息来源
619
+ */
620
+ contact: contact;
621
+ /**
622
+ * - 消息发送者
623
+ */
624
+ sender: Sender;
625
+ /**
626
+ * - 消息元素
627
+ */
628
+ elements: Array<KarinElement>;
629
+ }
630
+ /**
631
+ * - 精华消息返回的结构
632
+ */
633
+ export interface EssenceMessageBody {
634
+ /**
635
+ * - 群ID
636
+ */
637
+ group_id: string;
638
+ /**
639
+ * - 发送者uid
640
+ */
641
+ sender_uid: string;
642
+ /**
643
+ * - 发送者uin
644
+ */
645
+ sender_uin: string;
646
+ /**
647
+ * - 发送者昵称
648
+ */
649
+ sender_nick: string;
650
+ /**
651
+ * - 操作者uid
652
+ */
653
+ operator_uid: string;
654
+ /**
655
+ * - 操作者uin
656
+ */
657
+ operator_uin: string;
658
+ /**
659
+ * - 操作者昵称
660
+ */
661
+ operator_nick: string;
662
+ /**
663
+ * - 操作时间
664
+ */
665
+ operation_time: number;
666
+ /**
667
+ * - 消息时间
668
+ */
669
+ message_time: number;
670
+ /**
671
+ * - 消息ID
672
+ */
673
+ message_id: string;
674
+ /**
675
+ * - 消息序列号
676
+ */
677
+ message_seq: string;
678
+ /**
679
+ * - 被设置的精华消息元素文本
680
+ */
681
+ json_elements: string;
682
+ }
683
+ /**
684
+ * - QQ好友信息
685
+ */
686
+ export interface FriendInfo {
687
+ /**
688
+ * - 用户UID
689
+ */
690
+ uid: string;
691
+ /**
692
+ * - 用户UIN
693
+ */
694
+ uin: string;
695
+ /**
696
+ * - qid
697
+ */
698
+ qid: string;
699
+ /**
700
+ * - 名称
701
+ */
702
+ nick: string;
703
+ /**
704
+ * - 备注
705
+ */
706
+ remark?: string;
707
+ /**
708
+ * - 用户等级
709
+ */
710
+ level?: number;
711
+ /**
712
+ * - 生日
713
+ */
714
+ birthday?: string;
715
+ /**
716
+ * - 登录天数
717
+ */
718
+ login_day?: number;
719
+ /**
720
+ * - 点赞数
721
+ */
722
+ vote_cnt?: number;
723
+ /**
724
+ * - 学校是否已核实
725
+ */
726
+ is_school_verified?: boolean;
727
+ /**
728
+ * - 年龄
729
+ * - 拓展字段
730
+ */
731
+ age?: number;
732
+ /**
733
+ * - 性别
734
+ * - 拓展字段
735
+ */
736
+ sex?: 'male' | 'female' | 'unknown';
737
+ ext?: {
738
+ /**
739
+ * 大会员
740
+ */
741
+ big_vip?: boolean;
742
+ /**
743
+ * 好莱坞/腾讯视频会员
744
+ */
745
+ hollywood_vip?: boolean;
746
+ /**
747
+ * QQ会员
748
+ */
749
+ qq_vip?: boolean;
750
+ /**
751
+ * QQ超级会员
752
+ */
753
+ super_vip?: boolean;
754
+ /**
755
+ * 是否已经赞过
756
+ */
757
+ voted?: boolean;
758
+ };
759
+ }
760
+ /**
761
+ * - QQ群信息
762
+ */
763
+ export interface GroupInfo {
764
+ /**
765
+ * - 群ID
766
+ */
767
+ group_id: string;
768
+ /**
769
+ * - 群名称
770
+ */
771
+ group_name: string;
772
+ /**
773
+ * - 群备注
774
+ */
775
+ group_remark?: string;
776
+ /**
777
+ * - 群主UID
778
+ */
779
+ owner: string;
780
+ /**
781
+ * - 群管理员UID列表
782
+ */
783
+ admins: Array<string>;
784
+ /**
785
+ * - 最大成员数
786
+ */
787
+ max_member_count: number;
788
+ /**
789
+ * - 当前成员数
790
+ */
791
+ member_count: number;
792
+ /**
793
+ * - 群UIN
794
+ */
795
+ group_uin?: string;
796
+ }
797
+ /**
798
+ * - 群成员信息
799
+ */
800
+ export interface GroupMemberInfo {
801
+ /**
802
+ * - 用户UID
803
+ */
804
+ uid: string;
805
+ /**
806
+ * - 用户UIN
807
+ */
808
+ uin: string;
809
+ /**
810
+ * - 用户昵称
811
+ */
812
+ nick: string;
813
+ /**
814
+ * - 年龄
815
+ */
816
+ age: number;
817
+ /**
818
+ * - 群内头衔
819
+ */
820
+ unique_title: string;
821
+ /**
822
+ * - 群内头衔过期时间
823
+ */
824
+ unique_title_expire_time: number;
825
+ /**
826
+ * - 群名片
827
+ */
828
+ card?: string;
829
+ /**
830
+ * - 加群时间
831
+ */
832
+ join_time?: number;
833
+ /**
834
+ * - 最后活跃时间
835
+ */
836
+ last_active_time?: number;
837
+ /**
838
+ * - 用户等级
839
+ */
840
+ level: number;
841
+ /**
842
+ * - 禁言时间
843
+ */
844
+ shut_up_time: number;
845
+ /**
846
+ * - 距离
847
+ */
848
+ distance?: number;
849
+ /**
850
+ * - 荣誉列表
851
+ */
852
+ honors?: Array<number>;
853
+ /**
854
+ * - 是否好友
855
+ */
856
+ unfriendly?: boolean;
857
+ /**
858
+ * - 是否可修改群名片
859
+ */
860
+ card_changeable?: boolean;
861
+ }
862
+ /**
863
+ * 群荣誉信息
864
+ */
865
+ export interface GroupHonorInfo {
866
+ /**
867
+ * - 荣誉成员uid
868
+ */
869
+ uid: string;
870
+ /**
871
+ * - 荣誉成员uin
872
+ */
873
+ uin: string;
874
+ /**
875
+ * - 荣誉成员昵称
876
+ */
877
+ nick: string;
878
+ /**
879
+ * - 荣誉名称
880
+ */
881
+ honor_name: string;
882
+ /**
883
+ * - 荣誉图标url
884
+ */
885
+ avatar: string;
886
+ /**
887
+ * - 荣誉id
888
+ */
889
+ id: number;
890
+ /**
891
+ * - 荣誉描述
892
+ */
893
+ description: string;
894
+ }
895
+ /**
896
+ * - e
897
+ */
898
+ export type E = KarinMessage | KarinNotice | KarinRequest;