Skip to content
This repository has been archived by the owner on Sep 3, 2024. It is now read-only.

Commit

Permalink
Fix: Try second result when stream can not be extracted
Browse files Browse the repository at this point in the history
  • Loading branch information
mariusbegby committed Jul 9, 2023
1 parent e1dccc7 commit 695243f
Showing 1 changed file with 91 additions and 30 deletions.
121 changes: 91 additions & 30 deletions commands/play.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,11 @@ module.exports = {
}

const player = useMainPlayer();
const queue = useQueue(interaction.guild.id);
const query = interaction.options.getString('query');

const results = await player.search(query);
const searchResult = await player.search(query);

if (!results || results.tracks.length === 0) {
if (!searchResult || searchResult.tracks.length === 0) {
return await interaction.editReply({
embeds: [
new EmbedBuilder()
Expand All @@ -44,34 +43,96 @@ module.exports = {
});
}

const { track } = await player.play(
interaction.member.voice.channel,
query,
{
requestedBy: interaction.user,
nodeOptions: {
leaveOnEmptyCooldown: 60000,
leaveOnEndCooldown: 60000,
leaveOnStopCooldown: 60000
try {
const { track } = await player.play(
interaction.member.voice.channel,
searchResult.tracks[0].url,
{
requestedBy: interaction.user,
nodeOptions: {
leaveOnEmptyCooldown: 60000,
leaveOnEndCooldown: 60000,
leaveOnStopCooldown: 60000
}
}
}
);
);

return await interaction.editReply({
embeds: [
new EmbedBuilder()
.setAuthor({
name: interaction.user.username,
iconURL: interaction.user.avatarURL()
})
.setDescription(
`**Added to queue**\n\`[${track.duration}]\` **[${track.title}](${track.url})**`
)
.setThumbnail(track.thumbnail)
.setColor(embedColors.colorSuccess)
]
});
} catch (e) {
if (e.message.includes('Could not extract stream for this track')) {
if (searchResult.tracks.length > 1) {
try {
const { track } = await player.play(
interaction.member.voice.channel,
searchResult.tracks[1].url,
{
requestedBy: interaction.user,
nodeOptions: {
leaveOnEmptyCooldown: 60000,
leaveOnEndCooldown: 60000,
leaveOnStopCooldown: 60000
}
}
);

// TODO: Add a check to see if the queue is empty, and if so, add a message to the embed saying that the track is now playing.
// TODO: YouTube thumbnail not shown? Different url than track.thumbnail?
return await interaction.editReply({
embeds: [
new EmbedBuilder()
.setAuthor({
name: interaction.user.username,
iconURL: interaction.user.avatarURL()
})
.setDescription(
`**Added to queue**\n\`[${track.duration}]\` **[${track.title}](${track.url})**`
)
.setThumbnail(track.thumbnail)
.setColor(embedColors.colorSuccess)
]
});
return await interaction.editReply({
embeds: [
new EmbedBuilder()
.setAuthor({
name: interaction.user.username,
iconURL: interaction.user.avatarURL()
})
.setDescription(
`**Added to queue**\n\`[${track.duration}]\` **[${track.title}](${track.url})**`
)
.setThumbnail(track.thumbnail)
.setColor(embedColors.colorSuccess)
]
});
} catch (e) {
if (
e.message.includes(
'Could not extract stream for this track'
)
) {
return await interaction.editReply({
embeds: [
new EmbedBuilder()
.setDescription(
`**Failed**\nFound a result for query \`${query}\` with source ${searchResult.tracks[1].url}, but was unable to extract audio stream from track.\n\nThis is most likely due to audio source blocking download from the bot. Please try another track or refine your query.`
)
.setColor(embedColors.colorError)
]
});
}
}
} else {
return await interaction.editReply({
embeds: [
new EmbedBuilder()
.setDescription(
`**Failed**\nFound a result for query \`${query}\` with source ${searchResult.tracks[0].url}, but was unable to extract audio stream from track.\n\nThis is most likely due to audio source blocking download from the bot or unsupported audio encoding. Please try another track or refine your query.`
)
.setColor(embedColors.colorError)
]
});
}
} else {
throw e;
}
}
}
};

0 comments on commit 695243f

Please # to comment.