karin-plugin-kkk 2.36.2 → 2.37.1

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.
@@ -1,16 +1,7 @@
1
- /// <reference types="node" />
2
- import { A as RichTextDocument } from "./index-B2QgJ0_6.mjs";
1
+ import { o as RichTextDocument } from "./index-CZWy-8Jl.mjs";
3
2
  import { EventEmitter as EventEmitter$1 } from "node:events";
4
3
  import { AxiosRequestConfig, AxiosResponse } from "axios";
5
4
  import React$1 from "react";
6
- import { EventEmitter as EventEmitter$2 } from "events";
7
- import { Agent, ClientRequest, ClientRequestArgs, IncomingMessage, OutgoingHttpHeaders, Server } from "http";
8
- import { Server as Server$1 } from "https";
9
- import { createConnection } from "net";
10
- import { SecureContextOptions } from "tls";
11
- import { URL } from "url";
12
- import { ZlibOptions } from "zlib";
13
-
14
5
  //#region ../template/src/types/platforms/douyin/articleWork.d.ts
15
6
  /**
16
7
  * 文章图片信息
@@ -29,21 +20,37 @@ interface ArticleImage {
29
20
  * 抖音文章作品组件属性接口
30
21
  */
31
22
  interface DouyinArticleWorkProps extends BaseComponentProps<{
32
- /** 文章标题 */title: string; /** 文章Markdown内容 */
33
- markdown: string; /** 文章图片列表 */
34
- images: ArticleImage[]; /** 阅读时间(分钟) */
35
- read_time: number; /** 点赞数 */
36
- dianzan: string; /** 评论数 */
37
- pinglun: string; /** 收藏数 */
38
- shouchang: string; /** 分享数 */
39
- share: string; /** 创建时间 */
40
- create_time: string; /** 用户头像URL */
41
- avater_url: string; /** 用户名 */
42
- username: string; /** 抖音号 */
43
- 抖音号: string; /** 获赞数 */
44
- 获赞: string; /** 关注数 */
45
- 关注: string; /** 粉丝数 */
46
- 粉丝: string; /** 分享链接 */
23
+ /** 文章标题 */
24
+ title: string;
25
+ /** 文章Markdown内容 */
26
+ markdown: string;
27
+ /** 文章图片列表 */
28
+ images: ArticleImage[];
29
+ /** 阅读时间(分钟) */
30
+ read_time: number;
31
+ /** 点赞数 */
32
+ dianzan: string;
33
+ /** 评论数 */
34
+ pinglun: string;
35
+ /** 收藏数 */
36
+ shouchang: string;
37
+ /** 分享数 */
38
+ share: string;
39
+ /** 创建时间 */
40
+ create_time: string;
41
+ /** 用户头像URL */
42
+ avater_url: string;
43
+ /** 用户名 */
44
+ username: string;
45
+ /** 抖音号 */
46
+ 抖音号: string;
47
+ /** 获赞数 */
48
+ 获赞: string;
49
+ /** 关注数 */
50
+ 关注: string;
51
+ /** 粉丝数 */
52
+ 粉丝: string;
53
+ /** 分享链接 */
47
54
  share_url: string;
48
55
  }> {}
49
56
  //#endregion
@@ -52,46 +59,80 @@ interface DouyinArticleWorkProps extends BaseComponentProps<{
52
59
  * 抖音评论组件属性接口
53
60
  */
54
61
  interface DouyinCommentProps extends BaseComponentProps<{
55
- /** 作品类型:视频/图集/合辑/文章 */Type: '视频' | '图集' | '合辑' | '文章'; /** 评论数量 */
56
- CommentLength: number; /** 视频大小(MB) */
57
- VideoSize?: string; /** 视频帧率(Hz) */
58
- VideoFPS?: number; /** 图片数量 */
59
- ImageLength?: number; /** 区域 */
60
- Region: string; /** 相关搜索(大家都在搜) */
61
- suggestWrod: string[]; /** 视频分辨率 */
62
- Resolution: string | null; /** 分享链接 */
63
- share_url: string; /** 作者昵称 */
64
- Author: string; /** 作者头像 */
65
- AuthorAvatar: string; /** 作品统计 */
62
+ /** 作品类型:视频/图集/合辑/文章 */
63
+ Type: '视频' | '图集' | '合辑' | '文章';
64
+ /** 评论数量 */
65
+ CommentLength: number;
66
+ /** 视频大小(MB) */
67
+ VideoSize?: string;
68
+ /** 视频帧率(Hz) */
69
+ VideoFPS?: number;
70
+ /** 图片数量 */
71
+ ImageLength?: number;
72
+ /** 区域 */
73
+ Region: string;
74
+ /** 相关搜索(大家都在搜) */
75
+ suggestWrod: string[];
76
+ /** 视频分辨率 */
77
+ Resolution: string | null;
78
+ /** 分享链接 */
79
+ share_url: string;
80
+ /** 作者昵称 */
81
+ Author: string;
82
+ /** 作者头像 */
83
+ AuthorAvatar: string;
84
+ /** 作品统计 */
66
85
  Statistics: {
67
86
  digg_count: number;
68
87
  comment_count: number;
69
88
  share_count: number;
70
89
  collect_count: number;
71
- }; /** 发布时间戳(秒) */
72
- CreateTime: number; /** 评论数据列表 */
90
+ };
91
+ /** 发布时间戳(秒) */
92
+ CreateTime: number;
93
+ /** 评论数据列表 */
73
94
  CommentsData: Array<{
74
- /** 评论ID */id?: number; /** 评论CID */
75
- cid?: string; /** 作品ID */
76
- aweme_id?: string; /** 用户头像URL */
77
- userimageurl: string; /** 用户昵称 */
78
- nickname: string; /** 标签类型 (1=作者) */
79
- label_type?: number; /** 状态标签 */
80
- status_label?: string; /** 评论内容 */
81
- text: RichTextDocument; /** 评论图片 */
82
- commentimage?: string; /** 贴纸 */
83
- sticker?: string; /** 创建时间戳(秒) */
84
- create_time: number; /** IP标签 */
85
- ip_label: string; /** 点赞数 */
86
- digg_count: number; /** 搜索文本 */
95
+ /** 评论ID */
96
+ id?: number;
97
+ /** 评论CID */
98
+ cid?: string;
99
+ /** 作品ID */
100
+ aweme_id?: string;
101
+ /** 用户头像URL */
102
+ userimageurl: string;
103
+ /** 用户昵称 */
104
+ nickname: string;
105
+ /** 标签类型 (1=作者) */
106
+ label_type?: number;
107
+ /** 状态标签 */
108
+ status_label?: string;
109
+ /** 评论内容 */
110
+ text: RichTextDocument;
111
+ /** 评论图片 */
112
+ commentimage?: string;
113
+ /** 贴纸 */
114
+ sticker?: string;
115
+ /** 创建时间戳(秒) */
116
+ create_time: number;
117
+ /** IP标签 */
118
+ ip_label: string;
119
+ /** 点赞数 */
120
+ digg_count: number;
121
+ /** 搜索文本 */
87
122
  search_text?: Array<{
88
- /** 搜索文本内容 */search_text: string; /** 搜索查询ID */
123
+ /** 搜索文本内容 */
124
+ search_text: string;
125
+ /** 搜索查询ID */
89
126
  search_query_id: string;
90
- }> | null; /** 是否@用户ID */
91
- is_At_user_id?: any; /** 回复评论数据 */
92
- replyComment?: DouyinSubComment[]; /** 作者是否点赞 */
127
+ }> | null;
128
+ /** 是否@用户ID */
129
+ is_At_user_id?: any;
130
+ /** 回复评论数据 */
131
+ replyComment?: DouyinSubComment[];
132
+ /** 作者是否点赞 */
93
133
  is_author_digged?: boolean;
94
- }>; /** 最大嵌套层级 */
134
+ }>;
135
+ /** 最大嵌套层级 */
95
136
  maxDepth?: number;
96
137
  }> {}
97
138
  /**
@@ -129,21 +170,37 @@ interface DouyinSubComment {
129
170
  * 抖音动态组件属性接口
130
171
  */
131
172
  interface DouyinDynamicProps extends BaseComponentProps<{
132
- /** 图片URL */image_url: string; /** 描述内容 */
133
- desc: string; /** 点赞数 */
134
- dianzan: string; /** 评论数 */
135
- pinglun: string; /** 收藏数 */
136
- shouchang: string; /** 分享数 */
137
- share: string; /** 创建时间 */
138
- create_time: string; /** 用户头像URL */
139
- avater_url: string; /** 用户名 */
140
- username: string; /** 抖音号 */
141
- 抖音号: string; /** 获赞数 */
142
- 获赞: string; /** 关注数 */
143
- 关注: string; /** 粉丝数 */
144
- 粉丝: string; /** 分享链接 */
145
- share_url: string; /** 动态类型 */
146
- dynamicTYPE?: string; /** 合作信息 */
173
+ /** 图片URL */
174
+ image_url: string;
175
+ /** 描述内容 */
176
+ desc: string;
177
+ /** 点赞数 */
178
+ dianzan: string;
179
+ /** 评论数 */
180
+ pinglun: string;
181
+ /** 收藏数 */
182
+ shouchang: string;
183
+ /** 分享数 */
184
+ share: string;
185
+ /** 创建时间 */
186
+ create_time: string;
187
+ /** 用户头像URL */
188
+ avater_url: string;
189
+ /** 用户名 */
190
+ username: string;
191
+ /** 抖音号 */
192
+ 抖音号: string;
193
+ /** 获赞数 */
194
+ 获赞: string;
195
+ /** 关注数 */
196
+ 关注: string;
197
+ /** 粉丝数 */
198
+ 粉丝: string;
199
+ /** 分享链接 */
200
+ share_url: string;
201
+ /** 动态类型 */
202
+ dynamicTYPE?: string;
203
+ /** 合作信息 */
147
204
  cooperation_info?: {
148
205
  co_creator_nums: number;
149
206
  co_creators: Array<{
@@ -160,20 +217,35 @@ interface DouyinDynamicProps extends BaseComponentProps<{
160
217
  * 用于展示"谁喜欢了谁的作品"
161
218
  */
162
219
  interface DouyinFavoriteListProps extends BaseComponentProps<{
163
- /** 作品封面图片URL */image_url: string; /** 作品描述内容 */
164
- desc: string; /** 点赞数 */
165
- dianzan: string; /** 评论数 */
166
- pinglun: string; /** 收藏数 */
167
- shouchang: string; /** 分享数 */
168
- share: string; /** 推荐数 */
169
- tuijian: string; /** 作品创建时间 */
170
- create_time: string; /** 点赞者(订阅者)用户名 */
171
- liker_username: string; /** 点赞者头像URL */
172
- liker_avatar: string; /** 点赞者抖音号 */
173
- liker_douyin_id: string; /** 作品作者用户名 */
174
- author_username: string; /** 作品作者头像URL */
175
- author_avatar: string; /** 作品作者抖音号 */
176
- author_douyin_id: string; /** 分享链接 */
220
+ /** 作品封面图片URL */
221
+ image_url: string;
222
+ /** 作品描述内容 */
223
+ desc: string;
224
+ /** 点赞数 */
225
+ dianzan: string;
226
+ /** 评论数 */
227
+ pinglun: string;
228
+ /** 收藏数 */
229
+ shouchang: string;
230
+ /** 分享数 */
231
+ share: string;
232
+ /** 推荐数 */
233
+ tuijian: string;
234
+ /** 作品创建时间 */
235
+ create_time: string;
236
+ /** 点赞者(订阅者)用户名 */
237
+ liker_username: string;
238
+ /** 点赞者头像URL */
239
+ liker_avatar: string;
240
+ /** 点赞者抖音号 */
241
+ liker_douyin_id: string;
242
+ /** 作品作者用户名 */
243
+ author_username: string;
244
+ /** 作品作者头像URL */
245
+ author_avatar: string;
246
+ /** 作品作者抖音号 */
247
+ author_douyin_id: string;
248
+ /** 分享链接 */
177
249
  share_url: string;
178
250
  }> {}
179
251
  //#endregion
@@ -184,38 +256,65 @@ type DouyinImageMediaType = 'static' | 'live' | 'clip';
184
256
  * 抖音图文作品组件属性接口
185
257
  */
186
258
  interface DouyinImageWorkProps extends BaseComponentProps<{
187
- /** 图文图片列表(首项为封面,后续最多 2 张预览图) */image_list: {
188
- /** 图片列表,按原始顺序排列 */images: Array<{
189
- /** 图片 URL */url: string; /** 媒体类型 */
259
+ /** 图文图片列表(首项为封面;组件从索引 1 起最多展示 3 张预览图) */
260
+ image_list: {
261
+ /** 图片列表,按原始顺序排列 */
262
+ images: Array<{
263
+ /** 图片 URL */
264
+ url: string;
265
+ /** 媒体类型 */
190
266
  media_type: DouyinImageMediaType;
191
- }>; /** 作品总图片数(包含封面) */
267
+ }>;
268
+ /** 作品总图片数(包含封面) */
192
269
  total_count: number;
193
- }; /** 标题(从描述中按首个句号拆分,含有效 @ 用户与 topic 节点) */
194
- title?: RichTextDocument; /** 描述内容(去除标题后的正文,含有效 @ 用户、topic/lineBreak 节点) */
195
- desc: RichTextDocument; /** IP 属地 */
196
- ip_location?: string; /** 热点搜索词 */
270
+ };
271
+ /** 标题(从描述中按首个句号拆分,含有效 @ 用户与 topic 节点) */
272
+ title?: RichTextDocument;
273
+ /** 描述内容(去除标题后的正文,含有效 @ 用户、topic/lineBreak 节点) */
274
+ desc: RichTextDocument;
275
+ /** IP 属地 */
276
+ ip_location?: string;
277
+ /** 热点搜索词 */
197
278
  suggest_word?: {
198
279
  hint_text: string;
199
280
  word: string;
200
- }; /** 背景音乐信息 */
281
+ };
282
+ /** 背景音乐信息 */
201
283
  music?: {
202
- /** 音乐作者 */author: string; /** 音乐标题 */
203
- title: string; /** 音乐封面 URL */
284
+ /** 音乐作者 */
285
+ author: string;
286
+ /** 音乐标题 */
287
+ title: string;
288
+ /** 音乐封面 URL */
204
289
  cover?: string;
205
- }; /** 点赞数 */
206
- dianzan: string; /** 评论数 */
207
- pinglun: string; /** 收藏数 */
208
- shouchang: string; /** 分享数 */
209
- share: string; /** 创建时间(Unix 时间戳,秒) */
210
- create_time: number; /** 用户头像URL */
211
- avater_url: string; /** 用户名 */
212
- username: string; /** 抖音号 */
213
- 抖音号: string; /** 获赞数 */
214
- 获赞: string; /** 关注数 */
215
- 关注: string; /** 粉丝数 */
216
- 粉丝: string; /** 分享链接 */
217
- share_url: string; /** 动态类型 */
218
- dynamicTYPE?: string; /** 合作信息 */
290
+ };
291
+ /** 点赞数 */
292
+ dianzan: string;
293
+ /** 评论数 */
294
+ pinglun: string;
295
+ /** 收藏数 */
296
+ shouchang: string;
297
+ /** 分享数 */
298
+ share: string;
299
+ /** 创建时间(Unix 时间戳,秒) */
300
+ create_time: number;
301
+ /** 用户头像URL */
302
+ avater_url: string;
303
+ /** 用户名 */
304
+ username: string;
305
+ /** 抖音号 */
306
+ 抖音号: string;
307
+ /** 获赞数 */
308
+ 获赞: string;
309
+ /** 关注数 */
310
+ 关注: string;
311
+ /** 粉丝数 */
312
+ 粉丝: string;
313
+ /** 分享链接 */
314
+ share_url: string;
315
+ /** 动态类型 */
316
+ dynamicTYPE?: string;
317
+ /** 合作信息 */
219
318
  cooperation_info?: {
220
319
  co_creator_nums: number;
221
320
  co_creators: Array<{
@@ -231,25 +330,45 @@ interface DouyinImageWorkProps extends BaseComponentProps<{
231
330
  * 抖音直播组件属性接口
232
331
  */
233
332
  interface DouyinLiveProps extends BaseComponentProps<{
234
- /** 直播封面图片URL */image_url: string; /** 直播标题/描述 */
235
- text: string; /** 直播分区标题 */
236
- partition_title: string; /** 房间号 */
237
- room_id: string; /** 总观看次数 */
238
- total_viewers: string; /** 在线观众数 */
239
- online_viewers: string; /** 用户头像URL */
240
- avater_url: string; /** 用户名 */
241
- username: string; /** 粉丝数 */
242
- fans: string; /** 动态类型 */
243
- dynamicTYPE: string; /** 分享链接 */
244
- share_url: string; /** 点赞数 */
245
- like_count: string; /** 在线人数文本 */
246
- user_count_str: string; /** 直播分辨率 */
247
- resolution: string; /** 主播签名 */
248
- signature: string; /** 城市 */
249
- city: string; /** 作品数 */
250
- aweme_count: string; /** 关注数 */
251
- following_count: string; /** 获赞数 */
252
- total_favorited: string; /** 是否有商品 */
333
+ /** 直播封面图片URL */
334
+ image_url: string;
335
+ /** 直播标题/描述 */
336
+ text: string;
337
+ /** 直播分区标题 */
338
+ partition_title: string;
339
+ /** 房间号 */
340
+ room_id: string;
341
+ /** 总观看次数 */
342
+ total_viewers: string;
343
+ /** 在线观众数 */
344
+ online_viewers: string;
345
+ /** 用户头像URL */
346
+ avater_url: string;
347
+ /** 用户名 */
348
+ username: string;
349
+ /** 粉丝数 */
350
+ fans: string;
351
+ /** 动态类型 */
352
+ dynamicTYPE: string;
353
+ /** 分享链接 */
354
+ share_url: string;
355
+ /** 点赞数 */
356
+ like_count: string;
357
+ /** 在线人数文本 */
358
+ user_count_str: string;
359
+ /** 直播分辨率 */
360
+ resolution: string;
361
+ /** 主播签名 */
362
+ signature: string;
363
+ /** 城市 */
364
+ city: string;
365
+ /** 作品数 */
366
+ aweme_count: string;
367
+ /** 关注数 */
368
+ following_count: string;
369
+ /** 获赞数 */
370
+ total_favorited: string;
371
+ /** 是否有商品 */
253
372
  has_commerce_goods: boolean;
254
373
  }> {}
255
374
  //#endregion
@@ -258,17 +377,29 @@ interface DouyinLiveProps extends BaseComponentProps<{
258
377
  * 抖音音乐信息组件属性接口
259
378
  */
260
379
  interface DouyinMusicInfoProps extends BaseComponentProps<{
261
- /** 音乐封面图片URL */image_url: string; /** 音乐描述/标题 */
262
- desc: string; /** 音乐ID */
263
- music_id: string; /** 创建时间 */
264
- create_time: string; /** 使用该音乐的用户数量 */
265
- user_count: string; /** 用户头像URL */
266
- avater_url: string; /** 用户名 */
267
- username: string; /** 用户短ID */
268
- user_shortid: string; /** 获赞数 */
269
- total_favorited: number; /** 关注数 */
270
- following_count: number; /** 粉丝数 */
271
- fans: number; /** 分享链接 */
380
+ /** 音乐封面图片URL */
381
+ image_url: string;
382
+ /** 音乐描述/标题 */
383
+ desc: string;
384
+ /** 音乐ID */
385
+ music_id: string;
386
+ /** 创建时间 */
387
+ create_time: string;
388
+ /** 使用该音乐的用户数量 */
389
+ user_count: string;
390
+ /** 用户头像URL */
391
+ avater_url: string;
392
+ /** 用户名 */
393
+ username: string;
394
+ /** 用户短ID */
395
+ user_shortid: string;
396
+ /** 获赞数 */
397
+ total_favorited: number;
398
+ /** 关注数 */
399
+ following_count: number;
400
+ /** 粉丝数 */
401
+ fans: number;
402
+ /** 分享链接 */
272
403
  share_url: string;
273
404
  }> {}
274
405
  //#endregion
@@ -277,20 +408,35 @@ interface DouyinMusicInfoProps extends BaseComponentProps<{
277
408
  * 抖音推荐列表组件属性接口
278
409
  */
279
410
  interface DouyinRecommendListProps extends BaseComponentProps<{
280
- /** 图片URL */image_url: string; /** 描述内容 */
281
- desc: string; /** 点赞数 */
282
- dianzan: string; /** 评论数 */
283
- pinglun: string; /** 收藏数 */
284
- shouchang: string; /** 推荐数 */
285
- tuijian: string; /** 分享数 */
286
- share: string; /** 创建时间 */
287
- create_time: string; /** 推荐者(订阅者)用户名 */
288
- recommender_username: string; /** 推荐者头像URL */
289
- recommender_avatar: string; /** 推荐者抖音号 */
290
- recommender_douyin_id: string; /** 作品作者用户名 */
291
- author_username: string; /** 作品作者头像URL */
292
- author_avatar: string; /** 作品作者抖音号 */
293
- author_douyin_id: string; /** 分享链接 */
411
+ /** 图片URL */
412
+ image_url: string;
413
+ /** 描述内容 */
414
+ desc: string;
415
+ /** 点赞数 */
416
+ dianzan: string;
417
+ /** 评论数 */
418
+ pinglun: string;
419
+ /** 收藏数 */
420
+ shouchang: string;
421
+ /** 推荐数 */
422
+ tuijian: string;
423
+ /** 分享数 */
424
+ share: string;
425
+ /** 创建时间 */
426
+ create_time: string;
427
+ /** 推荐者(订阅者)用户名 */
428
+ recommender_username: string;
429
+ /** 推荐者头像URL */
430
+ recommender_avatar: string;
431
+ /** 推荐者抖音号 */
432
+ recommender_douyin_id: string;
433
+ /** 作品作者用户名 */
434
+ author_username: string;
435
+ /** 作品作者头像URL */
436
+ author_avatar: string;
437
+ /** 作品作者抖音号 */
438
+ author_douyin_id: string;
439
+ /** 分享链接 */
294
440
  share_url: string;
295
441
  }> {}
296
442
  //#endregion
@@ -299,19 +445,32 @@ interface DouyinRecommendListProps extends BaseComponentProps<{
299
445
  * 抖音用户列表组件属性接口
300
446
  */
301
447
  interface DouyinUserListProps extends BaseComponentProps<{
302
- /** 群组信息 */groupInfo: {
303
- /** 群号 */groupId: string; /** 群名称 */
304
- groupName: string; /** 群头像 */
448
+ /** 群组信息 */
449
+ groupInfo: {
450
+ /** 群号 */
451
+ groupId: string;
452
+ /** 群名称 */
453
+ groupName: string;
454
+ /** 群头像 */
305
455
  groupAvatar: string;
306
- }; /** 用户列表数据 */
456
+ };
457
+ /** 用户列表数据 */
307
458
  renderOpt: {
308
- /** 用户头像图片URL */avatar_img: string; /** 用户名 */
309
- username: string; /** 抖音短ID */
310
- short_id: string; /** 粉丝数 */
311
- fans: string; /** 获赞总数 */
312
- total_favorited: string; /** 关注数 */
313
- following_count: string; /** 全局推送开关状态 */
314
- switch: boolean; /** 推送类型列表 */
459
+ /** 用户头像图片URL */
460
+ avatar_img: string;
461
+ /** 用户名 */
462
+ username: string;
463
+ /** 抖音短ID */
464
+ short_id: string;
465
+ /** 粉丝数 */
466
+ fans: string;
467
+ /** 获赞总数 */
468
+ total_favorited: string;
469
+ /** 关注数 */
470
+ following_count: string;
471
+ /** 全局推送开关状态 */
472
+ switch: boolean;
473
+ /** 推送类型列表 */
315
474
  pushTypes: string[];
316
475
  }[];
317
476
  }> {}
@@ -321,174 +480,130 @@ interface DouyinUserListProps extends BaseComponentProps<{
321
480
  * 用户视频列表页面的数据类型定义
322
481
  */
323
482
  type VideoListItem = {
324
- /** 视频ID */aweme_id: string; /** 视频索引 */
325
- index?: number; /** 是否置顶 */
326
- is_top: boolean; /** 视频标题/描述 */
327
- title: string; /** 视频封面URL */
328
- cover: string; /** 视频时长(秒) */
329
- duration: number; /** 创建时间戳 */
330
- create_time: number; /** 统计数据 */
483
+ /** 视频ID */
484
+ aweme_id: string;
485
+ /** 视频索引 */
486
+ index?: number;
487
+ /** 是否置顶 */
488
+ is_top: boolean;
489
+ /** 视频标题/描述 */
490
+ title: string;
491
+ /** 视频封面URL */
492
+ cover: string;
493
+ /** 视频时长(秒) */
494
+ duration: number;
495
+ /** 创建时间戳 */
496
+ create_time: number;
497
+ /** 统计数据 */
331
498
  statistics: {
332
- /** 点赞数 */like_count: number; /** 评论数 */
333
- comment_count: number; /** 分享数 */
334
- share_count: number; /** 收藏数 */
499
+ /** 点赞数 */
500
+ like_count: number;
501
+ /** 评论数 */
502
+ comment_count: number;
503
+ /** 分享数 */
504
+ share_count: number;
505
+ /** 收藏数 */
335
506
  collect_count: number;
336
- }; /** 是否为视频(true)还是图集(false) */
337
- is_video: boolean; /** 背景音乐信息 */
507
+ };
508
+ /** 是否为视频(true)还是图集(false) */
509
+ is_video: boolean;
510
+ /** 背景音乐信息 */
338
511
  music?: {
339
- /** 音乐标题 */title: string; /** 音乐作者 */
512
+ /** 音乐标题 */
513
+ title: string;
514
+ /** 音乐作者 */
340
515
  author: string;
341
516
  };
342
517
  };
343
518
  type UserVideoListData = {
344
- /** 用户基本信息 */user: {
345
- /** 头像图片(可能为 null) */head_image: string | null; /** 用户昵称 */
346
- nickname: string; /** 抖音号 */
347
- short_id: string; /** 头像URL */
348
- avatar: string; /** 用户签名/简介 */
349
- signature: string; /** 粉丝数 */
350
- follower_count: number; /** 关注数 */
351
- following_count: number; /** 获赞总数 */
352
- total_favorited: number; /** 是否认证 */
353
- verified: boolean; /** IP属地 */
519
+ /** 用户基本信息 */
520
+ user: {
521
+ /** 头像图片(可能为 null) */
522
+ head_image: string | null;
523
+ /** 用户昵称 */
524
+ nickname: string;
525
+ /** 抖音号 */
526
+ short_id: string;
527
+ /** 头像URL */
528
+ avatar: string;
529
+ /** 用户签名/简介 */
530
+ signature: string;
531
+ /** 粉丝数 */
532
+ follower_count: number;
533
+ /** 关注数 */
534
+ following_count: number;
535
+ /** 获赞总数 */
536
+ total_favorited: number;
537
+ /** 是否认证 */
538
+ verified: boolean;
539
+ /** IP属地 */
354
540
  ip_location: string;
355
- }; /** 视频列表 */
356
- videos: Array<VideoListItem>; /** 超时秒数 */
541
+ };
542
+ /** 视频列表 */
543
+ videos: Array<VideoListItem>;
544
+ /** 超时秒数 */
357
545
  timeoutSeconds?: number;
358
546
  };
359
547
  interface DouyinUserVideoListProps {
360
548
  data: UserVideoListData;
361
549
  }
362
550
  //#endregion
363
- //#region ../template/src/types/platforms/douyin/videoInfo.d.ts
364
- /**
365
- * 抖音视频统计信息接口
366
- */
367
- interface DouyinVideoStatistics {
368
- /** 点赞数 */
369
- admire_count: number;
370
- /** 视频ID */
371
- aweme_id: string;
372
- /** 收藏数 */
373
- collect_count: number;
374
- /** 评论数 */
375
- comment_count: number;
376
- /** 点赞数 */
377
- digg_count: number;
378
- /** 播放数 */
379
- play_count: number;
380
- /** 推荐数 */
381
- recommend_count?: number;
382
- /** 分享数 */
383
- share_count: number;
384
- }
385
- /**
386
- * 抖音作者信息接口
387
- */
388
- interface DouyinAuthor {
389
- /** 作者名称 */
390
- name: string;
391
- /** 作者头像URL */
392
- avatar: string;
393
- /** 抖音号 */
394
- short_id: string;
395
- }
396
- /**
397
- * 抖音用户主页扩展信息接口
398
- */
399
- interface DouyinUserProfile {
400
- /** IP属地 */
401
- ip_location: string;
402
- /** 粉丝数 */
403
- follower_count: number;
404
- /** 获赞数 */
405
- total_favorited: number;
406
- /** 作品数 */
407
- aweme_count: number;
408
- /** 性别 1:男 2:女 0:未知 */
409
- gender: number;
410
- /** 年龄 */
411
- user_age: number;
412
- }
413
- /**
414
- * 抖音视频信息数据接口
415
- */
416
- interface DouyinVideoInfoData {
417
- /** 视频描述 */
418
- desc: string;
419
- /** 统计信息 */
420
- statistics: DouyinVideoStatistics;
421
- /** 视频ID */
422
- aweme_id: string;
423
- /** 作者信息 */
424
- author: DouyinAuthor;
425
- /** 用户主页扩展信息 */
426
- user_profile?: DouyinUserProfile;
427
- /** 视频封面图片URL */
428
- image_url: string;
429
- /** 封面图片尺寸 */
430
- cover_size?: {
431
- width: number;
432
- height: number;
433
- };
434
- /** 创建时间戳 */
435
- create_time: number;
436
- /** 音乐信息 */
437
- music?: {
438
- author: string;
439
- title: string;
440
- cover: string;
441
- };
442
- /** 视频原始信息 */
443
- video?: {
444
- duration: number;
445
- width: number;
446
- height: number;
447
- ratio: string;
448
- };
449
- /** 是否使用深色主题 */
450
- useDarkTheme?: boolean;
451
- }
452
- /**
453
- * 抖音视频信息组件属性接口
454
- */
455
- interface DouyinVideoInfoProps {
456
- /** 视频数据 */
457
- data: DouyinVideoInfoData;
458
- }
459
- //#endregion
460
551
  //#region ../template/src/types/platforms/douyin/videoWork.d.ts
461
552
  /**
462
553
  * 抖音视频作品组件属性接口
463
554
  */
464
555
  interface DouyinVideoWorkProps extends BaseComponentProps<{
465
- /** 视频封面URL */image_url: string; /** 标题(视频作品主文案,含有效 @ 用户与 topic 节点) */
466
- title?: RichTextDocument; /** 描述内容(视频作品通常为空文档) */
467
- desc: RichTextDocument; /** IP 属地 */
468
- ip_location?: string; /** 热点搜索词 */
556
+ /** 视频封面URL */
557
+ image_url: string;
558
+ /** 标题(视频作品主文案,含有效 @ 用户与 topic 节点) */
559
+ title?: RichTextDocument;
560
+ /** 描述内容(视频作品通常为空文档) */
561
+ desc: RichTextDocument;
562
+ /** IP 属地 */
563
+ ip_location?: string;
564
+ /** 热点搜索词 */
469
565
  suggest_word?: {
470
566
  hint_text: string;
471
567
  word: string;
472
- }; /** 背景音乐信息 */
568
+ };
569
+ /** 背景音乐信息 */
473
570
  music?: {
474
- /** 音乐作者 */author: string; /** 音乐标题 */
475
- title: string; /** 音乐封面 URL */
571
+ /** 音乐作者 */
572
+ author: string;
573
+ /** 音乐标题 */
574
+ title: string;
575
+ /** 音乐封面 URL */
476
576
  cover?: string;
477
- }; /** 视频时长(毫秒) */
478
- duration?: number; /** 点赞数 */
479
- dianzan: string; /** 评论数 */
480
- pinglun: string; /** 收藏数 */
481
- shouchang: string; /** 分享数 */
482
- share: string; /** 创建时间(Unix 时间戳,秒) */
483
- create_time: number; /** 用户头像URL */
484
- avater_url: string; /** 用户名 */
485
- username: string; /** 抖音号 */
486
- 抖音号: string; /** 获赞数 */
487
- 获赞: string; /** 关注数 */
488
- 关注: string; /** 粉丝数 */
489
- 粉丝: string; /** 分享链接 */
490
- share_url: string; /** 动态类型 */
491
- dynamicTYPE?: string; /** 合作信息 */
577
+ };
578
+ /** 视频时长(毫秒) */
579
+ duration?: number;
580
+ /** 点赞数 */
581
+ dianzan: string;
582
+ /** 评论数 */
583
+ pinglun: string;
584
+ /** 收藏数 */
585
+ shouchang: string;
586
+ /** 分享数 */
587
+ share: string;
588
+ /** 创建时间(Unix 时间戳,秒) */
589
+ create_time: number;
590
+ /** 用户头像URL */
591
+ avater_url: string;
592
+ /** 用户名 */
593
+ username: string;
594
+ /** 抖音号 */
595
+ 抖音号: string;
596
+ /** 获赞数 */
597
+ 获赞: string;
598
+ /** 关注数 */
599
+ 关注: string;
600
+ /** 粉丝数 */
601
+ 粉丝: string;
602
+ /** 分享链接 */
603
+ share_url: string;
604
+ /** 动态类型 */
605
+ dynamicTYPE?: string;
606
+ /** 合作信息 */
492
607
  cooperation_info?: {
493
608
  co_creator_nums: number;
494
609
  co_creators: Array<{
@@ -503,7 +618,8 @@ interface DouyinVideoWorkProps extends BaseComponentProps<{
503
618
  //#region ../template/src/types/platforms/douyin/index.d.ts
504
619
  /** 抖音二维码登录组件属性 */
505
620
  interface DouyinQrcodeImgProps extends BaseComponentProps<{
506
- /** 分享链接(用于生成自定义二维码) */share_url?: string;
621
+ /** 分享链接(用于生成自定义二维码) */
622
+ share_url?: string;
507
623
  }> {
508
624
  /** 是否使用深色主题 */
509
625
  useDarkTheme?: boolean;
@@ -678,14 +794,23 @@ interface BilibiliBangumiProps extends BaseComponentProps<BangumiBilibiliData> {
678
794
  * B站评论组件属性接口
679
795
  */
680
796
  interface BilibiliCommentProps extends BaseComponentProps<{
681
- /** 作品类型:视频/图集/动态 */Type: '视频' | '动态'; /** 评论数量 */
682
- CommentLength: string; /** 视频大小(MB) */
683
- VideoSize?: string; /** 视频画质 */
684
- Clarity?: string; /** 图片数量 */
685
- ImageLength?: number; /** 分享链接 */
686
- shareurl: string; /** 分享URL */
687
- share_url: string; /** 视频分辨率 */
688
- Resolution: string | null; /** 评论数据 */
797
+ /** 作品类型:视频/图集/动态 */
798
+ Type: '视频' | '动态';
799
+ /** 评论数量 */
800
+ CommentLength: string;
801
+ /** 视频大小(MB) */
802
+ VideoSize?: string;
803
+ /** 视频画质 */
804
+ Clarity?: string;
805
+ /** 图片数量 */
806
+ ImageLength?: number;
807
+ /** 分享链接 */
808
+ shareurl: string;
809
+ /** 分享URL */
810
+ share_url: string;
811
+ /** 视频分辨率 */
812
+ Resolution: string | null;
813
+ /** 评论数据 */
689
814
  CommentsData: CommentItem[];
690
815
  }> {}
691
816
  /**
@@ -885,12 +1010,17 @@ interface BilibiliDynamicBaseData {
885
1010
  * B站普通动态组件属性接口
886
1011
  */
887
1012
  interface BilibiliDynamicProps extends BaseComponentProps<BilibiliDynamicBaseData & {
888
- /** 图文动态标题 */title?: string; /** 动态文本内容(富文本文档) */
889
- text: RichTextDocument | null; /** 图片URL数组 */
1013
+ /** 图文动态标题 */
1014
+ title?: string;
1015
+ /** 动态文本内容(富文本文档) */
1016
+ text: RichTextDocument | null;
1017
+ /** 图片URL数组 */
890
1018
  image_url: Array<{
891
1019
  image_src: string;
892
- }>; /** 图片布局方式 */
893
- imageLayout: string; /** 相关内容卡片 */
1020
+ }>;
1021
+ /** 图片布局方式 */
1022
+ imageLayout: string;
1023
+ /** 相关内容卡片 */
894
1024
  additional?: BilibiliAdditionalData;
895
1025
  }> {}
896
1026
  /**
@@ -972,7 +1102,9 @@ interface BilibiliAdditionalData {
972
1102
  * B站纯文动态组件属性接口
973
1103
  */
974
1104
  interface BilibiliWordDynamicProps extends BaseComponentProps<BilibiliDynamicBaseData & {
975
- /** 动态文本内容(富文本文档) */text: RichTextDocument | null; /** 相关内容卡片 */
1105
+ /** 动态文本内容(富文本文档) */
1106
+ text: RichTextDocument | null;
1107
+ /** 相关内容卡片 */
976
1108
  additional?: BilibiliAdditionalData;
977
1109
  }> {}
978
1110
  //#endregion
@@ -981,36 +1113,62 @@ interface BilibiliWordDynamicProps extends BaseComponentProps<BilibiliDynamicBas
981
1113
  * B站专栏动态组件属性接口
982
1114
  */
983
1115
  interface BilibiliArticleDynamicProps extends BaseComponentProps<{
984
- /** 用户头像URL */avatar_url: string; /** 头像框 */
985
- frame?: string; /** 用户名元数据 */
986
- usernameMeta: UsernameMetadata; /** 动态创建时间 */
987
- create_time: string; /** 装饰卡片 */
988
- decoration_card?: DecorationCardData; /** 专栏标题 */
989
- title: string; /** 专栏摘要 */
990
- summary: string; /** 专栏封面图片URL */
991
- banner_url?: string; /** 专栏分类 */
1116
+ /** 用户头像URL */
1117
+ avatar_url: string;
1118
+ /** 头像框 */
1119
+ frame?: string;
1120
+ /** 用户名元数据 */
1121
+ usernameMeta: UsernameMetadata;
1122
+ /** 动态创建时间 */
1123
+ create_time: string;
1124
+ /** 装饰卡片 */
1125
+ decoration_card?: DecorationCardData;
1126
+ /** 专栏标题 */
1127
+ title: string;
1128
+ /** 专栏摘要 */
1129
+ summary: string;
1130
+ /** 专栏封面图片URL */
1131
+ banner_url?: string;
1132
+ /** 专栏分类 */
992
1133
  categories: Array<{
993
1134
  id: number;
994
1135
  name: string;
995
1136
  parent_id: number;
996
- }>; /** 专栏字数 */
997
- words: number; /** 专栏统计数据 */
1137
+ }>;
1138
+ /** 专栏字数 */
1139
+ words: number;
1140
+ /** 专栏统计数据 */
998
1141
  stats: {
999
- /** 阅读数 */view: number; /** 点赞数 */
1000
- like: number; /** 收藏数 */
1001
- favorite: number; /** 评论数 */
1002
- reply: number; /** 分享数 */
1003
- share: number; /** 投币数 */
1004
- coin: number; /** 转发动态 */
1142
+ /** 阅读数 */
1143
+ view: number;
1144
+ /** 点赞数 */
1145
+ like: number;
1146
+ /** 收藏数 */
1147
+ favorite: number;
1148
+ /** 评论数 */
1149
+ reply: number;
1150
+ /** 分享数 */
1151
+ share: number;
1152
+ /** 投币数 */
1153
+ coin: number;
1154
+ /** 转发动态 */
1005
1155
  dynamic: number;
1006
- }; /** 专栏正文(richtext 格式) */
1007
- body: RichTextDocument; /** 渲染时间 */
1008
- render_time: string; /** 动态类型 */
1009
- dynamicTYPE: string; /** 分享链接 */
1010
- share_url: string; /** 用户短ID */
1011
- user_shortid: string | number; /** 获赞总数 */
1012
- total_favorited: string | number; /** 关注数 */
1013
- following_count: string | number; /** 粉丝数 */
1156
+ };
1157
+ /** 专栏正文(richtext 格式) */
1158
+ body: RichTextDocument;
1159
+ /** 渲染时间 */
1160
+ render_time: string;
1161
+ /** 动态类型 */
1162
+ dynamicTYPE: string;
1163
+ /** 分享链接 */
1164
+ share_url: string;
1165
+ /** 用户短ID */
1166
+ user_shortid: string | number;
1167
+ /** 获赞总数 */
1168
+ total_favorited: string | number;
1169
+ /** 关注数 */
1170
+ following_count: string | number;
1171
+ /** 粉丝数 */
1014
1172
  fans: string | number;
1015
1173
  }> {}
1016
1174
  //#endregion
@@ -1115,9 +1273,13 @@ interface OriginalContentLiveRcmd {
1115
1273
  interface BilibiliForwardOriginalContentProps {
1116
1274
  /** 原始内容 */
1117
1275
  original_content: {
1118
- /** AV类型内容 */DYNAMIC_TYPE_AV?: OriginalContentAV; /** 图文类型内容 */
1119
- DYNAMIC_TYPE_DRAW?: OriginalContentDraw; /** 文字类型内容 */
1120
- DYNAMIC_TYPE_WORD?: OriginalContentWord; /** 直播推荐类型内容 */
1276
+ /** AV类型内容 */
1277
+ DYNAMIC_TYPE_AV?: OriginalContentAV;
1278
+ /** 图文类型内容 */
1279
+ DYNAMIC_TYPE_DRAW?: OriginalContentDraw;
1280
+ /** 文字类型内容 */
1281
+ DYNAMIC_TYPE_WORD?: OriginalContentWord;
1282
+ /** 直播推荐类型内容 */
1121
1283
  DYNAMIC_TYPE_LIVE_RCMD?: OriginalContentLiveRcmd;
1122
1284
  };
1123
1285
  }
@@ -1125,8 +1287,11 @@ interface BilibiliForwardOriginalContentProps {
1125
1287
  * B站转发动态组件属性接口
1126
1288
  */
1127
1289
  interface BilibiliForwardDynamicProps extends BaseComponentProps<BilibiliDynamicBaseData & {
1128
- /** 动态文本内容(富文本文档) */text: RichTextDocument; /** 原始内容 */
1129
- original_content: BilibiliForwardOriginalContentProps['original_content']; /** 图片URL */
1290
+ /** 动态文本内容(富文本文档) */
1291
+ text: RichTextDocument;
1292
+ /** 原始内容 */
1293
+ original_content: BilibiliForwardOriginalContentProps['original_content'];
1294
+ /** 图片URL */
1130
1295
  imgList: string[] | null;
1131
1296
  }> {}
1132
1297
  //#endregion
@@ -1148,16 +1313,27 @@ interface BilibiliPosterPalettes {
1148
1313
  * B站直播动态组件属性接口
1149
1314
  */
1150
1315
  interface BilibiliLiveDynamicProps extends BaseComponentProps<{
1151
- /** 直播封面 */image_url: string; /** 直播标题 */
1152
- text: RichTextDocument; /** 直播房间信息(分区 | 房间号) */
1153
- liveinf: string; /** 用户名元数据 */
1154
- usernameMeta: UsernameMetadata; /** 用户头像URL */
1155
- avatar_url: string; /** 头像框 */
1156
- frame?: string; /** 粉丝数 */
1157
- fans: string; /** 时间信息 */
1158
- create_time: string; /** 直播开始时间 */
1159
- now_time: string; /** 分享和配置 */
1160
- share_url: string; /** 动态类型 */
1316
+ /** 直播封面 */
1317
+ image_url: string;
1318
+ /** 直播标题 */
1319
+ text: RichTextDocument;
1320
+ /** 直播房间信息(分区 | 房间号) */
1321
+ liveinf: string;
1322
+ /** 用户名元数据 */
1323
+ usernameMeta: UsernameMetadata;
1324
+ /** 用户头像URL */
1325
+ avatar_url: string;
1326
+ /** 头像框 */
1327
+ frame?: string;
1328
+ /** 粉丝数 */
1329
+ fans: string;
1330
+ /** 时间信息 */
1331
+ create_time: string;
1332
+ /** 直播开始时间 */
1333
+ now_time: string;
1334
+ /** 分享和配置 */
1335
+ share_url: string;
1336
+ /** 动态类型 */
1161
1337
  dynamicTYPE: string;
1162
1338
  }> {
1163
1339
  /** 服务端预计算的海报色板(亮色/深色) */
@@ -1171,19 +1347,33 @@ interface BilibiliLiveDynamicProps extends BaseComponentProps<{
1171
1347
  * B站视频动态组件属性接口
1172
1348
  */
1173
1349
  interface BilibiliVideoDynamicProps extends BaseComponentProps<BilibiliDynamicBaseData & {
1174
- /** 视频标题 */text: RichTextDocument; /** 视频描述 */
1175
- desc: RichTextDocument; /** 动态正文(富文本文档) */
1176
- dynamic_text: RichTextDocument | null; /** 视频封面图片URL */
1177
- image_url: string; /** 硬币数 */
1178
- coin: string | number; /** 浏览量 */
1179
- view: string | number; /** 视频时长 */
1180
- duration_text: string; /** 视频分P数量 */
1181
- page_length: number; /** 共创者列表 (可选) */
1350
+ /** 视频标题 */
1351
+ text: RichTextDocument;
1352
+ /** 视频描述 */
1353
+ desc: RichTextDocument;
1354
+ /** 动态正文(富文本文档) */
1355
+ dynamic_text: RichTextDocument | null;
1356
+ /** 视频封面图片URL */
1357
+ image_url: string;
1358
+ /** 硬币数 */
1359
+ coin: string | number;
1360
+ /** 浏览量 */
1361
+ view: string | number;
1362
+ /** 视频时长 */
1363
+ duration_text: string;
1364
+ /** 视频分P数量 */
1365
+ page_length: number;
1366
+ /** 共创者列表 (可选) */
1182
1367
  staff?: Array<{
1183
- /** 用户ID */mid: number; /** 职位标题 (UP主/参演) */
1184
- title: string; /** 用户名 */
1185
- name: string; /** 头像URL */
1186
- face: string; /** 粉丝数 */
1368
+ /** 用户ID */
1369
+ mid: number;
1370
+ /** 职位标题 (UP主/参演) */
1371
+ title: string;
1372
+ /** 用户名 */
1373
+ name: string;
1374
+ /** 头像URL */
1375
+ face: string;
1376
+ /** 粉丝数 */
1187
1377
  follower: number;
1188
1378
  }>;
1189
1379
  }> {}
@@ -1193,19 +1383,32 @@ interface BilibiliVideoDynamicProps extends BaseComponentProps<BilibiliDynamicBa
1193
1383
  * B站用户列表组件属性接口
1194
1384
  */
1195
1385
  interface BilibiliUserListProps extends BaseComponentProps<{
1196
- /** 群组信息 */groupInfo: {
1197
- /** 群号 */groupId: string; /** 群名称 */
1198
- groupName: string; /** 群头像 */
1386
+ /** 群组信息 */
1387
+ groupInfo: {
1388
+ /** 群号 */
1389
+ groupId: string;
1390
+ /** 群名称 */
1391
+ groupName: string;
1392
+ /** 群头像 */
1199
1393
  groupAvatar: string;
1200
- }; /** 用户列表数据 */
1394
+ };
1395
+ /** 用户列表数据 */
1201
1396
  renderOpt: {
1202
- /** 用户头像图片URL */avatar_img: string; /** 用户名 */
1203
- username: string; /** 用户UID */
1204
- host_mid: string; /** 粉丝数 */
1205
- fans: string; /** 获赞总数 */
1206
- total_favorited: string; /** 关注数 */
1207
- following_count: string; /** 全局推送开关状态 */
1208
- switch: boolean; /** 推送类型列表 */
1397
+ /** 用户头像图片URL */
1398
+ avatar_img: string;
1399
+ /** 用户名 */
1400
+ username: string;
1401
+ /** 用户UID */
1402
+ host_mid: string;
1403
+ /** 粉丝数 */
1404
+ fans: string;
1405
+ /** 获赞总数 */
1406
+ total_favorited: string;
1407
+ /** 关注数 */
1408
+ following_count: string;
1409
+ /** 全局推送开关状态 */
1410
+ switch: boolean;
1411
+ /** 推送类型列表 */
1209
1412
  pushTypes?: ('video' | 'draw' | 'word' | 'live' | 'forward' | 'article')[];
1210
1413
  }[];
1211
1414
  }> {}
@@ -1297,7 +1500,8 @@ interface BilibiliVideoInfoProps extends BaseComponentProps<BilibiliVideoInfoDat
1297
1500
  //#region ../template/src/types/platforms/bilibili/index.d.ts
1298
1501
  /** B站二维码登录组件属性 */
1299
1502
  interface BilibiliQrcodeImgProps extends BaseComponentProps<{
1300
- /** 分享链接 */share_url: string;
1503
+ /** 分享链接 */
1504
+ share_url: string;
1301
1505
  }> {}
1302
1506
  //#endregion
1303
1507
  //#region ../template/src/types/platforms/kuaishou/comment.d.ts
@@ -1305,13 +1509,21 @@ interface BilibiliQrcodeImgProps extends BaseComponentProps<{
1305
1509
  * 快手评论组件属性接口
1306
1510
  */
1307
1511
  interface KuaishouCommentProps extends BaseComponentProps<{
1308
- /** 作品类型:视频/图集 */Type: '视频' | '图集'; /** 评论数量 */
1309
- CommentLength: number; /** 视频大小(MB) */
1310
- VideoSize?: string; /** 点赞数量 */
1311
- likeCount?: number; /** 观看次数 */
1312
- viewCount?: number; /** 图片数量 */
1313
- ImageLength?: number; /** 分享链接 */
1314
- share_url: string; /** 评论数据 */
1512
+ /** 作品类型:视频/图集 */
1513
+ Type: '视频' | '图集';
1514
+ /** 评论数量 */
1515
+ CommentLength: number;
1516
+ /** 视频大小(MB) */
1517
+ VideoSize?: string;
1518
+ /** 点赞数量 */
1519
+ likeCount?: number;
1520
+ /** 观看次数 */
1521
+ viewCount?: number;
1522
+ /** 图片数量 */
1523
+ ImageLength?: number;
1524
+ /** 分享链接 */
1525
+ share_url: string;
1526
+ /** 评论数据 */
1315
1527
  CommentsData: KuaishouCommentItem[];
1316
1528
  }> {}
1317
1529
  /**
@@ -1347,10 +1559,15 @@ interface KuaishouCommentItem {
1347
1559
  * 小红书评论组件属性接口
1348
1560
  */
1349
1561
  interface XiaohongshuCommentProps extends BaseComponentProps<{
1350
- /** 笔记类型:图文/视频 */Type: '图文' | '视频'; /** 评论数量 */
1351
- CommentLength: number; /** 图片数量 */
1352
- ImageLength?: number; /** 分享链接 */
1353
- share_url: string; /** 评论数据 - 简化为直接的评论数组 */
1562
+ /** 笔记类型:图文/视频 */
1563
+ Type: '图文' | '视频';
1564
+ /** 评论数量 */
1565
+ CommentLength: number;
1566
+ /** 图片数量 */
1567
+ ImageLength?: number;
1568
+ /** 分享链接 */
1569
+ share_url: string;
1570
+ /** 评论数据 - 简化为直接的评论数组 */
1354
1571
  CommentsData: XiaohongshuCommentItem[];
1355
1572
  }> {}
1356
1573
  /**
@@ -1511,9 +1728,13 @@ interface XiaohongshuNoteInfoProps extends BaseComponentProps<XiaohongshuNoteInf
1511
1728
  * 帮助页面组件属性接口
1512
1729
  */
1513
1730
  interface HelpProps extends BaseComponentProps<{
1514
- /** 页面标题 */title?: string; /** 角色:主人/普通 */
1515
- role?: 'master' | 'member'; /** 菜单数据:按角色筛选后的分组 */
1516
- menu?: MenuGroup[]; /** 简单的列表数据 (用于 Help.tsx 渲染) */
1731
+ /** 页面标题 */
1732
+ title?: string;
1733
+ /** 角色:主人/普通 */
1734
+ role?: 'master' | 'member';
1735
+ /** 菜单数据:按角色筛选后的分组 */
1736
+ menu?: MenuGroup[];
1737
+ /** 简单的列表数据 (用于 Help.tsx 渲染) */
1517
1738
  list: {
1518
1739
  title: string;
1519
1740
  description: string;
@@ -1543,274 +1764,14 @@ interface MenuGroup {
1543
1764
  items: MenuItem[];
1544
1765
  /** 子分组(可选) */
1545
1766
  subGroups?: {
1546
- /** 子分组标题 */title: string; /** 子分组菜单项 */
1767
+ /** 子分组标题 */
1768
+ title: string;
1769
+ /** 子分组菜单项 */
1547
1770
  items: MenuItem[];
1548
1771
  }[];
1549
1772
  }
1550
1773
  //#endregion
1551
- //#region ../../node_modules/.pnpm/@karinjs+ws@1.0.4/node_modules/@karinjs/ws/dist/index.d.ts
1552
- // can not get all overload of BufferConstructor['from'], need to copy all it's first arguments here
1553
- // https://github.com/microsoft/TypeScript/issues/32164
1554
- type BufferLike = string | Buffer | DataView | number | ArrayBufferView | Uint8Array | ArrayBuffer | SharedArrayBuffer | Blob | readonly any[] | readonly number[] | {
1555
- valueOf(): ArrayBuffer;
1556
- } | {
1557
- valueOf(): SharedArrayBuffer;
1558
- } | {
1559
- valueOf(): Uint8Array;
1560
- } | {
1561
- valueOf(): readonly number[];
1562
- } | {
1563
- valueOf(): string;
1564
- } | {
1565
- [Symbol.toPrimitive](hint: string): string;
1566
- }; // WebSocket socket.
1567
- declare class WebSocket extends EventEmitter$2 {
1568
- /** The connection is not yet open. */
1569
- static readonly CONNECTING: 0;
1570
- /** The connection is open and ready to communicate. */
1571
- static readonly OPEN: 1;
1572
- /** The connection is in the process of closing. */
1573
- static readonly CLOSING: 2;
1574
- /** The connection is closed. */
1575
- static readonly CLOSED: 3;
1576
- binaryType: "nodebuffer" | "arraybuffer" | "fragments";
1577
- readonly bufferedAmount: number;
1578
- readonly extensions: string;
1579
- /** Indicates whether the websocket is paused */
1580
- readonly isPaused: boolean;
1581
- readonly protocol: string;
1582
- /** The current state of the connection */
1583
- readonly readyState: typeof WebSocket.CONNECTING | typeof WebSocket.OPEN | typeof WebSocket.CLOSING | typeof WebSocket.CLOSED;
1584
- readonly url: string;
1585
- /** The connection is not yet open. */
1586
- readonly CONNECTING: 0;
1587
- /** The connection is open and ready to communicate. */
1588
- readonly OPEN: 1;
1589
- /** The connection is in the process of closing. */
1590
- readonly CLOSING: 2;
1591
- /** The connection is closed. */
1592
- readonly CLOSED: 3;
1593
- onopen: ((event: WebSocket.Event) => void) | null;
1594
- onerror: ((event: WebSocket.ErrorEvent) => void) | null;
1595
- onclose: ((event: WebSocket.CloseEvent) => void) | null;
1596
- onmessage: ((event: WebSocket.MessageEvent) => void) | null;
1597
- constructor(address: null);
1598
- constructor(address: string | URL, options?: WebSocket.ClientOptions | ClientRequestArgs);
1599
- constructor(address: string | URL, protocols?: string | string[], options?: WebSocket.ClientOptions | ClientRequestArgs);
1600
- close(code?: number, data?: string | Buffer): void;
1601
- ping(data?: any, mask?: boolean, cb?: (err: Error) => void): void;
1602
- pong(data?: any, mask?: boolean, cb?: (err: Error) => void): void; // https://github.com/websockets/ws/issues/2076#issuecomment-1250354722
1603
- send(data: BufferLike, cb?: (err?: Error) => void): void;
1604
- send(data: BufferLike, options: {
1605
- mask?: boolean | undefined;
1606
- binary?: boolean | undefined;
1607
- compress?: boolean | undefined;
1608
- fin?: boolean | undefined;
1609
- }, cb?: (err?: Error) => void): void;
1610
- terminate(): void;
1611
- /**
1612
- * Pause the websocket causing it to stop emitting events. Some events can still be
1613
- * emitted after this is called, until all buffered data is consumed. This method
1614
- * is a noop if the ready state is `CONNECTING` or `CLOSED`.
1615
- */
1616
- pause(): void;
1617
- /**
1618
- * Make a paused socket resume emitting events. This method is a noop if the ready
1619
- * state is `CONNECTING` or `CLOSED`.
1620
- */
1621
- resume(): void; // HTML5 WebSocket events
1622
- addEventListener<K extends keyof WebSocket.WebSocketEventMap>(type: K, listener: ((event: WebSocket.WebSocketEventMap[K]) => void) | {
1623
- handleEvent(event: WebSocket.WebSocketEventMap[K]): void;
1624
- }, options?: WebSocket.EventListenerOptions): void;
1625
- removeEventListener<K extends keyof WebSocket.WebSocketEventMap>(type: K, listener: ((event: WebSocket.WebSocketEventMap[K]) => void) | {
1626
- handleEvent(event: WebSocket.WebSocketEventMap[K]): void;
1627
- }): void; // Events
1628
- on(event: "close", listener: (this: WebSocket, code: number, reason: Buffer) => void): this;
1629
- on(event: "error", listener: (this: WebSocket, error: Error) => void): this;
1630
- on(event: "upgrade", listener: (this: WebSocket, request: IncomingMessage) => void): this;
1631
- on(event: "message", listener: (this: WebSocket, data: WebSocket.RawData, isBinary: boolean) => void): this;
1632
- on(event: "open", listener: (this: WebSocket) => void): this;
1633
- on(event: "ping" | "pong", listener: (this: WebSocket, data: Buffer) => void): this;
1634
- on(event: "redirect", listener: (this: WebSocket, url: string, request: ClientRequest) => void): this;
1635
- on(event: "unexpected-response", listener: (this: WebSocket, request: ClientRequest, response: IncomingMessage) => void): this;
1636
- on(event: string | symbol, listener: (this: WebSocket, ...args: any[]) => void): this;
1637
- once(event: "close", listener: (this: WebSocket, code: number, reason: Buffer) => void): this;
1638
- once(event: "error", listener: (this: WebSocket, error: Error) => void): this;
1639
- once(event: "upgrade", listener: (this: WebSocket, request: IncomingMessage) => void): this;
1640
- once(event: "message", listener: (this: WebSocket, data: WebSocket.RawData, isBinary: boolean) => void): this;
1641
- once(event: "open", listener: (this: WebSocket) => void): this;
1642
- once(event: "ping" | "pong", listener: (this: WebSocket, data: Buffer) => void): this;
1643
- once(event: "redirect", listener: (this: WebSocket, url: string, request: ClientRequest) => void): this;
1644
- once(event: "unexpected-response", listener: (this: WebSocket, request: ClientRequest, response: IncomingMessage) => void): this;
1645
- once(event: string | symbol, listener: (this: WebSocket, ...args: any[]) => void): this;
1646
- off(event: "close", listener: (this: WebSocket, code: number, reason: Buffer) => void): this;
1647
- off(event: "error", listener: (this: WebSocket, error: Error) => void): this;
1648
- off(event: "upgrade", listener: (this: WebSocket, request: IncomingMessage) => void): this;
1649
- off(event: "message", listener: (this: WebSocket, data: WebSocket.RawData, isBinary: boolean) => void): this;
1650
- off(event: "open", listener: (this: WebSocket) => void): this;
1651
- off(event: "ping" | "pong", listener: (this: WebSocket, data: Buffer) => void): this;
1652
- off(event: "redirect", listener: (this: WebSocket, url: string, request: ClientRequest) => void): this;
1653
- off(event: "unexpected-response", listener: (this: WebSocket, request: ClientRequest, response: IncomingMessage) => void): this;
1654
- off(event: string | symbol, listener: (this: WebSocket, ...args: any[]) => void): this;
1655
- addListener(event: "close", listener: (code: number, reason: Buffer) => void): this;
1656
- addListener(event: "error", listener: (error: Error) => void): this;
1657
- addListener(event: "upgrade", listener: (request: IncomingMessage) => void): this;
1658
- addListener(event: "message", listener: (data: WebSocket.RawData, isBinary: boolean) => void): this;
1659
- addListener(event: "open", listener: () => void): this;
1660
- addListener(event: "ping" | "pong", listener: (data: Buffer) => void): this;
1661
- addListener(event: "redirect", listener: (url: string, request: ClientRequest) => void): this;
1662
- addListener(event: "unexpected-response", listener: (request: ClientRequest, response: IncomingMessage) => void): this;
1663
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
1664
- removeListener(event: "close", listener: (code: number, reason: Buffer) => void): this;
1665
- removeListener(event: "error", listener: (error: Error) => void): this;
1666
- removeListener(event: "upgrade", listener: (request: IncomingMessage) => void): this;
1667
- removeListener(event: "message", listener: (data: WebSocket.RawData, isBinary: boolean) => void): this;
1668
- removeListener(event: "open", listener: () => void): this;
1669
- removeListener(event: "ping" | "pong", listener: (data: Buffer) => void): this;
1670
- removeListener(event: "redirect", listener: (url: string, request: ClientRequest) => void): this;
1671
- removeListener(event: "unexpected-response", listener: (request: ClientRequest, response: IncomingMessage) => void): this;
1672
- removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
1673
- }
1674
- declare namespace WebSocket {
1675
- /**
1676
- * Data represents the raw message payload received over the WebSocket.
1677
- */
1678
- type RawData = Buffer | ArrayBuffer | Buffer[];
1679
- /**
1680
- * Data represents the message payload received over the WebSocket.
1681
- */
1682
- type Data = string | Buffer | ArrayBuffer | Buffer[];
1683
- /**
1684
- * CertMeta represents the accepted types for certificate & key data.
1685
- */
1686
- type CertMeta = string | string[] | Buffer | Buffer[];
1687
- /**
1688
- * VerifyClientCallbackSync is a synchronous callback used to inspect the
1689
- * incoming message. The return value (boolean) of the function determines
1690
- * whether or not to accept the handshake.
1691
- */
1692
- type VerifyClientCallbackSync<Request extends IncomingMessage = IncomingMessage> = (info: {
1693
- origin: string;
1694
- secure: boolean;
1695
- req: Request;
1696
- }) => boolean;
1697
- /**
1698
- * VerifyClientCallbackAsync is an asynchronous callback used to inspect the
1699
- * incoming message. The return value (boolean) of the function determines
1700
- * whether or not to accept the handshake.
1701
- */
1702
- type VerifyClientCallbackAsync<Request extends IncomingMessage = IncomingMessage> = (info: {
1703
- origin: string;
1704
- secure: boolean;
1705
- req: Request;
1706
- }, callback: (res: boolean, code?: number, message?: string, headers?: OutgoingHttpHeaders) => void) => void;
1707
- /**
1708
- * FinishRequestCallback is a callback for last minute customization of the
1709
- * headers. If finishRequest is set, then it has the responsibility to call
1710
- * request.end() once it is done setting request headers.
1711
- */
1712
- type FinishRequestCallback = (request: ClientRequest, websocket: WebSocket) => void;
1713
- interface ClientOptions extends SecureContextOptions {
1714
- protocol?: string | undefined;
1715
- followRedirects?: boolean | undefined;
1716
- generateMask?(mask: Buffer): void;
1717
- handshakeTimeout?: number | undefined;
1718
- maxRedirects?: number | undefined;
1719
- perMessageDeflate?: boolean | PerMessageDeflateOptions | undefined;
1720
- localAddress?: string | undefined;
1721
- protocolVersion?: number | undefined;
1722
- headers?: {
1723
- [key: string]: string;
1724
- } | undefined;
1725
- origin?: string | undefined;
1726
- agent?: Agent | undefined;
1727
- host?: string | undefined;
1728
- family?: number | undefined;
1729
- checkServerIdentity?(servername: string, cert: CertMeta): boolean;
1730
- rejectUnauthorized?: boolean | undefined;
1731
- allowSynchronousEvents?: boolean | undefined;
1732
- autoPong?: boolean | undefined;
1733
- maxPayload?: number | undefined;
1734
- skipUTF8Validation?: boolean | undefined;
1735
- createConnection?: typeof createConnection | undefined;
1736
- finishRequest?: FinishRequestCallback | undefined;
1737
- }
1738
- interface PerMessageDeflateOptions {
1739
- serverNoContextTakeover?: boolean | undefined;
1740
- clientNoContextTakeover?: boolean | undefined;
1741
- serverMaxWindowBits?: number | undefined;
1742
- clientMaxWindowBits?: number | undefined;
1743
- zlibDeflateOptions?: {
1744
- flush?: number | undefined;
1745
- finishFlush?: number | undefined;
1746
- chunkSize?: number | undefined;
1747
- windowBits?: number | undefined;
1748
- level?: number | undefined;
1749
- memLevel?: number | undefined;
1750
- strategy?: number | undefined;
1751
- dictionary?: Buffer | Buffer[] | DataView | undefined;
1752
- info?: boolean | undefined;
1753
- } | undefined;
1754
- zlibInflateOptions?: ZlibOptions | undefined;
1755
- threshold?: number | undefined;
1756
- concurrencyLimit?: number | undefined;
1757
- }
1758
- interface Event {
1759
- type: string;
1760
- target: WebSocket;
1761
- }
1762
- interface ErrorEvent {
1763
- error: any;
1764
- message: string;
1765
- type: string;
1766
- target: WebSocket;
1767
- }
1768
- interface CloseEvent {
1769
- wasClean: boolean;
1770
- code: number;
1771
- reason: string;
1772
- type: string;
1773
- target: WebSocket;
1774
- }
1775
- interface MessageEvent {
1776
- data: Data;
1777
- type: string;
1778
- target: WebSocket;
1779
- }
1780
- interface WebSocketEventMap {
1781
- open: Event;
1782
- error: ErrorEvent;
1783
- close: CloseEvent;
1784
- message: MessageEvent;
1785
- }
1786
- interface EventListenerOptions {
1787
- once?: boolean | undefined;
1788
- }
1789
- interface ServerOptions<U extends typeof WebSocket = typeof WebSocket, V extends typeof IncomingMessage = typeof IncomingMessage> {
1790
- host?: string | undefined;
1791
- port?: number | undefined;
1792
- backlog?: number | undefined;
1793
- server?: Server<V> | Server$1<V> | undefined;
1794
- verifyClient?: VerifyClientCallbackAsync<InstanceType<V>> | VerifyClientCallbackSync<InstanceType<V>> | undefined;
1795
- handleProtocols?: (protocols: Set<string>, request: InstanceType<V>) => string | false;
1796
- path?: string | undefined;
1797
- noServer?: boolean | undefined;
1798
- allowSynchronousEvents?: boolean | undefined;
1799
- autoPong?: boolean | undefined;
1800
- clientTracking?: boolean | undefined;
1801
- perMessageDeflate?: boolean | PerMessageDeflateOptions | undefined;
1802
- maxPayload?: number | undefined;
1803
- skipUTF8Validation?: boolean | undefined;
1804
- WebSocket?: U | undefined;
1805
- }
1806
- interface AddressInfo {
1807
- address: string;
1808
- family: string;
1809
- port: number;
1810
- }
1811
- }
1812
- //#endregion
1813
- //#region ../../node_modules/.pnpm/node-karin@1.16.1/node_modules/node-karin/dist/index.d.ts
1774
+ //#region ../../node_modules/.pnpm/node-karin@1.16.2/node_modules/node-karin/dist/index.d.ts
1814
1775
  //#endregion
1815
1776
  //#region src/types/adapter/info.d.ts
1816
1777
  /**
@@ -1893,11 +1854,7 @@ interface AdapterInfo$1 {
1893
1854
  connectTime: number;
1894
1855
  /** 鉴权秘钥 */
1895
1856
  secret: string | null;
1896
- } //#endregion
1897
- //#region src/types/event/account.d.ts
1898
- /**
1899
- * 适配器账号信息
1900
- */
1857
+ }
1901
1858
  //#endregion
1902
1859
  //#region ../template/src/types/platforms/other/handlerError.d.ts
1903
1860
  /**
@@ -1938,20 +1895,35 @@ type AdapterInfo = Omit<AdapterInfo$1, 'index' | 'secret' | 'connectTime' | 'add
1938
1895
  * API错误组件属性接口
1939
1896
  */
1940
1897
  interface ApiErrorProps extends BaseComponentProps<{
1941
- /** 错误类型 */type: 'business_error'; /** 平台名称 */
1942
- platform: 'douyin' | 'bilibili' | 'kuaishou' | 'system' | 'unknown'; /** 错误信息 */
1943
- error: BusinessError; /** 调用的方法名 */
1944
- method: string; /** 错误发生时间 */
1945
- timestamp: string; /** 收集到的日志信息 */
1946
- logs?: LogEntry[]; /** 触发命令 */
1947
- triggerCommand?: string; /** 框架版本 */
1948
- frameworkVersion: string; /** 插件版本 */
1949
- pluginVersion: string; /** 构建时间 */
1950
- buildTime?: string; /** Commit ID */
1951
- commitHash?: string; /** 适配器信息 */
1952
- adapterInfo?: AdapterInfo; /** 是否为验证流程 */
1953
- isVerification?: boolean; /** 验证链接 */
1954
- verificationUrl?: string; /** 分享链接(用于生成二维码) */
1898
+ /** 错误类型 */
1899
+ type: 'business_error';
1900
+ /** 平台名称 */
1901
+ platform: 'douyin' | 'bilibili' | 'kuaishou' | 'system' | 'unknown';
1902
+ /** 错误信息 */
1903
+ error: BusinessError;
1904
+ /** 调用的方法名 */
1905
+ method: string;
1906
+ /** 错误发生时间 */
1907
+ timestamp: string;
1908
+ /** 收集到的日志信息 */
1909
+ logs?: LogEntry[];
1910
+ /** 触发命令 */
1911
+ triggerCommand?: string;
1912
+ /** 框架版本 */
1913
+ frameworkVersion: string;
1914
+ /** 插件版本 */
1915
+ pluginVersion: string;
1916
+ /** 构建时间 */
1917
+ buildTime?: string;
1918
+ /** Commit ID */
1919
+ commitHash?: string;
1920
+ /** 适配器信息 */
1921
+ adapterInfo?: AdapterInfo;
1922
+ /** 是否为验证流程 */
1923
+ isVerification?: boolean;
1924
+ /** 验证链接 */
1925
+ verificationUrl?: string;
1926
+ /** 分享链接(用于生成二维码) */
1955
1927
  share_url?: string;
1956
1928
  }> {}
1957
1929
  //#endregion
@@ -1960,31 +1932,44 @@ interface ApiErrorProps extends BaseComponentProps<{
1960
1932
  * 更新日志组件属性接口
1961
1933
  */
1962
1934
  interface ChangelogProps extends BaseComponentProps<{
1963
- /** 是否包含更新提示 */Tip?: boolean; /** 后端传入的 Markdown 源码 */
1964
- markdown: string; /** 本地版本号 */
1965
- localVersion: string; /** 远程版本号 */
1966
- remoteVersion: string; /** 落后的版本数量 */
1967
- lagVersionCount?: number; /** 构建时间 */
1968
- buildTime?: string; /** 版本差异对比页面分享链接 */
1935
+ /** 是否包含更新提示 */
1936
+ Tip?: boolean;
1937
+ /** 后端传入的 Markdown 源码 */
1938
+ markdown: string;
1939
+ /** 本地版本号 */
1940
+ localVersion: string;
1941
+ /** 远程版本号 */
1942
+ remoteVersion: string;
1943
+ /** 落后的版本数量 */
1944
+ lagVersionCount?: number;
1945
+ /** 构建时间 */
1946
+ buildTime?: string;
1947
+ /** 版本差异对比页面分享链接 */
1969
1948
  share_url?: string;
1970
1949
  }> {}
1971
1950
  //#endregion
1972
1951
  //#region ../template/src/types/platforms/other/VersionWarningProps.d.ts
1973
1952
  interface VersionWarningProps extends BaseComponentProps<{
1974
- /** 插件构建时的 karin 版本 */requireVersion: string; /** 当前运行的 karin 版本 */
1953
+ /** 插件构建时的 karin 版本 */
1954
+ requireVersion: string;
1955
+ /** 当前运行的 karin 版本 */
1975
1956
  currentVersion: string;
1976
1957
  }> {}
1977
1958
  //#endregion
1978
1959
  //#region ../template/src/types/platforms/other/qrlogin.d.ts
1979
1960
  /** APP 扫码登录组件属性 */
1980
1961
  interface QrLoginProps extends BaseComponentProps<{
1981
- /** 服务器地址 */serverUrl: string; /** 分享链接(用于生成二维码) */
1962
+ /** 服务器地址 */
1963
+ serverUrl: string;
1964
+ /** 分享链接(用于生成二维码) */
1982
1965
  share_url: string;
1983
1966
  }> {}
1984
1967
  //#endregion
1985
1968
  //#region ../template/src/types/platforms/other/livePhotoTip.d.ts
1986
1969
  interface LivePhotoTipProps extends BaseComponentProps<{
1987
- /** 提示标题 */title?: string; /** 附加说明 */
1970
+ /** 提示标题 */
1971
+ title?: string;
1972
+ /** 附加说明 */
1988
1973
  description?: string;
1989
1974
  }> {}
1990
1975
  //#endregion
@@ -1993,26 +1978,36 @@ interface LivePhotoTipProps extends BaseComponentProps<{
1993
1978
  * 群组解析统计数据接口
1994
1979
  */
1995
1980
  interface GroupStatisticsProps extends BaseComponentProps<{
1996
- /** 群组ID */groupId: string; /** 群组名称 */
1997
- groupName?: string; /** 群组人数 */
1998
- groupMemberCount?: number; /** 群组头像 */
1999
- groupAvatar?: string; /** 群组总解析次数 */
2000
- groupTotalParses: number; /** 群组唯一用户数 */
2001
- groupUniqueUsers: number; /** 各平台解析数据 */
1981
+ /** 群组ID */
1982
+ groupId: string;
1983
+ /** 群组名称 */
1984
+ groupName?: string;
1985
+ /** 群组人数 */
1986
+ groupMemberCount?: number;
1987
+ /** 群组头像 */
1988
+ groupAvatar?: string;
1989
+ /** 群组总解析次数 */
1990
+ groupTotalParses: number;
1991
+ /** 群组唯一用户数 */
1992
+ groupUniqueUsers: number;
1993
+ /** 各平台解析数据 */
2002
1994
  platformData: {
2003
1995
  douyin: number;
2004
1996
  bilibili: number;
2005
1997
  kuaishou: number;
2006
1998
  xiaohongshu: number;
2007
- }; /** 全局总群组数 */
2008
- globalTotalGroups: number; /** 全局总解析次数 */
1999
+ };
2000
+ /** 全局总群组数 */
2001
+ globalTotalGroups: number;
2002
+ /** 全局总解析次数 */
2009
2003
  globalTotalParses: number;
2010
2004
  }> {}
2011
2005
  /**
2012
2006
  * 全局解析统计数据接口
2013
2007
  */
2014
2008
  interface GlobalStatisticsProps extends BaseComponentProps<{
2015
- /** 所有统计数据 */allStats: Array<{
2009
+ /** 所有统计数据 */
2010
+ allStats: Array<{
2016
2011
  id: number;
2017
2012
  groupId: string;
2018
2013
  userId: string;
@@ -2020,7 +2015,8 @@ interface GlobalStatisticsProps extends BaseComponentProps<{
2020
2015
  parseCount: number;
2021
2016
  createdAt: string;
2022
2017
  updatedAt: string;
2023
- }>; /** 历史数据(最近30天) */
2018
+ }>;
2019
+ /** 历史数据(最近30天) */
2024
2020
  historyData: Array<{
2025
2021
  date: string;
2026
2022
  totalParses: number;
@@ -2028,7 +2024,8 @@ interface GlobalStatisticsProps extends BaseComponentProps<{
2028
2024
  bilibili: number;
2029
2025
  kuaishou: number;
2030
2026
  xiaohongshu: number;
2031
- }>; /** 群组信息映射 */
2027
+ }>;
2028
+ /** 群组信息映射 */
2032
2029
  groupInfoMap: Record<string, {
2033
2030
  groupName?: string;
2034
2031
  groupAvatar?: string;
@@ -2050,19 +2047,28 @@ interface RenderRequest<T = Record<string, unknown>> {
2050
2047
  useDarkTheme: boolean;
2051
2048
  /** 版本信息 */
2052
2049
  version?: {
2053
- /** 框架插件 */plugin: string; /** 插件名称 */
2054
- pluginName: string; /** 插件版本 */
2055
- pluginVersion: string; /** 发布类型 */
2056
- releaseType: 'Stable' | 'Preview'; /** 驱动框架 */
2057
- poweredBy: string; /** 框架版本 */
2058
- frameworkVersion: string; /** 是否有可用更新 */
2050
+ /** 框架插件 */
2051
+ plugin: string;
2052
+ /** 插件名称 */
2053
+ pluginName: string;
2054
+ /** 插件版本 */
2055
+ pluginVersion: string;
2056
+ /** 发布类型 */
2057
+ releaseType: 'Stable' | 'Preview';
2058
+ /** 驱动框架 */
2059
+ poweredBy: string;
2060
+ /** 框架版本 */
2061
+ frameworkVersion: string;
2062
+ /** 是否有可用更新 */
2059
2063
  hasUpdate?: boolean;
2060
2064
  };
2061
2065
  /** 水印比特大小 */
2062
2066
  watermarkTextBitSize: number;
2063
2067
  /** 渲染数据 */
2064
2068
  data: T & {
2065
- /** 是否使用深色主题 */useDarkTheme?: boolean; /** 二维码分享链接 */
2069
+ /** 是否使用深色主题 */
2070
+ useDarkTheme?: boolean;
2071
+ /** 二维码分享链接 */
2066
2072
  share_url?: string;
2067
2073
  };
2068
2074
  }
@@ -2086,13 +2092,14 @@ interface BaseComponentProps<T = Record<string, any>> extends Pick<RenderRequest
2086
2092
  watermarkTextBitSize?: RenderRequest['watermarkTextBitSize'];
2087
2093
  /** 渲染数据 - 子组件的具体参数 */
2088
2094
  data: T & {
2089
- /** 是否使用深色主题 */useDarkTheme: boolean;
2095
+ /** 是否使用深色主题 */
2096
+ useDarkTheme: boolean;
2090
2097
  };
2091
2098
  }
2092
2099
  /**
2093
2100
  * 抖音平台组件ID
2094
2101
  */
2095
- type DouyinComponentIds = 'article-work' | 'comment' | 'dynamic' | 'favorite-list' | 'image-work' | 'live' | 'musicinfo' | 'recommend-list' | 'user_profile' | 'userlist' | 'video-work' | 'videoInfo' | 'user_videolist' | 'qrcodeImg';
2102
+ type DouyinComponentIds = 'article-work' | 'comment' | 'dynamic' | 'favorite-list' | 'image-work' | 'live' | 'musicinfo' | 'recommend-list' | 'user_profile' | 'userlist' | 'video-work' | 'user_videolist' | 'qrcodeImg';
2096
2103
  /**
2097
2104
  * B站平台组件ID
2098
2105
  */
@@ -2132,7 +2139,6 @@ interface PathToDataTypeMap {
2132
2139
  'douyin/user_profile': DouyinUserVideoListProps['data'];
2133
2140
  'douyin/userlist': DouyinUserListProps['data'];
2134
2141
  'douyin/video-work': DouyinVideoWorkProps['data'];
2135
- 'douyin/videoInfo': DouyinVideoInfoProps['data'];
2136
2142
  'douyin/qrcodeImg': DouyinQrcodeImgProps['data'];
2137
2143
  'bilibili/comment': BilibiliCommentProps['data'];
2138
2144
  'bilibili/userlist': BilibiliUserListProps['data'];