aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-03-16 16:33:08 +0100
committerMinteck <contact@minteck.org>2022-03-16 16:33:08 +0100
commitfb91b381cf79b95210bcc6bf628e4f0ab337e74d (patch)
tree4158829e93f9a7a7849a37136779489e484a1417
parent88fb0fbfc9f58dc93420b31ee5a5201d1a37ca85 (diff)
downloadponyfind-fb91b381cf79b95210bcc6bf628e4f0ab337e74d.tar.gz
ponyfind-fb91b381cf79b95210bcc6bf628e4f0ab337e74d.tar.bz2
ponyfind-fb91b381cf79b95210bcc6bf628e4f0ab337e74d.zip
v2.3
-rwxr-xr-xcommands/color.js237
1 files changed, 134 insertions, 103 deletions
diff --git a/commands/color.js b/commands/color.js
index cf9df1d..9a41bf0 100755
--- a/commands/color.js
+++ b/commands/color.js
@@ -38,132 +38,163 @@ const official = fs.readFileSync("./config/official.txt").toString().replace(/\r
const fpserver = fs.readFileSync("./config/fpserver.txt").toString().trim();
module.exports = async (interaction) => {
- query = interaction.options.getString('query').toLowerCase();
- result = getResult(query, interaction.user.id, interaction.guild ? interaction.guild.id : 0);
+ if (interaction.options.getString('query') !== null) {
+ query = interaction.options.getString('query').toLowerCase();
+ result = getResult(query, interaction.user.id, interaction.guild ? interaction.guild.id : 0);
- if (result.results.length > 0 && getEmbed(result.results[0], interaction.user.id, interaction.guild ? interaction.guild.id : 0) !== false) {
- if (statsQueries[result.results[0]] !== undefined) {
- if (!statsQueries[result.results[0]].includes(query)) {
- statsQueries[result.results[0]].push(query);
- }
- } else {
- statsQueries[result.results[0]] = [ query ];
- }
- fs.writeFile("./stats/queries.json", JSON.stringify(statsQueries), () => {});
- if (result.results[0].toLowerCase().trim() === query.toLowerCase().trim()) {
- keys = [null, result.results[0]];
- if (statsPonies[keys[1]] !== undefined) {
- statsPonies[keys[1]]++;
+ if (result.results.length > 0 && getEmbed(result.results[0], interaction.user.id, interaction.guild ? interaction.guild.id : 0) !== false) {
+ if (statsQueries[result.results[0]] !== undefined) {
+ if (!statsQueries[result.results[0]].includes(query)) {
+ statsQueries[result.results[0]].push(query);
+ }
} else {
- statsPonies[keys[1]] = 1;
+ statsQueries[result.results[0]] = [ query ];
}
- fs.writeFile("./stats/ponies.json", JSON.stringify(statsPonies), () => {});
- if (interaction.guild) {
- row = new MessageActionRow()
- .addComponents(
- getPublic(interaction, keys),
- new MessageButton()
- .setLabel(l("Read More", "Lire plus", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
- .setStyle("LINK")
- .setURL("https://mlp.fandom.com/wiki/" + encodeURI(keys[1])),
- new MessageButton()
- .setCustomId("pony.pixel|" + keys[1])
- .setLabel("Pixel Art")
- .setDisabled(!fs.existsSync("./pixel/" + keys[1].toLowerCase()))
- .setStyle("SECONDARY"),
- new MessageButton()
- .setCustomId("result.report|" + keys[1])
- .setLabel(l("Report an issue", "Signaler un problème", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
- .setStyle("DANGER")
- )
+ fs.writeFile("./stats/queries.json", JSON.stringify(statsQueries), () => {});
+ if (result.results[0].toLowerCase().trim() === query.toLowerCase().trim()) {
+ keys = [null, result.results[0]];
+ if (statsPonies[keys[1]] !== undefined) {
+ statsPonies[keys[1]]++;
+ } else {
+ statsPonies[keys[1]] = 1;
+ }
+ fs.writeFile("./stats/ponies.json", JSON.stringify(statsPonies), () => {});
+ if (interaction.guild) {
+ row = new MessageActionRow()
+ .addComponents(
+ getPublic(interaction, keys),
+ new MessageButton()
+ .setLabel(l("Read More", "Lire plus", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ .setStyle("LINK")
+ .setURL("https://mlp.fandom.com/wiki/" + encodeURI(keys[1])),
+ new MessageButton()
+ .setCustomId("pony.pixel|" + keys[1])
+ .setLabel("Pixel Art")
+ .setDisabled(!fs.existsSync("./pixel/" + keys[1].toLowerCase()))
+ .setStyle("SECONDARY"),
+ new MessageButton()
+ .setCustomId("result.report|" + keys[1])
+ .setLabel(l("Report an issue", "Signaler un problème", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ .setStyle("DANGER")
+ )
+ } else {
+ row = new MessageActionRow()
+ .addComponents(
+ new MessageButton()
+ .setLabel(l("Read More", "Lire plus", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ .setStyle("LINK")
+ .setURL("https://mlp.fandom.com/wiki/" + encodeURI(keys[1])),
+ new MessageButton()
+ .setCustomId("pony.pixel|" + keys[1])
+ .setLabel("Pixel Art")
+ .setDisabled(!fs.existsSync("./pixel/" + keys[1].toLowerCase()))
+ .setStyle("SECONDARY"),
+ new MessageButton()
+ .setCustomId("result.report|" + keys[1])
+ .setLabel(l("Report an issue", "Signaler un problème", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ .setStyle("DANGER")
+ )
+ }
+ console.log("Replying (embed)");
+ await interaction.reply({
+ ephemeral: interaction.guild !== null,
+ embeds: [
+ getEmbed(keys[1], interaction.user.id, interaction.guild ? interaction.guild.id : 0, false, interaction.user, interaction.member, interaction.guild)
+ ],
+ components: [
+ row
+ ]
+ });
} else {
- row = new MessageActionRow()
- .addComponents(
- new MessageButton()
- .setLabel(l("Read More", "Lire plus", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
- .setStyle("LINK")
- .setURL("https://mlp.fandom.com/wiki/" + encodeURI(keys[1])),
- new MessageButton()
- .setCustomId("pony.pixel|" + keys[1])
- .setLabel("Pixel Art")
- .setDisabled(!fs.existsSync("./pixel/" + keys[1].toLowerCase()))
- .setStyle("SECONDARY"),
- new MessageButton()
- .setCustomId("result.report|" + keys[1])
- .setLabel(l("Report an issue", "Signaler un problème", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
- .setStyle("DANGER")
- )
+ console.log("Replying (buttons)");
+ await interaction.reply({
+ ephemeral: interaction.guild !== null,
+ embeds: [
+ new MessageEmbed()
+ .setColor('#d6dc28')
+ .setTitle(l("Results for", "Résultats pour", interaction.user.id, interaction.guild ? interaction.guild.id : 0) + " " + result.query)
+ .setDescription(l("Here are the 5 first results corresponding to your criteria.", "Voici les 5 premiers résultats correspondants à vos critères.", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ .addField(l("Your conditions:", "Vos conditions :", interaction.user.id, interaction.guild ? interaction.guild.id : 0), result.full)
+ ],
+ components: [
+ new MessageActionRow()
+ .addComponents(
+ new MessageButton()
+ .setCustomId("pony.display|" + result.first[0])
+ .setLabel(result.first[0])
+ .setStyle(result.exact.includes(result.first[0]) ? "PRIMARY" : "SECONDARY"),
+ new MessageButton()
+ .setCustomId("pony.display|" + result.first[1])
+ .setLabel(result.first[1])
+ .setStyle(result.exact.includes(result.first[1]) ? "PRIMARY" : "SECONDARY"),
+ new MessageButton()
+ .setCustomId("pony.display|" + result.first[2])
+ .setLabel(result.first[2])
+ .setStyle(result.exact.includes(result.first[2]) ? "PRIMARY" : "SECONDARY"),
+ new MessageButton()
+ .setCustomId("pony.display|" + result.first[3])
+ .setLabel(result.first[3])
+ .setStyle(result.exact.includes(result.first[3]) ? "PRIMARY" : "SECONDARY"),
+ new MessageButton()
+ .setCustomId("pony.display|" + result.first[4])
+ .setLabel(result.first[4])
+ .setStyle(result.exact.includes(result.first[4]) ? "PRIMARY" : "SECONDARY"),
+ ),
+ ]
+ });
}
- console.log("Replying (embed)");
- await interaction.reply({
- ephemeral: interaction.guild !== null,
- embeds: [
- getEmbed(keys[1], interaction.user.id, interaction.guild ? interaction.guild.id : 0, false, interaction.user, interaction.member, interaction.guild)
- ],
- components: [
- row
- ]
- });
} else {
- console.log("Replying (buttons)");
+ console.log("Replying (no results)");
await interaction.reply({
ephemeral: interaction.guild !== null,
embeds: [
new MessageEmbed()
- .setColor('#d6dc28')
+ .setColor('#dc2828')
.setTitle(l("Results for", "Résultats pour", interaction.user.id, interaction.guild ? interaction.guild.id : 0) + " " + result.query)
- .setDescription(l("Here are the 5 first results corresponding to your criteria.", "Voici les 5 premiers résultats correspondants à vos critères.", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
- .addField(l("Your conditions:", "Vos conditions :", interaction.user.id, interaction.guild ? interaction.guild.id : 0), result.full)
+ .setDescription(l("No results found. Please try with other criteria.", "Aucun résultat trouvé. Essayez avec d'autres critères.", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
],
components: [
new MessageActionRow()
.addComponents(
new MessageButton()
- .setCustomId("pony.display|" + result.first[0])
- .setLabel(result.first[0])
- .setStyle(result.exact.includes(result.first[0]) ? "PRIMARY" : "SECONDARY"),
- new MessageButton()
- .setCustomId("pony.display|" + result.first[1])
- .setLabel(result.first[1])
- .setStyle(result.exact.includes(result.first[1]) ? "PRIMARY" : "SECONDARY"),
- new MessageButton()
- .setCustomId("pony.display|" + result.first[2])
- .setLabel(result.first[2])
- .setStyle(result.exact.includes(result.first[2]) ? "PRIMARY" : "SECONDARY"),
+ .setCustomId("result.suggest|" + query)
+ .setLabel(l("Suggest a missing pony", "Proposer un poney manquant", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ .setStyle("SECONDARY"),
new MessageButton()
- .setCustomId("pony.display|" + result.first[3])
- .setLabel(result.first[3])
- .setStyle(result.exact.includes(result.first[3]) ? "PRIMARY" : "SECONDARY"),
- new MessageButton()
- .setCustomId("pony.display|" + result.first[4])
- .setLabel(result.first[4])
- .setStyle(result.exact.includes(result.first[4]) ? "PRIMARY" : "SECONDARY"),
- ),
+ .setCustomId("result.report|" + query)
+ .setLabel(l("Report an issue", "Signaler un problème", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
+ .setStyle("DANGER")
+ )
]
});
}
} else {
- console.log("Replying (no results)");
- await interaction.reply({
- ephemeral: interaction.guild !== null,
+ guild = interaction.guild;
+ gid = interaction.guild ? interaction.guild.id : 0;
+ uid = interaction.user.id;
+
+ interaction.reply({
+ ephemeral: guild !== null,
embeds: [
new MessageEmbed()
- .setColor('#dc2828')
- .setTitle(l("Results for", "Résultats pour", interaction.user.id, interaction.guild ? interaction.guild.id : 0) + " " + result.query)
- .setDescription(l("No results found. Please try with other criteria.", "Aucun résultat trouvé. Essayez avec d'autres critères.", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
- ],
- components: [
- new MessageActionRow()
- .addComponents(
- new MessageButton()
- .setCustomId("result.suggest|" + query)
- .setLabel(l("Suggest a missing pony", "Proposer un poney manquant", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
- .setStyle("SECONDARY"),
- new MessageButton()
- .setCustomId("result.report|" + query)
- .setLabel(l("Report an issue", "Signaler un problème", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
- .setStyle("DANGER")
- )
+ .setColor('#d6dc28')
+ .setTitle(l("Ponyfind's `/color` help", "Aide de la commande `/color` de Ponyfind", uid, guild ? gid : 0))
+ .setDescription(l("If this is the first time you want to use the `/color` command, you need to know how it works. This commands search for ponies by their mane/eyes/coat color(s), using a syntax like `[item]:[color]` (e.g. `mane:blue`).", "Si c'est la première fois que vous voulez utiliser la commande `/color`, vous devez savoir comment elle fonctionne. Cette commande permet de chercher des poneys par la/les couleur(s) de leur crinière/yeux/fourrure, en utilisant une syntaxe du style `[élément]:[couleur]` (par exemple `crinière:bleu`).", uid, gid ? guild : 0))
+ .addFields([
+ {
+ name: l("Supported Colors", "Couleurs supportées", uid, guild ? gid : 0),
+ value: l("`white`, `black`, `gray`, `red`, `orange`, `yellow`, `green`, `blue`, `purple`, `pink`, `brown`", "`blanc`, `noir`, `gris`, `rouge`, `orange`, `jaune`, `vert`, `bleu`, `violet`, `rose`, `marron`", uid, guild ? gid : 0)
+ },
+ {
+ name: l("Supported Items", "Éléments supportés", uid, guild ? gid : 0),
+ value: l("`coat`, `mane`, `eyes`", "`fourrure`, `crinière`, `yeux`", uid, guild ? gid : 0)
+ },
+ {
+ name: l("Examples", "Exemples", uid, guild ? gid : 0),
+ value: l("· `eyes:purple` shows all ponies with purple eyes\n· `coat:gray mane:yellow` shows all ponies with **both** a gray coat and yellow mane\n· `mane:red mane:yellow` shows all ponies with **both** a red and yellow mane", "· `yeux:violet` affiche tous les poneys avec des yeux violets\n· `fourrure:gris crinière:jaune` affiche tous les poneys avec **à la fois** une fourrure grise et une crinière jaune\n· `crinière:rouge crinière:jaune` affiche tous les poneys avec une crinière **à la fois** rouge et jaune", uid, guild ? gid : 0)
+ }
+ ])
+ .setFooter(l("made with ♥ by Minteck, a My Little Pony fan", "fait avec ♥ par Minteck, une fan de My Little Pony", uid, guild ? gid : 0))
]
});
}