const fs = require('fs'); const { MessageActionRow, MessageButton, MessageSelectMenu, MessageEmbed } = require('discord.js'); module.exports = async (interaction) => { keys = interaction.customId.split("|") if (keys[0] === "result.report") { await interaction.reply({ ephemeral: false, embeds: [ new MessageEmbed() .setColor('#dc2828') .setTitle(l("Report an issue with", "Signaler un problème avec", interaction.user.id, interaction.guild.id) + " \"" + 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.id)) ], 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.id)) .addOptions([ { label: l("Inappropriate", "Inapproprié", interaction.user.id, interaction.guild.id), 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.id), value: 'report.issue.innapropriate|' + keys[1], }, { label: l("Off topic", "Hors sujet", interaction.user.id, interaction.guild.id), 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.id), value: 'report.issue.off|' + keys[1], }, { label: l("Incoherent data", "Données incohérentes", interaction.user.id, interaction.guild.id), 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.id), value: 'report.issue.data|' + keys[1], }, { label: l("Wrong result", "Mauvais résultat", interaction.user.id, interaction.guild.id), 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.id), value: 'report.issue.wrong|' + keys[1], }, { label: l("Wrong image(s)", "Mauvaise(s) image(s)", interaction.user.id, interaction.guild.id), 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.id), value: 'report.issue.image|' + keys[1], }, { label: l("Wrong information", "Information erronée", interaction.user.id, interaction.guild.id), 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.id), value: 'report.issue.missinfo|' + keys[1], }, ]), ) ] }); } else { throw new Error("Unknown Button ID"); } }