1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
const fs = require('fs');
const path = require('path');
const { MessageActionRow, MessageButton, MessageSelectMenu, MessageEmbed, MessageAttachment } = require('discord.js');
const getPixel = require('../modules/pixel.js');
const getEmbed = require("../modules/embed");
module.exports = async (interaction) => {
keys = interaction.customId.split("|")
if (keys[0] === "pony.display") {
await interaction.reply({
ephemeral: interaction.guild !== null,
embeds: [
getEmbed(keys[1], interaction.user.id, interaction.guild ? interaction.guild.id : 0)
],
components: [
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")
)
]
});
} else if (keys[0] === "result.report") {
await interaction.reply({
ephemeral: interaction.guild !== null,
embeds: [
new MessageEmbed()
.setColor('#dc2828')
.setTitle(l("Report an issue with", "Signaler un problème avec", interaction.user.id, interaction.guild ? interaction.guild.id : 0) + " \"" + keys[1] + "\"")
.setDescription(l("If you think the result to your query is problematic, you can report it so that the developers fix the issue.", "Si vous pensez que le résultat donné est problématique, vous pouvez le signaler pour que les développeurs corrigent le problème.", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
],
components: [
new MessageActionRow()
.addComponents(
new MessageSelectMenu()
.setCustomId('select')
.setPlaceholder(l("Select a type of issue", "Sélectionnez le type de problème", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
.addOptions([
{
label: l("Inappropriate", "Inapproprié", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
description: l("The result contains inappropriate content: chocking or violent.", "La réponse contient du contenu inapproprié à certains publics, choquant, ou violent.", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
value: 'report.issue.innapropriate|' + keys[1],
},
{
label: l("Off topic", "Hors sujet", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
description: l("The result contains info that is unrelated to the aforementioned character.", "La réponse contient du contenu n'ayant pas de rapport avec le personnage évoqué.", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
value: 'report.issue.off|' + keys[1],
},
{
label: l("Incoherent data", "Données incohérentes", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
description: l("The result contains incoherent data, due to a database error.", "La réponse contient des données incohérentes, dûes à une erreur dans la base de données.", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
value: 'report.issue.data|' + keys[1],
},
{
label: l("Wrong result", "Mauvais résultat", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
description: l("The given result is not what was expected with this query.", "La réponse donnée n'est pas la réponse attendue par rapport à la demande.", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
value: 'report.issue.wrong|' + keys[1],
},
{
label: l("Wrong image(s)", "Mauvaise(s) image(s)", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
description: l("One or more of the provided image(s) do(es)n't correspond to the shown character.", "Une ou plusieurs image(s) fournie(s) avec la réponse ne correspond(ent) pas au personnage affiché.", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
value: 'report.issue.image|' + keys[1],
},
{
label: l("Wrong information", "Information erronée", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
description: l("A provided info does not correspond to the real info from a reliable source.", "Une information fournie ne correspond pas à la réelle information depuis une source fiable.", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
value: 'report.issue.missinfo|' + keys[1],
},
{
label: l("Translation issue", "Problème de traduction", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
description: l("The English translation of a formerly French content is wrong and needs to be fixed.", "La version française d'un contenu originellement en anglais est erronée et doit être corrigée.", interaction.user.id, interaction.guild ? interaction.guild.id : 0),
value: 'report.issue.translation|' + keys[1],
},
]),
)
]
});
} else if (keys[0] === "pony.pixel") {
await interaction.reply({
ephemeral: interaction.guild !== null,
embeds: [
new MessageEmbed()
.setColor('#28dc46')
.setTitle(l("Pixel Art for", "Pixel Art correspondant à", interaction.user.id, interaction.guild ? interaction.guild.id : 0) + " \"" + keys[1] + "\"")
],
files: [
new MessageAttachment(fs.readFileSync(getPixel(keys[1])), path.basename(getPixel(keys[1])))
],
components: [
new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId("result.report|" + getPixel(keys[1]))
.setLabel(l("Report an issue", "Signaler un problème", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
.setStyle("DANGER")
)
]
});
} else if (keys[0] === "result.suggest") {
tid = "./reports/Telemetry-Request-" + (new Date().toISOString().replace(/[^a-zA-Z0-9]/gm, "-")) + ".txt";
fs.writeFileSync(tid, "-------------------------\nPonyfind Telemetry Report\n-------------------------\n\nReport Type:\n Pony Request 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 -");
await interaction.reply({
ephemeral: interaction.guild !== null,
embeds: [
new MessageEmbed()
.setColor('#28dc46')
.setTitle(l("Thanks for suggesting", "Merci d'avoir proposé", interaction.user.id, interaction.guild ? interaction.guild.id : 0) + " \"" + keys[1] + "\"" + l("!", " !", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
.setDescription(l("Your suggestion has been sent to the developers. They can contact you later if your settings allow this to ask you more about your request.\nThanks for your help!", "Votre suggestion a bien été envoyée aux développeurs. Ils pourront vous recontacter si vos paramètres le permettent afin de vous poser plus de questions sur votre requête.\nMerci d'aider à améliorer notre système !", interaction.user.id, interaction.guild ? interaction.guild.id : 0))
.setFooter("Ticket ID: " + tid)
]
});
} else {
throw new Error("Unknown Button ID");
}
}
|