Skip to content

Commit

Permalink
chore(Release): 3.0.2
Browse files Browse the repository at this point in the history
  • Loading branch information
skick1234 committed Nov 9, 2021
2 parents 0580c7b + 04fa4f5 commit c755c41
Show file tree
Hide file tree
Showing 10 changed files with 217 additions and 85 deletions.
34 changes: 17 additions & 17 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "distube",
"version": "3.0.1",
"version": "3.0.2",
"description": "A Discord.js module to simplify your music commands and play songs with audio filters on Discord without any API key. Support YouTube, SoundCloud, Bandcamp, Facebook, and 700+ more sites",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
Expand Down Expand Up @@ -45,34 +45,34 @@
},
"homepage": "https://distube.js.org/",
"dependencies": {
"@distube/youtube-dl": "^2.2.2",
"@distube/youtube-dl": "^2.2.4",
"@distube/ytdl-core": "^4.9.3",
"@distube/ytpl": "^1.1.1",
"@distube/ytsr": "^1.1.5",
"prism-media": "https://codeload.github.com/distubejs/prism-media/tar.gz/main",
"tiny-typed-emitter": "^2.1.0"
},
"devDependencies": {
"@babel/core": "^7.15.8",
"@babel/plugin-proposal-class-properties": "^7.14.5",
"@babel/plugin-proposal-object-rest-spread": "^7.15.6",
"@babel/preset-env": "^7.15.8",
"@babel/preset-typescript": "^7.15.0",
"@commitlint/cli": "^13.2.1",
"@commitlint/config-conventional": "^13.2.0",
"@discordjs/voice": "^0.6.0",
"@babel/core": "^7.16.0",
"@babel/plugin-proposal-class-properties": "^7.16.0",
"@babel/plugin-proposal-object-rest-spread": "^7.16.0",
"@babel/preset-env": "^7.16.0",
"@babel/preset-typescript": "^7.16.0",
"@commitlint/cli": "^14.1.0",
"@commitlint/config-conventional": "^14.1.0",
"@discordjs/voice": "^0.7.2",
"@distube/docgen": "github:distubejs/docgen",
"@types/jest": "^27.0.2",
"@types/node": "^16.11.0",
"babel-jest": "^27.2.5",
"discord.js": "^13.2.0",
"@types/node": "^16.11.7",
"babel-jest": "^27.3.1",
"discord.js": "^13.3.1",
"eslint": "^7.32.0",
"eslint-config-distube": "^1.4.0",
"husky": "^7.0.2",
"jest": "^27.2.5",
"husky": "^7.0.4",
"jest": "^27.3.1",
"jsdoc-babel": "^0.5.0",
"lint-staged": "^11.2.3",
"npm-check-updates": "^11.8.5",
"lint-staged": "^11.2.6",
"npm-check-updates": "^12.0.2",
"pinst": "^2.1.6",
"prettier": "^2.4.1",
"typescript": "^4.4.4"
Expand Down
2 changes: 1 addition & 1 deletion src/DisTube.ts
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ export class DisTube extends TypedEmitter<DisTubeEvents> {
song: string | Song | SearchResult | Playlist,
options: { skip?: boolean; unshift?: boolean } = {},
): Promise<void> {
if (!song) return;
if (!song) throw new DisTubeError("INVALID_TYPE", ["string", "Song", "SearchResult", "Playlist"], song, "song");
if (!isMessageInstance(message)) throw new DisTubeError("INVALID_TYPE", "Discord.Message", message, "message");
if (typeof options !== "object" || Array.isArray(options)) {
throw new DisTubeError("INVALID_TYPE", "object", options, "options");
Expand Down
55 changes: 41 additions & 14 deletions src/core/DisTubeHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -232,11 +232,50 @@ export class DisTubeHandler extends DisTubeBase {

/**
* Search for a song, fire {@link DisTube#event:error} if not found.
* @param {Discord.Message} message A message from guild channel
* @param {Discord.Message} message The original message from an user
* @param {string} query The query string
* @returns {Promise<SearchResult?>} Song info
*/
async searchSong(message: Message, query: string): Promise<SearchResult | null> {
if (!isMessageInstance(message)) throw new DisTubeError("INVALID_TYPE", "Discord.Message", message, "message");
if (typeof query !== "string") throw new DisTubeError("INVALID_TYPE", "string", query, "query");
if (query.length === 0) throw new DisTubeError("EMPTY_STRING", "query");
const limit = this.options.searchSongs > 1 ? this.options.searchSongs : 1;
const results = await this.distube
.search(query, {
limit,
safeSearch: this.options.nsfw ? false : !(message.channel as TextChannel)?.nsfw,
})
.catch(() => {
if (!this.emit("searchNoResult", message, query)) {
// eslint-disable-next-line no-console
console.warn("searchNoResult event does not have any listeners! Emits `error` event instead.");
throw new DisTubeError("NO_RESULT");
}
});
if (!results) return null;
return this.createSearchMessageCollector(message, results, query);
}

/**
* Create a message collector for selecting search results.
*
* Needed events: {@link DisTube#event:searchResult}, {@link DisTube#event:searchCancel},
* {@link DisTube#event:searchInvalidAnswer}, {@link DisTube#event:searchDone}.
* @param {Discord.Message} message The original message from an user
* @param {Array<SearchResult|Song|Playlist>} results The search results
* @param {string?} [query] The query string
* @returns {Promise<SearchResult|Song|Playlist|null>} Selected result
*/
async createSearchMessageCollector<R extends SearchResult | Song | Playlist>(
message: Message,
results: Array<R>,
query?: string,
): Promise<R | null> {
if (!isMessageInstance(message)) throw new DisTubeError("INVALID_TYPE", "Discord.Message", message, "message");
if (!Array.isArray(results) || results.length == 0) {
throw new DisTubeError("INVALID_TYPE", "Array<SearchResult|Song|Playlist>", results, "results");
}
if (this.options.searchSongs > 1) {
const searchEvents = [
"searchNoResult",
Expand All @@ -259,21 +298,9 @@ export class DisTubeHandler extends DisTubeBase {
}
}
const limit = this.options.searchSongs > 1 ? this.options.searchSongs : 1;
const results = await this.distube
.search(query, {
limit,
safeSearch: this.options.nsfw ? false : !(message.channel as TextChannel)?.nsfw,
})
.catch(() => {
if (!this.emit("searchNoResult", message, query)) {
// eslint-disable-next-line no-console
console.warn("searchNoResult event does not have any listeners! Emits `error` event instead.");
throw new DisTubeError("NO_RESULT");
}
});
if (!results) return null;
let result = results[0];
if (limit > 1) {
results.splice(limit);
this.emit("searchResult", message, results, query);
const c = message.channel;
const answers = await (c.awaitMessages.length === 0
Expand Down
2 changes: 2 additions & 0 deletions src/core/DisTubeStream.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@ export class DisTubeStream {
"1",
"-reconnect_streamed",
"1",
"-reconnect_at_eof",
"1",
"-reconnect_delay_max",
"5",
"-i",
Expand Down
Loading

0 comments on commit c755c41

Please sign in to comment.