ziplayer 0.2.7-dev.0 → 0.2.7-dev.1
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 +407 -756
- package/README.md +265 -11
- package/dist/extensions/BaseExtension.d.ts +1 -0
- package/dist/extensions/BaseExtension.d.ts.map +1 -1
- package/dist/extensions/BaseExtension.js.map +1 -1
- package/dist/extensions/index.d.ts +38 -3
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +259 -41
- package/dist/extensions/index.js.map +1 -1
- package/dist/persistence/PersistenceManager.d.ts +61 -0
- package/dist/persistence/PersistenceManager.d.ts.map +1 -0
- package/dist/persistence/PersistenceManager.js +551 -0
- package/dist/persistence/PersistenceManager.js.map +1 -0
- package/dist/plugins/BasePlugin.js +1 -1
- package/dist/plugins/BasePlugin.js.map +1 -1
- package/dist/plugins/index.d.ts +19 -4
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +204 -113
- package/dist/plugins/index.js.map +1 -1
- package/dist/structures/FilterManager.js +3 -3
- package/dist/structures/FilterManager.js.map +1 -1
- package/dist/structures/Player.d.ts +64 -14
- package/dist/structures/Player.d.ts.map +1 -1
- package/dist/structures/Player.js +326 -88
- package/dist/structures/Player.js.map +1 -1
- package/dist/structures/PlayerManager.d.ts +125 -91
- package/dist/structures/PlayerManager.d.ts.map +1 -1
- package/dist/structures/PlayerManager.js +406 -111
- package/dist/structures/PlayerManager.js.map +1 -1
- package/dist/structures/Queue.d.ts +136 -31
- package/dist/structures/Queue.d.ts.map +1 -1
- package/dist/structures/Queue.js +265 -46
- package/dist/structures/Queue.js.map +1 -1
- package/dist/types/index.d.ts +39 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/persistence.d.ts +55 -0
- package/dist/types/persistence.d.ts.map +1 -0
- package/dist/types/persistence.js +3 -0
- package/dist/types/persistence.js.map +1 -0
- package/package.json +3 -2
- package/src/extensions/BaseExtension.ts +1 -0
- package/src/extensions/index.ts +320 -37
- package/src/persistence/PersistenceManager.ts +572 -0
- package/src/plugins/BasePlugin.ts +1 -1
- package/src/plugins/index.ts +248 -133
- package/src/structures/FilterManager.ts +3 -3
- package/src/structures/Player.ts +352 -94
- package/src/structures/PlayerManager.ts +488 -116
- package/src/structures/Queue.ts +300 -55
- package/src/types/index.ts +43 -10
- package/src/types/persistence.ts +65 -0
- package/src/types/plugin.ts +1 -1
|
@@ -2,11 +2,12 @@ import { EventEmitter } from "events";
|
|
|
2
2
|
import { VoiceConnection, AudioPlayer as DiscordAudioPlayer } from "@discordjs/voice";
|
|
3
3
|
import { Readable } from "stream";
|
|
4
4
|
import type { BaseExtension } from "../extensions";
|
|
5
|
-
import type { Track, PlayerOptions, PlayerEvents, SourcePlugin, SearchResult, ProgressBarOptions, LoopMode, SaveOptions, VoiceChannel } from "../types";
|
|
5
|
+
import type { Track, PlayerOptions, PlayerEvents, SourcePlugin, SearchResult, ProgressBarOptions, LoopMode, SaveOptions, VoiceChannel, PlayerSession } from "../types";
|
|
6
6
|
import type { PlayerManager } from "./PlayerManager";
|
|
7
7
|
import { Queue } from "./Queue";
|
|
8
8
|
import { PluginManager } from "../plugins";
|
|
9
9
|
import { ExtensionManager } from "../extensions";
|
|
10
|
+
import type { PersistenceManager } from "../persistence/PersistenceManager";
|
|
10
11
|
export declare interface Player {
|
|
11
12
|
on<K extends keyof PlayerEvents>(event: K, listener: (...args: PlayerEvents[K]) => void): this;
|
|
12
13
|
emit<K extends keyof PlayerEvents>(event: K, ...args: PlayerEvents[K]): boolean;
|
|
@@ -63,12 +64,19 @@ export declare class Player extends EventEmitter {
|
|
|
63
64
|
private leaveTimeout;
|
|
64
65
|
private currentResource;
|
|
65
66
|
private volumeInterval;
|
|
67
|
+
private stuckTimer;
|
|
66
68
|
private skipLoop;
|
|
67
69
|
private filter;
|
|
70
|
+
private refreshLock;
|
|
71
|
+
private preloadedResource;
|
|
72
|
+
private preloadedTrack;
|
|
68
73
|
private searchCache;
|
|
69
74
|
private readonly SEARCH_CACHE_TTL;
|
|
70
|
-
private searchCacheTimestamps;
|
|
71
75
|
private ttsPlayer;
|
|
76
|
+
private lastDuration;
|
|
77
|
+
private persistenceManager?;
|
|
78
|
+
private lastSaveTime;
|
|
79
|
+
private readonly AUTO_SAVE_INTERVAL;
|
|
72
80
|
constructor(guildId: string, options: PlayerOptions | undefined, manager: PlayerManager);
|
|
73
81
|
/**
|
|
74
82
|
* Destroy current stream to prevent memory leaks
|
|
@@ -135,6 +143,7 @@ export declare class Player extends EventEmitter {
|
|
|
135
143
|
* await player.play(null); // play from queue
|
|
136
144
|
*/
|
|
137
145
|
play(query: string | Track | SearchResult | null, requestedBy?: string): Promise<boolean>;
|
|
146
|
+
preloadNext(): Promise<void>;
|
|
138
147
|
/**
|
|
139
148
|
* Create AudioResource with filters and seek applied
|
|
140
149
|
*
|
|
@@ -348,8 +357,28 @@ export declare class Player extends EventEmitter {
|
|
|
348
357
|
* @example
|
|
349
358
|
* const progressBar = player.getProgressBar();
|
|
350
359
|
* console.log(`Progress bar: ${progressBar}`);
|
|
360
|
+
*
|
|
361
|
+
* // Custom options
|
|
362
|
+
* const customBar = player.getProgressBar({
|
|
363
|
+
* size: 30,
|
|
364
|
+
* barChar: "─",
|
|
365
|
+
* progressChar: "●",
|
|
366
|
+
* timeFormat: "compact" // "compact" = 1:22:12, "full" = 01:22:12
|
|
367
|
+
* });
|
|
351
368
|
*/
|
|
352
369
|
getProgressBar(options?: ProgressBarOptions): string;
|
|
370
|
+
/**
|
|
371
|
+
* Format time with leading zeros (00:00 or 00:00:00)
|
|
372
|
+
* @param ms - Time in milliseconds
|
|
373
|
+
* @returns Formatted time string with leading zeros
|
|
374
|
+
*/
|
|
375
|
+
formatTime(ms: number): string;
|
|
376
|
+
/**
|
|
377
|
+
* Format time without leading zeros for hours (1:22:12 or 3:45)
|
|
378
|
+
* @param ms - Time in milliseconds
|
|
379
|
+
* @returns Compact formatted time string
|
|
380
|
+
*/
|
|
381
|
+
formatTimeCompact(ms: number): string;
|
|
353
382
|
/**
|
|
354
383
|
* Get the time of the current track
|
|
355
384
|
*
|
|
@@ -357,22 +386,17 @@ export declare class Player extends EventEmitter {
|
|
|
357
386
|
* @example
|
|
358
387
|
* const time = player.getTime();
|
|
359
388
|
* console.log(`Time: ${time.current}`);
|
|
389
|
+
* console.log(`Formatted: ${time.formatted.current}`); // "1:22:12" or "3:45"
|
|
360
390
|
*/
|
|
361
391
|
getTime(): {
|
|
362
392
|
current: number;
|
|
363
393
|
total: number;
|
|
364
394
|
format: string;
|
|
395
|
+
formatted: {
|
|
396
|
+
current: string;
|
|
397
|
+
total: string;
|
|
398
|
+
};
|
|
365
399
|
};
|
|
366
|
-
/**
|
|
367
|
-
* Format the time in the format of HH:MM:SS
|
|
368
|
-
*
|
|
369
|
-
* @param {number} ms - The time in milliseconds
|
|
370
|
-
* @returns {string} The formatted time
|
|
371
|
-
* @example
|
|
372
|
-
* const formattedTime = player.formatTime(1000);
|
|
373
|
-
* console.log(`Formatted time: ${formattedTime}`);
|
|
374
|
-
*/
|
|
375
|
-
formatTime(ms: number): string;
|
|
376
400
|
/**
|
|
377
401
|
* Destroy the player
|
|
378
402
|
*
|
|
@@ -389,10 +413,10 @@ export declare class Player extends EventEmitter {
|
|
|
389
413
|
* @param {number} position - Position to seek to in milliseconds
|
|
390
414
|
* @returns {Promise<boolean>}
|
|
391
415
|
* @example
|
|
392
|
-
* const refreshed = await player.
|
|
416
|
+
* const refreshed = await player.refreshPlayerResource(true, 1000);
|
|
393
417
|
* console.log(`Refreshed: ${refreshed}`);
|
|
394
418
|
*/
|
|
395
|
-
|
|
419
|
+
refreshPlayerResource(applyToCurrent?: boolean, position?: number): Promise<boolean>;
|
|
396
420
|
/**
|
|
397
421
|
* Attach an extension to the player
|
|
398
422
|
*
|
|
@@ -423,6 +447,31 @@ export declare class Player extends EventEmitter {
|
|
|
423
447
|
private setupEventListeners;
|
|
424
448
|
addPlugin(plugin: SourcePlugin): void;
|
|
425
449
|
removePlugin(name: string): boolean;
|
|
450
|
+
/**
|
|
451
|
+
* Save the current session of the player, including queue, current track, position, volume, loop mode, auto-play mode, and active extensions/plugins.
|
|
452
|
+
*
|
|
453
|
+
* @returns {PlayerSession} The saved session data
|
|
454
|
+
*/
|
|
455
|
+
saveSession(): PlayerSession;
|
|
456
|
+
/**
|
|
457
|
+
* Set persistence manager for auto-save
|
|
458
|
+
*/
|
|
459
|
+
setPersistenceManager(manager: PersistenceManager): void;
|
|
460
|
+
private startAutoSaveTracking;
|
|
461
|
+
private scheduleAutoSave;
|
|
462
|
+
private saveIfNeeded;
|
|
463
|
+
/**
|
|
464
|
+
* Save current player state
|
|
465
|
+
*/
|
|
466
|
+
savePlayer(): Promise<boolean>;
|
|
467
|
+
/**
|
|
468
|
+
* Get serializable state (for manual persistence)
|
|
469
|
+
*/
|
|
470
|
+
getSerializableState(): object;
|
|
471
|
+
/**
|
|
472
|
+
* Restore from saved state
|
|
473
|
+
*/
|
|
474
|
+
restoreState(state: any): Promise<boolean>;
|
|
426
475
|
/**
|
|
427
476
|
* Get the size of the queue
|
|
428
477
|
*
|
|
@@ -486,5 +535,6 @@ export declare class Player extends EventEmitter {
|
|
|
486
535
|
* console.log(`Related tracks: ${relatedTracks?.length}`);
|
|
487
536
|
*/
|
|
488
537
|
get relatedTracks(): Track[] | null;
|
|
538
|
+
get isLive(): boolean;
|
|
489
539
|
}
|
|
490
540
|
//# sourceMappingURL=Player.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAKN,eAAe,EACf,WAAW,IAAI,kBAAkB,EAMjC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"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"}
|