@floating-live/bilibili 0.15.2 → 0.16.0

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.
package/types.d.ts CHANGED
@@ -1,484 +1,39 @@
1
- import { RoomInfo } from "floating-live";
2
- import { DanmakuMode } from "floating-live";
3
- export declare namespace RawMessage {
4
- interface Base {
5
- cmd: string;
6
- /** 消息id */
7
- msg_id?: string;
8
- /** 发送时间 */
9
- send_time?: number;
10
- }
11
- export interface DANMU_MSG extends Base {
12
- cmd: "DANMU_MSG";
13
- info: {
14
- 0: {
15
- /** 弹幕模式 */
16
- 1: DanmakuMode;
17
- /** 弹幕字号 */
18
- 2: number;
19
- /** 弹幕颜色 */
20
- 3: number;
21
- /** 时间戳 */
22
- 4: number;
23
- /** 是否为图片信息 */
24
- 12: number;
25
- /** 图片信息 */
26
- 13: {
27
- /** 表情图片id */
28
- emoticon_unique: string;
29
- /** 表情图片url */
30
- url: string;
31
- /** 表情图片宽度 */
32
- width: number;
33
- /** 表情图片高度 */
34
- height: number;
35
- };
36
- /** 附加信息 */
37
- 15: {
38
- extra: string;
39
- };
40
- /** 活动信息 */
41
- 16: {
42
- /** 弹幕不在聊天栏显示 */
43
- not_show: number;
44
- };
45
- };
46
- /** 弹幕内容 */
47
- 1: string;
48
- 2: {
49
- /** 用户uid */
50
- 0: number;
51
- /** 用户名 */
52
- 1: string;
53
- /** 用户是否为房管 */
54
- 2: number;
55
- };
56
- /** 粉丝勋章信息 */
57
- 3: {
58
- /** 勋章等级 */
59
- 0: number;
60
- /** 勋章名称 */
61
- 1: string;
62
- /** 勋章id */
63
- 12: number;
64
- /** 大航海级别 */
65
- 10: number;
66
- };
67
- /** 大航海级别 */
68
- 7: number;
69
- };
70
- }
71
- export interface INTERACT_WORD extends Base {
72
- cmd: "INTERACT_WORD";
73
- data: {
74
- /** 用户名 */
75
- uname: string;
76
- /** 用户id */
77
- uid: number;
78
- /** 互动类型 */
79
- msg_type: number;
80
- /** 触发时间*1000000 */
81
- trigger_time: number;
82
- /** 粉丝勋章 */
83
- fans_medal: {
84
- /** 勋章等级 */
85
- medal_level: number;
86
- /** 勋章名称 */
87
- medal_name: string;
88
- /** 勋章id */
89
- target_id: number;
90
- /** 大航海级别 */
91
- guard_level: number;
92
- };
93
- };
94
- }
95
- export interface SEND_GIFT extends Base {
96
- cmd: "SEND_GIFT";
97
- data: {
98
- /** 用户名 */
99
- uname: string;
100
- /** 用户id */
101
- uid: number;
102
- /** 用户头像 */
103
- face: string;
104
- /** 发送时间(s) */
105
- timestamp: number;
106
- /** 粉丝勋章 */
107
- fans_medal: {
108
- /** 勋章等级 */
109
- medal_level: number;
110
- /** 勋章名称 */
111
- medal_name: string;
112
- /** 勋章id */
113
- target_id: number;
114
- /** 大航海级别 */
115
- guard_level: number;
116
- };
117
- /** 大航海级别 */
118
- guard_level: number;
119
- /** 礼物名称 */
120
- giftName: string;
121
- /** 礼物id */
122
- giftId: number;
123
- /** 礼物总数 */
124
- num: number;
125
- total_coin: number;
126
- /** 货币类型 */
127
- coin_type: string;
128
- /** 赠送礼物的动作描述 */
129
- action: string;
130
- combo_id: string;
131
- batch_combo_id: string;
132
- };
133
- }
134
- export interface GUARD_BUY extends Base {
135
- cmd: "GUARD_BUY";
136
- data: {
137
- /** 用户名 */
138
- username: string;
139
- /** 用户id */
140
- uid: number;
141
- /** 发送时间(s) */
142
- start_time: number;
143
- /** 大航海级别 */
144
- guard_level: number;
145
- /** 礼物名称 */
146
- gift_name: string;
147
- /** 礼物id */
148
- gift_id: number;
149
- /** 礼物总数 */
150
- num: number;
151
- /** 礼物价值 */
152
- price: number;
153
- };
154
- }
155
- export interface SUPER_CHAT_MESSAGE extends Base {
156
- cmd: "SUPER_CHAT_MESSAGE";
157
- data: {
158
- /** sc消息id */
159
- id: string;
160
- /** 用户id */
161
- uid: number;
162
- /** 用户信息 */
163
- user_info: {
164
- /** 用户名 */
165
- uname: string;
166
- /** 用户头像 */
167
- face: string;
168
- /** 大航海级别 */
169
- guard_level: number;
170
- };
171
- /** 粉丝勋章 */
172
- medal_info: {
173
- /** 勋章等级 */
174
- medal_level: number;
175
- /** 勋章名称 */
176
- medal_name: string;
177
- /** 勋章id */
178
- target_id: number;
179
- /** 大航海级别 */
180
- guard_level: number;
181
- };
182
- /** 发送时间(s) */
183
- ts: number;
184
- /** 礼物信息 */
185
- gift: {
186
- /** 礼物名称 */
187
- gift_name: string;
188
- /** 礼物id */
189
- gift_id: number;
190
- /** 礼物总数 */
191
- num: number;
192
- };
193
- /** 礼物价值 */
194
- price: number;
195
- /** 消息 */
196
- message: string;
197
- /** 颜色 */
198
- background_bottom_color: string;
199
- /** 消息 */
200
- time: number;
201
- };
202
- }
203
- export interface WATCHED_CHANGE extends Base {
204
- cmd: "WATCHED_CHANGE";
205
- data: {
206
- num: number;
207
- };
208
- }
209
- export interface LIKE_INFO_V3_UPDATE extends Base {
210
- cmd: "LIKE_INFO_V3_UPDATE";
211
- data: {
212
- click_count: number;
213
- };
214
- }
215
- export interface ONLINE_RANK_COUNT extends Base {
216
- cmd: "ONLINE_RANK_COUNT";
217
- data: {
218
- count?: number;
219
- online_count?: number;
220
- };
221
- }
222
- export interface ROOM_BLOCK_MSG extends Base {
223
- cmd: "ROOM_BLOCK_MSG";
224
- data: {
225
- /** 用户名 */
226
- uname: string;
227
- /** 用户id */
228
- uid: number;
229
- /** 执行操作的用户类型 */
230
- operator: number;
231
- };
232
- }
233
- export interface LIVE extends Base {
234
- cmd: "LIVE";
235
- /** 直播时间 */
236
- live_time: number;
237
- /** 直播id */
238
- live_key: string;
239
- }
240
- export interface CUT_OFF extends Base {
241
- cmd: "CUT_OFF";
242
- /** 切断消息 */
243
- msg: string;
244
- }
245
- export interface PREPARING extends Base {
246
- cmd: "PREPARING";
247
- /** 是否为轮播 */
248
- round?: number;
249
- }
250
- export interface ROOM_CHANGE extends Base {
251
- cmd: "ROOM_CHANGE";
252
- data: {
253
- title: string;
254
- parent_area_name: string;
255
- area_name: string;
256
- };
257
- }
258
- export interface ANCHOR_LOT_START extends Base {
259
- cmd: "ANCHOR_LOT_START";
260
- data: {
261
- /** 图标 */
262
- asset_icon: string;
263
- /** webp图标 */
264
- asset_icon_webp: string;
265
- /** 奖品图标 */
266
- award_image: string;
267
- /** 奖品名称 */
268
- award_name: string;
269
- /** 奖品数量 */
270
- award_num: number;
271
- /** 奖品价值描述 */
272
- award_price_text: string;
273
- /** 奖品类型(1=礼物) */
274
- award_type: number;
275
- /** 当前时间 */
276
- current_time: number;
277
- /** 参与抽奖需发送的弹幕 */
278
- danmu: string;
279
- /** 需发送弹幕类型 */
280
- danmu_type: number;
281
- /** 抽奖id */
282
- id: number;
283
- /** 需投喂礼物id */
284
- gift_id: number;
285
- /** 需投喂礼物名称 */
286
- gift_name: string;
287
- /** 需投喂礼物数量 */
288
- gift_num: number;
289
- /** 需投喂礼物价值 */
290
- gift_price: number;
291
- /** 条件描述 */
292
- require_text: string;
293
- /** 条件类型(2=粉丝勋章等级) */
294
- require_type: number;
295
- /** 条件值 */
296
- require_value: number;
297
- /** 房间id */
298
- room_id: number;
299
- /** 持续时间(秒) */
300
- time: number;
301
- };
302
- }
303
- export type All = DANMU_MSG | INTERACT_WORD | SEND_GIFT | GUARD_BUY | SUPER_CHAT_MESSAGE | WATCHED_CHANGE | LIKE_INFO_V3_UPDATE | ONLINE_RANK_COUNT | ROOM_BLOCK_MSG | LIVE | CUT_OFF | PREPARING | ROOM_CHANGE | ANCHOR_LOT_START;
304
- export {};
305
- }
306
- /** 接口返回的直播间信息
307
- * https://api.live.bilibili.com/xlive/web-room/v1/index/getInfoByRoom?room_id={id} */
308
- export interface RawInfo {
309
- room_info: {
310
- /** 用户uid */
311
- uid: number;
312
- /** 房间id */
313
- room_id: number;
314
- /** 短id */
315
- short_id: number;
316
- /** 直播间标题 */
317
- title: string;
318
- /** 直播间封面 */
319
- cover: string;
320
- /** 直播间标签 */
321
- tags: string;
322
- /** 直播间背景 */
323
- background: string;
324
- /** 直播间简介 */
325
- description: string;
326
- /** 直播状态 */
327
- live_status: number;
328
- /** 直播开始时间(s) */
329
- live_start_time: number;
330
- /** 是否被封禁 */
331
- lock_status: number;
332
- /** 封禁时间 */
333
- lock_time: number;
334
- /** 是否被隐藏 */
335
- hidden_status: number;
336
- /** 隐藏时间 */
337
- hidden_time: number;
338
- /** 分区id */
339
- area_id: number;
340
- /** 分区名 */
341
- area_name: string;
342
- /** 一级分区id */
343
- parent_area_id: number;
344
- /** 一级分区名 */
345
- parent_area_name: string;
346
- /** session */
347
- up_session: string;
348
- /** 直播场次id */
349
- live_id: number;
350
- /** 直播场次id */
351
- live_id_str: string;
352
- /** 观看数 */
353
- online: number;
354
- };
355
- /** 主播信息 */
356
- anchor_info: {
357
- /** 基本信息 */
358
- base_info: {
359
- /** 用户名 */
360
- uname: string;
361
- /** 头像 */
362
- face: string;
363
- /** 性别 */
364
- gender: string;
365
- /** 官方信息 */
366
- official_info: {
367
- role: number;
368
- title: string;
369
- desc: string;
370
- };
371
- };
372
- /** 直播信息 */
373
- live_info: {
374
- /** 主播等级 */
375
- level: number;
376
- /** 等级颜色 */
377
- level_color: number;
378
- /** 经验值 */
379
- score: number;
380
- /** 下一级所需经验值 */
381
- upgrade_score: number;
382
- /** 当前等级 */
383
- current: [number, number];
384
- /** 下一等级 */
385
- next: [number, number];
386
- /** 直播间排名 */
387
- rank: string;
388
- };
389
- /** 直播间粉丝牌信息 */
390
- medal_info: {
391
- /** 粉丝牌名称 */
392
- medal_name: string;
393
- /** 粉丝牌id */
394
- medal_id: number;
395
- /** 粉丝团成员数 */
396
- fansclub: number;
397
- };
398
- };
399
- /** 公告信息 */
400
- news_info: {
401
- /** uid */
402
- uid: number;
403
- /** 创建时间 */
404
- ctime: string;
405
- /** 公告内容 */
406
- content: string;
407
- };
408
- /** 分区排名信息 */
409
- area_rank_info: {
410
- areaRank: {
411
- index: number;
412
- rank: string;
413
- };
414
- liveRank: {
415
- rank: string;
416
- };
417
- };
418
- /** sc信息 */
419
- super_chat_info: {
420
- status: number;
421
- ranked_mark: number;
422
- message_list: [];
423
- };
424
- /** 在线榜单信息 */
425
- online_gold_rank_info_v2: {
426
- list: {
427
- uid: number;
428
- face: string;
429
- uname: string;
430
- score: string;
431
- rank: number;
432
- guard_level: number;
433
- }[];
434
- };
435
- watched_show: {
436
- num: number;
437
- text_small: string;
438
- text_large: string;
439
- };
440
- show_reserve_status: false;
441
- /** 点赞信息 */
442
- like_info_v3: {
443
- /** 总点赞数 */
444
- total_likes: number;
445
- };
446
- /** 大航海信息 */
447
- guard_info: {
448
- count: number;
449
- anchor_guard_achieve_level: number;
450
- };
451
- room_rank_info: {
452
- user_rank_entry: {
453
- /** 贡献榜排行 */
454
- user_contribution_rank_entry: {
455
- item: {
456
- uid: number;
457
- name: string;
458
- face: string;
459
- rank: number;
460
- score: number;
461
- medal_info: null;
462
- guard_level: number;
463
- wealth_level: number;
464
- }[];
465
- /** 贡献榜总数 */
466
- count: number;
467
- /** 最大显示数量 */
468
- show_max: number;
469
- };
470
- };
471
- };
472
- }
473
- export interface BilibiliRoomInfo extends RoomInfo {
474
- roomId: number;
475
- shortId: number;
476
- }
477
- export interface ConnectTokens {
478
- /** 用户uid */
479
- userId: number;
480
- /** buvid */
481
- buvid: string;
482
- /** 直播间token */
483
- token?: string;
484
- }
1
+ import { LiveRoomData } from "floating-live";
2
+ export interface BilibiliRoomData extends LiveRoomData {
3
+ roomId: number;
4
+ shortId: number;
5
+ }
6
+ export interface ConnectTokens {
7
+ /** 用户uid */
8
+ uid: number;
9
+ /** buvid */
10
+ buvid: string;
11
+ /** 直播间key */
12
+ key: string;
13
+ }
14
+ export interface RoomBaseInfo {
15
+ room_id: number;
16
+ uid: number;
17
+ area_id: number;
18
+ live_status: number;
19
+ live_url: string;
20
+ parent_area_id: number;
21
+ title: string;
22
+ parent_area_name: string;
23
+ area_name: string;
24
+ live_time: string;
25
+ description: string;
26
+ tags: string;
27
+ attention: number;
28
+ online: number;
29
+ short_id: number;
30
+ uname: string;
31
+ cover: string;
32
+ background: string;
33
+ join_slide: number;
34
+ live_id: number;
35
+ live_id_str: string;
36
+ lock_status: number;
37
+ hidden_status: number;
38
+ is_encrypted: boolean;
39
+ }
package/types.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -0,0 +1,98 @@
1
+ interface FpInfoMap {
2
+ userAgent: string;
3
+ webdriver: boolean;
4
+ language: string;
5
+ colorDepth: number;
6
+ deviceMemory: number;
7
+ hardwareConcurrency: number;
8
+ screenResolution: [number, number];
9
+ availableScreenResolution: [number, number];
10
+ timezoneOffset: number;
11
+ timezone: string;
12
+ sessionStorage: boolean;
13
+ localStorage: boolean;
14
+ indexedDb: boolean;
15
+ addBehavior: boolean;
16
+ openDatabase: boolean;
17
+ cpuClass: string;
18
+ platform: string;
19
+ plugins: [string, string, [string, string][]][];
20
+ canvas: [string, string];
21
+ webgl: string[];
22
+ webglVendorAndRenderer: string;
23
+ hasLiedLanguages: boolean;
24
+ hasLiedResolution: boolean;
25
+ hasLiedOs: boolean;
26
+ hasLiedBrowser: boolean;
27
+ touchSupport: [number, boolean, boolean];
28
+ fonts: string[];
29
+ audio: string;
30
+ }
31
+ type FpItem<K extends keyof FpInfoMap> = {
32
+ key: K;
33
+ value: FpInfoMap[K];
34
+ };
35
+ export type FpInfo = FpItem<keyof FpInfoMap>[];
36
+ export declare function fpGet<K extends keyof FpInfoMap>(fp: FpInfo, key: K): FpInfoMap[K];
37
+ export declare function getExClimbWuzhiPayload(fp: FpInfo, info: {
38
+ uuid: string;
39
+ timestamp: string;
40
+ browser_resolution: string;
41
+ abtest: string;
42
+ }): {
43
+ "3064": number;
44
+ "5062": string;
45
+ "03bf": string;
46
+ "39c8": string;
47
+ "34f1": string;
48
+ d402: string;
49
+ "654a": string;
50
+ "6e7c": string;
51
+ "3c43": {
52
+ "2673": number;
53
+ "5766": number;
54
+ "6527": number;
55
+ "7003": number;
56
+ "807e": number;
57
+ b8ce: string;
58
+ "641c": number;
59
+ "07a4": string;
60
+ "1c57": number;
61
+ "0bd0": number;
62
+ "748e": [number, number];
63
+ d61f: [number, number];
64
+ fc9d: number;
65
+ "6aa9": string;
66
+ "75b8": number;
67
+ "3b21": number;
68
+ "8a1c": number;
69
+ d52f: string;
70
+ adca: string;
71
+ "80c9": [string, string, [string, string][]][];
72
+ "13ab": string;
73
+ bfe9: string;
74
+ a3c1: string[];
75
+ "6bc5": string;
76
+ ed31: number;
77
+ "72bd": number;
78
+ "097b": number;
79
+ "52cd": number[];
80
+ a658: string[];
81
+ d02f: string;
82
+ };
83
+ "54ef": string;
84
+ "8b94": string;
85
+ df35: string;
86
+ "07a4": string;
87
+ "5f45": null;
88
+ db46: number;
89
+ };
90
+ /** 生成虚拟指纹信息 */
91
+ export declare function generateFakeFpInfo(info: {
92
+ canvas: string;
93
+ webgl: string;
94
+ userAgent: string;
95
+ platform: string;
96
+ }): FpInfo;
97
+ export declare const mockFpInfo: FpInfo;
98
+ export {};