floating-live 0.15.10 → 0.16.0-alpha.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/README.md +14 -10
- package/dist/FloatingLive.d.ts +6 -0
- package/dist/FloatingLive.js +8 -0
- package/dist/app.d.ts +46 -0
- package/dist/app.js +126 -0
- package/dist/command/index.d.ts +1 -0
- package/dist/command/index.js +1 -0
- package/dist/command/manager.d.ts +23 -0
- package/dist/command/manager.js +46 -0
- package/dist/command/types.d.ts +25 -0
- package/{esm/types/command.js → dist/command/types.js} +1 -1
- package/dist/error/index.d.ts +11 -0
- package/dist/error/index.js +9 -0
- package/dist/error/types.d.ts +6 -0
- package/{esm/types/error.js → dist/error/types.js} +1 -1
- package/dist/event/index.d.ts +1 -0
- package/dist/event/index.js +1 -0
- package/dist/event/manager.d.ts +9 -0
- package/dist/event/manager.js +17 -0
- package/dist/event/types.d.ts +42 -0
- package/{esm/types/events.js → dist/event/types.js} +1 -1
- package/dist/hook/index.d.ts +1 -0
- package/dist/hook/index.js +1 -0
- package/dist/hook/manager.d.ts +25 -0
- package/dist/hook/manager.js +79 -0
- package/dist/hook/types.d.ts +22 -0
- package/{esm/types/hook.js → dist/hook/types.js} +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.js +8 -23
- package/dist/{types → live}/message.d.ts +185 -248
- package/{esm/types → dist/live}/message.js +1 -1
- package/dist/live/messageInfo.d.ts +93 -0
- package/dist/live/messageInfo.js +28 -0
- package/dist/live/platform.d.ts +40 -0
- package/dist/live/platform.js +1 -0
- package/dist/live/room.d.ts +150 -0
- package/dist/live/room.js +120 -0
- package/dist/plugin/context/CommonPluginContext.d.ts +45 -0
- package/dist/plugin/context/CommonPluginContext.js +273 -0
- package/dist/plugin/context/SafePluginContext.d.ts +34 -0
- package/dist/plugin/context/SafePluginContext.js +91 -0
- package/dist/plugin/index.d.ts +8 -0
- package/dist/plugin/index.js +5 -0
- package/dist/plugin/manager.d.ts +31 -0
- package/dist/plugin/manager.js +93 -0
- package/dist/plugin/types.d.ts +73 -0
- package/dist/plugin/types.js +1 -0
- package/dist/plugins/room/index.d.ts +116 -0
- package/dist/plugins/room/index.js +172 -0
- package/dist/utils/EventEmitter.d.ts +6 -0
- package/dist/utils/EventEmitter.js +26 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +4 -0
- package/dist/value/index.d.ts +1 -0
- package/dist/value/index.js +1 -0
- package/dist/value/manager.d.ts +24 -0
- package/dist/value/manager.js +63 -0
- package/dist/value/types.d.ts +19 -0
- package/dist/value/types.js +1 -0
- package/package.json +9 -40
- package/src/source.md +29 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/dist/core/LiveRoom.d.ts +0 -44
- package/dist/core/LiveRoom.js +0 -81
- package/dist/core/index.d.ts +0 -1
- package/dist/core/index.js +0 -17
- package/dist/core/plugin.d.ts +0 -17
- package/dist/core/plugin.js +0 -28
- package/dist/enums.d.ts +0 -51
- package/dist/enums.js +0 -59
- package/dist/live.d.ts +0 -39
- package/dist/live.js +0 -51
- package/dist/module/command.d.ts +0 -18
- package/dist/module/command.js +0 -42
- package/dist/module/hook.d.ts +0 -15
- package/dist/module/hook.js +0 -51
- package/dist/module/manifest.d.ts +0 -15
- package/dist/module/manifest.js +0 -44
- package/dist/module/plugin.d.ts +0 -16
- package/dist/module/plugin.js +0 -84
- package/dist/module/room.d.ts +0 -32
- package/dist/module/room.js +0 -159
- package/dist/module/value.d.ts +0 -26
- package/dist/module/value.js +0 -60
- package/dist/types/command.d.ts +0 -23
- package/dist/types/command.js +0 -2
- package/dist/types/error.d.ts +0 -10
- package/dist/types/error.js +0 -2
- package/dist/types/events.d.ts +0 -41
- package/dist/types/events.js +0 -2
- package/dist/types/hook.d.ts +0 -15
- package/dist/types/hook.js +0 -2
- package/dist/types/index.d.ts +0 -9
- package/dist/types/index.js +0 -25
- package/dist/types/manifest.d.ts +0 -4
- package/dist/types/manifest.js +0 -2
- package/dist/types/message.js +0 -2
- package/dist/types/plugin.d.ts +0 -13
- package/dist/types/plugin.js +0 -2
- package/dist/types/room.d.ts +0 -98
- package/dist/types/room.js +0 -2
- package/dist/types/value.d.ts +0 -2
- package/dist/types/value.js +0 -2
- package/dist/utils.d.ts +0 -2
- package/dist/utils.js +0 -21
- package/esm/core/LiveRoom.js +0 -77
- package/esm/core/index.js +0 -1
- package/esm/core/plugin.js +0 -24
- package/esm/enums.js +0 -56
- package/esm/index.js +0 -5
- package/esm/live.js +0 -47
- package/esm/module/command.js +0 -38
- package/esm/module/hook.js +0 -47
- package/esm/module/manifest.js +0 -40
- package/esm/module/plugin.js +0 -80
- package/esm/module/room.js +0 -155
- package/esm/module/value.js +0 -56
- package/esm/types/index.js +0 -9
- package/esm/types/manifest.js +0 -1
- package/esm/types/plugin.js +0 -1
- package/esm/types/room.js +0 -1
- package/esm/types/value.js +0 -1
- package/esm/utils.js +0 -17
package/esm/module/room.js
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/** 直播间监听实例控制器 */
|
|
2
|
-
export class ModRoom {
|
|
3
|
-
constructor(main) {
|
|
4
|
-
this.list = new Map();
|
|
5
|
-
this.main = main;
|
|
6
|
-
const { command } = main;
|
|
7
|
-
command.register("add", this.add.bind(this));
|
|
8
|
-
command.register("remove", this.remove.bind(this));
|
|
9
|
-
command.register("open", this.open.bind(this));
|
|
10
|
-
command.register("close", this.close.bind(this));
|
|
11
|
-
command.register("update", this.update.bind(this));
|
|
12
|
-
}
|
|
13
|
-
/** 添加房间监听实例 */
|
|
14
|
-
addRoom(room, open) {
|
|
15
|
-
let key = room.key;
|
|
16
|
-
if (this.list.has(key)) {
|
|
17
|
-
this.main.throw({
|
|
18
|
-
message: "房间已存在",
|
|
19
|
-
id: "room:add_exist",
|
|
20
|
-
});
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
this.list.set(key, room);
|
|
24
|
-
// 添加监听事件
|
|
25
|
-
// 直播消息
|
|
26
|
-
room.on("message", (data) => {
|
|
27
|
-
this.main.hook.call("message", { message: data }).then((res) => {
|
|
28
|
-
res && this.main.emit("live:message", data);
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
// 直播消息源数据
|
|
32
|
-
room.on("raw", (data, { platform, room }) => {
|
|
33
|
-
this.main.emit("live:raw", data, { platform, room });
|
|
34
|
-
});
|
|
35
|
-
// 正在连接服务器
|
|
36
|
-
room.on("connecting", () => {
|
|
37
|
-
this.main.emit("room:connecting", key);
|
|
38
|
-
});
|
|
39
|
-
// 连接到服务器
|
|
40
|
-
room.on("connected", () => {
|
|
41
|
-
this.main.emit("room:connected", key);
|
|
42
|
-
});
|
|
43
|
-
// 与服务器的连接已断开
|
|
44
|
-
room.on("disconnect", () => {
|
|
45
|
-
this.main.emit("room:disconnect", key);
|
|
46
|
-
});
|
|
47
|
-
// 连接到直播间
|
|
48
|
-
room.on("enter", () => {
|
|
49
|
-
this.main.emit("room:enter", key);
|
|
50
|
-
});
|
|
51
|
-
// 获取房间信息
|
|
52
|
-
room.on("info", () => {
|
|
53
|
-
this.main.emit("room:info", key, room.info);
|
|
54
|
-
});
|
|
55
|
-
// 直播展示信息更改
|
|
56
|
-
room.on("detail", (data) => {
|
|
57
|
-
this.main.emit("room:detail", key, data);
|
|
58
|
-
});
|
|
59
|
-
// 直播状态更改
|
|
60
|
-
room.on("status", (status, { id, timestamp }) => {
|
|
61
|
-
this.main.emit("room:status", key, { status, id, timestamp });
|
|
62
|
-
});
|
|
63
|
-
// 统计数据更新
|
|
64
|
-
room.on("stats", (data) => {
|
|
65
|
-
this.main.emit("room:stats", key, data);
|
|
66
|
-
});
|
|
67
|
-
// 房间被打开
|
|
68
|
-
room.on("open", () => {
|
|
69
|
-
this.main.emit("room:open", key, room.info);
|
|
70
|
-
});
|
|
71
|
-
// 房间被关闭
|
|
72
|
-
room.on("close", () => {
|
|
73
|
-
this.main.emit("room:close", key, room.info);
|
|
74
|
-
});
|
|
75
|
-
if (open) {
|
|
76
|
-
room.open();
|
|
77
|
-
}
|
|
78
|
-
this.main.emit("room:add", key, room.info);
|
|
79
|
-
}
|
|
80
|
-
/** 添加房间 */
|
|
81
|
-
async add(platform, id, options) {
|
|
82
|
-
const opt = typeof options == "boolean" ? { open: options } : options || {};
|
|
83
|
-
const ctx = { platform, id, options: opt };
|
|
84
|
-
const res = await this.main.hook.call("room.add", ctx);
|
|
85
|
-
if (!res) {
|
|
86
|
-
this.main.throw({ message: "无法添加房间", id: "room:add_fail" });
|
|
87
|
-
}
|
|
88
|
-
const room = await this.main.call(`${platform}.room.create`, id, opt);
|
|
89
|
-
if (!room) {
|
|
90
|
-
this.main.throw({ message: "无法创建房间", id: "room:create_fail" });
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
this.addRoom(room);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
/** 移除房间 */
|
|
97
|
-
remove(roomKey) {
|
|
98
|
-
let room = this.list.get(roomKey);
|
|
99
|
-
if (!room) {
|
|
100
|
-
this.main.throw({
|
|
101
|
-
message: "房间不存在",
|
|
102
|
-
id: "room:remove_unexist",
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
this.list.delete(roomKey); // 从表中删除房间
|
|
106
|
-
room?.removeAllListeners(); // 移除房间监听实例
|
|
107
|
-
this.main.emit("room:remove", roomKey);
|
|
108
|
-
}
|
|
109
|
-
/** 获取房间 */
|
|
110
|
-
get(roomKey) {
|
|
111
|
-
return this.list.get(roomKey);
|
|
112
|
-
}
|
|
113
|
-
has(roomKey) {
|
|
114
|
-
return this.list.has(roomKey);
|
|
115
|
-
}
|
|
116
|
-
/** 获取房间信息 */
|
|
117
|
-
info(roomKey) {
|
|
118
|
-
let room = this.list.get(roomKey);
|
|
119
|
-
return room ? room.info : undefined;
|
|
120
|
-
}
|
|
121
|
-
/** 更新房间信息 */
|
|
122
|
-
update(roomKey) {
|
|
123
|
-
let room = this.list.get(roomKey);
|
|
124
|
-
room && room.getInfo();
|
|
125
|
-
}
|
|
126
|
-
/** 获取roomKey列表 */
|
|
127
|
-
get keys() {
|
|
128
|
-
return [...this.list.keys()];
|
|
129
|
-
}
|
|
130
|
-
/** 打开房间连接 */
|
|
131
|
-
open(roomKey) {
|
|
132
|
-
let room = this.list.get(roomKey);
|
|
133
|
-
room?.available && !room.opened && room.open();
|
|
134
|
-
}
|
|
135
|
-
/** 关闭房间连接 */
|
|
136
|
-
close(roomKey) {
|
|
137
|
-
let room = this.list.get(roomKey);
|
|
138
|
-
room?.opened && room.close();
|
|
139
|
-
}
|
|
140
|
-
/** 更改某个房间的顺序 */
|
|
141
|
-
move(roomKey, position) {
|
|
142
|
-
const arr = [...this.list];
|
|
143
|
-
const index = arr.findIndex(([key]) => key == roomKey);
|
|
144
|
-
if (index == -1)
|
|
145
|
-
return;
|
|
146
|
-
const [item] = arr.splice(index, 1);
|
|
147
|
-
arr.splice(position, 0, item);
|
|
148
|
-
this.list = new Map(arr);
|
|
149
|
-
this.main.emit("room:move", roomKey, position);
|
|
150
|
-
}
|
|
151
|
-
/** 获取快照 */
|
|
152
|
-
getSnapshot() {
|
|
153
|
-
return [...this.list.values()].map((room) => room.info);
|
|
154
|
-
}
|
|
155
|
-
}
|
package/esm/module/value.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
export class ModValue {
|
|
2
|
-
constructor(main) {
|
|
3
|
-
this.list = new Map();
|
|
4
|
-
this.main = main;
|
|
5
|
-
const { command } = main;
|
|
6
|
-
command.register("get", this.get.bind(this));
|
|
7
|
-
command.register("set", this.set.bind(this));
|
|
8
|
-
}
|
|
9
|
-
/** 注册值 */
|
|
10
|
-
register(name, config) {
|
|
11
|
-
this.list.set(name, config);
|
|
12
|
-
this.main.emit("value:add", name);
|
|
13
|
-
this.main.emit("value:change", name, config.get());
|
|
14
|
-
}
|
|
15
|
-
/** 取消注册 */
|
|
16
|
-
unregister(name) {
|
|
17
|
-
this.list.delete(name);
|
|
18
|
-
this.main.emit("value:remove", name);
|
|
19
|
-
}
|
|
20
|
-
/** 获取值 */
|
|
21
|
-
get(name) {
|
|
22
|
-
return this.list.get(name)?.get();
|
|
23
|
-
}
|
|
24
|
-
/** 设置值 */
|
|
25
|
-
set(name, value) {
|
|
26
|
-
const valueConfig = this.list.get(name);
|
|
27
|
-
if (valueConfig?.set) {
|
|
28
|
-
valueConfig?.set(value);
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
has(name) {
|
|
36
|
-
return this.list.has(name);
|
|
37
|
-
}
|
|
38
|
-
emit(name, value) {
|
|
39
|
-
this.main.emit(`change:${name}`, value);
|
|
40
|
-
this.main.emit("value:change", name, value);
|
|
41
|
-
}
|
|
42
|
-
watch(name, listener) {
|
|
43
|
-
this.main.on(`change:${name}`, listener);
|
|
44
|
-
}
|
|
45
|
-
unwatch(name, listener) {
|
|
46
|
-
this.main.off(`change:${name}`, listener);
|
|
47
|
-
}
|
|
48
|
-
/** 获取注册的所有值 */
|
|
49
|
-
getSnapshot() {
|
|
50
|
-
const map = {};
|
|
51
|
-
this.list.forEach((config, name) => {
|
|
52
|
-
map[name] = config.get();
|
|
53
|
-
});
|
|
54
|
-
return map;
|
|
55
|
-
}
|
|
56
|
-
}
|
package/esm/types/index.js
DELETED
package/esm/types/manifest.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/esm/types/plugin.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/esm/types/room.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/esm/types/value.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/esm/utils.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export function generateId(msg) {
|
|
2
|
-
switch (msg.type) {
|
|
3
|
-
case "gift":
|
|
4
|
-
return `gift:${msg.info.user.id}-${msg.timestamp}`;
|
|
5
|
-
case "superchat":
|
|
6
|
-
return `superchat:${msg.info.id}`;
|
|
7
|
-
case "membership":
|
|
8
|
-
return `membership:${msg.info.user.id}-${msg.info.level || 0}-${msg.timestamp}`;
|
|
9
|
-
default:
|
|
10
|
-
if (/^live_/.test(msg.type)) {
|
|
11
|
-
return `${msg.type}:${msg.platform}:${msg.room}-${msg.timestamp}`;
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
return `${msg.type}:${msg.info.user?.id || 0}-${msg.timestamp}`;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|