bug fixes in /wiki

This commit is contained in:
Yusur 2025-01-17 11:22:08 +01:00
parent 4b8fa012da
commit d60d2cd477
6 changed files with 68 additions and 17 deletions

View file

@ -28,25 +28,46 @@ const data = new SlashCommandBuilder()
.setRequired(false)
);
async function fetchPageFromSite(siteId: string, pageName: string) {
const { name: siteName, url: siteUrl } = pageSources[siteId];
const mwClient = new MediaWikiClient(siteUrl);
const pageData = await mwClient.getPage(pageName);
return pageData;
}
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()
let siteChoice = interaction.options.getString('source') ?? 'auto';
const pageName = interaction.options.getString('p');
let pageData = null;
if (siteChoice === 'auto') {
for (let site of pageSourcesAuto) {
pageData = await fetchPageFromSite(site, pageName);
if (pageData) break;
}
} else {
pageData = await fetchPageFromSite(siteChoice, pageName);
}
if (pageData) {
const pageEmbed = new EmbedBuilder()
.setTitle(pageData.title)
.setURL(pageData.url)
.setDescription(pageData.content)
.setFooter({
text: `Informazioni da ${siteName}`
text: `Informazioni da ${pageData.origin}`
});
await interaction.followUp({
embeds: [pageEmbed]
});
await interaction.followUp({
embeds: [pageEmbed]
});
} else {
await interaction.followUp({
content: `Pagina **${pageName}** non trovata`
});
}
}
export default { data, execute };