ziplayer 0.1.4 → 0.1.5
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/dist/structures/Player.d.ts +38 -57
- package/dist/structures/Player.d.ts.map +1 -1
- package/dist/structures/Player.js +205 -303
- package/dist/structures/Player.js.map +1 -1
- package/dist/structures/PlayerManager.d.ts +5 -1
- package/dist/structures/PlayerManager.d.ts.map +1 -1
- package/dist/structures/PlayerManager.js.map +1 -1
- package/dist/types/index.d.ts +58 -16
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/structures/Player.ts +225 -360
- package/src/structures/PlayerManager.ts +16 -11
- package/src/types/index.ts +56 -16
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
2
|
import { VoiceConnection, AudioPlayer as DiscordAudioPlayer } from "@discordjs/voice";
|
|
3
3
|
import { VoiceChannel } from "discord.js";
|
|
4
|
+
import { Readable } from "stream";
|
|
4
5
|
import { BaseExtension } from "../extensions";
|
|
5
|
-
import { Track, PlayerOptions, PlayerEvents, SourcePlugin, SearchResult, ProgressBarOptions, LoopMode } from "../types";
|
|
6
|
+
import { Track, PlayerOptions, PlayerEvents, SourcePlugin, SearchResult, ProgressBarOptions, LoopMode, SaveOptions } from "../types";
|
|
6
7
|
import { Queue } from "./Queue";
|
|
7
8
|
import { PluginManager } from "../plugins";
|
|
8
9
|
import type { PlayerManager } from "./PlayerManager";
|
|
@@ -64,12 +65,10 @@ export declare class Player extends EventEmitter {
|
|
|
64
65
|
private skipLoop;
|
|
65
66
|
private extensions;
|
|
66
67
|
private extensionContext;
|
|
67
|
-
private pluginCache;
|
|
68
|
-
private readonly PLUGIN_CACHE_TTL;
|
|
69
|
-
private pluginCacheTimestamps;
|
|
70
68
|
private searchCache;
|
|
71
69
|
private readonly SEARCH_CACHE_TTL;
|
|
72
70
|
private searchCacheTimestamps;
|
|
71
|
+
private ttsPlayer;
|
|
73
72
|
/**
|
|
74
73
|
* Attach an extension to the player
|
|
75
74
|
*
|
|
@@ -100,13 +99,12 @@ export declare class Player extends EventEmitter {
|
|
|
100
99
|
private runAfterPlayHooks;
|
|
101
100
|
private extensionsProvideSearch;
|
|
102
101
|
private extensionsProvideStream;
|
|
102
|
+
private getStreamFromPlugin;
|
|
103
|
+
private Audioresource;
|
|
103
104
|
/**
|
|
104
105
|
* Start playing a specific track immediately, replacing the current resource.
|
|
105
106
|
*/
|
|
106
107
|
private startTrack;
|
|
107
|
-
private ttsPlayer;
|
|
108
|
-
private ttsQueue;
|
|
109
|
-
private ttsActive;
|
|
110
108
|
private clearLeaveTimeout;
|
|
111
109
|
private debug;
|
|
112
110
|
constructor(guildId: string, options: PlayerOptions | undefined, manager: PlayerManager);
|
|
@@ -159,42 +157,6 @@ export declare class Player extends EventEmitter {
|
|
|
159
157
|
* await player.interruptWithTTSTrack(track);
|
|
160
158
|
*/
|
|
161
159
|
interruptWithTTSTrack(track: Track): Promise<void>;
|
|
162
|
-
/**
|
|
163
|
-
* Play queued TTS items sequentially
|
|
164
|
-
*
|
|
165
|
-
* @returns {Promise<void>}
|
|
166
|
-
* @example
|
|
167
|
-
* await player.playNextTTS();
|
|
168
|
-
*/
|
|
169
|
-
private playNextTTS;
|
|
170
|
-
/**
|
|
171
|
-
* Get cached plugin or find and cache a new one
|
|
172
|
-
* @param track The track to find plugin for
|
|
173
|
-
* @returns The matching plugin or null if not found
|
|
174
|
-
*/
|
|
175
|
-
private getCachedPlugin;
|
|
176
|
-
/**
|
|
177
|
-
* Clear expired cache entries
|
|
178
|
-
*/
|
|
179
|
-
private clearExpiredCache;
|
|
180
|
-
/**
|
|
181
|
-
* Clear all plugin cache entries
|
|
182
|
-
* @example
|
|
183
|
-
* player.clearPluginCache();
|
|
184
|
-
*/
|
|
185
|
-
clearPluginCache(): void;
|
|
186
|
-
/**
|
|
187
|
-
* Get plugin cache statistics
|
|
188
|
-
* @returns Cache statistics
|
|
189
|
-
* @example
|
|
190
|
-
* const stats = player.getPluginCacheStats();
|
|
191
|
-
* console.log(`Cache size: ${stats.size}, Hit rate: ${stats.hitRate}%`);
|
|
192
|
-
*/
|
|
193
|
-
getPluginCacheStats(): {
|
|
194
|
-
size: number;
|
|
195
|
-
hitRate: number;
|
|
196
|
-
expiredEntries: number;
|
|
197
|
-
};
|
|
198
160
|
/**
|
|
199
161
|
* Get cached search result or null if not found/expired
|
|
200
162
|
* @param query The search query
|
|
@@ -217,18 +179,6 @@ export declare class Player extends EventEmitter {
|
|
|
217
179
|
* player.clearSearchCache();
|
|
218
180
|
*/
|
|
219
181
|
clearSearchCache(): void;
|
|
220
|
-
/**
|
|
221
|
-
* Get search cache statistics
|
|
222
|
-
* @returns Search cache statistics
|
|
223
|
-
* @example
|
|
224
|
-
* const stats = player.getSearchCacheStats();
|
|
225
|
-
* console.log(`Search cache size: ${stats.size}, Expired: ${stats.expiredEntries}`);
|
|
226
|
-
*/
|
|
227
|
-
getSearchCacheStats(): {
|
|
228
|
-
size: number;
|
|
229
|
-
expiredEntries: number;
|
|
230
|
-
queries: string[];
|
|
231
|
-
};
|
|
232
182
|
/**
|
|
233
183
|
* Debug method to check for duplicate search calls
|
|
234
184
|
* @param query The search query to check
|
|
@@ -240,8 +190,6 @@ export declare class Player extends EventEmitter {
|
|
|
240
190
|
pluginCount: number;
|
|
241
191
|
ttsFiltered: boolean;
|
|
242
192
|
};
|
|
243
|
-
/** Build AudioResource for a given track using the plugin pipeline */
|
|
244
|
-
private resourceFromTrack;
|
|
245
193
|
private generateWillNext;
|
|
246
194
|
private playNext;
|
|
247
195
|
/**
|
|
@@ -472,5 +420,38 @@ export declare class Player extends EventEmitter {
|
|
|
472
420
|
* console.log(`Related tracks: ${relatedTracks?.length}`);
|
|
473
421
|
*/
|
|
474
422
|
get relatedTracks(): Track[] | null;
|
|
423
|
+
/**
|
|
424
|
+
* Save a track's stream to a file and return a Readable stream
|
|
425
|
+
*
|
|
426
|
+
* @param {Track} track - The track to save
|
|
427
|
+
* @param {SaveOptions | string} options - Save options or filename string (for backward compatibility)
|
|
428
|
+
* @returns {Promise<Readable>} A Readable stream containing the audio data
|
|
429
|
+
* @example
|
|
430
|
+
* // Save current track to file
|
|
431
|
+
* const track = player.currentTrack;
|
|
432
|
+
* if (track) {
|
|
433
|
+
* const stream = await player.save(track);
|
|
434
|
+
*
|
|
435
|
+
* // Use fs to write the stream to file
|
|
436
|
+
* const fs = require('fs');
|
|
437
|
+
* const writeStream = fs.createWriteStream('saved-song.mp3');
|
|
438
|
+
* stream.pipe(writeStream);
|
|
439
|
+
*
|
|
440
|
+
* writeStream.on('finish', () => {
|
|
441
|
+
* console.log('File saved successfully!');
|
|
442
|
+
* });
|
|
443
|
+
* }
|
|
444
|
+
*
|
|
445
|
+
* // Save any track by URL
|
|
446
|
+
* const searchResult = await player.search("Never Gonna Give You Up", userId);
|
|
447
|
+
* if (searchResult.tracks.length > 0) {
|
|
448
|
+
* const stream = await player.save(searchResult.tracks[0]);
|
|
449
|
+
* // Handle the stream...
|
|
450
|
+
* }
|
|
451
|
+
*
|
|
452
|
+
* // Backward compatibility - filename as string
|
|
453
|
+
* const stream = await player.save(track, "my-song.mp3");
|
|
454
|
+
*/
|
|
455
|
+
save(track: Track, options?: SaveOptions | string): Promise<Readable>;
|
|
475
456
|
}
|
|
476
457
|
//# 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,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
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,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACN,KAAK,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EAER,WAAW,EACX,MAAM,UAAU,CAAC;AASlB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,MAAM,CAAC,OAAO,WAAW,MAAM;IAC9B,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/F,IAAI,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAChF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,MAAO,SAAQ,YAAY;IACvC,SAAgB,OAAO,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,eAAe,GAAG,IAAI,CAAQ;IAC1C,WAAW,EAAE,kBAAkB,CAAC;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAO;IACrB,SAAS,EAAE,OAAO,CAAS;IAC3B,QAAQ,EAAE,OAAO,CAAS;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,gBAAgB,CAAoB;IAG5C,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiB;IAClD,OAAO,CAAC,qBAAqB,CAA6B;IAE1D,OAAO,CAAC,SAAS,CAAmC;IACpD;;;;;;OAMG;IACI,eAAe,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI;IAOtD;;;;;;OAMG;IACI,eAAe,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI;IAUtD;;;;;;;OAOG;IACI,aAAa,IAAI,SAAS,aAAa,EAAE;IAIhD,OAAO,CAAC,wBAAwB;YAalB,kBAAkB;YA0ClB,iBAAiB;YAkBjB,uBAAuB;YAkBvB,uBAAuB;YAkBvB,mBAAmB;YA6CnB,aAAa;IAiC3B;;OAEG;YACW,UAAU;IA8CxB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,KAAK;gBAMD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,YAAK,EAAE,OAAO,EAAE,aAAa;IA6ChF,OAAO,CAAC,mBAAmB;IA2D3B,OAAO,CAAC,eAAe;IAYvB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKrC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKnC;;;;;;;OAOG;IACG,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IAmC9D;;;;;;;;;OASG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAsEvE;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,YAAY,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoJ/F;;;;;;;;OAQG;IACU,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAiE/D;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;OAIG;IACI,gBAAgB,IAAI,IAAI;IAO/B;;;;OAIG;IACI,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG;QACvC,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;KACrB;YAsBa,gBAAgB;YAwChB,QAAQ;IAqCtB;;;;;;;OAOG;IACH,KAAK,IAAI,OAAO;IAQhB;;;;;;;OAOG;IACH,MAAM,IAAI,OAAO;IAgBjB;;;;;;;OAOG;IACH,IAAI,IAAI,OAAO;IAUf;;;;;;;;;OASG;IACH,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAoC7B;;;;;;;OAOG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IASlC;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ;IAqBxC;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO;IAIjC;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IA+BlC;;;;;;OAMG;IACH,OAAO,IAAI,IAAI;IAKf;;;;;;OAMG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;;;;;;;;;;OAaG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwCpG;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IASnC;;;;;;;;OAQG;IACH,cAAc,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM;IAiBxD;;;;;;;OAOG;IACH,OAAO;;;;;IAmBP;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAY9B,OAAO,CAAC,aAAa;IAcrB;;;;;;OAMG;IACH,OAAO,IAAI,IAAI;IAoCf;;;;;;;OAOG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;;;;OAOG;IACH,IAAI,YAAY,IAAI,KAAK,GAAG,IAAI,CAE/B;IAED;;;;;;;OAOG;IACH,IAAI,aAAa,IAAI,KAAK,GAAG,IAAI,CAEhC;IAED;;;;;;;OAOG;IACH,IAAI,cAAc,IAAI,KAAK,EAAE,CAE5B;IAED;;;;;;;OAOG;IACH,IAAI,cAAc,IAAI,KAAK,EAAE,CAE5B;IAED;;;;;;;OAOG;IACH,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAE/B;IAED;;;;;;;OAOG;IACH,IAAI,aAAa,IAAI,KAAK,EAAE,GAAG,IAAI,CAElC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;CAqF3E"}
|