floating-live 0.12.0 → 0.13.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.
Files changed (63) hide show
  1. package/README.md +7 -8
  2. package/index.d.ts +3 -3
  3. package/index.js +3 -3
  4. package/package.json +4 -2
  5. package/plugin/acfun/acfunLive.d.ts +3 -3
  6. package/plugin/acfun/acfunLive.js +10 -10
  7. package/plugin/acfun/index.d.ts +1 -0
  8. package/plugin/acfun/index.js +3 -2
  9. package/plugin/bilibili/index.d.ts +1 -0
  10. package/plugin/bilibili/index.js +17 -4
  11. package/plugin/bilibili/parser.d.ts +6 -0
  12. package/plugin/bilibili/{bilibiliLive.js → parser.js} +132 -231
  13. package/plugin/bilibili/room.d.ts +77 -0
  14. package/plugin/bilibili/room.js +261 -0
  15. package/plugin/bilibili/types.d.ts +424 -0
  16. package/plugin/bilibili/utils.d.ts +16 -0
  17. package/plugin/bilibili/utils.js +140 -0
  18. package/plugin/chatPrint/chatPrint.d.ts +2 -2
  19. package/plugin/chatPrint/chatPrint.js +16 -6
  20. package/plugin/chatPrint/index.d.ts +1 -0
  21. package/plugin/chatPrint/index.js +2 -1
  22. package/plugin/consoleEvent/index.d.ts +1 -0
  23. package/plugin/consoleEvent/index.js +16 -21
  24. package/plugin/msgSave/index.d.ts +3 -1
  25. package/plugin/msgSave/index.js +25 -30
  26. package/plugin/msgSave/msgSave.d.ts +5 -5
  27. package/plugin/msgSave/msgSave.js +25 -9
  28. package/src/abstract/LiveRoom.d.ts +44 -0
  29. package/src/{lib → abstract}/LiveRoom.js +12 -7
  30. package/src/enum.d.ts +4 -2
  31. package/src/enum.js +9 -7
  32. package/src/index.d.ts +13 -37
  33. package/src/index.js +12 -74
  34. package/src/module/ModAuth.d.ts +8 -0
  35. package/src/module/ModAuth.js +14 -0
  36. package/src/module/ModCommand.d.ts +3 -0
  37. package/src/module/ModCommand.js +6 -0
  38. package/src/module/ModMessage.d.ts +9 -0
  39. package/src/module/ModMessage.js +12 -0
  40. package/src/module/{Plugin.d.ts → ModPlugin.d.ts} +2 -6
  41. package/src/module/{Plugin.js → ModPlugin.js} +20 -18
  42. package/src/module/ModRooms.d.ts +36 -0
  43. package/src/module/{Room.js → ModRooms.js} +50 -31
  44. package/src/types/index.d.ts +1 -2
  45. package/src/types/index.js +1 -2
  46. package/src/types/message.d.ts +210 -0
  47. package/src/types/plugin.d.ts +4 -5
  48. package/src/types/room.d.ts +48 -2
  49. package/src/utils.d.ts +2 -0
  50. package/src/{tool.js → utils.js} +4 -4
  51. package/test/type/bilibili_getInfoByRoom.d.ts +492 -0
  52. package/plugin/bilibili/bilibiliLive.d.ts +0 -58
  53. package/src/lib/LiveRoom.d.ts +0 -89
  54. package/src/module/Command.d.ts +0 -3
  55. package/src/module/Command.js +0 -6
  56. package/src/module/Room.d.ts +0 -26
  57. package/src/tool.d.ts +0 -2
  58. package/src/types/message/AttributeInfo.d.ts +0 -67
  59. package/src/types/message/MessageData.d.ts +0 -166
  60. /package/{src/types/message/AttributeInfo.js → plugin/bilibili/types.js} +0 -0
  61. /package/src/{lib → abstract}/Reglist.d.ts +0 -0
  62. /package/src/{lib → abstract}/Reglist.js +0 -0
  63. /package/src/types/{message/MessageData.js → message.js} +0 -0
@@ -0,0 +1,492 @@
1
+ export interface RawInfo {
2
+ room_info: {
3
+ /** 用户uid */
4
+ uid: number;
5
+ /** 房间id */
6
+ room_id: number;
7
+ /** 短id */
8
+ short_id: number;
9
+ /** 直播间标题 */
10
+ title: string;
11
+ /** 直播间封面 */
12
+ cover: string;
13
+ /** 直播间标签 */
14
+ tags: string;
15
+ /** 直播间背景 */
16
+ background: string;
17
+ /** 直播间简介 */
18
+ description: string;
19
+ /** 直播状态 */
20
+ live_status: number;
21
+ /** 直播开始时间(s) */
22
+ live_start_time: number;
23
+ /** 是否被封禁 */
24
+ lock_status: number;
25
+ /** 封禁时间 */
26
+ lock_time: number;
27
+ /** 是否被隐藏 */
28
+ hidden_status: number;
29
+ /** 隐藏时间 */
30
+ hidden_time: number;
31
+ /** 分区id */
32
+ area_id: number;
33
+ /** 分区名 */
34
+ area_name: string;
35
+ /** 一级分区id */
36
+ parent_area_id: number;
37
+ /** 一级分区名 */
38
+ parent_area_name: string;
39
+ /** session */
40
+ up_session: string;
41
+ /** 直播场次id */
42
+ live_id: number;
43
+ /** 直播场次id */
44
+ live_id_str: string;
45
+ /** 观看数 */
46
+ online: number;
47
+ };
48
+ /** 主播信息 */
49
+ anchor_info: {
50
+ /** 基本信息 */
51
+ base_info: {
52
+ /** 用户名 */
53
+ uname: string;
54
+ /** 头像 */
55
+ face: string;
56
+ /** 性别 */
57
+ gender: string;
58
+ /** 官方信息 */
59
+ official_info: {
60
+ role: number;
61
+ title: string;
62
+ desc: string;
63
+ };
64
+ };
65
+ /** 直播信息 */
66
+ live_info: {
67
+ /** 主播等级 */
68
+ level: number;
69
+ /** 等级颜色 */
70
+ level_color: number;
71
+ /** 经验值 */
72
+ score: number;
73
+ /** 下一级所需经验值 */
74
+ upgrade_score: number;
75
+ /** 当前等级 */
76
+ current: [number, number];
77
+ /** 下一等级 */
78
+ next: [number, number];
79
+ /** 直播间排名 */
80
+ rank: string;
81
+ };
82
+ /** 直播间粉丝牌信息 */
83
+ medal_info: {
84
+ /** 粉丝牌名称 */
85
+ medal_name: string;
86
+ /** 粉丝牌id */
87
+ medal_id: number;
88
+ /** 粉丝团成员数 */
89
+ fansclub: number;
90
+ };
91
+ };
92
+ /** 公告信息 */
93
+ news_info: {
94
+ /** uid */
95
+ uid: number;
96
+ /** 创建时间 */
97
+ ctime: string;
98
+ /** 公告内容 */
99
+ content: string;
100
+ };
101
+ /** 分区排名信息 */
102
+ area_rank_info: {
103
+ areaRank: {
104
+ index: number;
105
+ rank: string;
106
+ };
107
+ liveRank: {
108
+ rank: string;
109
+ };
110
+ };
111
+ /** sc信息 */
112
+ super_chat_info: {
113
+ status: number;
114
+ ranked_mark: number;
115
+ message_list: [];
116
+ };
117
+ /** 在线榜单信息 */
118
+ online_gold_rank_info_v2: {
119
+ list: {
120
+ uid: number;
121
+ face: string;
122
+ uname: string;
123
+ score: string;
124
+ rank: number;
125
+ guard_level: number;
126
+ }[];
127
+ };
128
+ watched_show: {
129
+ num: number;
130
+ text_small: string;
131
+ text_large: string;
132
+ };
133
+ show_reserve_status: false;
134
+ /** 点赞信息 */
135
+ like_info_v3: {
136
+ /** 总点赞数 */
137
+ total_likes: number;
138
+ };
139
+ /** 大航海信息 */
140
+ guard_info: {
141
+ count: number;
142
+ anchor_guard_achieve_level: number;
143
+ };
144
+ room_rank_info: {
145
+ user_rank_entry: {
146
+ /** 贡献榜排行 */
147
+ user_contribution_rank_entry: {
148
+ item: {
149
+ uid: number;
150
+ name: string;
151
+ face: string;
152
+ rank: number;
153
+ score: number;
154
+ medal_info: null;
155
+ guard_level: number;
156
+ wealth_level: number;
157
+ }[];
158
+ /** 贡献榜总数 */
159
+ count: number;
160
+ /** 最大显示数量 */
161
+ show_max: number;
162
+ };
163
+ };
164
+ };
165
+ }
166
+ declare const bilibili_getInfoByRoom_expamle: {
167
+ room_info: {
168
+ uid: number;
169
+ room_id: number;
170
+ short_id: number;
171
+ title: string;
172
+ cover: string;
173
+ tags: string;
174
+ background: string;
175
+ description: string;
176
+ live_status: number;
177
+ live_start_time: number;
178
+ live_screen_type: number;
179
+ lock_status: number;
180
+ lock_time: number;
181
+ hidden_status: number;
182
+ hidden_time: number;
183
+ area_id: number;
184
+ area_name: string;
185
+ parent_area_id: number;
186
+ parent_area_name: string;
187
+ keyframe: string;
188
+ special_type: number;
189
+ up_session: string;
190
+ pk_status: number;
191
+ is_studio: boolean;
192
+ pendants: {
193
+ frame: {
194
+ name: string;
195
+ value: string;
196
+ desc: string;
197
+ };
198
+ };
199
+ on_voice_join: number;
200
+ online: number;
201
+ room_type: {
202
+ "2-3": number;
203
+ "3-19": number;
204
+ "3-21": number;
205
+ "3-50": number;
206
+ "3-51": number;
207
+ };
208
+ };
209
+ anchor_info: {
210
+ base_info: {
211
+ uname: string;
212
+ face: string;
213
+ gender: string;
214
+ official_info: {
215
+ role: number;
216
+ title: string;
217
+ desc: string;
218
+ is_nft: number;
219
+ nft_dmark: string;
220
+ };
221
+ };
222
+ live_info: {
223
+ level: number;
224
+ level_color: number;
225
+ score: number;
226
+ upgrade_score: number;
227
+ current: number[];
228
+ next: never[];
229
+ rank: string;
230
+ };
231
+ relation_info: {
232
+ attention: number;
233
+ };
234
+ medal_info: {
235
+ medal_name: string;
236
+ medal_id: number;
237
+ fansclub: number;
238
+ };
239
+ };
240
+ news_info: {
241
+ uid: number;
242
+ ctime: string;
243
+ content: string;
244
+ };
245
+ rankdb_info: {
246
+ roomid: number;
247
+ rank_desc: string;
248
+ color: string;
249
+ h5_url: string;
250
+ web_url: string;
251
+ timestamp: number;
252
+ };
253
+ area_rank_info: {
254
+ areaRank: {
255
+ index: number;
256
+ rank: string;
257
+ };
258
+ liveRank: {
259
+ rank: string;
260
+ };
261
+ };
262
+ battle_rank_entry_info: null;
263
+ tab_info: {
264
+ list: {
265
+ type: string;
266
+ desc: string;
267
+ isFirst: number;
268
+ isEvent: number;
269
+ eventType: string;
270
+ listType: string;
271
+ apiPrefix: string;
272
+ rank_name: string;
273
+ }[];
274
+ };
275
+ activity_init_info: {
276
+ eventList: never[];
277
+ weekInfo: {
278
+ bannerInfo: null;
279
+ giftName: null;
280
+ };
281
+ giftName: null;
282
+ lego: {
283
+ timestamp: number;
284
+ config: string;
285
+ };
286
+ };
287
+ voice_join_info: {
288
+ status: null;
289
+ icons: null;
290
+ web_share_link: string;
291
+ };
292
+ ad_banner_info: {
293
+ data: null;
294
+ };
295
+ skin_info: {
296
+ id: number;
297
+ skin_name: string;
298
+ skin_config: string;
299
+ show_text: string;
300
+ skin_url: string;
301
+ start_time: number;
302
+ end_time: number;
303
+ current_time: number;
304
+ };
305
+ web_banner_info: {
306
+ id: number;
307
+ title: string;
308
+ left: string;
309
+ right: string;
310
+ jump_url: string;
311
+ bg_color: string;
312
+ hover_color: string;
313
+ text_bg_color: string;
314
+ text_hover_color: string;
315
+ link_text: string;
316
+ link_color: string;
317
+ input_color: string;
318
+ input_text_color: string;
319
+ input_hover_color: string;
320
+ input_border_color: string;
321
+ input_search_color: string;
322
+ };
323
+ lol_info: null;
324
+ pk_info: null;
325
+ battle_info: null;
326
+ silent_room_info: {
327
+ type: string;
328
+ level: number;
329
+ second: number;
330
+ expire_time: number;
331
+ };
332
+ switch_info: {
333
+ close_guard: boolean;
334
+ close_gift: boolean;
335
+ close_online: boolean;
336
+ close_danmaku: boolean;
337
+ };
338
+ record_switch_info: null;
339
+ room_config_info: {
340
+ dm_text: string;
341
+ };
342
+ gift_memory_info: {
343
+ list: null;
344
+ };
345
+ new_switch_info: {
346
+ "room-socket": number;
347
+ "room-prop-send": number;
348
+ "room-sailing": number;
349
+ "room-info-popularity": number;
350
+ "room-danmaku-editor": number;
351
+ "room-effect": number;
352
+ "room-fans_medal": number;
353
+ "room-report": number;
354
+ "room-feedback": number;
355
+ "room-player-watermark": number;
356
+ "room-recommend-live_off": number;
357
+ "room-activity": number;
358
+ "room-web_banner": number;
359
+ "room-silver_seeds-box": number;
360
+ "room-wishing_bottle": number;
361
+ "room-board": number;
362
+ "room-supplication": number;
363
+ "room-hour_rank": number;
364
+ "room-week_rank": number;
365
+ "room-anchor_rank": number;
366
+ "room-info-integral": number;
367
+ "room-super-chat": number;
368
+ "room-tab": number;
369
+ "room-hot-rank": number;
370
+ "fans-medal-progress": number;
371
+ "gift-bay-screen": number;
372
+ "room-enter": number;
373
+ "room-my-idol": number;
374
+ "room-topic": number;
375
+ "fans-club": number;
376
+ };
377
+ super_chat_info: {
378
+ status: number;
379
+ jump_url: string;
380
+ icon: string;
381
+ ranked_mark: number;
382
+ message_list: never[];
383
+ };
384
+ online_gold_rank_info_v2: {
385
+ list: {
386
+ uid: number;
387
+ face: string;
388
+ uname: string;
389
+ score: string;
390
+ rank: number;
391
+ guard_level: number;
392
+ }[];
393
+ };
394
+ dm_brush_info: {
395
+ min_time: number;
396
+ brush_count: number;
397
+ slice_count: number;
398
+ storage_time: number;
399
+ };
400
+ dm_emoticon_info: {
401
+ is_open_emoticon: number;
402
+ is_shield_emoticon: number;
403
+ };
404
+ dm_tag_info: {
405
+ dm_tag: number;
406
+ platform: never[];
407
+ extra: string;
408
+ dm_chronos_extra: string;
409
+ dm_mode: never[];
410
+ dm_setting_switch: number;
411
+ material_conf: null;
412
+ };
413
+ topic_info: {
414
+ topic_id: number;
415
+ topic_name: string;
416
+ };
417
+ game_info: {
418
+ game_status: number;
419
+ };
420
+ watched_show: {
421
+ switch: boolean;
422
+ num: number;
423
+ text_small: string;
424
+ text_large: string;
425
+ icon: string;
426
+ icon_location: number;
427
+ icon_web: string;
428
+ };
429
+ topic_room_info: {
430
+ interactive_h5_url: string;
431
+ watermark: number;
432
+ };
433
+ show_reserve_status: boolean;
434
+ second_create_info: {
435
+ click_permission: number;
436
+ common_permission: number;
437
+ icon_name: string;
438
+ icon_url: string;
439
+ url: string;
440
+ };
441
+ play_together_info: {
442
+ switch: number;
443
+ icon_list: {
444
+ icon: string;
445
+ title: string;
446
+ jump_url: string;
447
+ status: number;
448
+ }[];
449
+ };
450
+ cloud_game_info: {
451
+ is_gaming: number;
452
+ };
453
+ gift_star: {
454
+ show: boolean;
455
+ };
456
+ like_info_v3: {
457
+ total_likes: number;
458
+ click_block: boolean;
459
+ count_block: boolean;
460
+ guild_emo_text: string;
461
+ guild_dm_text: string;
462
+ like_dm_text: string;
463
+ hand_icons: string[];
464
+ dm_icons: string[];
465
+ eggshells_icon: string;
466
+ count_show_time: number;
467
+ process_icon: string;
468
+ process_color: string;
469
+ };
470
+ live_play_info: {
471
+ show_widget_banner: boolean;
472
+ };
473
+ multi_voice: {
474
+ switch_status: number;
475
+ members: never[];
476
+ };
477
+ video_connection_info: null;
478
+ player_throttle_info: {
479
+ status: number;
480
+ normal_sleep_time: number;
481
+ fullscreen_sleep_time: number;
482
+ tab_sleep_time: number;
483
+ prompt_time: number;
484
+ };
485
+ guard_info: {
486
+ count: number;
487
+ anchor_guard_achieve_level: number;
488
+ };
489
+ hot_rank_info: null;
490
+ };
491
+ export declare type bilibili_getInfoByRoom = typeof bilibili_getInfoByRoom_expamle;
492
+ export {};
@@ -1,58 +0,0 @@
1
- import { UserInfo } from "../..";
2
- import { KeepLiveWS } from "bilibili-live-ws";
3
- import { LiveRoom, RoomStatsInfo, RoomDetail } from "../..";
4
- declare class bilibiliLive extends LiveRoom {
5
- /** 平台id */
6
- readonly platform: string;
7
- /** 直播间号 */
8
- readonly id: number;
9
- /** 直播间room_id */
10
- roomid: number;
11
- /** 房间信息 */
12
- detail: RoomDetail;
13
- stats: RoomStatsInfo;
14
- /** 房间是否可用 */
15
- available: boolean;
16
- /** 是否连接上房间 */
17
- connected: boolean;
18
- /** 主播信息 */
19
- anchor: UserInfo;
20
- /** 直播间弹幕api模块 */
21
- client: KeepLiveWS | null;
22
- /** 断线重连间隔 */
23
- connectInterval: number;
24
- constructor(id: number, // 房间id
25
- open?: boolean, // 生成房间后是否打开
26
- config?: {
27
- connectInterval: number;
28
- });
29
- /** 获取房间信息 */
30
- getInfo(): Promise<void>;
31
- /** 开启直播间监听 */
32
- open(): Promise<void>;
33
- /** 连接直播服务端 */
34
- createWS(): Promise<void>;
35
- /** 关闭直播间监听 */
36
- close(): void;
37
- /** 获取弹幕消息 */
38
- msg_DANMU_MSG(msg: any): void;
39
- /** 获取互动消息 */
40
- msg_INTERACT_WORD(msg: any): void;
41
- /** 获取礼物消息 */
42
- msg_SEND_GIFT(msg: any): void;
43
- /** 获取舰长开通消息 */
44
- msg_GUARD_BUY(msg: any): void;
45
- /** 获取醒目留言消息 */
46
- msg_SUPER_CHAT_MESSAGE(msg: any): void;
47
- /** 观看数变化 */
48
- msg_WATCHED_CHANGE(msg: any): void;
49
- /** 点赞数变化 */
50
- msg_LIKE_INFO_V3_UPDATE(msg: any): void;
51
- msg_ONLINE_RANK_COUNT(msg: any): void;
52
- msg_ROOM_BLOCK_MSG(msg: any): void;
53
- msg_LIVE(msg: any): void;
54
- msg_CUT_OFF(msg: any): void;
55
- msg_PREPARING(msg: any): void;
56
- msg_ROOM_CHANGE(msg: any): void;
57
- }
58
- export default bilibiliLive;
@@ -1,89 +0,0 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from "events";
3
- import { RoomStatus } from "../enum";
4
- import { MessageData, UserInfo } from "../../src/types";
5
- export interface RoomInfo {
6
- /** 平台id */
7
- platform: string;
8
- /** 房间id */
9
- id: number | string;
10
- /** 房间key */
11
- key: string;
12
- /** 基本信息 */
13
- detail: RoomDetail;
14
- /** 统计信息 */
15
- stats?: RoomStatsInfo;
16
- /** 主播信息 */
17
- anchor: UserInfo;
18
- /** 时间戳 */
19
- timestamp: number;
20
- /** 当前直播id */
21
- liveId?: string;
22
- /** 直播状态 */
23
- status: RoomStatus;
24
- /** 直播间是否可用 */
25
- available: boolean;
26
- /** 房间监听是否打开 */
27
- opening: boolean;
28
- /** 是否连接到房间 */
29
- connected: boolean;
30
- }
31
- /** 房间展示信息 */
32
- export declare type RoomDetail = {
33
- /** 直播标题 */
34
- title?: string;
35
- /** 分区 */
36
- area?: string[];
37
- /** 封面 */
38
- cover?: string;
39
- };
40
- /** 房间统计数据信息 */
41
- export declare type RoomStatsInfo = {
42
- /** 点赞数 */
43
- like?: number;
44
- /** 观看数 */
45
- watch?: number;
46
- /** 在线人数 */
47
- online?: number;
48
- /** 人气值 */
49
- popularity?: number;
50
- };
51
- export declare abstract class LiveRoom extends EventEmitter implements RoomInfo {
52
- constructor();
53
- /** 平台 */
54
- abstract readonly platform: string;
55
- /** 房间id */
56
- abstract readonly id: string | number;
57
- /** 房间详情 */
58
- abstract detail: RoomDetail;
59
- /** 统计信息 */
60
- stats?: RoomStatsInfo;
61
- /** 主播信息 */
62
- abstract anchor: UserInfo;
63
- /** 直播状态 */
64
- status: RoomStatus;
65
- /** 时间戳 */
66
- timestamp: number;
67
- /** 当前直播id */
68
- liveId?: string;
69
- /** 房间是否打开 */
70
- opening: boolean;
71
- /** 房间是否可用 */
72
- abstract available: boolean;
73
- /** 是否连接上房间 */
74
- abstract connected: boolean;
75
- /** 打开连接 */
76
- abstract open(): void;
77
- /** 关闭连接 */
78
- abstract close(): void;
79
- /** 从服务器获取信息 */
80
- abstract getInfo(): void;
81
- /** 销毁事件 */
82
- protected onDestory?(): void;
83
- /** 销毁 */
84
- destory(): void;
85
- protected emitMsg(msg: MessageData): void;
86
- protected emitOrigin(msg: any): void;
87
- get info(): RoomInfo;
88
- get key(): string;
89
- }
@@ -1,3 +0,0 @@
1
- import { Reglist } from "../lib/Reglist";
2
- export default class Command extends Reglist<(e: any, ...args: any) => void> {
3
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const Reglist_1 = require("../lib/Reglist");
4
- class Command extends Reglist_1.Reglist {
5
- }
6
- exports.default = Command;
@@ -1,26 +0,0 @@
1
- import { LiveRoom } from "../lib/LiveRoom";
2
- import { FloatingLive } from "..";
3
- /** 直播间监听实例控制器 */
4
- export declare class RoomController {
5
- readonly main: FloatingLive;
6
- private roomMap;
7
- constructor(main: FloatingLive);
8
- generate(r: {
9
- platform: string;
10
- id: string | number;
11
- }, open?: boolean): LiveRoom | undefined;
12
- /** 添加房间监听对象 */
13
- add(room: LiveRoom, open?: boolean): void;
14
- /** 移除房间 */
15
- remove(roomKey: string): void;
16
- /** 获取房间 */
17
- get(roomKey: string): LiveRoom | undefined;
18
- /** 获取房间信息 */
19
- info(roomKey: string): import("../lib/LiveRoom").RoomInfo | undefined;
20
- /** 更新房间信息 */
21
- update(roomKey: string): void;
22
- /** 获取roomKey列表 */
23
- get keyList(): Array<string>;
24
- open(roomKey: string): void;
25
- close(roomKey: string): void;
26
- }
package/src/tool.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import { MessageData } from './types/message/MessageData';
2
- export declare function generateKey(msg: MessageData): string;