aboutsummaryrefslogtreecommitdiff
path: root/handler
diff options
context:
space:
mode:
Diffstat (limited to 'handler')
-rw-r--r--handler/autocomplete.js13
-rw-r--r--handler/button.js50
-rw-r--r--handler/command.js5
-rw-r--r--handler/menu.js2
4 files changed, 66 insertions, 4 deletions
diff --git a/handler/autocomplete.js b/handler/autocomplete.js
new file mode 100644
index 0000000..5696ab7
--- /dev/null
+++ b/handler/autocomplete.js
@@ -0,0 +1,13 @@
+const getEpisodes = require('../modules/findepisode');
+const fs = require("fs");
+const episodes = JSON.parse(fs.readFileSync("./data/series.json").toString());
+
+module.exports = async (interaction) => {
+ try {
+ let series = interaction.options.getSubcommand();
+
+ if (interaction.commandName === "episode") {
+ await interaction.respond(getEpisodes(episodes.filter(i => i.command.toLowerCase() === series)[0], interaction.options.getFocused()));
+ }
+ } catch (e) {}
+} \ No newline at end of file
diff --git a/handler/button.js b/handler/button.js
index f9f283e..4a8a343 100644
--- a/handler/button.js
+++ b/handler/button.js
@@ -5,6 +5,8 @@ const { MessageActionRow, MessageButton, MessageSelectMenu, MessageEmbed, Messag
const getPixel = require('../modules/pixel.js');
const getEmbed = require("../modules/embed");
const getPublic = require("../modules/public");
+const episodeReply = require("../modules/episodereply");
+const series = JSON.parse(fs.readFileSync("./data/series.json").toString());
module.exports = async (interaction) => {
keys = interaction.customId.split("|")
@@ -14,9 +16,51 @@ module.exports = async (interaction) => {
} else {
statsButtons[keys[0]] = 1;
}
- fs.writeFile("./stats/buttons.json", JSON.stringify(statsButtons), () => {});
+ fs.writeFile("./stats/buttons.json", JSON.stringify(statsButtons), () => {
+ });
- if (keys[0] === "pony.display") {
+ if (keys[0] === "episode.public") {
+ if (typeof cooldowns[interaction.user.id] !== "undefined" && new Date() - cooldowns[interaction.user.id] < 30000) {
+ await interaction.reply({
+ ephemeral: interaction.guild !== null,
+ embeds: [
+ new MessageEmbed()
+ .setColor('#dc2828')
+ .setTitle(l("Calm down!", "Calmez-vous !", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ .setDescription(l("Please wait " + Math.ceil((30000 - (new Date() - cooldowns[interaction.user.id]))/1000) + " seconds before you can use this again.", "Patientez encore " + Math.ceil((30000 - (new Date() - cooldowns[interaction.user.id]))/1000) + " secondes avant de pouvoir réutiliser ça.", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ ]
+ });
+ } else {
+ try {
+ let select = keys[1];
+ let episode = keys[2].toLowerCase();
+
+ let sdata = series.filter(i => i.command.toLowerCase() === select)[0];
+ await episodeReply(interaction, select, episode, sdata, true);
+ await interaction.reply({
+ ephemeral: interaction.guild !== null,
+ embeds: [
+ new MessageEmbed()
+ .setColor('#28dc46')
+ .setTitle(l("Show to everypony", "Afficher à tous", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ .setDescription(l("This episode has been sent publicly to this channel.", "Cet épisode a été envoyé publiquement dans ce salon.", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ ]
+ });
+ cooldowns[interaction.user.id] = new Date();
+ } catch (e) {
+ console.error(e);
+ await interaction.reply({
+ ephemeral: interaction.guild !== null,
+ embeds: [
+ new MessageEmbed()
+ .setColor('#dc2828')
+ .setTitle(l("Show to everypony", "Afficher à tous", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ .setDescription(l("We are unable to send a message to this channel, make sure the bot have sufficient permissions.", "Nous ne parvenons pas à envoyer un message dans ce salon, assurez-vous que le robot dispose de sufficient de permissions.", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ ]
+ });
+ }
+ }
+ } else if (keys[0] === "pony.display") {
let row;
if (statsPonies[keys[1]] !== undefined) {
statsPonies[keys[1]]++;
@@ -123,7 +167,7 @@ module.exports = async (interaction) => {
new MessageEmbed()
.setColor('#dc2828')
.setTitle(l("Show to everypony", "Afficher à tous", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
- .setDescription(l("We are unable to send a message to this channel, make sure the bot have sufficient permissions.", "Nous ne parvenons pas à envoyer un message dans ce salon, assurez-vous que le robot dispose de sufficient de permissions.", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ .setDescription(l("We are unable to send a message to this channel, make sure the bot have sufficient permissions.", "Nous ne parvenons pas à envoyer un message dans ce salon, assurez-vous que le robot dispose de suffisamment de permissions.", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
]
});
}
diff --git a/handler/command.js b/handler/command.js
index c1957ae..9733e6c 100644
--- a/handler/command.js
+++ b/handler/command.js
@@ -16,6 +16,7 @@ const commandInfo = require('../commands/info');
const commandEval = require('../commands/eval');
const commandConfig = require('../commands/config');
const commandPony = require('../commands/pony');
+const commandEpisode = require('../commands/episode');
const commandHelp = require('../commands/help');
module.exports = async (interaction) => {
@@ -85,4 +86,8 @@ module.exports = async (interaction) => {
if (interaction.commandName === 'pony') {
await commandPony(interaction);
}
+
+ if (interaction.commandName === 'episode') {
+ await commandEpisode(interaction);
+ }
} \ No newline at end of file
diff --git a/handler/menu.js b/handler/menu.js
index 1102b9e..f4cc3bc 100644
--- a/handler/menu.js
+++ b/handler/menu.js
@@ -12,7 +12,7 @@ module.exports = async (interaction) => {
fs.writeFile("./stats/menu.json", JSON.stringify(statsMenu), () => {});
if (keys[0].startsWith("report.issue.")) {
- item = keys[0].substr(13)
+ item = keys[0].substring(13)
tid = "./reports/Telemetry-Pony-" + (new Date().toISOString().replace(/[^a-zA-Z0-9]/gm, "-")) + ".txt";
fs.writeFileSync(tid, "-------------------------\nPonyfind Telemetry Report\n-------------------------\n\nReport Type:\n Pony Issue Report\n\n-------------------------\n\nReporter:\n " + interaction.user.tag + " (" + interaction.user.id + ")\n\nServer:\n " + (interaction.guild ? interaction.guild.name : "[Direct Messages]") + " (" + (interaction.guild ? interaction.guild.id : 0) + ")\n\nChannel:\n " + (interaction.channel ? interaction.channel.name : "[Direct Messages]") + " (" + (interaction.channel ? interaction.channel.id : 0) + ")\n\nItem:\n " + keys[1] + "\n\nReport Type:\n " + item)
await interaction.reply({