import { ChatInputCommandInteraction, EmbedBuilder, SlashCommandBuilder } from "discord.js"; import { MediaWikiClient } from '../mediawiki'; const pageSources = { 'cittadeldank': { url: 'https://wiki.cittadeldank.it', name: 'Città del Dank' } } const pageSourcesAuto = [ 'cittadeldank' ]; const data = new SlashCommandBuilder() .setName('wiki') .setDescription('Mostra la pagina wiki di un argomento') .addStringOption(o => o.setName('p') .setDescription('Il nome della pagina') .setRequired(true) ) .addStringOption(o => o.setName('source') .setDescription('Dove guardare') .addChoices([ {name: 'Città del Dank', value: 'cittadeldank'}, {name: 'Automatico', value: 'auto'} ]) .setRequired(false) ); async function execute (interaction: ChatInputCommandInteraction) { await interaction.deferReply(); const siteChoice = interaction.options.getString('source') ?? 'auto'; const { name: siteName, url: siteUrl } = pageSources[siteChoice]; const mwClient = new MediaWikiClient(siteUrl); const pageData = await mwClient.getPage(interaction.options.getString('p')); const pageEmbed = new EmbedBuilder() .setTitle(pageData.title) .setURL(pageData.url) .setDescription(pageData.content) .setFooter({ text: `Informazioni da ${siteName}` }); await interaction.followUp({ embeds: [pageEmbed] }); }