49 lines
No EOL
2.1 KiB
JavaScript
49 lines
No EOL
2.1 KiB
JavaScript
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)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |