diff options
author | Minteck <contact@minteck.org> | 2022-02-13 20:26:08 +0000 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-02-13 20:26:08 +0000 |
commit | 888a39829d7bc1d63357832b8ce07abddd755478 (patch) | |
tree | b1cdb8dbf050f265d737d149bb5385da43732b36 | |
parent | 489333336b67190475b3d8f8275d5bf38b241d41 (diff) | |
parent | 36bc924b5acb25352488bc9fe5d77ba2383ddd7f (diff) | |
download | ponyfind-888a39829d7bc1d63357832b8ce07abddd755478.tar.gz ponyfind-888a39829d7bc1d63357832b8ce07abddd755478.tar.bz2 ponyfind-888a39829d7bc1d63357832b8ce07abddd755478.zip |
Merge branch '15-can-run-episode-with-an-unknown-episode' into 'trunk'
Resolve "Can run /episode with an unknown episode"
Closes #15
See merge request minteck/ponyfind!1
-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 |