0.1.0 initial commit
This commit is contained in:
commit
6b88aff1e7
14 changed files with 1559 additions and 0 deletions
50
src/commands/wiki.ts
Normal file
50
src/commands/wiki.ts
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
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]
|
||||
});
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue