ziplayer 0.3.2 → 0.3.4
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 → AGENTS.md} +717 -624
- package/README.md +658 -526
- package/dist/extensions/BaseExtension.d.ts +10 -1
- package/dist/extensions/BaseExtension.d.ts.map +1 -1
- package/dist/extensions/BaseExtension.js +27 -1
- package/dist/extensions/BaseExtension.js.map +1 -1
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +24 -6
- package/dist/extensions/index.js.map +1 -1
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +105 -51
- package/dist/plugins/index.js.map +1 -1
- package/dist/structures/Player.d.ts +90 -15
- package/dist/structures/Player.d.ts.map +1 -1
- package/dist/structures/Player.js +487 -81
- package/dist/structures/Player.js.map +1 -1
- package/dist/structures/PlayerManager.d.ts +70 -6
- package/dist/structures/PlayerManager.d.ts.map +1 -1
- package/dist/structures/PlayerManager.js +184 -19
- package/dist/structures/PlayerManager.js.map +1 -1
- package/dist/structures/Queue.d.ts +19 -0
- package/dist/structures/Queue.d.ts.map +1 -1
- package/dist/structures/Queue.js +21 -0
- package/dist/structures/Queue.js.map +1 -1
- package/dist/types/extension.d.ts +3 -0
- package/dist/types/extension.d.ts.map +1 -1
- package/dist/types/index.d.ts +69 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +13 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
- package/src/extensions/BaseExtension.ts +31 -1
- package/src/extensions/index.ts +30 -7
- package/src/plugins/index.ts +137 -54
- package/src/structures/Player.ts +2937 -2457
- package/src/structures/PlayerManager.ts +916 -725
- package/src/structures/Queue.ts +621 -599
- package/src/types/extension.ts +3 -0
- package/src/types/index.ts +80 -2
package/dist/types/index.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { Readable } from "stream";
|
|
2
2
|
import { Player } from "../structures/Player";
|
|
3
|
+
import type { PlayerManager } from "../structures/PlayerManager";
|
|
3
4
|
import type { AudioFilter } from "./fillter";
|
|
4
5
|
import type { SourcePluginLike } from "./plugin";
|
|
5
6
|
import type { AudioResource } from "@discordjs/voice";
|
|
7
|
+
export declare enum PlaybackMode {
|
|
8
|
+
NATIVE = "native",
|
|
9
|
+
REMOTE = "remote",
|
|
10
|
+
FORWARD = "forward"
|
|
11
|
+
}
|
|
6
12
|
/**
|
|
7
13
|
* Represents a music track with metadata and streaming information.
|
|
8
14
|
*
|
|
@@ -115,9 +121,42 @@ export interface SearchScore {
|
|
|
115
121
|
*/
|
|
116
122
|
export interface StreamInfo {
|
|
117
123
|
stream: Readable;
|
|
118
|
-
type: "webm/opus" | "ogg/opus" | "arbitrary";
|
|
124
|
+
type: "webm/opus" | "ogg/opus" | "arbitrary" | string;
|
|
119
125
|
metadata?: Record<string, any>;
|
|
126
|
+
remote?: boolean;
|
|
127
|
+
handle?: {
|
|
128
|
+
play(): Promise<void>;
|
|
129
|
+
stop(): Promise<void>;
|
|
130
|
+
pause(): Promise<void>;
|
|
131
|
+
resume(): Promise<void>;
|
|
132
|
+
seek(position: number): Promise<void>;
|
|
133
|
+
setVolume(volume: number): Promise<void>;
|
|
134
|
+
destroy(): Promise<void>;
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/** Passed to each {@link TrackMiddleware} run (before stream resolution). */
|
|
138
|
+
export interface TrackMiddlewareContext {
|
|
139
|
+
player: Player;
|
|
140
|
+
manager: PlayerManager;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Runs immediately before stream extraction (`Player.getStream`): after enqueue, before extension `provideStream` and plugins.
|
|
144
|
+
* Prefer mutating `track` in place (especially `metadata`). If you return another object, its fields are merged into the original
|
|
145
|
+
* `track` reference so queue/current-track pointers stay valid.
|
|
146
|
+
*/
|
|
147
|
+
export type TrackMiddleware = (track: Track, context: TrackMiddlewareContext) => void | Track | Promise<void | Track>;
|
|
148
|
+
/** Options for {@link PlayerManager.subscribeForwardMirror}. */
|
|
149
|
+
export interface PlaybackMirrorOptions {
|
|
150
|
+
leaderGuildId: string;
|
|
151
|
+
followerGuildIds: string[];
|
|
152
|
+
/**
|
|
153
|
+
* When enabled, follower connections subscribe directly
|
|
154
|
+
* to leader.audioPlayer
|
|
155
|
+
* Default: true
|
|
156
|
+
*/
|
|
157
|
+
forwardMode?: boolean;
|
|
120
158
|
}
|
|
159
|
+
export declare function normalizeTrackMiddleware(input?: TrackMiddleware | TrackMiddleware[]): TrackMiddleware[];
|
|
121
160
|
/**
|
|
122
161
|
* Configuration options for creating a new player instance.
|
|
123
162
|
*
|
|
@@ -298,6 +337,11 @@ export interface PlayerOptions {
|
|
|
298
337
|
*/
|
|
299
338
|
limiterCeiling?: number;
|
|
300
339
|
};
|
|
340
|
+
/**
|
|
341
|
+
* Chain of middleware applied to every track immediately before stream extraction (after queueing).
|
|
342
|
+
* Merged after {@link PlayerManagerOptions.trackMiddleware} from the manager.
|
|
343
|
+
*/
|
|
344
|
+
trackMiddleware?: TrackMiddleware | TrackMiddleware[];
|
|
301
345
|
}
|
|
302
346
|
export interface PlayerManagerOptions {
|
|
303
347
|
plugins?: SourcePluginLike[];
|
|
@@ -307,6 +351,10 @@ export interface PlayerManagerOptions {
|
|
|
307
351
|
cleanupInterval?: number;
|
|
308
352
|
enableSearchCache?: boolean;
|
|
309
353
|
enableStatsCollection?: boolean;
|
|
354
|
+
/**
|
|
355
|
+
* Global track middleware for every {@link Player} created from this manager (before per-player middleware).
|
|
356
|
+
*/
|
|
357
|
+
trackMiddleware?: TrackMiddleware | TrackMiddleware[];
|
|
310
358
|
}
|
|
311
359
|
/**
|
|
312
360
|
* Options for the progress bar
|
|
@@ -372,12 +420,27 @@ export interface PreloadState {
|
|
|
372
420
|
streamId?: string;
|
|
373
421
|
isBeingUsed: boolean;
|
|
374
422
|
}
|
|
423
|
+
export interface ForwardHealthStatus {
|
|
424
|
+
guildId: string;
|
|
425
|
+
healthy: boolean;
|
|
426
|
+
role: "leader" | "follower" | "none";
|
|
427
|
+
issues: string[];
|
|
428
|
+
details: {
|
|
429
|
+
leaderId?: string;
|
|
430
|
+
followerCount?: number;
|
|
431
|
+
connectionState?: string;
|
|
432
|
+
audioPlayerState?: string;
|
|
433
|
+
};
|
|
434
|
+
}
|
|
375
435
|
export interface PlayerStats {
|
|
376
436
|
totalPlayers: number;
|
|
437
|
+
leader: number;
|
|
438
|
+
follower: number;
|
|
377
439
|
activePlayers: number;
|
|
378
440
|
pausedPlayers: number;
|
|
379
441
|
connectedPlayers: number;
|
|
380
442
|
totalTracksInQueue: number;
|
|
443
|
+
forwardHealthStatus: ForwardHealthStatus[];
|
|
381
444
|
}
|
|
382
445
|
export interface StreamSlot {
|
|
383
446
|
resource: AudioResource | null;
|
|
@@ -495,7 +558,9 @@ export interface ManagerEvents {
|
|
|
495
558
|
lyricsChange: [player: Player, track: Track, lyrics: any];
|
|
496
559
|
voiceCreate: [player: Player, evt: any];
|
|
497
560
|
stats: [stats: PlayerStats];
|
|
498
|
-
streamError: [error: Error, track: Track | null];
|
|
561
|
+
streamError: [player: Player, error: Error, track: Track | null];
|
|
562
|
+
forwardModeStart: [player: Player, leader: Player];
|
|
563
|
+
forwardModeEnd: [player: Player, leader: Player, reason: string | undefined];
|
|
499
564
|
}
|
|
500
565
|
export interface PlayerEvents {
|
|
501
566
|
debug: [message: string, ...args: any[]];
|
|
@@ -535,6 +600,8 @@ export interface PlayerEvents {
|
|
|
535
600
|
streamError: [error: Error, track: Track | null];
|
|
536
601
|
/** Emitted when player stats are updated (if enabled) */
|
|
537
602
|
stats: [stats: PlayerStats];
|
|
603
|
+
forwardModeStart: [leader: Player];
|
|
604
|
+
forwardModeEnd: [leader: Player, reason: string | undefined];
|
|
538
605
|
}
|
|
539
606
|
export * from "./fillter";
|
|
540
607
|
export * from "./plugin";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
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
|
@@ -14,6 +14,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.PlaybackMode = void 0;
|
|
18
|
+
exports.normalizeTrackMiddleware = normalizeTrackMiddleware;
|
|
19
|
+
var PlaybackMode;
|
|
20
|
+
(function (PlaybackMode) {
|
|
21
|
+
PlaybackMode["NATIVE"] = "native";
|
|
22
|
+
PlaybackMode["REMOTE"] = "remote";
|
|
23
|
+
PlaybackMode["FORWARD"] = "forward";
|
|
24
|
+
})(PlaybackMode || (exports.PlaybackMode = PlaybackMode = {}));
|
|
25
|
+
function normalizeTrackMiddleware(input) {
|
|
26
|
+
if (!input)
|
|
27
|
+
return [];
|
|
28
|
+
return Array.isArray(input) ? input : [input];
|
|
29
|
+
}
|
|
17
30
|
__exportStar(require("./fillter"), exports);
|
|
18
31
|
__exportStar(require("./plugin"), exports);
|
|
19
32
|
__exportStar(require("./extension"), exports);
|
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":";;;;;;;;;;;;;;;;;AAuKA,4DAGC;AAnKD,IAAY,YAIX;AAJD,WAAY,YAAY;IACvB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;AACpB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AA4JD,SAAgB,wBAAwB,CAAC,KAA2C;IACnF,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAqcD,4CAA0B;AAC1B,2CAAyB;AACzB,8CAA4B"}
|
package/package.json
CHANGED
|
@@ -10,14 +10,44 @@ import type {
|
|
|
10
10
|
ExtensionSearchRequest,
|
|
11
11
|
} from "../types";
|
|
12
12
|
import type { Player } from "../structures/Player";
|
|
13
|
+
import { EventEmitter } from "events";
|
|
13
14
|
|
|
14
|
-
export abstract class BaseExtension implements SourceExtension {
|
|
15
|
+
export abstract class BaseExtension extends EventEmitter implements SourceExtension {
|
|
15
16
|
abstract name: string;
|
|
16
17
|
abstract version: string;
|
|
17
18
|
priority?: number; // Higher = run first
|
|
18
19
|
abstract player: Player | null;
|
|
19
20
|
abstract active(alas: any): boolean | Promise<boolean>;
|
|
20
21
|
|
|
22
|
+
// Player event forwarders
|
|
23
|
+
protected forwardToPlayer(event: string, ...args: any[]): void {
|
|
24
|
+
if (this.player && !this.player.destroyed) {
|
|
25
|
+
this.player.emit(event as any, ...args);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Direct player control methods
|
|
30
|
+
protected async playerPlayNext(): Promise<void> {
|
|
31
|
+
if (this.player && !this.player.destroyed) {
|
|
32
|
+
await (this.player as any).playNext();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
protected async playerSkip(): Promise<void> {
|
|
37
|
+
if (this.player && !this.player.destroyed) {
|
|
38
|
+
(this.player as any).skip();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
protected updatePlayerState(state: Partial<{ playing: boolean; paused: boolean; track: any }>): void {
|
|
43
|
+
if (this.player && !this.player.destroyed) {
|
|
44
|
+
// Update internal player state if needed
|
|
45
|
+
if (state.track !== undefined && (this.player as any).queue) {
|
|
46
|
+
(this.player as any).queue.setCurrentTrack(state.track);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
21
51
|
onRegister?(context: ExtensionContext): void | Promise<void>;
|
|
22
52
|
onDestroy?(context: ExtensionContext): void | Promise<void>;
|
|
23
53
|
beforePlay?(
|
package/src/extensions/index.ts
CHANGED
|
@@ -61,8 +61,13 @@ export class ExtensionManager {
|
|
|
61
61
|
this.streamCache = new Map();
|
|
62
62
|
this.pendingSearches = new Map();
|
|
63
63
|
this.pendingStreams = new Map();
|
|
64
|
-
this.extensionContext = Object.freeze({
|
|
65
|
-
|
|
64
|
+
this.extensionContext = Object.freeze({
|
|
65
|
+
player,
|
|
66
|
+
manager,
|
|
67
|
+
playNext: () => (player as any).playNext?.(),
|
|
68
|
+
skip: () => (player as any).skip?.(),
|
|
69
|
+
emit: (event: string, ...args: any[]) => player.emit(event as any, ...args),
|
|
70
|
+
});
|
|
66
71
|
// Auto-cleanup caches periodically
|
|
67
72
|
setInterval(() => this.cleanupCaches(), 5 * 60 * 1000);
|
|
68
73
|
}
|
|
@@ -314,7 +319,10 @@ export class ExtensionManager {
|
|
|
314
319
|
|
|
315
320
|
// Check cache first
|
|
316
321
|
const cached = this.getCachedStream(track);
|
|
317
|
-
if (cached)
|
|
322
|
+
if (cached) {
|
|
323
|
+
this.debug(`[Cache] Stream hit for: ${track.title}`);
|
|
324
|
+
return cached;
|
|
325
|
+
}
|
|
318
326
|
|
|
319
327
|
// Deduplicate concurrent requests
|
|
320
328
|
const cacheKey = this.getCacheKey("stream", track.url || track.id || track.title);
|
|
@@ -333,16 +341,31 @@ export class ExtensionManager {
|
|
|
333
341
|
if (typeof hook !== "function") continue;
|
|
334
342
|
|
|
335
343
|
try {
|
|
344
|
+
this.debug(`Trying extension ${extension.name} for stream: ${track.title}`);
|
|
336
345
|
const result = await Promise.resolve(hook.call(extension, this.extensionContext, request));
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
346
|
+
|
|
347
|
+
if (result) {
|
|
348
|
+
const isRemote = (result as StreamInfo).remote;
|
|
349
|
+
const hasStream = !!(result as StreamInfo).stream;
|
|
350
|
+
const hasHandle = !!(result as StreamInfo).handle;
|
|
351
|
+
|
|
352
|
+
this.debug(
|
|
353
|
+
`Extension ${extension.name} returned stream for ${track.title}: remote=${isRemote}, hasStream=${hasStream}, hasHandle=${hasHandle}`,
|
|
354
|
+
);
|
|
355
|
+
|
|
356
|
+
if (hasStream || hasHandle) {
|
|
357
|
+
// Only cache if it's a reusable stream (not remote with handle)
|
|
358
|
+
if (!isRemote) {
|
|
359
|
+
this.setCachedStream(track, result as StreamInfo);
|
|
360
|
+
}
|
|
361
|
+
return result as StreamInfo;
|
|
362
|
+
}
|
|
341
363
|
}
|
|
342
364
|
} catch (err) {
|
|
343
365
|
this.debug(`Extension ${extension.name} provideStream error:`, err);
|
|
344
366
|
}
|
|
345
367
|
}
|
|
368
|
+
this.debug(`No extension provided stream for: ${track.title}`);
|
|
346
369
|
return null;
|
|
347
370
|
})();
|
|
348
371
|
|
package/src/plugins/index.ts
CHANGED
|
@@ -704,43 +704,123 @@ export class PluginManager {
|
|
|
704
704
|
}
|
|
705
705
|
|
|
706
706
|
private async getStreamInternal(track: Track, primary: BasePlugin): Promise<StreamInfo | null> {
|
|
707
|
+
// Reuse existing stream from StreamManager
|
|
707
708
|
if (this.streamManager) {
|
|
708
709
|
const existingStream = this.streamManager.getStreamByTrack(track.id || track.title);
|
|
710
|
+
|
|
709
711
|
if (existingStream) {
|
|
710
712
|
this.debug(`[Stream] Using existing stream from manager`);
|
|
711
|
-
|
|
713
|
+
|
|
714
|
+
return {
|
|
715
|
+
stream: existingStream,
|
|
716
|
+
type: "arbitrary",
|
|
717
|
+
};
|
|
712
718
|
}
|
|
713
719
|
}
|
|
714
720
|
|
|
715
721
|
const timeoutMs = this.options.extractorTimeout ?? 50000;
|
|
716
722
|
|
|
723
|
+
// Cache
|
|
717
724
|
const cached = this.getCachedStream(track);
|
|
718
|
-
if (cached) return cached;
|
|
719
725
|
|
|
720
|
-
|
|
721
|
-
this.debug(`[Stream]
|
|
726
|
+
if (cached) {
|
|
727
|
+
this.debug(`[Stream] Using cached stream for: ${track.title}`);
|
|
728
|
+
return cached;
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
/**
|
|
732
|
+
* Try resolve stream from plugin
|
|
733
|
+
* Flow:
|
|
734
|
+
* 1. plugin.getStream()
|
|
735
|
+
* 2. validate stream
|
|
736
|
+
* 3. if failed -> plugin.getFallback()
|
|
737
|
+
*/
|
|
738
|
+
const tryPlugin = async (
|
|
739
|
+
plugin: BasePlugin,
|
|
740
|
+
isPrimary: boolean = false,
|
|
741
|
+
): Promise<{ result: StreamInfo | null; similarity: number }> => {
|
|
722
742
|
const controller = new AbortController();
|
|
723
|
-
const result = await withTimeout(
|
|
724
|
-
primary.getStream(track, controller.signal),
|
|
725
|
-
timeoutMs,
|
|
726
|
-
`Primary timeout: ${primary.name}`,
|
|
727
|
-
);
|
|
728
743
|
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
744
|
+
let result: StreamInfo | null = null;
|
|
745
|
+
|
|
746
|
+
// =========================================================
|
|
747
|
+
// 1. TRY DIRECT STREAM
|
|
748
|
+
// =========================================================
|
|
749
|
+
if (plugin.getStream) {
|
|
750
|
+
try {
|
|
751
|
+
this.debug(`[Stream] ${plugin.name} trying direct stream`);
|
|
752
|
+
|
|
753
|
+
result = await withTimeout(plugin.getStream(track, controller.signal), timeoutMs, `${plugin.name} getStream timeout`);
|
|
754
|
+
|
|
755
|
+
if (result?.stream) {
|
|
756
|
+
const valid = await this.validateStreamMatchesTrack(result, track);
|
|
757
|
+
|
|
758
|
+
if (valid) {
|
|
759
|
+
this.debug(`[Stream] ${plugin.name} direct stream success`);
|
|
760
|
+
|
|
761
|
+
return {
|
|
762
|
+
result,
|
|
763
|
+
similarity: 1,
|
|
764
|
+
};
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
this.debug(`[Stream] ${plugin.name} returned invalid stream`);
|
|
768
|
+
} else {
|
|
769
|
+
this.debug(`[Stream] ${plugin.name} no direct stream returned`);
|
|
770
|
+
}
|
|
771
|
+
} catch (error) {
|
|
772
|
+
this.debug(`[Stream] ${plugin.name} getStream failed:`, error instanceof Error ? error.message : error);
|
|
735
773
|
}
|
|
736
|
-
this.debug(`[Stream] Stream validation failed - wrong track returned`);
|
|
737
774
|
}
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
775
|
+
|
|
776
|
+
// =========================================================
|
|
777
|
+
// 2. TRY FALLBACK SEARCH
|
|
778
|
+
// =========================================================
|
|
779
|
+
if (plugin.getFallback) {
|
|
780
|
+
try {
|
|
781
|
+
this.debug(`[Stream] ${plugin.name} trying fallback resolver`);
|
|
782
|
+
|
|
783
|
+
result = await withTimeout(plugin.getFallback(track, controller.signal), timeoutMs, `${plugin.name} fallback timeout`);
|
|
784
|
+
|
|
785
|
+
if (result?.stream) {
|
|
786
|
+
const similarity = this.calculateTrackSimilarity(track, {
|
|
787
|
+
title: result.metadata?.title || result.metadata?.originalTitle || track.title,
|
|
788
|
+
});
|
|
789
|
+
|
|
790
|
+
this.debug(`[Stream] ${plugin.name} fallback success (${similarity})`);
|
|
791
|
+
|
|
792
|
+
return {
|
|
793
|
+
result,
|
|
794
|
+
similarity,
|
|
795
|
+
};
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
this.debug(`[Stream] ${plugin.name} fallback returned no stream`);
|
|
799
|
+
} catch (error) {
|
|
800
|
+
this.debug(`[Stream] ${plugin.name} fallback failed:`, error instanceof Error ? error.message : error);
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
return {
|
|
805
|
+
result: null,
|
|
806
|
+
similarity: 0,
|
|
807
|
+
};
|
|
808
|
+
};
|
|
809
|
+
|
|
810
|
+
// =========================================================
|
|
811
|
+
// PRIMARY PLUGIN
|
|
812
|
+
// =========================================================
|
|
813
|
+
const primaryResult = await tryPlugin(primary, true);
|
|
814
|
+
|
|
815
|
+
if (primaryResult.result?.stream) {
|
|
816
|
+
this.setCachedStream(track, primaryResult.result);
|
|
817
|
+
|
|
818
|
+
return primaryResult.result;
|
|
741
819
|
}
|
|
742
820
|
|
|
743
|
-
//
|
|
821
|
+
// =========================================================
|
|
822
|
+
// FALLBACK PLUGINS
|
|
823
|
+
// =========================================================
|
|
744
824
|
const fallbackPlugins = this.getAll()
|
|
745
825
|
.filter((p) => p !== primary && p.name !== primary.name)
|
|
746
826
|
.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
|
|
@@ -752,61 +832,64 @@ export class PluginManager {
|
|
|
752
832
|
|
|
753
833
|
this.debug(`[Stream] Trying ${fallbackPlugins.length} fallback plugins`);
|
|
754
834
|
|
|
755
|
-
const validResults: Array<{
|
|
835
|
+
const validResults: Array<{
|
|
836
|
+
plugin: string;
|
|
837
|
+
streamInfo: StreamInfo;
|
|
838
|
+
score: number;
|
|
839
|
+
}> = [];
|
|
756
840
|
|
|
757
841
|
let attempt = 0;
|
|
842
|
+
|
|
758
843
|
for (const plugin of fallbackPlugins) {
|
|
759
844
|
attempt++;
|
|
845
|
+
|
|
760
846
|
if (attempt > (this.options.maxFallbackAttempts ?? 3)) {
|
|
761
|
-
this.debug(`[Stream] Max attempts reached`);
|
|
847
|
+
this.debug(`[Stream] Max fallback attempts reached`);
|
|
762
848
|
break;
|
|
763
849
|
}
|
|
764
850
|
|
|
765
|
-
|
|
766
|
-
this.debug(`[Stream] Fallback ${attempt}: ${plugin.name}`);
|
|
767
|
-
const controller = new AbortController();
|
|
768
|
-
|
|
769
|
-
let result: StreamInfo | null = null;
|
|
851
|
+
const { result, similarity } = await tryPlugin(plugin);
|
|
770
852
|
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
853
|
+
if (!result?.stream) {
|
|
854
|
+
continue;
|
|
855
|
+
}
|
|
774
856
|
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
}
|
|
857
|
+
// Perfect / good match
|
|
858
|
+
if (similarity >= 0.7) {
|
|
859
|
+
this.debug(`[Stream] Success via fallback ${plugin.name} (score: ${similarity})`);
|
|
778
860
|
|
|
779
|
-
|
|
780
|
-
const similarityScore = this.calculateTrackSimilarity(track, result);
|
|
861
|
+
this.setCachedStream(track, result);
|
|
781
862
|
|
|
782
|
-
|
|
783
|
-
this.debug(`[Stream] Fallback success via ${plugin.name} (score: ${similarityScore})`);
|
|
784
|
-
this.setCachedStream(track, result);
|
|
785
|
-
return result;
|
|
786
|
-
} else {
|
|
787
|
-
validResults.push({
|
|
788
|
-
plugin: plugin.name,
|
|
789
|
-
streamInfo: result,
|
|
790
|
-
score: similarityScore,
|
|
791
|
-
});
|
|
792
|
-
this.debug(`[Stream] Fallback ${plugin.name} returned low similarity (${similarityScore})`);
|
|
793
|
-
}
|
|
794
|
-
}
|
|
795
|
-
} catch (error) {
|
|
796
|
-
this.debug(`[Stream] Fallback failed: ${plugin.name}`, error);
|
|
863
|
+
return result;
|
|
797
864
|
}
|
|
865
|
+
|
|
866
|
+
// Keep low similarity result as backup
|
|
867
|
+
validResults.push({
|
|
868
|
+
plugin: plugin.name,
|
|
869
|
+
streamInfo: result,
|
|
870
|
+
score: similarity,
|
|
871
|
+
});
|
|
872
|
+
|
|
873
|
+
this.debug(`[Stream] ${plugin.name} low similarity match (${similarity})`);
|
|
798
874
|
}
|
|
799
875
|
|
|
876
|
+
// =========================================================
|
|
877
|
+
// BEST AVAILABLE MATCH
|
|
878
|
+
// =========================================================
|
|
800
879
|
if (validResults.length > 0) {
|
|
801
880
|
const bestMatch = validResults.sort((a, b) => b.score - a.score)[0];
|
|
802
|
-
|
|
881
|
+
|
|
882
|
+
this.debug(`[Stream] Using best available match from ${bestMatch.plugin} (${bestMatch.score})`);
|
|
883
|
+
|
|
884
|
+
this.setCachedStream(track, bestMatch.streamInfo);
|
|
885
|
+
|
|
803
886
|
return bestMatch.streamInfo;
|
|
804
887
|
}
|
|
805
888
|
|
|
806
|
-
this.debug(`[Stream] All plugins failed for
|
|
889
|
+
this.debug(`[Stream] All plugins failed for: ${track.title}`);
|
|
890
|
+
|
|
807
891
|
return null;
|
|
808
892
|
}
|
|
809
|
-
|
|
810
893
|
async getStream(track: Track): Promise<StreamInfo | null> {
|
|
811
894
|
if (!track) {
|
|
812
895
|
this.debug(`[getStream] No track provided`);
|
|
@@ -848,7 +931,7 @@ export class PluginManager {
|
|
|
848
931
|
return [];
|
|
849
932
|
}
|
|
850
933
|
|
|
851
|
-
const history = this.player
|
|
934
|
+
const history = this.player?.queue?.previousTracks || [];
|
|
852
935
|
const historyUrls = new Set(history.map((t) => t.url));
|
|
853
936
|
const currentTrackUrl = track.url;
|
|
854
937
|
|