funny-irc-bot/commands/wpedia.js

49 lines
2.1 KiB
JavaScript
Raw Permalink Normal View History

2025-08-12 18:39:05 +02:00
const wikijs = require('wikijs').default
module.exports = {
data: {
"name": 'wpedia',
"usage": '<language code> <query>',
"description": 'Search for Wikipedia articles.'
},
async execute(event, bot) {
let query = event.message.split(`${bot.prefix}wpedia `)[1].toString().split(' ')
if (!query) {
event.reply(`Usage: ${bot.prefix}wpedia <language code> <query>`)
} else {
let lang = query.shift()
if (!query) { // since query can be empty now, we need to check again
event.reply(`Usage: ${bot.prefix}wpedia <language code> <query>`)
} else {
try {
let okToContinue = false
try {
let connTest = await fetch(`https://${lang}.wikipedia.org/w/api.php`)
console.log(connTest)
okToContinue = true
} catch (err) {
okToContinue = false
event.reply(`Oops, something went wrong... Is the language code correct?`)
}
if (okToContinue) {
let wiki = wikijs({
apiUrl: `https://${lang}.wikipedia.org/w/api.php`
})
query = query.join(' ')
wiki.search(query).then(async res => {
if (!res['results'][0]) return event.reply("Sorry, couldn't find anything...")
wiki.page(res['results'][0]).then(async page => {
let info = await page.summary()
event.reply(`${info.split('\n')[0]} https://${lang}.wikipedia.org/wiki/${res['results'][0].replace(/ /g, "_")}`)
})
})
}
} catch (err) {
event.reply(`Oops, something went wrong... Is the language code correct?`)
console.error(err)
}
}
}
}
}