ziplayer 0.2.7-dev.3 → 0.3.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/AI-Guide.md +624 -607
- package/README.md +526 -524
- package/dist/plugins/index.d.ts +62 -12
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +497 -57
- package/dist/plugins/index.js.map +1 -1
- package/dist/structures/PersistenceManager.d.ts +96 -0
- package/dist/structures/PersistenceManager.d.ts.map +1 -0
- package/dist/structures/PersistenceManager.js +1008 -0
- package/dist/structures/PersistenceManager.js.map +1 -0
- package/dist/structures/Player.d.ts +109 -18
- package/dist/structures/Player.d.ts.map +1 -1
- package/dist/structures/Player.js +902 -182
- package/dist/structures/Player.js.map +1 -1
- package/dist/structures/PlayerManager.d.ts +1 -22
- package/dist/structures/PlayerManager.d.ts.map +1 -1
- package/dist/structures/PlayerManager.js +1 -73
- package/dist/structures/PlayerManager.js.map +1 -1
- package/dist/structures/StreamManager.d.ts +137 -0
- package/dist/structures/StreamManager.d.ts.map +1 -0
- package/dist/structures/StreamManager.js +420 -0
- package/dist/structures/StreamManager.js.map +1 -0
- package/dist/types/index.d.ts +149 -16
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/persistence.d.ts +3 -2
- package/dist/types/persistence.d.ts.map +1 -1
- package/package.json +47 -47
- package/src/extensions/BaseExtension.ts +36 -36
- package/src/extensions/index.ts +473 -473
- package/src/index.ts +16 -16
- package/src/plugins/BasePlugin.ts +27 -27
- package/src/plugins/index.ts +950 -403
- package/src/structures/FilterManager.ts +303 -303
- package/src/structures/Player.ts +2797 -1970
- package/src/structures/PlayerManager.ts +725 -822
- package/src/structures/Queue.ts +599 -599
- package/src/structures/StreamManager.ts +524 -0
- package/src/types/extension.ts +129 -129
- package/src/types/fillter.ts +264 -264
- package/src/types/index.ts +548 -415
- package/src/types/plugin.ts +59 -59
- package/src/utils/timeout.ts +10 -10
- package/tsconfig.json +22 -22
- package/src/persistence/PersistenceManager.ts +0 -1077
- package/src/types/persistence.ts +0 -85
package/dist/types/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Readable } from "stream";
|
|
|
2
2
|
import { Player } from "../structures/Player";
|
|
3
3
|
import type { AudioFilter } from "./fillter";
|
|
4
4
|
import type { SourcePluginLike } from "./plugin";
|
|
5
|
-
import type {
|
|
5
|
+
import type { AudioResource } from "@discordjs/voice";
|
|
6
6
|
/**
|
|
7
7
|
* Represents a music track with metadata and streaming information.
|
|
8
8
|
*
|
|
@@ -87,9 +87,18 @@ export interface SearchResult {
|
|
|
87
87
|
tracks: Track[];
|
|
88
88
|
playlist?: {
|
|
89
89
|
name: string;
|
|
90
|
-
url
|
|
90
|
+
url?: string;
|
|
91
91
|
thumbnail?: string;
|
|
92
|
-
};
|
|
92
|
+
} | null;
|
|
93
|
+
query?: string;
|
|
94
|
+
score?: SearchScore;
|
|
95
|
+
source?: string;
|
|
96
|
+
}
|
|
97
|
+
export interface SearchScore {
|
|
98
|
+
score: number;
|
|
99
|
+
reason: string;
|
|
100
|
+
matchedBy: "url" | "title" | "partial" | "none" | "playlist";
|
|
101
|
+
exactMatch: boolean;
|
|
93
102
|
}
|
|
94
103
|
/**
|
|
95
104
|
* Contains streaming information for audio playback.
|
|
@@ -174,6 +183,121 @@ export interface PlayerOptions {
|
|
|
174
183
|
* - Multiple filters can be combined
|
|
175
184
|
*/
|
|
176
185
|
filters?: (string | AudioFilter)[];
|
|
186
|
+
/**
|
|
187
|
+
* Enable low performance mode.
|
|
188
|
+
* When enabled, heavy features such as preload and crossfade can be auto-disabled.
|
|
189
|
+
*/
|
|
190
|
+
lowPerformance?: boolean;
|
|
191
|
+
/**
|
|
192
|
+
* Preload behavior configuration.
|
|
193
|
+
*/
|
|
194
|
+
preload?: {
|
|
195
|
+
/**
|
|
196
|
+
* Enable/disable preload explicitly.
|
|
197
|
+
* Default: true
|
|
198
|
+
*/
|
|
199
|
+
enabled?: boolean;
|
|
200
|
+
/**
|
|
201
|
+
* Auto disable preload when lowPerformance is enabled.
|
|
202
|
+
* Default: true
|
|
203
|
+
*/
|
|
204
|
+
autoDisableInLowPerformance?: boolean;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* Crossfade behavior configuration.
|
|
208
|
+
*/
|
|
209
|
+
crossfade?: {
|
|
210
|
+
/**
|
|
211
|
+
* Enable/disable crossfade explicitly.
|
|
212
|
+
* If omitted and autoEnable=true, ZiPlayer may enable it automatically.
|
|
213
|
+
*/
|
|
214
|
+
enabled?: boolean;
|
|
215
|
+
/**
|
|
216
|
+
* Auto enable crossfade if runtime profile allows.
|
|
217
|
+
* Default: true
|
|
218
|
+
*/
|
|
219
|
+
autoEnable?: boolean;
|
|
220
|
+
/**
|
|
221
|
+
* Auto disable crossfade when lowPerformance is enabled.
|
|
222
|
+
* Default: true
|
|
223
|
+
*/
|
|
224
|
+
autoDisableInLowPerformance?: boolean;
|
|
225
|
+
/**
|
|
226
|
+
* Target crossfade duration in milliseconds.
|
|
227
|
+
* Default: 5000
|
|
228
|
+
*/
|
|
229
|
+
durationMs?: number;
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Smart transition engine settings.
|
|
233
|
+
*/
|
|
234
|
+
smartTransition?: {
|
|
235
|
+
enabled?: boolean;
|
|
236
|
+
/**
|
|
237
|
+
* Prefer genre-aware fade duration when metadata.genre is available.
|
|
238
|
+
*/
|
|
239
|
+
genreAware?: boolean;
|
|
240
|
+
/**
|
|
241
|
+
* Try to align transition with beat boundary using metadata.bpm.
|
|
242
|
+
*/
|
|
243
|
+
beatAlign?: boolean;
|
|
244
|
+
/**
|
|
245
|
+
* Base duration in milliseconds when no specific profile matched.
|
|
246
|
+
*/
|
|
247
|
+
baseDurationMs?: number;
|
|
248
|
+
minDurationMs?: number;
|
|
249
|
+
maxDurationMs?: number;
|
|
250
|
+
/**
|
|
251
|
+
* Genre profiles in milliseconds (e.g. chill, edm, pop, rock).
|
|
252
|
+
*/
|
|
253
|
+
genreDurations?: Record<string, number>;
|
|
254
|
+
/**
|
|
255
|
+
* Max wait time while trying to align to beat boundary.
|
|
256
|
+
*/
|
|
257
|
+
beatAlignMaxWaitMs?: number;
|
|
258
|
+
};
|
|
259
|
+
/**
|
|
260
|
+
* Recovery strategy for stream/player failures.
|
|
261
|
+
*/
|
|
262
|
+
antiStuck?: {
|
|
263
|
+
enabled?: boolean;
|
|
264
|
+
maxRetries?: number;
|
|
265
|
+
retryDelayMs?: number;
|
|
266
|
+
/**
|
|
267
|
+
* Reuse preload/current cached stream before hard retries.
|
|
268
|
+
*/
|
|
269
|
+
reusePreloadFirst?: boolean;
|
|
270
|
+
/**
|
|
271
|
+
* Temporarily force low quality during retry attempts.
|
|
272
|
+
*/
|
|
273
|
+
reduceQualityOnRetry?: boolean;
|
|
274
|
+
/**
|
|
275
|
+
* If consecutive failures exceed this threshold, allow skipping track.
|
|
276
|
+
*/
|
|
277
|
+
controlledSkipThreshold?: number;
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* Loudness normalization and limiter.
|
|
281
|
+
*/
|
|
282
|
+
loudnessNormalization?: {
|
|
283
|
+
enabled?: boolean;
|
|
284
|
+
/**
|
|
285
|
+
* Target LUFS (integrated). Track metadata.lufs is used if available.
|
|
286
|
+
*/
|
|
287
|
+
targetLUFS?: number;
|
|
288
|
+
/**
|
|
289
|
+
* Cap gain boost to avoid over-amplification.
|
|
290
|
+
*/
|
|
291
|
+
maxBoostDb?: number;
|
|
292
|
+
/**
|
|
293
|
+
* Cap attenuation.
|
|
294
|
+
*/
|
|
295
|
+
maxCutDb?: number;
|
|
296
|
+
/**
|
|
297
|
+
* Output ceiling multiplier (<= 1.0), acts as soft limiter ceiling.
|
|
298
|
+
*/
|
|
299
|
+
limiterCeiling?: number;
|
|
300
|
+
};
|
|
177
301
|
}
|
|
178
302
|
export interface PlayerManagerOptions {
|
|
179
303
|
plugins?: SourcePluginLike[];
|
|
@@ -183,7 +307,6 @@ export interface PlayerManagerOptions {
|
|
|
183
307
|
cleanupInterval?: number;
|
|
184
308
|
enableSearchCache?: boolean;
|
|
185
309
|
enableStatsCollection?: boolean;
|
|
186
|
-
persistence?: PersistenceOptions;
|
|
187
310
|
}
|
|
188
311
|
/**
|
|
189
312
|
* Options for the progress bar
|
|
@@ -240,6 +363,15 @@ export interface PlayerSession {
|
|
|
240
363
|
plugins: string[];
|
|
241
364
|
userdata?: Record<string, any>;
|
|
242
365
|
}
|
|
366
|
+
export interface PreloadState {
|
|
367
|
+
resource: AudioResource | null;
|
|
368
|
+
track: Track | null;
|
|
369
|
+
abortController: AbortController | null;
|
|
370
|
+
timeoutId: NodeJS.Timeout | null;
|
|
371
|
+
isValid: boolean;
|
|
372
|
+
streamId?: string;
|
|
373
|
+
isBeingUsed: boolean;
|
|
374
|
+
}
|
|
243
375
|
export interface PlayerStats {
|
|
244
376
|
totalPlayers: number;
|
|
245
377
|
activePlayers: number;
|
|
@@ -247,6 +379,15 @@ export interface PlayerStats {
|
|
|
247
379
|
connectedPlayers: number;
|
|
248
380
|
totalTracksInQueue: number;
|
|
249
381
|
}
|
|
382
|
+
export interface StreamSlot {
|
|
383
|
+
resource: AudioResource | null;
|
|
384
|
+
track: Track | null;
|
|
385
|
+
streamId: string | null;
|
|
386
|
+
abortController: AbortController | null;
|
|
387
|
+
isValid: boolean;
|
|
388
|
+
isLoading: boolean;
|
|
389
|
+
loadPromise: Promise<void> | null;
|
|
390
|
+
}
|
|
250
391
|
export type LoopMode = "off" | "track" | "queue";
|
|
251
392
|
export interface VoiceChannel {
|
|
252
393
|
id: string;
|
|
@@ -354,17 +495,7 @@ export interface ManagerEvents {
|
|
|
354
495
|
lyricsChange: [player: Player, track: Track, lyrics: any];
|
|
355
496
|
voiceCreate: [player: Player, evt: any];
|
|
356
497
|
stats: [stats: PlayerStats];
|
|
357
|
-
|
|
358
|
-
playerLoaded: [guildId: string, data: any];
|
|
359
|
-
savedAll: [results: Map<string, boolean>];
|
|
360
|
-
loadedAll: [results: Map<string, boolean>];
|
|
361
|
-
RTSkipped: [guildId: string, reason: string];
|
|
362
|
-
RTMarkedDestroyed: [guildId: string];
|
|
363
|
-
RTDestroyedCleared: [guildId: string];
|
|
364
|
-
backupsCleaned: [guildId: string, count: number];
|
|
365
|
-
allBackupsCleaned: [count: number];
|
|
366
|
-
backupStats: [stats: any];
|
|
367
|
-
backupCleanupDone: [];
|
|
498
|
+
streamError: [error: Error, track: Track | null];
|
|
368
499
|
}
|
|
369
500
|
export interface PlayerEvents {
|
|
370
501
|
debug: [message: string, ...args: any[]];
|
|
@@ -401,9 +532,11 @@ export interface PlayerEvents {
|
|
|
401
532
|
/** Emitted when all filters are cleared */
|
|
402
533
|
filtersCleared: [];
|
|
403
534
|
trackStuck: [track: Track | null];
|
|
535
|
+
streamError: [error: Error, track: Track | null];
|
|
536
|
+
/** Emitted when player stats are updated (if enabled) */
|
|
537
|
+
stats: [stats: PlayerStats];
|
|
404
538
|
}
|
|
405
539
|
export * from "./fillter";
|
|
406
540
|
export * from "./plugin";
|
|
407
541
|
export * from "./extension";
|
|
408
|
-
export * from "./persistence";
|
|
409
542
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js
CHANGED
|
@@ -17,5 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./fillter"), exports);
|
|
18
18
|
__exportStar(require("./plugin"), exports);
|
|
19
19
|
__exportStar(require("./extension"), exports);
|
|
20
|
-
__exportStar(require("./persistence"), exports);
|
|
21
20
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAiiBA,4CAA0B;AAC1B,2CAAyB;AACzB,8CAA4B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LoopMode, PlayerOptions
|
|
1
|
+
import type { LoopMode, PlayerOptions } from "../types";
|
|
2
2
|
export interface SerializedTrack {
|
|
3
3
|
id: string;
|
|
4
4
|
title: string;
|
|
@@ -32,7 +32,8 @@ export interface SerializedPlayer {
|
|
|
32
32
|
version: string;
|
|
33
33
|
wasDestroyed?: boolean;
|
|
34
34
|
destroyedAt?: number;
|
|
35
|
-
|
|
35
|
+
voiceChannelId?: string;
|
|
36
|
+
adapterCreator?: any;
|
|
36
37
|
}
|
|
37
38
|
export interface PersistenceOptions {
|
|
38
39
|
enabled: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/types/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,QAAQ,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/types/persistence.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "ziplayer",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "A modular Discord voice player with plugin system",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"ZiPlayer",
|
|
7
|
-
"discord",
|
|
8
|
-
"music",
|
|
9
|
-
"player",
|
|
10
|
-
"voice",
|
|
11
|
-
"@ziplayer/plugin"
|
|
12
|
-
],
|
|
13
|
-
"homepage": "https://player.ziji.best",
|
|
14
|
-
"bugs": {
|
|
15
|
-
"url": "https://github.com/ZiProject/ZiPlayer/issues"
|
|
16
|
-
},
|
|
17
|
-
"repository": {
|
|
18
|
-
"type": "git",
|
|
19
|
-
"url": "git+https://github.com/ZiProject/ZiPlayer.git"
|
|
20
|
-
},
|
|
21
|
-
"main": "dist/index.js",
|
|
22
|
-
"types": "dist/index.d.ts",
|
|
23
|
-
"scripts": {
|
|
24
|
-
"build": "tsc",
|
|
25
|
-
"dev": "tsc --watch",
|
|
26
|
-
"prepare": "npm run build"
|
|
27
|
-
},
|
|
28
|
-
"dependencies": {
|
|
29
|
-
"@discordjs/voice": "^0.19.0",
|
|
30
|
-
"@snazzah/davey": "^0.1.6",
|
|
31
|
-
"discord-api-types": "^0.38.37",
|
|
32
|
-
"ffmpeg-static": "^5.2.0",
|
|
33
|
-
"libsodium-wrappers": "^0.7.15",
|
|
34
|
-
"lru-cache": "^11.3.6",
|
|
35
|
-
"opusscript": "^0.1.1",
|
|
36
|
-
"prism-media": "^1.3.5"
|
|
37
|
-
},
|
|
38
|
-
"devDependencies": {
|
|
39
|
-
"@types/node": "^20.0.0",
|
|
40
|
-
"typescript": "^5.0.0"
|
|
41
|
-
},
|
|
42
|
-
"overrides": {
|
|
43
|
-
"prism-media": {
|
|
44
|
-
"opusscript": "^0.1.1"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "ziplayer",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "A modular Discord voice player with plugin system",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ZiPlayer",
|
|
7
|
+
"discord",
|
|
8
|
+
"music",
|
|
9
|
+
"player",
|
|
10
|
+
"voice",
|
|
11
|
+
"@ziplayer/plugin"
|
|
12
|
+
],
|
|
13
|
+
"homepage": "https://player.ziji.best",
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/ZiProject/ZiPlayer/issues"
|
|
16
|
+
},
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/ZiProject/ZiPlayer.git"
|
|
20
|
+
},
|
|
21
|
+
"main": "dist/index.js",
|
|
22
|
+
"types": "dist/index.d.ts",
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc",
|
|
25
|
+
"dev": "tsc --watch",
|
|
26
|
+
"prepare": "npm run build"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@discordjs/voice": "^0.19.0",
|
|
30
|
+
"@snazzah/davey": "^0.1.6",
|
|
31
|
+
"discord-api-types": "^0.38.37",
|
|
32
|
+
"ffmpeg-static": "^5.2.0",
|
|
33
|
+
"libsodium-wrappers": "^0.7.15",
|
|
34
|
+
"lru-cache": "^11.3.6",
|
|
35
|
+
"opusscript": "^0.1.1",
|
|
36
|
+
"prism-media": "^1.3.5"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/node": "^20.0.0",
|
|
40
|
+
"typescript": "^5.0.0"
|
|
41
|
+
},
|
|
42
|
+
"overrides": {
|
|
43
|
+
"prism-media": {
|
|
44
|
+
"opusscript": "^0.1.1"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
SourceExtension,
|
|
3
|
-
ExtensionContext,
|
|
4
|
-
SearchResult,
|
|
5
|
-
ExtensionPlayRequest,
|
|
6
|
-
ExtensionPlayResponse,
|
|
7
|
-
ExtensionAfterPlayPayload,
|
|
8
|
-
ExtensionStreamRequest,
|
|
9
|
-
StreamInfo,
|
|
10
|
-
ExtensionSearchRequest,
|
|
11
|
-
} from "../types";
|
|
12
|
-
import type { Player } from "../structures/Player";
|
|
13
|
-
|
|
14
|
-
export abstract class BaseExtension implements SourceExtension {
|
|
15
|
-
abstract name: string;
|
|
16
|
-
abstract version: string;
|
|
17
|
-
priority?: number; // Higher = run first
|
|
18
|
-
abstract player: Player | null;
|
|
19
|
-
abstract active(alas: any): boolean | Promise<boolean>;
|
|
20
|
-
|
|
21
|
-
onRegister?(context: ExtensionContext): void | Promise<void>;
|
|
22
|
-
onDestroy?(context: ExtensionContext): void | Promise<void>;
|
|
23
|
-
beforePlay?(
|
|
24
|
-
context: ExtensionContext,
|
|
25
|
-
payload: ExtensionPlayRequest,
|
|
26
|
-
): Promise<ExtensionPlayResponse | void> | ExtensionPlayResponse | void;
|
|
27
|
-
afterPlay?(context: ExtensionContext, payload: ExtensionAfterPlayPayload): Promise<void> | void;
|
|
28
|
-
provideSearch?(
|
|
29
|
-
context: ExtensionContext,
|
|
30
|
-
payload: ExtensionSearchRequest,
|
|
31
|
-
): Promise<SearchResult | null | undefined> | SearchResult | null | undefined;
|
|
32
|
-
provideStream?(
|
|
33
|
-
context: ExtensionContext,
|
|
34
|
-
payload: ExtensionStreamRequest,
|
|
35
|
-
): Promise<StreamInfo | null | undefined> | StreamInfo | null | undefined;
|
|
36
|
-
}
|
|
1
|
+
import type {
|
|
2
|
+
SourceExtension,
|
|
3
|
+
ExtensionContext,
|
|
4
|
+
SearchResult,
|
|
5
|
+
ExtensionPlayRequest,
|
|
6
|
+
ExtensionPlayResponse,
|
|
7
|
+
ExtensionAfterPlayPayload,
|
|
8
|
+
ExtensionStreamRequest,
|
|
9
|
+
StreamInfo,
|
|
10
|
+
ExtensionSearchRequest,
|
|
11
|
+
} from "../types";
|
|
12
|
+
import type { Player } from "../structures/Player";
|
|
13
|
+
|
|
14
|
+
export abstract class BaseExtension implements SourceExtension {
|
|
15
|
+
abstract name: string;
|
|
16
|
+
abstract version: string;
|
|
17
|
+
priority?: number; // Higher = run first
|
|
18
|
+
abstract player: Player | null;
|
|
19
|
+
abstract active(alas: any): boolean | Promise<boolean>;
|
|
20
|
+
|
|
21
|
+
onRegister?(context: ExtensionContext): void | Promise<void>;
|
|
22
|
+
onDestroy?(context: ExtensionContext): void | Promise<void>;
|
|
23
|
+
beforePlay?(
|
|
24
|
+
context: ExtensionContext,
|
|
25
|
+
payload: ExtensionPlayRequest,
|
|
26
|
+
): Promise<ExtensionPlayResponse | void> | ExtensionPlayResponse | void;
|
|
27
|
+
afterPlay?(context: ExtensionContext, payload: ExtensionAfterPlayPayload): Promise<void> | void;
|
|
28
|
+
provideSearch?(
|
|
29
|
+
context: ExtensionContext,
|
|
30
|
+
payload: ExtensionSearchRequest,
|
|
31
|
+
): Promise<SearchResult | null | undefined> | SearchResult | null | undefined;
|
|
32
|
+
provideStream?(
|
|
33
|
+
context: ExtensionContext,
|
|
34
|
+
payload: ExtensionStreamRequest,
|
|
35
|
+
): Promise<StreamInfo | null | undefined> | StreamInfo | null | undefined;
|
|
36
|
+
}
|