distube 3.3.1 → 4.0.0-dev.2
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 +6 -8
- package/dist/DisTube.d.ts +13 -557
- package/dist/DisTube.d.ts.map +1 -1
- package/dist/DisTube.js +38 -639
- package/dist/DisTube.js.map +1 -1
- package/dist/constant.d.ts +0 -101
- package/dist/constant.d.ts.map +1 -1
- package/dist/constant.js +0 -101
- package/dist/constant.js.map +1 -1
- package/dist/core/DisTubeBase.d.ts +0 -40
- package/dist/core/DisTubeBase.d.ts.map +1 -1
- package/dist/core/DisTubeBase.js +0 -44
- package/dist/core/DisTubeBase.js.map +1 -1
- package/dist/core/DisTubeHandler.d.ts +2 -89
- package/dist/core/DisTubeHandler.d.ts.map +1 -1
- package/dist/core/DisTubeHandler.js +14 -124
- package/dist/core/DisTubeHandler.js.map +1 -1
- package/dist/core/DisTubeOptions.d.ts +0 -2
- package/dist/core/DisTubeOptions.d.ts.map +1 -1
- package/dist/core/DisTubeOptions.js +0 -13
- package/dist/core/DisTubeOptions.js.map +1 -1
- package/dist/core/DisTubeStream.d.ts +0 -33
- package/dist/core/DisTubeStream.d.ts.map +1 -1
- package/dist/core/DisTubeStream.js +0 -36
- package/dist/core/DisTubeStream.js.map +1 -1
- package/dist/core/manager/BaseManager.d.ts +1 -16
- package/dist/core/manager/BaseManager.d.ts.map +1 -1
- package/dist/core/manager/BaseManager.js +2 -28
- package/dist/core/manager/BaseManager.js.map +1 -1
- package/dist/core/manager/FilterManager.d.ts +16 -0
- package/dist/core/manager/FilterManager.d.ts.map +1 -0
- package/dist/core/manager/FilterManager.js +88 -0
- package/dist/core/manager/FilterManager.js.map +1 -0
- package/dist/core/manager/GuildIdManager.d.ts +9 -0
- package/dist/core/manager/GuildIdManager.d.ts.map +1 -0
- package/dist/core/manager/GuildIdManager.js +25 -0
- package/dist/core/manager/GuildIdManager.js.map +1 -0
- package/dist/core/manager/QueueManager.d.ts +4 -26
- package/dist/core/manager/QueueManager.d.ts.map +1 -1
- package/dist/core/manager/QueueManager.js +27 -48
- package/dist/core/manager/QueueManager.js.map +1 -1
- package/dist/core/manager/index.d.ts +2 -0
- package/dist/core/manager/index.d.ts.map +1 -1
- package/dist/core/manager/index.js +2 -0
- package/dist/core/manager/index.js.map +1 -1
- package/dist/core/voice/DisTubeVoice.d.ts +0 -50
- package/dist/core/voice/DisTubeVoice.d.ts.map +1 -1
- package/dist/core/voice/DisTubeVoice.js +9 -71
- package/dist/core/voice/DisTubeVoice.js.map +1 -1
- package/dist/core/voice/DisTubeVoiceManager.d.ts +2 -33
- package/dist/core/voice/DisTubeVoiceManager.d.ts.map +1 -1
- package/dist/core/voice/DisTubeVoiceManager.js +1 -32
- package/dist/core/voice/DisTubeVoiceManager.js.map +1 -1
- package/dist/core/voice/index.d.ts +0 -1
- package/dist/core/voice/index.d.ts.map +1 -1
- package/dist/core/voice/index.js +0 -1
- package/dist/core/voice/index.js.map +1 -1
- package/dist/plugin/index.d.ts +0 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +0 -1
- package/dist/plugin/index.js.map +1 -1
- package/dist/struct/CustomPlugin.d.ts +0 -41
- package/dist/struct/CustomPlugin.d.ts.map +1 -1
- package/dist/struct/CustomPlugin.js +0 -34
- package/dist/struct/CustomPlugin.js.map +1 -1
- package/dist/struct/DisTubeError.d.ts +0 -1
- package/dist/struct/DisTubeError.d.ts.map +1 -1
- package/dist/struct/DisTubeError.js +0 -2
- package/dist/struct/DisTubeError.js.map +1 -1
- package/dist/struct/ExtractorPlugin.d.ts +0 -32
- package/dist/struct/ExtractorPlugin.d.ts.map +1 -1
- package/dist/struct/ExtractorPlugin.js +0 -23
- package/dist/struct/ExtractorPlugin.js.map +1 -1
- package/dist/struct/Playlist.d.ts +0 -36
- package/dist/struct/Playlist.d.ts.map +1 -1
- package/dist/struct/Playlist.js +3 -54
- package/dist/struct/Playlist.js.map +1 -1
- package/dist/struct/Plugin.d.ts +0 -58
- package/dist/struct/Plugin.d.ts.map +1 -1
- package/dist/struct/Plugin.js +0 -62
- package/dist/struct/Plugin.js.map +1 -1
- package/dist/struct/Queue.d.ts +10 -177
- package/dist/struct/Queue.d.ts.map +1 -1
- package/dist/struct/Queue.js +49 -256
- package/dist/struct/Queue.js.map +1 -1
- package/dist/struct/SearchResult.d.ts +0 -8
- package/dist/struct/SearchResult.d.ts.map +1 -1
- package/dist/struct/SearchResult.js +0 -47
- package/dist/struct/SearchResult.js.map +1 -1
- package/dist/struct/Song.d.ts +0 -38
- package/dist/struct/Song.d.ts.map +1 -1
- package/dist/struct/Song.js +3 -122
- package/dist/struct/Song.js.map +1 -1
- package/dist/struct/TaskQueue.d.ts +0 -20
- package/dist/struct/TaskQueue.d.ts.map +1 -1
- package/dist/struct/TaskQueue.js +0 -25
- package/dist/struct/TaskQueue.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +6 -75
- package/dist/type.d.ts.map +1 -1
- package/dist/type.js.map +1 -1
- package/dist/util.d.ts +1 -30
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +16 -59
- package/dist/util.js.map +1 -1
- package/package.json +22 -14
- package/dist/core/voice/DJSAdapter.d.ts +0 -4
- package/dist/core/voice/DJSAdapter.d.ts.map +0 -1
- package/dist/core/voice/DJSAdapter.js +0 -58
- package/dist/core/voice/DJSAdapter.js.map +0 -1
- package/dist/plugin/youtube-dl.d.ts +0 -12
- package/dist/plugin/youtube-dl.d.ts.map +0 -1
- package/dist/plugin/youtube-dl.js +0 -70
- package/dist/plugin/youtube-dl.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisTubeOptions.js","sourceRoot":"","sources":["../../src/core/DisTubeOptions.ts"],"names":[],"mappings":"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","sourcesContent":["import { DisTubeError, checkInvalidKey, defaultOptions } from \"..\";\nimport type ytdl from \"@distube/ytdl-core\";\nimport type { CustomPlugin, DisTubeOptions, ExtractorPlugin, Filters } from \"..\";\n\nexport class Options {\n plugins: (CustomPlugin | ExtractorPlugin)[];\n emitNewSongOnly: boolean;\n leaveOnFinish: boolean;\n leaveOnStop: boolean;\n leaveOnEmpty: boolean;\n emptyCooldown: number;\n savePreviousSongs: boolean;\n searchSongs: number;\n searchCooldown: number;\n youtubeCookie?: string;\n youtubeIdentityToken?: string;\n youtubeDL: boolean;\n updateYouTubeDL: boolean;\n customFilters?: Filters;\n ytdlOptions: ytdl.getInfoOptions;\n nsfw: boolean;\n emitAddSongWhenCreatingQueue: boolean;\n emitAddListWhenCreatingQueue: boolean;\n constructor(options: DisTubeOptions) {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"object\", options, \"DisTubeOptions\");\n }\n const opts = { ...defaultOptions, ...options };\n this.plugins = opts.plugins;\n this.emitNewSongOnly = opts.emitNewSongOnly;\n this.leaveOnEmpty = opts.leaveOnEmpty;\n this.leaveOnFinish = opts.leaveOnFinish;\n this.leaveOnStop = opts.leaveOnStop;\n this.savePreviousSongs = opts.savePreviousSongs;\n /* eslint-disable deprecation/deprecation */\n this.youtubeDL = opts.youtubeDL;\n this.updateYouTubeDL = opts.updateYouTubeDL;\n /* eslint-enable deprecation/deprecation */\n this.searchSongs = opts.searchSongs;\n this.youtubeCookie = opts.youtubeCookie;\n this.youtubeIdentityToken = opts.youtubeIdentityToken;\n this.customFilters = opts.customFilters;\n this.ytdlOptions = opts.ytdlOptions;\n this.searchCooldown = opts.searchCooldown;\n this.emptyCooldown = opts.emptyCooldown;\n this.nsfw = opts.nsfw;\n this.emitAddSongWhenCreatingQueue = opts.emitAddSongWhenCreatingQueue;\n this.emitAddListWhenCreatingQueue = opts.emitAddListWhenCreatingQueue;\n checkInvalidKey(opts, this, \"DisTubeOptions\");\n this.#validateOptions();\n if (this.youtubeDL) {\n process.emitWarning(\n \"DisTubeOptions.youtubeDL is deprecated, set it to false and use `@distube/yt-dlp` instead.\",\n \"DeprecationWarning\",\n );\n }\n }\n\n #validateOptions(options = this) {\n if (typeof options.emitNewSongOnly !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.emitNewSongOnly, \"DisTubeOptions.emitNewSongOnly\");\n }\n if (typeof options.leaveOnEmpty !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.leaveOnEmpty, \"DisTubeOptions.leaveOnEmpty\");\n }\n if (typeof options.leaveOnFinish !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.leaveOnFinish, \"DisTubeOptions.leaveOnFinish\");\n }\n if (typeof options.leaveOnStop !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.leaveOnStop, \"DisTubeOptions.leaveOnStop\");\n }\n if (typeof options.savePreviousSongs !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.savePreviousSongs, \"DisTubeOptions.savePreviousSongs\");\n }\n if (typeof options.youtubeDL !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.youtubeDL, \"DisTubeOptions.youtubeDL\");\n }\n if (typeof options.updateYouTubeDL !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.updateYouTubeDL, \"DisTubeOptions.updateYouTubeDL\");\n }\n if (typeof options.youtubeCookie !== \"undefined\" && typeof options.youtubeCookie !== \"string\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"string\", options.youtubeCookie, \"DisTubeOptions.youtubeCookie\");\n }\n if (typeof options.youtubeIdentityToken !== \"undefined\" && typeof options.youtubeIdentityToken !== \"string\") {\n throw new DisTubeError(\n \"INVALID_TYPE\",\n \"string\",\n options.youtubeIdentityToken,\n \"DisTubeOptions.youtubeIdentityToken\",\n );\n }\n if (\n (typeof options.customFilters !== \"undefined\" && typeof options.customFilters !== \"object\") ||\n Array.isArray(options.customFilters)\n ) {\n throw new DisTubeError(\"INVALID_TYPE\", \"object\", options.customFilters, \"DisTubeOptions.customFilters\");\n }\n if (typeof options.ytdlOptions !== \"object\" || Array.isArray(options.ytdlOptions)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"object\", options.ytdlOptions, \"DisTubeOptions.ytdlOptions\");\n }\n if (typeof options.searchCooldown !== \"number\" || isNaN(options.searchCooldown)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"number\", options.searchCooldown, \"DisTubeOptions.searchCooldown\");\n }\n if (typeof options.emptyCooldown !== \"number\" || isNaN(options.emptyCooldown)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"number\", options.emptyCooldown, \"DisTubeOptions.emptyCooldown\");\n }\n if (typeof options.searchSongs !== \"number\" || isNaN(options.searchSongs)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"number\", options.searchSongs, \"DisTubeOptions.searchSongs\");\n }\n if (!Array.isArray(options.plugins)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"Array<Plugin>\", options.plugins, \"DisTubeOptions.plugins\");\n }\n if (typeof options.nsfw !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.nsfw, \"DisTubeOptions.nsfw\");\n }\n if (typeof options.emitAddSongWhenCreatingQueue !== \"boolean\") {\n throw new DisTubeError(\n \"INVALID_TYPE\",\n \"boolean\",\n options.emitAddSongWhenCreatingQueue,\n \"DisTubeOptions.emitAddSongWhenCreatingQueue\",\n );\n }\n if (typeof options.emitAddListWhenCreatingQueue !== \"boolean\") {\n throw new DisTubeError(\n \"INVALID_TYPE\",\n \"boolean\",\n options.emitAddListWhenCreatingQueue,\n \"DisTubeOptions.emitAddListWhenCreatingQueue\",\n );\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DisTubeOptions.js","sourceRoot":"","sources":["../../src/core/DisTubeOptions.ts"],"names":[],"mappings":"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","sourcesContent":["import { DisTubeError, checkInvalidKey, defaultOptions } from \"..\";\nimport type ytdl from \"@distube/ytdl-core\";\nimport type { CustomPlugin, DisTubeOptions, ExtractorPlugin, Filters } from \"..\";\n\nexport class Options {\n plugins: (CustomPlugin | ExtractorPlugin)[];\n emitNewSongOnly: boolean;\n leaveOnFinish: boolean;\n leaveOnStop: boolean;\n leaveOnEmpty: boolean;\n emptyCooldown: number;\n savePreviousSongs: boolean;\n searchSongs: number;\n searchCooldown: number;\n youtubeCookie?: string;\n youtubeIdentityToken?: string;\n customFilters?: Filters;\n ytdlOptions: ytdl.getInfoOptions;\n nsfw: boolean;\n emitAddSongWhenCreatingQueue: boolean;\n emitAddListWhenCreatingQueue: boolean;\n constructor(options: DisTubeOptions) {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"object\", options, \"DisTubeOptions\");\n }\n const opts = { ...defaultOptions, ...options };\n this.plugins = opts.plugins;\n this.emitNewSongOnly = opts.emitNewSongOnly;\n this.leaveOnEmpty = opts.leaveOnEmpty;\n this.leaveOnFinish = opts.leaveOnFinish;\n this.leaveOnStop = opts.leaveOnStop;\n this.savePreviousSongs = opts.savePreviousSongs;\n this.searchSongs = opts.searchSongs;\n this.youtubeCookie = opts.youtubeCookie;\n this.youtubeIdentityToken = opts.youtubeIdentityToken;\n this.customFilters = opts.customFilters;\n this.ytdlOptions = opts.ytdlOptions;\n this.searchCooldown = opts.searchCooldown;\n this.emptyCooldown = opts.emptyCooldown;\n this.nsfw = opts.nsfw;\n this.emitAddSongWhenCreatingQueue = opts.emitAddSongWhenCreatingQueue;\n this.emitAddListWhenCreatingQueue = opts.emitAddListWhenCreatingQueue;\n checkInvalidKey(opts, this, \"DisTubeOptions\");\n this.#validateOptions();\n }\n\n #validateOptions(options = this) {\n if (typeof options.emitNewSongOnly !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.emitNewSongOnly, \"DisTubeOptions.emitNewSongOnly\");\n }\n if (typeof options.leaveOnEmpty !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.leaveOnEmpty, \"DisTubeOptions.leaveOnEmpty\");\n }\n if (typeof options.leaveOnFinish !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.leaveOnFinish, \"DisTubeOptions.leaveOnFinish\");\n }\n if (typeof options.leaveOnStop !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.leaveOnStop, \"DisTubeOptions.leaveOnStop\");\n }\n if (typeof options.savePreviousSongs !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.savePreviousSongs, \"DisTubeOptions.savePreviousSongs\");\n }\n if (typeof options.youtubeCookie !== \"undefined\" && typeof options.youtubeCookie !== \"string\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"string\", options.youtubeCookie, \"DisTubeOptions.youtubeCookie\");\n }\n if (typeof options.youtubeIdentityToken !== \"undefined\" && typeof options.youtubeIdentityToken !== \"string\") {\n throw new DisTubeError(\n \"INVALID_TYPE\",\n \"string\",\n options.youtubeIdentityToken,\n \"DisTubeOptions.youtubeIdentityToken\",\n );\n }\n if (\n (typeof options.customFilters !== \"undefined\" && typeof options.customFilters !== \"object\") ||\n Array.isArray(options.customFilters)\n ) {\n throw new DisTubeError(\"INVALID_TYPE\", \"object\", options.customFilters, \"DisTubeOptions.customFilters\");\n }\n if (typeof options.ytdlOptions !== \"object\" || Array.isArray(options.ytdlOptions)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"object\", options.ytdlOptions, \"DisTubeOptions.ytdlOptions\");\n }\n if (typeof options.searchCooldown !== \"number\" || isNaN(options.searchCooldown)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"number\", options.searchCooldown, \"DisTubeOptions.searchCooldown\");\n }\n if (typeof options.emptyCooldown !== \"number\" || isNaN(options.emptyCooldown)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"number\", options.emptyCooldown, \"DisTubeOptions.emptyCooldown\");\n }\n if (typeof options.searchSongs !== \"number\" || isNaN(options.searchSongs)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"number\", options.searchSongs, \"DisTubeOptions.searchSongs\");\n }\n if (!Array.isArray(options.plugins)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"Array<Plugin>\", options.plugins, \"DisTubeOptions.plugins\");\n }\n if (typeof options.nsfw !== \"boolean\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"boolean\", options.nsfw, \"DisTubeOptions.nsfw\");\n }\n if (typeof options.emitAddSongWhenCreatingQueue !== \"boolean\") {\n throw new DisTubeError(\n \"INVALID_TYPE\",\n \"boolean\",\n options.emitAddSongWhenCreatingQueue,\n \"DisTubeOptions.emitAddSongWhenCreatingQueue\",\n );\n }\n if (typeof options.emitAddListWhenCreatingQueue !== \"boolean\") {\n throw new DisTubeError(\n \"INVALID_TYPE\",\n \"boolean\",\n options.emitAddListWhenCreatingQueue,\n \"DisTubeOptions.emitAddListWhenCreatingQueue\",\n );\n }\n }\n}\n"]}
|
|
@@ -2,50 +2,17 @@ import { FFmpeg } from "prism-media";
|
|
|
2
2
|
import { StreamType } from "@discordjs/voice";
|
|
3
3
|
import type ytdl from "@distube/ytdl-core";
|
|
4
4
|
interface StreamOptions {
|
|
5
|
-
/**
|
|
6
|
-
* Time to seek in seconds
|
|
7
|
-
*/
|
|
8
5
|
seek?: number;
|
|
9
|
-
/**
|
|
10
|
-
* Additional FFmpeg arguments
|
|
11
|
-
*/
|
|
12
6
|
ffmpegArgs?: string[];
|
|
13
|
-
/**
|
|
14
|
-
* If the stream url is live
|
|
15
|
-
*/
|
|
16
7
|
isLive?: boolean;
|
|
17
8
|
}
|
|
18
9
|
export declare const chooseBestVideoFormat: (formats: ytdl.videoFormat[], isLive?: boolean) => ytdl.videoFormat;
|
|
19
|
-
/**
|
|
20
|
-
* Create a stream to play with {@link DisTubeVoice}
|
|
21
|
-
* @private
|
|
22
|
-
*/
|
|
23
10
|
export declare class DisTubeStream {
|
|
24
|
-
/**
|
|
25
|
-
* Create a stream from ytdl video formats
|
|
26
|
-
* @param {ytdl.videoFormat[]} formats ytdl video formats
|
|
27
|
-
* @param {StreamOptions} options options
|
|
28
|
-
* @returns {DisTubeStream}
|
|
29
|
-
* @private
|
|
30
|
-
*/
|
|
31
11
|
static YouTube(formats: ytdl.videoFormat[] | undefined, options?: StreamOptions): DisTubeStream;
|
|
32
|
-
/**
|
|
33
|
-
* Create a stream from a stream url
|
|
34
|
-
* @param {string} url stream url
|
|
35
|
-
* @param {StreamOptions} options options
|
|
36
|
-
* @returns {DisTubeStream}
|
|
37
|
-
* @private
|
|
38
|
-
*/
|
|
39
12
|
static DirectLink(url: string, options?: StreamOptions): DisTubeStream;
|
|
40
13
|
type: StreamType.Raw;
|
|
41
14
|
stream: FFmpeg;
|
|
42
15
|
url: string;
|
|
43
|
-
/**
|
|
44
|
-
* Create a DisTubeStream to play with {@link DisTubeVoice}
|
|
45
|
-
* @param {string} url Stream URL
|
|
46
|
-
* @param {StreamOptions} options Stream options
|
|
47
|
-
* @private
|
|
48
|
-
*/
|
|
49
16
|
constructor(url: string, options: StreamOptions);
|
|
50
17
|
}
|
|
51
18
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisTubeStream.d.ts","sourceRoot":"","sources":["../../src/core/DisTubeStream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAC;AAE3C,UAAU,aAAa;
|
|
1
|
+
{"version":3,"file":"DisTubeStream.d.ts","sourceRoot":"","sources":["../../src/core/DisTubeStream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAC;AAE3C,UAAU,aAAa;IAIrB,IAAI,CAAC,EAAE,MAAM,CAAC;IAId,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAItB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,qBAAqB,YAAa,KAAK,WAAW,EAAE,uCAOhE,CAAC;AAMF,qBAAa,aAAa;IAQxB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,SAAS,EAAE,OAAO,GAAE,aAAkB,GAAG,aAAa;IAgBnG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,aAAa;IAS1E,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;gBAOA,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;CA2ChD"}
|
|
@@ -15,27 +15,9 @@ const chooseBestVideoFormat = (formats, isLive = false) => {
|
|
|
15
15
|
return formats.find(format => !format.hasVideo) || formats.sort((a, b) => Number(a.bitrate) - Number(b.bitrate))[0];
|
|
16
16
|
};
|
|
17
17
|
exports.chooseBestVideoFormat = chooseBestVideoFormat;
|
|
18
|
-
/**
|
|
19
|
-
* Create a stream to play with {@link DisTubeVoice}
|
|
20
|
-
* @private
|
|
21
|
-
*/
|
|
22
18
|
class DisTubeStream {
|
|
23
|
-
/**
|
|
24
|
-
* Create a DisTubeStream to play with {@link DisTubeVoice}
|
|
25
|
-
* @param {string} url Stream URL
|
|
26
|
-
* @param {StreamOptions} options Stream options
|
|
27
|
-
* @private
|
|
28
|
-
*/
|
|
29
19
|
constructor(url, options) {
|
|
30
|
-
/**
|
|
31
|
-
* Stream URL
|
|
32
|
-
* @type {string}
|
|
33
|
-
*/
|
|
34
20
|
this.url = url;
|
|
35
|
-
/**
|
|
36
|
-
* Stream type
|
|
37
|
-
* @type {DiscordVoice.StreamType.Raw}
|
|
38
|
-
*/
|
|
39
21
|
this.type = voice_1.StreamType.Raw;
|
|
40
22
|
const args = [
|
|
41
23
|
"-reconnect",
|
|
@@ -63,19 +45,8 @@ class DisTubeStream {
|
|
|
63
45
|
if (Array.isArray(options.ffmpegArgs)) {
|
|
64
46
|
args.push(...options.ffmpegArgs);
|
|
65
47
|
}
|
|
66
|
-
/**
|
|
67
|
-
* FFmpeg stream (Duplex)
|
|
68
|
-
* @type {FFmpeg}
|
|
69
|
-
*/
|
|
70
48
|
this.stream = new prism_media_1.FFmpeg({ args, shell: false });
|
|
71
49
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Create a stream from ytdl video formats
|
|
74
|
-
* @param {ytdl.videoFormat[]} formats ytdl video formats
|
|
75
|
-
* @param {StreamOptions} options options
|
|
76
|
-
* @returns {DisTubeStream}
|
|
77
|
-
* @private
|
|
78
|
-
*/
|
|
79
50
|
static YouTube(formats, options = {}) {
|
|
80
51
|
if (!formats || !formats.length)
|
|
81
52
|
throw new struct_1.DisTubeError("UNAVAILABLE_VIDEO");
|
|
@@ -87,13 +58,6 @@ class DisTubeStream {
|
|
|
87
58
|
throw new struct_1.DisTubeError("UNPLAYABLE_FORMATS");
|
|
88
59
|
return new DisTubeStream(bestFormat.url, options);
|
|
89
60
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Create a stream from a stream url
|
|
92
|
-
* @param {string} url stream url
|
|
93
|
-
* @param {StreamOptions} options options
|
|
94
|
-
* @returns {DisTubeStream}
|
|
95
|
-
* @private
|
|
96
|
-
*/
|
|
97
61
|
static DirectLink(url, options = {}) {
|
|
98
62
|
if (!options || typeof options !== "object" || Array.isArray(options)) {
|
|
99
63
|
throw new struct_1.DisTubeError("INVALID_TYPE", "object", options, "options");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisTubeStream.js","sourceRoot":"","sources":["../../src/core/DisTubeStream.ts"],"names":[],"mappings":";;;AAAA,0BAA2B;AAC3B,6CAAqC;AACrC,sCAAyC;AACzC,4CAA8C;AAkBvC,MAAM,qBAAqB,GAAG,CAAC,OAA2B,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE;IACnF,IAAI,MAAM,GAAG,CAAC,MAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC3D,IAAI,MAAM;QAAE,MAAM,GAAG,CAAC,MAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC;IACnF,OAAO,GAAG,OAAO;SACd,MAAM,CAAC,MAAM,CAAC;SACd,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5G,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtH,CAAC,CAAC;AAPW,QAAA,qBAAqB,yBAOhC;
|
|
1
|
+
{"version":3,"file":"DisTubeStream.js","sourceRoot":"","sources":["../../src/core/DisTubeStream.ts"],"names":[],"mappings":"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","sourcesContent":["import { isURL } from \"..\";\nimport { FFmpeg } from \"prism-media\";\nimport { DisTubeError } from \"../struct\";\nimport { StreamType } from \"@discordjs/voice\";\nimport type ytdl from \"@distube/ytdl-core\";\n\ninterface StreamOptions {\n /**\n * Time to seek in seconds\n */\n seek?: number;\n /**\n * Additional FFmpeg arguments\n */\n ffmpegArgs?: string[];\n /**\n * If the stream url is live\n */\n isLive?: boolean;\n}\n\nexport const chooseBestVideoFormat = (formats: ytdl.videoFormat[], isLive = false) => {\n let filter = (format: ytdl.videoFormat) => format.hasAudio;\n if (isLive) filter = (format: ytdl.videoFormat) => format.hasAudio && format.isHLS;\n formats = formats\n .filter(filter)\n .sort((a, b) => Number(b.audioBitrate) - Number(a.audioBitrate) || Number(a.bitrate) - Number(b.bitrate));\n return formats.find(format => !format.hasVideo) || formats.sort((a, b) => Number(a.bitrate) - Number(b.bitrate))[0];\n};\n\n/**\n * Create a stream to play with {@link DisTubeVoice}\n * @private\n */\nexport class DisTubeStream {\n /**\n * Create a stream from ytdl video formats\n * @param {ytdl.videoFormat[]} formats ytdl video formats\n * @param {StreamOptions} options options\n * @returns {DisTubeStream}\n * @private\n */\n static YouTube(formats: ytdl.videoFormat[] | undefined, options: StreamOptions = {}): DisTubeStream {\n if (!formats || !formats.length) throw new DisTubeError(\"UNAVAILABLE_VIDEO\");\n if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"object\", options, \"options\");\n }\n const bestFormat = chooseBestVideoFormat(formats, options.isLive);\n if (!bestFormat) throw new DisTubeError(\"UNPLAYABLE_FORMATS\");\n return new DisTubeStream(bestFormat.url, options);\n }\n /**\n * Create a stream from a stream url\n * @param {string} url stream url\n * @param {StreamOptions} options options\n * @returns {DisTubeStream}\n * @private\n */\n static DirectLink(url: string, options: StreamOptions = {}): DisTubeStream {\n if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"object\", options, \"options\");\n }\n if (typeof url !== \"string\" || !isURL(url)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"an URL\", url);\n }\n return new DisTubeStream(url, options);\n }\n type: StreamType.Raw;\n stream: FFmpeg;\n url: string;\n /**\n * Create a DisTubeStream to play with {@link DisTubeVoice}\n * @param {string} url Stream URL\n * @param {StreamOptions} options Stream options\n * @private\n */\n constructor(url: string, options: StreamOptions) {\n /**\n * Stream URL\n * @type {string}\n */\n this.url = url;\n /**\n * Stream type\n * @type {DiscordVoice.StreamType.Raw}\n */\n this.type = StreamType.Raw;\n const args = [\n \"-reconnect\",\n \"1\",\n \"-reconnect_streamed\",\n \"1\",\n \"-reconnect_delay_max\",\n \"5\",\n \"-i\",\n url,\n \"-analyzeduration\",\n \"0\",\n \"-loglevel\",\n \"0\",\n \"-ar\",\n \"48000\",\n \"-ac\",\n \"2\",\n \"-f\",\n \"s16le\",\n ];\n if (typeof options.seek === \"number\" && options.seek > 0) {\n args.unshift(\"-ss\", options.seek.toString());\n }\n if (Array.isArray(options.ffmpegArgs)) {\n args.push(...options.ffmpegArgs);\n }\n /**\n * FFmpeg stream (Duplex)\n * @type {FFmpeg}\n */\n this.stream = new FFmpeg({ args, shell: false });\n }\n}\n"]}
|
|
@@ -1,22 +1,7 @@
|
|
|
1
1
|
import { DisTubeBase } from "..";
|
|
2
2
|
import { Collection } from "discord.js";
|
|
3
|
-
import type { GuildIdResolvable } from "../..";
|
|
4
|
-
/**
|
|
5
|
-
* Manages the collection of a data model.
|
|
6
|
-
* @abstract
|
|
7
|
-
* @private
|
|
8
|
-
* @extends DisTubeBase
|
|
9
|
-
*/
|
|
10
3
|
export declare abstract class BaseManager<V> extends DisTubeBase {
|
|
11
|
-
/**
|
|
12
|
-
* The collection of items for this manager.
|
|
13
|
-
* @type {Discord.Collection}
|
|
14
|
-
* @abstract
|
|
15
|
-
*/
|
|
16
4
|
collection: Collection<string, V>;
|
|
17
|
-
|
|
18
|
-
get(idOrInstance: GuildIdResolvable): V | undefined;
|
|
19
|
-
delete(idOrInstance: GuildIdResolvable): void;
|
|
20
|
-
has(idOrInstance: GuildIdResolvable): boolean;
|
|
5
|
+
get size(): number;
|
|
21
6
|
}
|
|
22
7
|
//# sourceMappingURL=BaseManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseManager.d.ts","sourceRoot":"","sources":["../../../src/core/manager/BaseManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseManager.d.ts","sourceRoot":"","sources":["../../../src/core/manager/BaseManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQxC,8BAAsB,WAAW,CAAC,CAAC,CAAE,SAAQ,WAAW;IAKtD,UAAU,wBAA+B;IAMzC,IAAI,IAAI,WAEP;CACF"}
|
|
@@ -2,40 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseManager = void 0;
|
|
4
4
|
const __1 = require("..");
|
|
5
|
-
const __2 = require("../..");
|
|
6
5
|
const discord_js_1 = require("discord.js");
|
|
7
|
-
/**
|
|
8
|
-
* Manages the collection of a data model.
|
|
9
|
-
* @abstract
|
|
10
|
-
* @private
|
|
11
|
-
* @extends DisTubeBase
|
|
12
|
-
*/
|
|
13
6
|
class BaseManager extends __1.DisTubeBase {
|
|
14
7
|
constructor() {
|
|
15
8
|
super(...arguments);
|
|
16
|
-
/**
|
|
17
|
-
* The collection of items for this manager.
|
|
18
|
-
* @type {Discord.Collection}
|
|
19
|
-
* @abstract
|
|
20
|
-
*/
|
|
21
9
|
this.collection = new discord_js_1.Collection();
|
|
22
10
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (existing) {
|
|
26
|
-
return existing;
|
|
27
|
-
}
|
|
28
|
-
this.collection.set(id, data);
|
|
29
|
-
return data;
|
|
30
|
-
}
|
|
31
|
-
get(idOrInstance) {
|
|
32
|
-
return this.collection.get((0, __2.resolveGuildId)(idOrInstance));
|
|
33
|
-
}
|
|
34
|
-
delete(idOrInstance) {
|
|
35
|
-
this.collection.delete((0, __2.resolveGuildId)(idOrInstance));
|
|
36
|
-
}
|
|
37
|
-
has(idOrInstance) {
|
|
38
|
-
return this.collection.has((0, __2.resolveGuildId)(idOrInstance));
|
|
11
|
+
get size() {
|
|
12
|
+
return this.collection.size;
|
|
39
13
|
}
|
|
40
14
|
}
|
|
41
15
|
exports.BaseManager = BaseManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseManager.js","sourceRoot":"","sources":["../../../src/core/manager/BaseManager.ts"],"names":[],"mappings":";;;AAAA,0BAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"BaseManager.js","sourceRoot":"","sources":["../../../src/core/manager/BaseManager.ts"],"names":[],"mappings":";;;AAAA,0BAAiC;AACjC,2CAAwC;AAQxC,MAAsB,WAAe,SAAQ,eAAW;IAAxD;;QAKE,eAAU,GAAG,IAAI,uBAAU,EAAa,CAAC;IAS3C,CAAC;IAHC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;CACF;AAdD,kCAcC","sourcesContent":["import { DisTubeBase } from \"..\";\nimport { Collection } from \"discord.js\";\n\n/**\n * Manages the collection of a data model.\n * @abstract\n * @private\n * @extends DisTubeBase\n */\nexport abstract class BaseManager<V> extends DisTubeBase {\n /**\n * The collection of items for this manager.\n * @type {Discord.Collection}\n */\n collection = new Collection<string, V>();\n /**\n * The size of the collection.\n * @type {Discord.Collection}\n * @abstract\n */\n get size() {\n return this.collection.size;\n }\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseManager } from ".";
|
|
2
|
+
import type { DisTube, FilterResolvable, Queue } from "../..";
|
|
3
|
+
export declare class FilterManager extends BaseManager<FilterResolvable> {
|
|
4
|
+
#private;
|
|
5
|
+
queue: Queue;
|
|
6
|
+
constructor(distube: DisTube, queue: Queue);
|
|
7
|
+
add(filterOrFilters: FilterResolvable | FilterResolvable[], override?: boolean): this;
|
|
8
|
+
clear(): this;
|
|
9
|
+
set(filters: FilterResolvable[]): this;
|
|
10
|
+
remove(filterOrFilters: FilterResolvable | FilterResolvable[]): this;
|
|
11
|
+
has(filter: FilterResolvable): boolean;
|
|
12
|
+
get names(): string[];
|
|
13
|
+
get values(): string[];
|
|
14
|
+
toString(): string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=FilterManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterManager.d.ts","sourceRoot":"","sources":["../../../src/core/manager/FilterManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAEhC,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAM9D,qBAAa,aAAc,SAAQ,WAAW,CAAC,gBAAgB,CAAC;;IAC9D,KAAK,EAAE,KAAK,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;IAmC1C,GAAG,CAAC,eAAe,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,EAAE,QAAQ,UAAQ;IA2B5E,KAAK;IASL,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE;IAe/B,MAAM,CAAC,eAAe,EAAE,gBAAgB,GAAG,gBAAgB,EAAE;IAa7D,GAAG,CAAC,MAAM,EAAE,gBAAgB;IAS5B,IAAI,KAAK,aAER;IAED,IAAI,MAAM,aAET;IAED,QAAQ;CAGT"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var _FilterManager_instances, _FilterManager_validate, _FilterManager_resolveName, _FilterManager_resolveValue, _FilterManager_apply;
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.FilterManager = void 0;
|
|
10
|
+
const _1 = require(".");
|
|
11
|
+
const __1 = require("../..");
|
|
12
|
+
class FilterManager extends _1.BaseManager {
|
|
13
|
+
constructor(distube, queue) {
|
|
14
|
+
super(distube);
|
|
15
|
+
_FilterManager_instances.add(this);
|
|
16
|
+
this.queue = queue;
|
|
17
|
+
}
|
|
18
|
+
add(filterOrFilters, override = false) {
|
|
19
|
+
if (Array.isArray(filterOrFilters)) {
|
|
20
|
+
const resolvedFilters = filterOrFilters.map(f => __classPrivateFieldGet(this, _FilterManager_instances, "m", _FilterManager_validate).call(this, f));
|
|
21
|
+
const newFilters = resolvedFilters
|
|
22
|
+
.reduceRight((unique, o) => {
|
|
23
|
+
if (!unique.some((obj) => obj === o && obj.name === o) &&
|
|
24
|
+
!unique.some((obj) => obj !== o.name && obj.name !== o.name)) {
|
|
25
|
+
if (!this.has(o))
|
|
26
|
+
unique.push(o);
|
|
27
|
+
if (this.has(o) && override) {
|
|
28
|
+
this.remove(o);
|
|
29
|
+
unique.push(o);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return unique;
|
|
33
|
+
}, [])
|
|
34
|
+
.reverse();
|
|
35
|
+
return this.set([...this.collection.values(), ...newFilters]);
|
|
36
|
+
}
|
|
37
|
+
return this.set([...this.collection.values(), filterOrFilters]);
|
|
38
|
+
}
|
|
39
|
+
clear() {
|
|
40
|
+
return this.set([]);
|
|
41
|
+
}
|
|
42
|
+
set(filters) {
|
|
43
|
+
this.collection.clear();
|
|
44
|
+
for (const filter of filters) {
|
|
45
|
+
const resolved = __classPrivateFieldGet(this, _FilterManager_instances, "m", _FilterManager_validate).call(this, filter);
|
|
46
|
+
this.collection.set(__classPrivateFieldGet(this, _FilterManager_instances, "m", _FilterManager_resolveName).call(this, resolved), resolved);
|
|
47
|
+
}
|
|
48
|
+
__classPrivateFieldGet(this, _FilterManager_instances, "m", _FilterManager_apply).call(this);
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
remove(filterOrFilters) {
|
|
52
|
+
const remove = (f) => this.collection.delete(__classPrivateFieldGet(this, _FilterManager_instances, "m", _FilterManager_resolveName).call(this, __classPrivateFieldGet(this, _FilterManager_instances, "m", _FilterManager_validate).call(this, f)));
|
|
53
|
+
if (Array.isArray(filterOrFilters))
|
|
54
|
+
filterOrFilters.map(remove);
|
|
55
|
+
else
|
|
56
|
+
remove(filterOrFilters);
|
|
57
|
+
__classPrivateFieldGet(this, _FilterManager_instances, "m", _FilterManager_apply).call(this);
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
has(filter) {
|
|
61
|
+
return this.collection.has(__classPrivateFieldGet(this, _FilterManager_instances, "m", _FilterManager_resolveName).call(this, filter));
|
|
62
|
+
}
|
|
63
|
+
get names() {
|
|
64
|
+
return this.collection.map(f => __classPrivateFieldGet(this, _FilterManager_instances, "m", _FilterManager_resolveName).call(this, f));
|
|
65
|
+
}
|
|
66
|
+
get values() {
|
|
67
|
+
return this.collection.map(f => __classPrivateFieldGet(this, _FilterManager_instances, "m", _FilterManager_resolveValue).call(this, f));
|
|
68
|
+
}
|
|
69
|
+
toString() {
|
|
70
|
+
return this.names.toString();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.FilterManager = FilterManager;
|
|
74
|
+
_FilterManager_instances = new WeakSet(), _FilterManager_validate = function _FilterManager_validate(filter) {
|
|
75
|
+
if ((typeof filter === "string" && Object.prototype.hasOwnProperty.call(this.distube.filters, filter)) ||
|
|
76
|
+
(typeof filter === "object" && typeof filter.name === "string" && typeof filter.value === "string")) {
|
|
77
|
+
return filter;
|
|
78
|
+
}
|
|
79
|
+
throw new __1.DisTubeError("INVALID_TYPE", "FilterResolvable", filter, "filter");
|
|
80
|
+
}, _FilterManager_resolveName = function _FilterManager_resolveName(filter) {
|
|
81
|
+
return typeof filter === "string" ? filter : filter.name;
|
|
82
|
+
}, _FilterManager_resolveValue = function _FilterManager_resolveValue(filter) {
|
|
83
|
+
return typeof filter === "string" ? this.distube.filters[filter] : filter.value;
|
|
84
|
+
}, _FilterManager_apply = function _FilterManager_apply() {
|
|
85
|
+
this.queue.beginTime = this.queue.currentTime;
|
|
86
|
+
this.queues.playSong(this.queue);
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=FilterManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterManager.js","sourceRoot":"","sources":["../../../src/core/manager/FilterManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseManager } from \".\";\nimport { DisTubeError } from \"../..\";\nimport type { DisTube, FilterResolvable, Queue } from \"../..\";\n\n/**\n * Manage filters of a playing {@link Queue}\n * @extends {BaseManager}\n */\nexport class FilterManager extends BaseManager<FilterResolvable> {\n queue: Queue;\n constructor(distube: DisTube, queue: Queue) {\n super(distube);\n this.queue = queue;\n }\n\n #validate(filter: FilterResolvable): FilterResolvable {\n if (\n (typeof filter === \"string\" && Object.prototype.hasOwnProperty.call(this.distube.filters, filter)) ||\n (typeof filter === \"object\" && typeof filter.name === \"string\" && typeof filter.value === \"string\")\n ) {\n return filter;\n }\n\n throw new DisTubeError(\"INVALID_TYPE\", \"FilterResolvable\", filter, \"filter\");\n }\n\n #resolveName(filter: FilterResolvable): string {\n return typeof filter === \"string\" ? filter : filter.name;\n }\n\n #resolveValue(filter: FilterResolvable): string {\n return typeof filter === \"string\" ? this.distube.filters[filter] : filter.value;\n }\n\n #apply() {\n this.queue.beginTime = this.queue.currentTime;\n this.queues.playSong(this.queue);\n }\n\n /**\n * Enable a filter or multiple filters to the manager\n * @param {FilterResolvable|FilterResolvable[]} filterOrFilters The filter or filters to enable\n * @param {boolean} [override=false] Wether or not override the applied filter with new filter value\n * @returns {FilterManager}\n */\n add(filterOrFilters: FilterResolvable | FilterResolvable[], override = false) {\n if (Array.isArray(filterOrFilters)) {\n const resolvedFilters = filterOrFilters.map(f => this.#validate(f));\n const newFilters = resolvedFilters\n .reduceRight((unique, o: any) => {\n if (\n !unique.some((obj: any) => obj === o && obj.name === o) &&\n !unique.some((obj: any) => obj !== o.name && obj.name !== o.name)\n ) {\n if (!this.has(o)) unique.push(o);\n if (this.has(o) && override) {\n this.remove(o);\n unique.push(o);\n }\n }\n return unique;\n }, [] as FilterResolvable[])\n .reverse();\n return this.set([...this.collection.values(), ...newFilters]);\n }\n return this.set([...this.collection.values(), filterOrFilters]);\n }\n\n /**\n * Clear enabled filters of the manager\n * @returns {FilterManager}\n */\n clear() {\n return this.set([]);\n }\n\n /**\n * Set the filters applied to the manager\n * @param {FilterResolvable[]} filters The filters to apply\n * @returns {FilterManager}\n */\n set(filters: FilterResolvable[]) {\n this.collection.clear();\n for (const filter of filters) {\n const resolved = this.#validate(filter);\n this.collection.set(this.#resolveName(resolved), resolved);\n }\n this.#apply();\n return this;\n }\n\n /**\n * Disable a filter or multiple filters\n * @param {FilterResolvable|FilterResolvable[]} filterOrFilters The filter or filters to disable\n * @returns {FilterManager}\n */\n remove(filterOrFilters: FilterResolvable | FilterResolvable[]) {\n const remove = (f: FilterResolvable) => this.collection.delete(this.#resolveName(this.#validate(f)));\n if (Array.isArray(filterOrFilters)) filterOrFilters.map(remove);\n else remove(filterOrFilters);\n this.#apply();\n return this;\n }\n\n /**\n * Check whether a filter enabled or not\n * @param {FilterResolvable} filter The filter to check\n * @returns {boolean}\n */\n has(filter: FilterResolvable) {\n return this.collection.has(this.#resolveName(filter));\n }\n\n /**\n * Array of enabled filter name\n * @type {Array<string>}\n * @readonly\n */\n get names() {\n return this.collection.map(f => this.#resolveName(f));\n }\n\n get values() {\n return this.collection.map(f => this.#resolveValue(f));\n }\n\n toString() {\n return this.names.toString();\n }\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseManager } from ".";
|
|
2
|
+
import type { GuildIdResolvable } from "../..";
|
|
3
|
+
export declare abstract class GuildIdManager<V> extends BaseManager<V> {
|
|
4
|
+
add(idOrInstance: GuildIdResolvable, data: V): this | import("@discordjs/collection").Collection<string, V>;
|
|
5
|
+
get(idOrInstance: GuildIdResolvable): V | undefined;
|
|
6
|
+
remove(idOrInstance: GuildIdResolvable): boolean;
|
|
7
|
+
has(idOrInstance: GuildIdResolvable): boolean;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=GuildIdManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GuildIdManager.d.ts","sourceRoot":"","sources":["../../../src/core/manager/GuildIdManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAEhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAQ/C,8BAAsB,cAAc,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC5D,GAAG,CAAC,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAM5C,GAAG,CAAC,YAAY,EAAE,iBAAiB,GAAG,CAAC,GAAG,SAAS;IAGnD,MAAM,CAAC,YAAY,EAAE,iBAAiB,GAAG,OAAO;IAGhD,GAAG,CAAC,YAAY,EAAE,iBAAiB,GAAG,OAAO;CAG9C"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GuildIdManager = void 0;
|
|
4
|
+
const _1 = require(".");
|
|
5
|
+
const __1 = require("../..");
|
|
6
|
+
class GuildIdManager extends _1.BaseManager {
|
|
7
|
+
add(idOrInstance, data) {
|
|
8
|
+
const id = (0, __1.resolveGuildId)(idOrInstance);
|
|
9
|
+
const existing = this.get(id);
|
|
10
|
+
if (existing)
|
|
11
|
+
return this;
|
|
12
|
+
return this.collection.set(id, data);
|
|
13
|
+
}
|
|
14
|
+
get(idOrInstance) {
|
|
15
|
+
return this.collection.get((0, __1.resolveGuildId)(idOrInstance));
|
|
16
|
+
}
|
|
17
|
+
remove(idOrInstance) {
|
|
18
|
+
return this.collection.delete((0, __1.resolveGuildId)(idOrInstance));
|
|
19
|
+
}
|
|
20
|
+
has(idOrInstance) {
|
|
21
|
+
return this.collection.has((0, __1.resolveGuildId)(idOrInstance));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.GuildIdManager = GuildIdManager;
|
|
25
|
+
//# sourceMappingURL=GuildIdManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GuildIdManager.js","sourceRoot":"","sources":["../../../src/core/manager/GuildIdManager.ts"],"names":[],"mappings":";;;AAAA,wBAAgC;AAChC,6BAAuC;AASvC,MAAsB,cAAkB,SAAQ,cAAc;IAC5D,GAAG,CAAC,YAA+B,EAAE,IAAO;QAC1C,MAAM,EAAE,GAAG,IAAA,kBAAc,EAAC,YAAY,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,GAAG,CAAC,YAA+B;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAA,kBAAc,EAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,CAAC,YAA+B;QACpC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAA,kBAAc,EAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,GAAG,CAAC,YAA+B;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAA,kBAAc,EAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF;AAhBD,wCAgBC","sourcesContent":["import { BaseManager } from \".\";\nimport { resolveGuildId } from \"../..\";\nimport type { GuildIdResolvable } from \"../..\";\n\n/**\n * Manages the collection of a data model paired with a guild id.\n * @abstract\n * @private\n * @extends BaseManager\n */\nexport abstract class GuildIdManager<V> extends BaseManager<V> {\n add(idOrInstance: GuildIdResolvable, data: V) {\n const id = resolveGuildId(idOrInstance);\n const existing = this.get(id);\n if (existing) return this;\n return this.collection.set(id, data);\n }\n get(idOrInstance: GuildIdResolvable): V | undefined {\n return this.collection.get(resolveGuildId(idOrInstance));\n }\n remove(idOrInstance: GuildIdResolvable): boolean {\n return this.collection.delete(resolveGuildId(idOrInstance));\n }\n has(idOrInstance: GuildIdResolvable): boolean {\n return this.collection.has(resolveGuildId(idOrInstance));\n }\n}\n"]}
|
|
@@ -1,33 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Queue } from "../..";
|
|
1
|
+
import { GuildIdManager } from ".";
|
|
2
|
+
import { DisTubeStream, Queue } from "../..";
|
|
3
3
|
import type { Song } from "../..";
|
|
4
4
|
import type { GuildTextBasedChannel, VoiceBasedChannel } from "discord.js";
|
|
5
|
-
|
|
6
|
-
* Queue manager
|
|
7
|
-
* @extends BaseManager
|
|
8
|
-
*/
|
|
9
|
-
export declare class QueueManager extends BaseManager<Queue> {
|
|
5
|
+
export declare class QueueManager extends GuildIdManager<Queue> {
|
|
10
6
|
#private;
|
|
11
|
-
/**
|
|
12
|
-
* Collection of {@link Queue}.
|
|
13
|
-
* @name QueueManager#collection
|
|
14
|
-
* @type {Discord.Collection<string, Queue>}
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Create a {@link Queue}
|
|
18
|
-
* @private
|
|
19
|
-
* @param {Discord.BaseGuildVoiceChannel} channel A voice channel
|
|
20
|
-
* @param {Song|Song[]} song First song
|
|
21
|
-
* @param {Discord.BaseGuildTextChannel} textChannel Default text channel
|
|
22
|
-
* @returns {Promise<Queue|true>} Returns `true` if encounter an error
|
|
23
|
-
*/
|
|
24
7
|
create(channel: VoiceBasedChannel, song: Song[] | Song, textChannel?: GuildTextBasedChannel): Promise<Queue | true>;
|
|
25
|
-
|
|
26
|
-
* Play a song on voice connection
|
|
27
|
-
* @private
|
|
28
|
-
* @param {Queue} queue The guild queue
|
|
29
|
-
* @returns {Promise<boolean>} error?
|
|
30
|
-
*/
|
|
8
|
+
createStream(queue: Queue): DisTubeStream;
|
|
31
9
|
playSong(queue: Queue): Promise<boolean>;
|
|
32
10
|
}
|
|
33
11
|
//# sourceMappingURL=QueueManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueManager.d.ts","sourceRoot":"","sources":["../../../src/core/manager/QueueManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"QueueManager.d.ts","sourceRoot":"","sources":["../../../src/core/manager/QueueManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC;AACnC,OAAO,EAAgB,aAAa,EAAE,KAAK,EAAc,MAAM,OAAO,CAAC;AACvE,OAAO,KAAK,EAAsB,IAAI,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAM3E,qBAAa,YAAa,SAAQ,cAAc,CAAC,KAAK,CAAC;;IAc/C,MAAM,CACV,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EACnB,WAAW,CAAC,EAAE,qBAAqB,GAClC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAoHxB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa;IAenC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;CA8C/C"}
|