aboutsummaryrefslogtreecommitdiff
path: root/commands/episode.js
diff options
context:
space:
mode:
Diffstat (limited to 'commands/episode.js')
-rw-r--r--commands/episode.js41
1 files changed, 40 insertions, 1 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);
}