diff options
-rw-r--r-- | commands/episode.js | 41 | ||||
-rw-r--r-- | config/version.txt | 2 |
2 files changed, 41 insertions, 2 deletions
diff --git a/commands/episode.js b/commands/episode.js index d6113a4..e79e9b0 100644 --- a/commands/episode.js +++ b/commands/episode.js @@ -3,12 +3,52 @@ const { MessageActionRow, MessageButton, MessageSelectMenu, MessageEmbed } = req const getEpisodePublic = require("../modules/episodepublic"); const episodeReply = require("../modules/episodereply"); +const getEpisodes = require("../modules/findepisode"); const series = JSON.parse(fs.readFileSync("./data/series.json").toString()); module.exports = async (interaction) => { let select = interaction.options.getSubcommand(); let episode = interaction.options.getString('episode').toLowerCase(); + let ep_orig = episode; + let sdata = series.filter(i => i.command.toLowerCase() === select)[0]; + + // Check if it's a valid episode + try { + let sid = episode.split("-")[0]; + let spt = sid.substring(1); + let eid = episode.split("-")[1]; + let edata = sdata.seasons.filter(i => i.id === sid)[0].episodes.filter(i => i.local - 1 + 1 === eid - 1 + 1)[0]; + } catch (e) { // If it's not, run the search engine + try { + episode = getEpisodes(series.filter(i => i.command.toLowerCase() === select)[0], episode)[0].value; + + let sid = episode.split("-")[0]; + let spt = sid.substring(1); + let eid = episode.split("-")[1]; + let edata = sdata.seasons.filter(i => i.id === sid)[0].episodes.filter(i => i.local - 1 + 1 === eid - 1 + 1)[0]; + } catch (e) { // If no result is found, return an error message + await interaction.reply({ + ephemeral: interaction.guild !== null, + embeds: [ + new MessageEmbed() + .setColor('#dc2828') + .setTitle(l("Results for", "Résultats pour", interaction.user.id, interaction.guild ? interaction.guild.id : 0) + " \"" + ep_orig + "\"") + .setDescription(l("No results found. Please try with other keywords.", "Aucun résultat trouvé. Essayez avec d'autres mots clés.", interaction.user.id, interaction.guild ? interaction.guild.id : 0)) + ], + components: [ + new MessageActionRow() + .addComponents( + new MessageButton() + .setCustomId("result.report|" + ep_orig) + .setLabel(l("Report an issue", "Signaler un problème", interaction.user.id, interaction.guild ? interaction.guild.id : 0)) + .setStyle("DANGER") + ) + ] + }); + return; + } + } if (statsEpisodes[select + "-" + episode] !== undefined) { statsEpisodes[select + "-" + episode]++; @@ -17,7 +57,6 @@ module.exports = async (interaction) => { } fs.writeFile("./stats/episodes.json", JSON.stringify(statsEpisodes), () => {}); - let sdata = series.filter(i => i.command.toLowerCase() === select)[0]; if (typeof episode === "string") { await episodeReply(interaction, select, episode, sdata); } diff --git a/config/version.txt b/config/version.txt index 795654c..33b655a 100644 --- a/config/version.txt +++ b/config/version.txt @@ -1 +1 @@ -2.0.54
\ No newline at end of file +2.0.55
\ No newline at end of file |