distube 3.0.5 → 3.1.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/README.md +6 -6
- package/dist/DisTube.d.ts +98 -37
- package/dist/DisTube.d.ts.map +1 -1
- package/dist/DisTube.js +133 -86
- package/dist/DisTube.js.map +1 -1
- package/dist/constant.d.ts +12 -13
- package/dist/constant.d.ts.map +1 -1
- package/dist/constant.js +12 -13
- package/dist/constant.js.map +1 -1
- package/dist/core/DisTubeBase.d.ts +3 -4
- package/dist/core/DisTubeBase.d.ts.map +1 -1
- package/dist/core/DisTubeBase.js +1 -2
- package/dist/core/DisTubeBase.js.map +1 -1
- package/dist/core/DisTubeHandler.d.ts +37 -25
- package/dist/core/DisTubeHandler.d.ts.map +1 -1
- package/dist/core/DisTubeHandler.js +69 -60
- package/dist/core/DisTubeHandler.js.map +1 -1
- package/dist/core/DisTubeOptions.d.ts +1 -2
- package/dist/core/DisTubeOptions.d.ts.map +1 -1
- package/dist/core/DisTubeOptions.js +64 -58
- package/dist/core/DisTubeOptions.js.map +1 -1
- package/dist/core/DisTubeStream.d.ts +1 -1
- package/dist/core/DisTubeStream.d.ts.map +1 -1
- package/dist/core/DisTubeStream.js +0 -1
- package/dist/core/DisTubeStream.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/manager/BaseManager.d.ts +8 -4
- package/dist/core/manager/BaseManager.d.ts.map +1 -1
- package/dist/core/manager/BaseManager.js +11 -13
- package/dist/core/manager/BaseManager.js.map +1 -1
- package/dist/core/manager/QueueManager.d.ts +11 -38
- package/dist/core/manager/QueueManager.d.ts.map +1 -1
- package/dist/core/manager/QueueManager.js +116 -129
- package/dist/core/manager/QueueManager.js.map +1 -1
- package/dist/core/voice/DisTubeVoice.d.ts +10 -13
- package/dist/core/voice/DisTubeVoice.d.ts.map +1 -1
- package/dist/core/voice/DisTubeVoice.js +38 -23
- package/dist/core/voice/DisTubeVoice.js.map +1 -1
- package/dist/core/voice/DisTubeVoiceManager.d.ts +6 -6
- package/dist/core/voice/DisTubeVoiceManager.d.ts.map +1 -1
- package/dist/core/voice/DisTubeVoiceManager.js +3 -3
- package/dist/core/voice/DisTubeVoiceManager.js.map +1 -1
- package/dist/plugin/http.d.ts +5 -3
- package/dist/plugin/http.d.ts.map +1 -1
- package/dist/plugin/http.js +3 -5
- package/dist/plugin/http.js.map +1 -1
- package/dist/plugin/https.d.ts +10 -5
- package/dist/plugin/https.d.ts.map +1 -1
- package/dist/plugin/https.js +5 -8
- package/dist/plugin/https.js.map +1 -1
- package/dist/plugin/youtube-dl.d.ts +5 -4
- package/dist/plugin/youtube-dl.d.ts.map +1 -1
- package/dist/plugin/youtube-dl.js +7 -11
- package/dist/plugin/youtube-dl.js.map +1 -1
- package/dist/struct/CustomPlugin.d.ts +37 -17
- package/dist/struct/CustomPlugin.d.ts.map +1 -1
- package/dist/struct/CustomPlugin.js +18 -19
- package/dist/struct/CustomPlugin.js.map +1 -1
- package/dist/struct/DisTubeError.d.ts +4 -3
- package/dist/struct/DisTubeError.d.ts.map +1 -1
- package/dist/struct/DisTubeError.js +5 -7
- package/dist/struct/DisTubeError.js.map +1 -1
- package/dist/struct/ExtractorPlugin.d.ts +25 -15
- package/dist/struct/ExtractorPlugin.d.ts.map +1 -1
- package/dist/struct/ExtractorPlugin.js +14 -16
- package/dist/struct/ExtractorPlugin.js.map +1 -1
- package/dist/struct/Playlist.d.ts +24 -8
- package/dist/struct/Playlist.d.ts.map +1 -1
- package/dist/struct/Playlist.js +24 -8
- package/dist/struct/Playlist.js.map +1 -1
- package/dist/struct/Plugin.d.ts +4 -12
- package/dist/struct/Plugin.d.ts.map +1 -1
- package/dist/struct/Plugin.js +1 -11
- package/dist/struct/Plugin.js.map +1 -1
- package/dist/struct/Queue.d.ts +5 -6
- package/dist/struct/Queue.d.ts.map +1 -1
- package/dist/struct/Queue.js +2 -3
- package/dist/struct/Queue.js.map +1 -1
- package/dist/struct/SearchResult.d.ts +0 -1
- package/dist/struct/SearchResult.d.ts.map +1 -1
- package/dist/struct/SearchResult.js +0 -1
- package/dist/struct/SearchResult.js.map +1 -1
- package/dist/struct/Song.d.ts +26 -10
- package/dist/struct/Song.d.ts.map +1 -1
- package/dist/struct/Song.js +32 -17
- package/dist/struct/Song.js.map +1 -1
- package/dist/struct/TaskQueue.d.ts +1 -6
- package/dist/struct/TaskQueue.d.ts.map +1 -1
- package/dist/struct/TaskQueue.js +13 -6
- package/dist/struct/TaskQueue.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +12 -12
- package/dist/type.d.ts.map +1 -1
- package/dist/type.js.map +1 -1
- package/dist/util.d.ts +4 -4
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +1 -2
- package/dist/util.js.map +1 -1
- package/package.json +21 -17
|
@@ -1,35 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.CustomPlugin = void 0;
|
|
7
|
-
const
|
|
4
|
+
const _1 = require(".");
|
|
8
5
|
const __1 = require("..");
|
|
6
|
+
// TODO: Clean parameters on the next major version.
|
|
9
7
|
/**
|
|
10
8
|
* Custom Plugin
|
|
11
9
|
* @extends Plugin
|
|
12
10
|
* @abstract
|
|
13
11
|
*/
|
|
14
|
-
class CustomPlugin extends
|
|
12
|
+
class CustomPlugin extends _1.Plugin {
|
|
15
13
|
constructor() {
|
|
16
14
|
super(...arguments);
|
|
15
|
+
/**
|
|
16
|
+
* This method will be executed if the url is validated.
|
|
17
|
+
* @param {Discord.BaseGuildVoiceChannel} voiceChannel The voice channel will be joined
|
|
18
|
+
* @param {string} song Validated url
|
|
19
|
+
* @param {Object} [options] Optional options
|
|
20
|
+
* @param {Discord.GuildMember} [options.member] Requested user
|
|
21
|
+
* @param {Discord.BaseGuildTextChannel} [options.textChannel] Default {@link Queue#textChannel}
|
|
22
|
+
* @param {boolean} [options.skip] Skip the playing song (if exists) and play the added song/playlist instantly
|
|
23
|
+
* @param {boolean} [options.unshift] Add the song/playlist after the playing song if exists
|
|
24
|
+
* @param {*} [options.metadata] Metadata
|
|
25
|
+
* @returns {Promise<void>}
|
|
26
|
+
* @abstract
|
|
27
|
+
* @method play
|
|
28
|
+
* @memberof CustomPlugin#
|
|
29
|
+
*/
|
|
17
30
|
this.type = __1.PluginType.CUSTOM;
|
|
18
31
|
}
|
|
19
32
|
}
|
|
20
33
|
exports.CustomPlugin = CustomPlugin;
|
|
21
|
-
/**
|
|
22
|
-
* This method will be executed if the url is validated.
|
|
23
|
-
* @param {Discord.VoiceChannel|Discord.StageChannel} voiceChannel The voice channel will be joined
|
|
24
|
-
* @param {string} url Validated url
|
|
25
|
-
* @param {Discord.GuildMember} member Requested user
|
|
26
|
-
* @param {Discord.TextChannel?} textChannel Default {@link Queue#textChannel}
|
|
27
|
-
* @param {boolean} skip Skip the playing song (if exists) and play the added song/playlist instantly
|
|
28
|
-
* @param {boolean} unshift Add the song/playlist to the beginning of the queue (after the playing song if exists)
|
|
29
|
-
* @returns {Promise<void>}
|
|
30
|
-
* @method play
|
|
31
|
-
* @memberof CustomPlugin#
|
|
32
|
-
* @abstract
|
|
33
|
-
*/
|
|
34
|
-
exports.default = CustomPlugin;
|
|
35
34
|
//# sourceMappingURL=CustomPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomPlugin.js","sourceRoot":"","sources":["../../src/struct/CustomPlugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CustomPlugin.js","sourceRoot":"","sources":["../../src/struct/CustomPlugin.ts"],"names":[],"mappings":";;;AAAA,wBAA2B;AAC3B,0BAAgC;AAGhC,oDAAoD;AAEpD;;;;GAIG;AACH,MAAsB,YAAa,SAAQ,SAAM;IAAjD;;QACE;;;;;;;;;;;;;;WAcG;QACH,SAAI,GAAG,cAAU,CAAC,MAAM,CAAC;IAyB3B,CAAC;CAAA;AAzCD,oCAyCC","sourcesContent":["import { Plugin } from \".\";\nimport { PluginType } from \"..\";\nimport type { GuildMember, GuildTextBasedChannel, VoiceBasedChannel } from \"discord.js\";\n\n// TODO: Clean parameters on the next major version.\n\n/**\n * Custom Plugin\n * @extends Plugin\n * @abstract\n */\nexport abstract class CustomPlugin extends Plugin {\n /**\n * This method will be executed if the url is validated.\n * @param {Discord.BaseGuildVoiceChannel} voiceChannel The voice channel will be joined\n * @param {string} song Validated url\n * @param {Object} [options] Optional options\n * @param {Discord.GuildMember} [options.member] Requested user\n * @param {Discord.BaseGuildTextChannel} [options.textChannel] Default {@link Queue#textChannel}\n * @param {boolean} [options.skip] Skip the playing song (if exists) and play the added song/playlist instantly\n * @param {boolean} [options.unshift] Add the song/playlist after the playing song if exists\n * @param {*} [options.metadata] Metadata\n * @returns {Promise<void>}\n * @abstract\n * @method play\n * @memberof CustomPlugin#\n */\n type = PluginType.CUSTOM;\n /**\n * This method will be executed if the url is validated.\n * @param {Discord.BaseGuildVoiceChannel} voiceChannel The voice channel will be joined\n * @param {string} song Validated url\n * @param {Object} [options] Optional options\n * @param {Discord.GuildMember} [options.member] Requested user\n * @param {Discord.BaseGuildTextChannel} [options.textChannel] Default {@link Queue#textChannel}\n * @param {boolean} [options.skip] Skip the playing song (if exists) and play the added song/playlist instantly\n * @param {boolean} [options.unshift] Add the song/playlist after the playing song if exists\n * @param {*} [options.metadata] Metadata\n * @returns {Promise<void>}\n * @abstract\n */\n abstract play(\n voiceChannel: VoiceBasedChannel,\n song: string,\n options: {\n skip?: boolean;\n unshift?: boolean;\n member?: GuildMember;\n textChannel?: GuildTextBasedChannel;\n metadata?: any;\n },\n ): Promise<void>;\n}\n"]}
|
|
@@ -3,13 +3,14 @@ declare const ERROR_MESSAGES: {
|
|
|
3
3
|
NUMBER_COMPARE: (name: string, expected: string, value: number) => string;
|
|
4
4
|
EMPTY_ARRAY: (name: string) => string;
|
|
5
5
|
EMPTY_FILTERED_ARRAY: (name: string, type: string) => string;
|
|
6
|
-
INVALID_KEY: (obj: string, key: string) => string;
|
|
7
6
|
EMPTY_STRING: (name: string) => string;
|
|
7
|
+
INVALID_KEY: (obj: string, key: string) => string;
|
|
8
|
+
MISSING_KEY: (obj: string, key: string) => string;
|
|
9
|
+
MISSING_KEYS: (obj: string, key: string[], all: boolean) => string;
|
|
8
10
|
MISSING_INTENTS: (i: string) => string;
|
|
9
11
|
DISABLED_OPTION: (o: string) => string;
|
|
10
12
|
ENABLED_OPTION: (o: string) => string;
|
|
11
13
|
NOT_IN_VOICE: string;
|
|
12
|
-
NOT_SUPPORTED_VOICE: string;
|
|
13
14
|
VOICE_FULL: string;
|
|
14
15
|
VOICE_CONNECT_FAILED: (s: number) => string;
|
|
15
16
|
VOICE_MISSING_PERMS: string;
|
|
@@ -52,5 +53,5 @@ export declare class DisTubeError<T extends string> extends Error {
|
|
|
52
53
|
get name(): string;
|
|
53
54
|
get code(): string;
|
|
54
55
|
}
|
|
55
|
-
export
|
|
56
|
+
export {};
|
|
56
57
|
//# sourceMappingURL=DisTubeError.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisTubeError.d.ts","sourceRoot":"","sources":["../../src/struct/DisTubeError.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DisTubeError.d.ts","sourceRoot":"","sources":["../../src/struct/DisTubeError.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,cAAc;6BACO,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,GAAG;2BAI5D,MAAM,YAAY,MAAM,SAAS,MAAM;wBAC1C,MAAM;iCACG,MAAM,QAAQ,MAAM;yBAC5B,MAAM;uBACR,MAAM,OAAO,MAAM;uBACnB,MAAM,OAAO,MAAM;wBAClB,MAAM,OAAO,MAAM,EAAE,OAAO,OAAO;yBAGlC,MAAM;yBACN,MAAM;wBACP,MAAM;;;8BAIA,MAAM;;;;;;;;;;;;;;;;;;;;;6BAyBP,MAAM;;;;CAMhC,CAAC;AAEF,aAAK,aAAa,GAAG,OAAO,cAAc,CAAC;AAC3C,aAAK,UAAU,GAAG,MAAM,aAAa,CAAC;AACtC,aAAK,SAAS,GAAG;KAAG,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK;CAAE,CAAC,UAAU,CAAC,CAAC;AAClG,aAAK,iBAAiB,GAAG,OAAO,CAAC,MAAM,OAAO,cAAc,EAAE,SAAS,CAAC,CAAC;AAMzE,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,KAAK;IACvD,SAAS,EAAE,MAAM,CAAC;gBACN,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,CAAC,SAAS,iBAAiB,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,CAAC;gBAC9F,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,KAAK;gBACjC,IAAI,EAAE,CAAC,SAAS,UAAU,GAAG,6BAA6B,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM;IAS3F,IAAI,IAAI,WAEP;IAED,IAAI,IAAI,WAEP;CACF"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DisTubeError = void 0;
|
|
4
|
+
const node_util_1 = require("node:util");
|
|
4
5
|
const ERROR_MESSAGES = {
|
|
5
|
-
INVALID_TYPE: (expected, got, name) => {
|
|
6
|
-
var _a, _b;
|
|
7
|
-
return `Expected ${Array.isArray(expected) ? expected.map(e => (typeof e === "number" ? e : `'${e}'`)).join(" or ") : `'${expected}'`}${name ? ` for '${name}'` : ""}, but got ${JSON.stringify(got)} (${(_b = (_a = got === null || got === void 0 ? void 0 : got.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : typeof got})`;
|
|
8
|
-
},
|
|
6
|
+
INVALID_TYPE: (expected, got, name) => `Expected ${Array.isArray(expected) ? expected.map(e => (typeof e === "number" ? e : `'${e}'`)).join(" or ") : `'${expected}'`}${name ? ` for '${name}'` : ""}, but got ${(0, node_util_1.inspect)(got)}`,
|
|
9
7
|
NUMBER_COMPARE: (name, expected, value) => `'${name}' must be ${expected} ${value}`,
|
|
10
8
|
EMPTY_ARRAY: (name) => `'${name}' is an empty array`,
|
|
11
9
|
EMPTY_FILTERED_ARRAY: (name, type) => `There is no valid '${type}' in the '${name}' array`,
|
|
12
|
-
INVALID_KEY: (obj, key) => `'${key}' does not need to be provided in ${obj}`,
|
|
13
10
|
EMPTY_STRING: (name) => `'${name}' string must not be empty`,
|
|
11
|
+
INVALID_KEY: (obj, key) => `'${key}' does not need to be provided in ${obj}`,
|
|
12
|
+
MISSING_KEY: (obj, key) => `'${key}' needs to be provided in ${obj}`,
|
|
13
|
+
MISSING_KEYS: (obj, key, all) => `${key.map(k => `'${k}'`).join(all ? " and " : " or ")} need to be provided in ${obj}`,
|
|
14
14
|
MISSING_INTENTS: (i) => `${i} intent must be provided for the Client`,
|
|
15
15
|
DISABLED_OPTION: (o) => `DisTubeOptions.${o} is disabled`,
|
|
16
16
|
ENABLED_OPTION: (o) => `DisTubeOptions.${o} is enabled`,
|
|
17
17
|
NOT_IN_VOICE: "User is not in any voice channel",
|
|
18
|
-
NOT_SUPPORTED_VOICE: "DisTubeVoice only supports VoiceChannel or a StageChannel",
|
|
19
18
|
VOICE_FULL: "The voice channel is full",
|
|
20
19
|
VOICE_CONNECT_FAILED: (s) => `Cannot connect to the voice channel after ${s} seconds`,
|
|
21
20
|
VOICE_MISSING_PERMS: "You do not have permission to join this voice channel",
|
|
@@ -65,5 +64,4 @@ class DisTubeError extends Error {
|
|
|
65
64
|
}
|
|
66
65
|
}
|
|
67
66
|
exports.DisTubeError = DisTubeError;
|
|
68
|
-
exports.default = DisTubeError;
|
|
69
67
|
//# sourceMappingURL=DisTubeError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisTubeError.js","sourceRoot":"","sources":["../../src/struct/DisTubeError.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG;IACrB,YAAY,EAAE,CAAC,QAA0D,EAAE,GAAQ,EAAE,IAAa,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"DisTubeError.js","sourceRoot":"","sources":["../../src/struct/DisTubeError.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from \"node:util\";\n\nconst ERROR_MESSAGES = {\n INVALID_TYPE: (expected: (number | string) | readonly (number | string)[], got: any, name?: string) =>\n `Expected ${\n Array.isArray(expected) ? expected.map(e => (typeof e === \"number\" ? e : `'${e}'`)).join(\" or \") : `'${expected}'`\n }${name ? ` for '${name}'` : \"\"}, but got ${inspect(got)}`,\n NUMBER_COMPARE: (name: string, expected: string, value: number) => `'${name}' must be ${expected} ${value}`,\n EMPTY_ARRAY: (name: string) => `'${name}' is an empty array`,\n EMPTY_FILTERED_ARRAY: (name: string, type: string) => `There is no valid '${type}' in the '${name}' array`,\n EMPTY_STRING: (name: string) => `'${name}' string must not be empty`,\n INVALID_KEY: (obj: string, key: string) => `'${key}' does not need to be provided in ${obj}`,\n MISSING_KEY: (obj: string, key: string) => `'${key}' needs to be provided in ${obj}`,\n MISSING_KEYS: (obj: string, key: string[], all: boolean) =>\n `${key.map(k => `'${k}'`).join(all ? \" and \" : \" or \")} need to be provided in ${obj}`,\n\n MISSING_INTENTS: (i: string) => `${i} intent must be provided for the Client`,\n DISABLED_OPTION: (o: string) => `DisTubeOptions.${o} is disabled`,\n ENABLED_OPTION: (o: string) => `DisTubeOptions.${o} is enabled`,\n\n NOT_IN_VOICE: \"User is not in any voice channel\",\n VOICE_FULL: \"The voice channel is full\",\n VOICE_CONNECT_FAILED: (s: number) => `Cannot connect to the voice channel after ${s} seconds`,\n VOICE_MISSING_PERMS: \"You do not have permission to join this voice channel\",\n VOICE_RECONNECT_FAILED: \"Cannot reconnect to the voice channel\",\n VOICE_CHANGE_GUILD: \"Cannot join a channel in a different guild\",\n VOICE_DEPRECATED_CONNECTION:\n \"Cannot connect to the voice channel due to a deprecated connection is created.\\n\" +\n \"Read more: https://distube.js.org/guide/additional-info/update.html#voice\",\n\n NO_QUEUE: \"There is no playing queue in this guild\",\n QUEUE_EXIST: \"This guild has a Queue already\",\n ADD_BEFORE_PLAYING: \"Cannot add Song before the playing Song\",\n PAUSED: \"The queue has been paused already\",\n RESUMED: \"The queue has been playing already\",\n NO_PREVIOUS: \"There is no previous song in this queue\",\n NO_UP_NEXT: \"There is no up next song\",\n NO_SONG_POSITION: \"Does not have any song at this position\",\n NO_PLAYING: \"There is no playing song in the queue\",\n\n NO_RESULT: \"No result found\",\n NO_RELATED: \"Cannot find any related songs\",\n CANNOT_PLAY_RELATED: \"Cannot play the related song\",\n UNAVAILABLE_VIDEO: \"This video is unavailable\",\n UNPLAYABLE_FORMATS: \"No playable format found\",\n NON_NSFW: \"Cannot play age-restricted content in non-NSFW channel\",\n NOT_SUPPORTED_URL: \"This url is not supported\",\n CANNOT_RESOLVE_SONG: (t: string) => `Cannot resolve ${t} to a Song`,\n NO_VALID_SONG: \"'songs' array does not have any valid Song, SearchResult or url\",\n EMPTY_FILTERED_PLAYLIST:\n \"There is no valid video in the playlist\\n\" +\n \"Maybe age-restricted contents is filtered because you are in non-NSFW channel\",\n EMPTY_PLAYLIST: \"There is no valid video in the playlist\",\n};\n\ntype ErrorMessages = typeof ERROR_MESSAGES;\ntype ErrorCodes = keyof ErrorMessages;\ntype ErrorCode = { [K in ErrorCodes]-?: ErrorMessages[K] extends string ? K : never }[ErrorCodes];\ntype ErrorCodeTemplate = Exclude<keyof typeof ERROR_MESSAGES, ErrorCode>;\n\nconst errMsg = (msg: string | ((...x: any) => string), ...args: any) => (typeof msg === \"string\" ? msg : msg(...args));\n\nconst haveCode = (code: string): code is ErrorCodes => Object.keys(ERROR_MESSAGES).includes(code);\n\nexport class DisTubeError<T extends string> extends Error {\n errorCode: string;\n constructor(code: ErrorCode);\n constructor(code: T extends ErrorCodeTemplate ? T : never, ...args: Parameters<ErrorMessages[typeof code]>);\n constructor(code: ErrorCodeTemplate, _: never);\n constructor(code: T extends ErrorCodes ? \"This is built-in error code\" : T, message: string);\n constructor(code: string, ...args: any) {\n if (haveCode(code)) super(errMsg(ERROR_MESSAGES[code], ...args));\n else super(...args);\n\n this.errorCode = code;\n if (Error.captureStackTrace) Error.captureStackTrace(this, DisTubeError);\n }\n\n get name() {\n return `DisTubeError [${this.errorCode}]`;\n }\n\n get code() {\n return this.errorCode;\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Plugin from "
|
|
1
|
+
import { Plugin } from ".";
|
|
2
2
|
import { PluginType } from "..";
|
|
3
3
|
import type { Playlist, Song } from ".";
|
|
4
4
|
import type { GuildMember } from "discord.js";
|
|
@@ -8,22 +8,32 @@ import type { GuildMember } from "discord.js";
|
|
|
8
8
|
* @abstract
|
|
9
9
|
*/
|
|
10
10
|
export declare abstract class ExtractorPlugin extends Plugin {
|
|
11
|
+
/**
|
|
12
|
+
* Resolve the validated url to a {@link Song} or a {@link Playlist}.
|
|
13
|
+
*
|
|
14
|
+
* @param {string} url URL
|
|
15
|
+
* @param {Object} [options] Optional options
|
|
16
|
+
* @param {Discord.GuildMember} [options.member] Requested user
|
|
17
|
+
* @param {*} [options.metadata] Metadata
|
|
18
|
+
* @returns {Promise<Song|Playlist>}
|
|
19
|
+
* @method resolve
|
|
20
|
+
* @memberof ExtractorPlugin#
|
|
21
|
+
* @abstract
|
|
22
|
+
*/
|
|
11
23
|
type: PluginType;
|
|
12
24
|
/**
|
|
13
|
-
* Resolve the validated url to a {@link Song} or a {@link Playlist}
|
|
14
|
-
*
|
|
25
|
+
* Resolve the validated url to a {@link Song} or a {@link Playlist}.
|
|
26
|
+
*
|
|
27
|
+
* @param {string} url URL
|
|
28
|
+
* @param {Object} [options] Optional options
|
|
29
|
+
* @param {Discord.GuildMember} [options.member] Requested user
|
|
30
|
+
* @param {*} [options.metadata] Metadata
|
|
31
|
+
* @returns {Promise<Song|Playlist>}
|
|
32
|
+
* @abstract
|
|
15
33
|
*/
|
|
16
|
-
abstract resolve(url: string,
|
|
34
|
+
abstract resolve<T = unknown>(url: string, options: {
|
|
35
|
+
member?: GuildMember;
|
|
36
|
+
metadata?: T;
|
|
37
|
+
}): Promise<Song<T> | Playlist<T>>;
|
|
17
38
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Resolve the validated url to a {@link Song} or a {@link Playlist}.\
|
|
20
|
-
* Not needed to add {@link Song#related} because it will be added with {@link Plugin#getRelatedSongs}.
|
|
21
|
-
* @param {string} url URL
|
|
22
|
-
* @param {Discord.GuildMember} member Requested user
|
|
23
|
-
* @returns {Promise<Song|Song[]|Playlist>}
|
|
24
|
-
* @method resolve
|
|
25
|
-
* @memberof ExtractorPlugin#
|
|
26
|
-
* @abstract
|
|
27
|
-
*/
|
|
28
|
-
export default ExtractorPlugin;
|
|
29
39
|
//# sourceMappingURL=ExtractorPlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractorPlugin.d.ts","sourceRoot":"","sources":["../../src/struct/ExtractorPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"ExtractorPlugin.d.ts","sourceRoot":"","sources":["../../src/struct/ExtractorPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;GAIG;AACH,8BAAsB,eAAgB,SAAQ,MAAM;IAClD;;;;;;;;;;;OAWG;IACH,IAAI,aAAwB;IAC5B;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,EAC1B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;KAAE,GAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;CAClC"}
|
|
@@ -1,32 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.ExtractorPlugin = void 0;
|
|
7
|
-
const
|
|
4
|
+
const _1 = require(".");
|
|
8
5
|
const __1 = require("..");
|
|
9
6
|
/**
|
|
10
7
|
* Extractor Plugin
|
|
11
8
|
* @extends Plugin
|
|
12
9
|
* @abstract
|
|
13
10
|
*/
|
|
14
|
-
class ExtractorPlugin extends
|
|
11
|
+
class ExtractorPlugin extends _1.Plugin {
|
|
15
12
|
constructor() {
|
|
16
13
|
super(...arguments);
|
|
14
|
+
/**
|
|
15
|
+
* Resolve the validated url to a {@link Song} or a {@link Playlist}.
|
|
16
|
+
*
|
|
17
|
+
* @param {string} url URL
|
|
18
|
+
* @param {Object} [options] Optional options
|
|
19
|
+
* @param {Discord.GuildMember} [options.member] Requested user
|
|
20
|
+
* @param {*} [options.metadata] Metadata
|
|
21
|
+
* @returns {Promise<Song|Playlist>}
|
|
22
|
+
* @method resolve
|
|
23
|
+
* @memberof ExtractorPlugin#
|
|
24
|
+
* @abstract
|
|
25
|
+
*/
|
|
17
26
|
this.type = __1.PluginType.EXTRACTOR;
|
|
18
27
|
}
|
|
19
28
|
}
|
|
20
29
|
exports.ExtractorPlugin = ExtractorPlugin;
|
|
21
|
-
/**
|
|
22
|
-
* Resolve the validated url to a {@link Song} or a {@link Playlist}.\
|
|
23
|
-
* Not needed to add {@link Song#related} because it will be added with {@link Plugin#getRelatedSongs}.
|
|
24
|
-
* @param {string} url URL
|
|
25
|
-
* @param {Discord.GuildMember} member Requested user
|
|
26
|
-
* @returns {Promise<Song|Song[]|Playlist>}
|
|
27
|
-
* @method resolve
|
|
28
|
-
* @memberof ExtractorPlugin#
|
|
29
|
-
* @abstract
|
|
30
|
-
*/
|
|
31
|
-
exports.default = ExtractorPlugin;
|
|
32
30
|
//# sourceMappingURL=ExtractorPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractorPlugin.js","sourceRoot":"","sources":["../../src/struct/ExtractorPlugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExtractorPlugin.js","sourceRoot":"","sources":["../../src/struct/ExtractorPlugin.ts"],"names":[],"mappings":";;;AAAA,wBAA2B;AAC3B,0BAAgC;AAIhC;;;;GAIG;AACH,MAAsB,eAAgB,SAAQ,SAAM;IAApD;;QACE;;;;;;;;;;;WAWG;QACH,SAAI,GAAG,cAAU,CAAC,SAAS,CAAC;IAe9B,CAAC;CAAA;AA5BD,0CA4BC","sourcesContent":["import { Plugin } from \".\";\nimport { PluginType } from \"..\";\nimport type { Playlist, Song } from \".\";\nimport type { GuildMember } from \"discord.js\";\n\n/**\n * Extractor Plugin\n * @extends Plugin\n * @abstract\n */\nexport abstract class ExtractorPlugin extends Plugin {\n /**\n * Resolve the validated url to a {@link Song} or a {@link Playlist}.\n *\n * @param {string} url URL\n * @param {Object} [options] Optional options\n * @param {Discord.GuildMember} [options.member] Requested user\n * @param {*} [options.metadata] Metadata\n * @returns {Promise<Song|Playlist>}\n * @method resolve\n * @memberof ExtractorPlugin#\n * @abstract\n */\n type = PluginType.EXTRACTOR;\n /**\n * Resolve the validated url to a {@link Song} or a {@link Playlist}.\n *\n * @param {string} url URL\n * @param {Object} [options] Optional options\n * @param {Discord.GuildMember} [options.member] Requested user\n * @param {*} [options.metadata] Metadata\n * @returns {Promise<Song|Playlist>}\n * @abstract\n */\n abstract resolve<T = unknown>(\n url: string,\n options: { member?: GuildMember; metadata?: T },\n ): Promise<Song<T> | Playlist<T>>;\n}\n"]}
|
|
@@ -4,23 +4,34 @@ import type { GuildMember, User } from "discord.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Class representing a playlist.
|
|
6
6
|
* @prop {string} source Playlist source
|
|
7
|
+
* @template T - The type for the metadata (if any) of the playlist
|
|
7
8
|
*/
|
|
8
|
-
export declare class Playlist implements PlaylistInfo {
|
|
9
|
+
export declare class Playlist<T = unknown> implements PlaylistInfo {
|
|
9
10
|
source: string;
|
|
10
|
-
member?: GuildMember;
|
|
11
|
-
user?: User;
|
|
12
11
|
songs: Song[];
|
|
13
12
|
name: string;
|
|
13
|
+
metadata: T;
|
|
14
|
+
member?: GuildMember;
|
|
15
|
+
user?: User;
|
|
14
16
|
url?: string;
|
|
15
17
|
thumbnail?: string;
|
|
16
18
|
[x: string]: any;
|
|
19
|
+
constructor(playlist: Song[] | ytpl.result | PlaylistInfo);
|
|
20
|
+
/** @deprecated Passing GuildMember for DisTube#Playlist() is deprecated. */
|
|
21
|
+
constructor(playlist: Song[] | ytpl.result | PlaylistInfo, member?: GuildMember, properties?: Record<string, any>, metadata?: T);
|
|
17
22
|
/**
|
|
18
23
|
* Create a playlist
|
|
19
24
|
* @param {Song[]|PlaylistInfo} playlist Playlist
|
|
20
|
-
* @param {
|
|
21
|
-
* @param {
|
|
25
|
+
* @param {Object} [options] Optional options
|
|
26
|
+
* @param {Discord.GuildMember} [options.member] Requested user
|
|
27
|
+
* @param {Object} [options.properties] Custom properties
|
|
28
|
+
* @param {T} [options.metadata] Playlist metadata
|
|
22
29
|
*/
|
|
23
|
-
constructor(playlist: Song[] | ytpl.result | PlaylistInfo,
|
|
30
|
+
constructor(playlist: Song[] | ytpl.result | PlaylistInfo, options?: {
|
|
31
|
+
member?: GuildMember;
|
|
32
|
+
properties?: Record<string, any>;
|
|
33
|
+
metadata?: T;
|
|
34
|
+
});
|
|
24
35
|
/**
|
|
25
36
|
* Playlist duration in second.
|
|
26
37
|
* @type {number}
|
|
@@ -36,7 +47,12 @@ export declare class Playlist implements PlaylistInfo {
|
|
|
36
47
|
* @private
|
|
37
48
|
* @returns {Playlist}
|
|
38
49
|
*/
|
|
39
|
-
_patchMember(member?: GuildMember):
|
|
50
|
+
_patchMember(member?: GuildMember): this;
|
|
51
|
+
/**
|
|
52
|
+
* @param {*} metadata Metadata
|
|
53
|
+
* @private
|
|
54
|
+
* @returns {Playlist}
|
|
55
|
+
*/
|
|
56
|
+
_patchMetadata<S = unknown>(metadata: S): Playlist<S>;
|
|
40
57
|
}
|
|
41
|
-
export default Playlist;
|
|
42
58
|
//# sourceMappingURL=Playlist.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Playlist.d.ts","sourceRoot":"","sources":["../../src/struct/Playlist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Playlist.d.ts","sourceRoot":"","sources":["../../src/struct/Playlist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIpD;;;;GAIG;AACH,qBAAa,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,YAAY;IACxD,MAAM,EAAG,MAAM,CAAC;IAChB,KAAK,EAAG,IAAI,EAAE,CAAC;IACf,IAAI,EAAG,MAAM,CAAC;IACd,QAAQ,EAAG,CAAC,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;gBACL,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,YAAY;IACzD,4EAA4E;gBAE1E,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,YAAY,EAC7C,MAAM,CAAC,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,QAAQ,CAAC,EAAE,CAAC;IAEd;;;;;;;OAOG;gBAED,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,YAAY,EAC7C,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,QAAQ,CAAC,EAAE,CAAC,CAAC;KACd;IA6EH;;;OAGG;IACH,IAAI,QAAQ,WAEX;IAED;;;OAGG;IACH,IAAI,iBAAiB,WAEpB;IAED;;;;OAIG;IACH,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW;IAiBjC;;;;OAIG;IACH,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC;CAKxC"}
|
package/dist/struct/Playlist.js
CHANGED
|
@@ -2,19 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Playlist = void 0;
|
|
4
4
|
const __1 = require("..");
|
|
5
|
+
// TODO: Remove ! on the next major version
|
|
5
6
|
/**
|
|
6
7
|
* Class representing a playlist.
|
|
7
8
|
* @prop {string} source Playlist source
|
|
9
|
+
* @template T - The type for the metadata (if any) of the playlist
|
|
8
10
|
*/
|
|
9
11
|
class Playlist {
|
|
10
|
-
|
|
11
|
-
* Create a playlist
|
|
12
|
-
* @param {Song[]|PlaylistInfo} playlist Playlist
|
|
13
|
-
* @param {Discord.GuildMember} member Requested user
|
|
14
|
-
* @param {Object} properties Custom properties
|
|
15
|
-
*/
|
|
16
|
-
constructor(playlist, member, properties = {}) {
|
|
12
|
+
constructor(playlist, options = {}, props = {}, meta) {
|
|
17
13
|
var _a;
|
|
14
|
+
if ((0, __1.isMemberInstance)(options)) {
|
|
15
|
+
process.emitWarning("Passing GuildMember for DisTube#Playlist() is deprecated, read the docs for more.", "DeprecationWarning");
|
|
16
|
+
return new Playlist(playlist, { member: options, properties: props, metadata: meta });
|
|
17
|
+
}
|
|
18
|
+
const { member, properties, metadata } = Object.assign({ properties: {} }, options);
|
|
18
19
|
if (typeof playlist !== "object") {
|
|
19
20
|
throw new __1.DisTubeError("INVALID_TYPE", ["Array<Song>", "object"], playlist, "playlist");
|
|
20
21
|
}
|
|
@@ -60,6 +61,12 @@ class Playlist {
|
|
|
60
61
|
for (const [key, value] of Object.entries(properties)) {
|
|
61
62
|
this[key] = value;
|
|
62
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Optional metadata that can be used to identify the playlist.
|
|
66
|
+
* @type {T}
|
|
67
|
+
*/
|
|
68
|
+
this.metadata = metadata;
|
|
69
|
+
this._patchMetadata(metadata);
|
|
63
70
|
}
|
|
64
71
|
/**
|
|
65
72
|
* Playlist duration in second.
|
|
@@ -98,7 +105,16 @@ class Playlist {
|
|
|
98
105
|
this.songs.map(s => s.constructor.name === "Song" && s._patchPlaylist(this, this.member));
|
|
99
106
|
return this;
|
|
100
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* @param {*} metadata Metadata
|
|
110
|
+
* @private
|
|
111
|
+
* @returns {Playlist}
|
|
112
|
+
*/
|
|
113
|
+
_patchMetadata(metadata) {
|
|
114
|
+
this.metadata = metadata;
|
|
115
|
+
this.songs.map(s => s.constructor.name === "Song" && s._patchMetadata(metadata));
|
|
116
|
+
return this;
|
|
117
|
+
}
|
|
101
118
|
}
|
|
102
119
|
exports.Playlist = Playlist;
|
|
103
|
-
exports.default = Playlist;
|
|
104
120
|
//# sourceMappingURL=Playlist.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Playlist.js","sourceRoot":"","sources":["../../src/struct/Playlist.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Playlist.js","sourceRoot":"","sources":["../../src/struct/Playlist.ts"],"names":[],"mappings":"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","sourcesContent":["import { DisTubeError, formatDuration, isMemberInstance } from \"..\";\nimport type ytpl from \"@distube/ytpl\";\nimport type { PlaylistInfo, Song } from \"..\";\nimport type { GuildMember, User } from \"discord.js\";\n\n// TODO: Remove ! on the next major version\n\n/**\n * Class representing a playlist.\n * @prop {string} source Playlist source\n * @template T - The type for the metadata (if any) of the playlist\n */\nexport class Playlist<T = unknown> implements PlaylistInfo {\n source!: string;\n songs!: Song[];\n name!: string;\n metadata!: T;\n member?: GuildMember;\n user?: User;\n url?: string;\n thumbnail?: string;\n [x: string]: any;\n constructor(playlist: Song[] | ytpl.result | PlaylistInfo);\n /** @deprecated Passing GuildMember for DisTube#Playlist() is deprecated. */\n constructor(\n playlist: Song[] | ytpl.result | PlaylistInfo,\n member?: GuildMember,\n properties?: Record<string, any>,\n metadata?: T,\n );\n /**\n * Create a playlist\n * @param {Song[]|PlaylistInfo} playlist Playlist\n * @param {Object} [options] Optional options\n * @param {Discord.GuildMember} [options.member] Requested user\n * @param {Object} [options.properties] Custom properties\n * @param {T} [options.metadata] Playlist metadata\n */\n constructor(\n playlist: Song[] | ytpl.result | PlaylistInfo,\n options?: {\n member?: GuildMember;\n properties?: Record<string, any>;\n metadata?: T;\n },\n );\n constructor(\n playlist: Song[] | ytpl.result | PlaylistInfo,\n options:\n | GuildMember\n | {\n member?: GuildMember;\n properties?: Record<string, any>;\n metadata?: T;\n } = {},\n props: Record<string, any> = {},\n meta?: T,\n ) {\n if (isMemberInstance(options)) {\n process.emitWarning(\n \"Passing GuildMember for DisTube#Playlist() is deprecated, read the docs for more.\",\n \"DeprecationWarning\",\n );\n return new Playlist(playlist, { member: options, properties: props, metadata: meta });\n }\n\n const { member, properties, metadata } = Object.assign({ properties: {} }, options);\n\n if (typeof playlist !== \"object\") {\n throw new DisTubeError(\"INVALID_TYPE\", [\"Array<Song>\", \"object\"], playlist, \"playlist\");\n }\n if (typeof properties !== \"object\") {\n throw new DisTubeError(\"INVALID_TYPE\", \"object\", properties, \"properties\");\n }\n // FIXME\n const info = playlist as any;\n /**\n * The source of the playlist\n * @type {string}\n */\n this.source = (info.source || properties.source || \"youtube\").toLowerCase();\n /**\n * Playlist songs.\n * @type {Array<Song>}\n */\n this.songs = Array.isArray(info) ? info : info.items || info.songs;\n if (!Array.isArray(this.songs) || !this.songs.length) {\n throw new DisTubeError(\"EMPTY_PLAYLIST\");\n }\n this._patchMember(member || info.member);\n /**\n * Playlist name.\n * @type {string}\n */\n this.name =\n info.name ||\n info.title ||\n (this.songs[0].name\n ? `${this.songs[0].name} and ${this.songs.length - 1} more songs.`\n : `${this.songs.length} songs playlist`);\n /**\n * Playlist URL.\n * @type {string}\n */\n this.url = info.url || info.webpage_url;\n /**\n * Playlist thumbnail.\n * @type {?string}\n */\n this.thumbnail = info.thumbnail?.url || info.thumbnail || this.songs[0].thumbnail;\n for (const [key, value] of Object.entries(properties)) {\n this[key] = value;\n }\n /**\n * Optional metadata that can be used to identify the playlist.\n * @type {T}\n */\n this.metadata = metadata as T;\n this._patchMetadata(metadata);\n }\n\n /**\n * Playlist duration in second.\n * @type {number}\n */\n get duration() {\n return this.songs?.reduce((prev, next) => prev + (next.duration || 0), 0) || 0;\n }\n\n /**\n * Formatted duration string `hh:mm:ss`.\n * @type {string}\n */\n get formattedDuration() {\n return formatDuration(this.duration);\n }\n\n /**\n * @param {?Discord.GuildMember} [member] Requested user\n * @private\n * @returns {Playlist}\n */\n _patchMember(member?: GuildMember) {\n if (member) {\n /**\n * User requested.\n * @type {?Discord.GuildMember}\n */\n this.member = member;\n /**\n * User requested.\n * @type {?Discord.User}\n */\n this.user = this.member?.user;\n }\n this.songs.map(s => s.constructor.name === \"Song\" && s._patchPlaylist(this, this.member));\n return this;\n }\n\n /**\n * @param {*} metadata Metadata\n * @private\n * @returns {Playlist}\n */\n _patchMetadata<S = unknown>(metadata: S) {\n this.metadata = metadata as unknown as T;\n this.songs.map(s => s.constructor.name === \"Song\" && s._patchMetadata(metadata));\n return this as unknown as Playlist<S>;\n }\n}\n"]}
|
package/dist/struct/Plugin.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Client,
|
|
2
|
-
import type { DisTube, DisTubeEvents, DisTubeHandler, DisTubeVoiceManager, Options, PluginType, QueueManager
|
|
1
|
+
import type { Client, GuildTextBasedChannel } from "discord.js";
|
|
2
|
+
import type { DisTube, DisTubeEvents, DisTubeHandler, DisTubeVoiceManager, Options, PluginType, QueueManager } from "..";
|
|
3
3
|
/**
|
|
4
4
|
* DisTube Plugin
|
|
5
5
|
* @abstract
|
|
@@ -24,9 +24,9 @@ export declare abstract class Plugin {
|
|
|
24
24
|
/**
|
|
25
25
|
* Emit error event
|
|
26
26
|
* @param {Error} error error
|
|
27
|
-
* @param {Discord.
|
|
27
|
+
* @param {Discord.BaseGuildTextChannel} [channel] Text channel where the error is encountered.
|
|
28
28
|
*/
|
|
29
|
-
emitError(error: Error, channel?:
|
|
29
|
+
emitError(error: Error, channel?: GuildTextBasedChannel): void;
|
|
30
30
|
/**
|
|
31
31
|
* The queue manager
|
|
32
32
|
* @type {QueueManager}
|
|
@@ -70,13 +70,5 @@ export declare abstract class Plugin {
|
|
|
70
70
|
* @returns {Promise<string>}
|
|
71
71
|
*/
|
|
72
72
|
getStreamURL(url: string): Promise<string>;
|
|
73
|
-
/**
|
|
74
|
-
* (Optional) Get related songs from a supported url. {@link Song#member} should be `undefined`.
|
|
75
|
-
* Not needed to add {@link Song#related} because it will be added with this function later.
|
|
76
|
-
* @param {string} url Input url
|
|
77
|
-
* @returns {Promise<Song[]>}
|
|
78
|
-
*/
|
|
79
|
-
getRelatedSongs(url: string): Promise<Song[]>;
|
|
80
73
|
}
|
|
81
|
-
export default Plugin;
|
|
82
74
|
//# sourceMappingURL=Plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/struct/Plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/struct/Plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,UAAU,EACV,YAAY,EAEb,MAAM,IAAI,CAAC;AAEZ;;;;GAIG;AACH,8BAAsB,MAAM;IAC1B,IAAI,EAAG,UAAU,CAAC;IAClB,OAAO,EAAG,OAAO,CAAC;IAClB,IAAI,CAAC,OAAO,EAAE,OAAO;IAOrB;;;;OAIG;IACH;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,OAAO;IAG3D;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAGvD;;;;OAIG;IACH,IAAI,MAAM,IAAI,YAAY,CAEzB;IACD;;;;OAIG;IACH,IAAI,MAAM,IAAI,mBAAmB,CAEhC;IACD;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD;;;;OAIG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IACD;;;;OAIG;IACH,IAAI,OAAO,IAAI,cAAc,CAE5B;IACD;;;;OAIG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAG7C;;;;;OAKG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGjD"}
|
package/dist/struct/Plugin.js
CHANGED
|
@@ -31,7 +31,7 @@ class Plugin {
|
|
|
31
31
|
/**
|
|
32
32
|
* Emit error event
|
|
33
33
|
* @param {Error} error error
|
|
34
|
-
* @param {Discord.
|
|
34
|
+
* @param {Discord.BaseGuildTextChannel} [channel] Text channel where the error is encountered.
|
|
35
35
|
*/
|
|
36
36
|
emitError(error, channel) {
|
|
37
37
|
this.distube.emitError(error, channel);
|
|
@@ -93,16 +93,6 @@ class Plugin {
|
|
|
93
93
|
async getStreamURL(url) {
|
|
94
94
|
return url;
|
|
95
95
|
}
|
|
96
|
-
/**
|
|
97
|
-
* (Optional) Get related songs from a supported url. {@link Song#member} should be `undefined`.
|
|
98
|
-
* Not needed to add {@link Song#related} because it will be added with this function later.
|
|
99
|
-
* @param {string} url Input url
|
|
100
|
-
* @returns {Promise<Song[]>}
|
|
101
|
-
*/
|
|
102
|
-
async getRelatedSongs(url) {
|
|
103
|
-
return [];
|
|
104
|
-
}
|
|
105
96
|
}
|
|
106
97
|
exports.Plugin = Plugin;
|
|
107
|
-
exports.default = Plugin;
|
|
108
98
|
//# sourceMappingURL=Plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/struct/Plugin.ts"],"names":[],"mappings":";;;AAaA;;;;GAIG;AACH,MAAsB,MAAM;IAG1B,IAAI,CAAC,OAAgB;QACnB;;;WAGG;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IACD;;;;OAIG;IACH;;;;;OAKG;IACH,IAAI,CAAC,SAA8B,EAAE,GAAG,IAAS;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD;;;;OAIG;IACH,SAAS,CAAC,KAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/struct/Plugin.ts"],"names":[],"mappings":";;;AAaA;;;;GAIG;AACH,MAAsB,MAAM;IAG1B,IAAI,CAAC,OAAgB;QACnB;;;WAGG;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IACD;;;;OAIG;IACH;;;;;OAKG;IACH,IAAI,CAAC,SAA8B,EAAE,GAAG,IAAS;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD;;;;OAIG;IACH,SAAS,CAAC,KAAY,EAAE,OAA+B;QACrD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IACD;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IACD;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IACD;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IACD;;;;OAIG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IACD;;;;OAIG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IACD;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,GAAW;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAzFD,wBAyFC","sourcesContent":["/* eslint-disable @typescript-eslint/require-await, @typescript-eslint/no-unused-vars */\nimport type { Client, GuildTextBasedChannel } from \"discord.js\";\nimport type {\n DisTube,\n DisTubeEvents,\n DisTubeHandler,\n DisTubeVoiceManager,\n Options,\n PluginType,\n QueueManager,\n Song,\n} from \"..\";\n\n/**\n * DisTube Plugin\n * @abstract\n * @private\n */\nexport abstract class Plugin {\n type!: PluginType;\n distube!: DisTube;\n init(distube: DisTube) {\n /**\n * DisTube\n * @type {DisTube}\n */\n this.distube = distube;\n }\n /**\n * Type of the plugin\n * @name Plugin#type\n * @type {PluginType}\n */\n /**\n * Emit the {@link DisTube} of this base\n * @param {string} eventName Event name\n * @param {...any} args arguments\n * @returns {boolean}\n */\n emit(eventName: keyof DisTubeEvents, ...args: any): boolean {\n return this.distube.emit(eventName, ...args);\n }\n /**\n * Emit error event\n * @param {Error} error error\n * @param {Discord.BaseGuildTextChannel} [channel] Text channel where the error is encountered.\n */\n emitError(error: Error, channel?: GuildTextBasedChannel) {\n this.distube.emitError(error, channel);\n }\n /**\n * The queue manager\n * @type {QueueManager}\n * @readonly\n */\n get queues(): QueueManager {\n return this.distube.queues;\n }\n /**\n * The voice manager\n * @type {DisTubeVoiceManager}\n * @readonly\n */\n get voices(): DisTubeVoiceManager {\n return this.distube.voices;\n }\n /**\n * Discord.js client\n * @type {Discord.Client}\n * @readonly\n */\n get client(): Client {\n return this.distube.client;\n }\n /**\n * DisTube options\n * @type {DisTubeOptions}\n * @readonly\n */\n get options(): Options {\n return this.distube.options;\n }\n /**\n * DisTube handler\n * @type {DisTubeHandler}\n * @readonly\n */\n get handler(): DisTubeHandler {\n return this.distube.handler;\n }\n /**\n * Check if the url is working with this plugin\n * @param {string} url Input url\n * @returns {Promise<boolean>}\n */\n async validate(url: string): Promise<boolean> {\n return false;\n }\n /**\n * Get the stream url from {@link Song#url}. Returns {@link Song#url} by default.\n * Not needed if the plugin plays song from YouTube.\n * @param {string} url Input url\n * @returns {Promise<string>}\n */\n async getStreamURL(url: string): Promise<string> {\n return url;\n }\n}\n"]}
|
package/dist/struct/Queue.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { DisTubeBase } from "../core";
|
|
3
3
|
import { RepeatMode, Song, TaskQueue } from "..";
|
|
4
|
-
import type { GuildMember,
|
|
4
|
+
import type { GuildMember, GuildTextBasedChannel, Snowflake } from "discord.js";
|
|
5
5
|
import type { DisTube, DisTubeVoice, DisTubeVoiceEvents, SearchResult } from "..";
|
|
6
6
|
/**
|
|
7
7
|
* Represents a queue.
|
|
8
8
|
* @extends DisTubeBase
|
|
9
9
|
*/
|
|
10
10
|
export declare class Queue extends DisTubeBase {
|
|
11
|
-
id: Snowflake;
|
|
11
|
+
readonly id: Snowflake;
|
|
12
12
|
/**
|
|
13
13
|
* Voice connection of this queue
|
|
14
14
|
*/
|
|
@@ -66,7 +66,7 @@ export declare class Queue extends DisTubeBase {
|
|
|
66
66
|
/**
|
|
67
67
|
* The text channel of the Queue. (Default: where the first command is called).
|
|
68
68
|
*/
|
|
69
|
-
textChannel?:
|
|
69
|
+
textChannel?: GuildTextBasedChannel;
|
|
70
70
|
/**
|
|
71
71
|
* Timeout for checking empty channel
|
|
72
72
|
* @private
|
|
@@ -86,9 +86,9 @@ export declare class Queue extends DisTubeBase {
|
|
|
86
86
|
* @param {DisTube} distube DisTube
|
|
87
87
|
* @param {DisTubeVoice} voice Voice connection
|
|
88
88
|
* @param {Song|Song[]} song First song(s)
|
|
89
|
-
* @param {Discord.
|
|
89
|
+
* @param {Discord.BaseGuildTextChannel?} textChannel Default text channel
|
|
90
90
|
*/
|
|
91
|
-
constructor(distube: DisTube, voice: DisTubeVoice, song: Song | Song[], textChannel?:
|
|
91
|
+
constructor(distube: DisTube, voice: DisTubeVoice, song: Song | Song[], textChannel?: GuildTextBasedChannel);
|
|
92
92
|
/**
|
|
93
93
|
* Formatted duration string.
|
|
94
94
|
* @type {string}
|
|
@@ -213,5 +213,4 @@ export declare class Queue extends DisTubeBase {
|
|
|
213
213
|
*/
|
|
214
214
|
toggleAutoplay(): boolean;
|
|
215
215
|
}
|
|
216
|
-
export default Queue;
|
|
217
216
|
//# sourceMappingURL=Queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../src/struct/Queue.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAgB,UAAU,EAAE,IAAI,EAAE,SAAS,EAAkB,MAAM,IAAI,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../src/struct/Queue.ts"],"names":[],"mappings":"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"}
|