added !answer command

This commit is contained in:
John Facey
2021-12-23 19:28:54 -06:00
parent e53a8245b1
commit c4f9cd1ced
5 changed files with 95 additions and 2 deletions

View File

@@ -18,5 +18,5 @@ module.exports = {
libFlayer.writeFeed(sources);
libFlayer.loadFeeds();
},
}
};

19
commands/answer.js Normal file
View File

@@ -0,0 +1,19 @@
var libFlayer = require("../libFlayer.js");
module.exports = {
name: 'answer',
description: 'Answer',
async execute(message,args) {
if (args.length < 1) {
message.reply(`Please use in !answer [question] format`);
return;
}
var question = encodeURIComponent(args.join(" "));
var answerData = await libFlayer.getAnswer(question);
message.reply(`${answerData.text}`);
}
};

View File

@@ -1,11 +1,15 @@
let Parser = require('rss-parser');
const axios = require('axios');
let parser = new Parser();
let feeds = require('./feeds.json');
var jsonfile = require('jsonfile');
var fs = require('fs');
var file = ('./feeds.json');
let linkFlayerMap = [];
let answerData = {
text: ``,
source: ``
}
const { quotes } = require('./quotes.json');
exports.addSource = function(title,source){
@@ -80,4 +84,32 @@ exports.getSources = function () {
exports.getQuotes = function () {
return quotes;
}
exports.getAnswer = async function (question) {
var answerURL = `https://api.duckduckgo.com/?q=${question}&format=json&pretty=1`;
console.log(answerURL);
await axios.get(answerURL)
.then(response => {
console.log(response.data.RelatedTopics[0].Text);
console.log(response.data.RelatedTopics[0].FirstURL);
if (response.data.Entity == "company") {
answerData = {
text: `${unescape(response.data.Abstract)}`,
source: `${unescape(response.data.AbstractSource)}`
}
} else {
answerData = {
text: `${unescape(response.data.RelatedTopics[0].Text)}`,
source: `${unescape(response.data.RelatedTopics[0].FirstURL)}`
}
}
})
.catch(error => {
console.log(error);
});
return answerData;
}

41
package-lock.json generated
View File

@@ -9,6 +9,7 @@
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"axios": "^0.24.0",
"discord.js": "^12.5.1",
"dotenv": "^10.0.0",
"express": "^4.17.1",
@@ -68,6 +69,14 @@
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"node_modules/axios": {
"version": "0.24.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
"integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
"dependencies": {
"follow-redirects": "^1.14.4"
}
},
"node_modules/body-parser": {
"version": "1.19.0",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
@@ -294,6 +303,25 @@
"node": ">= 0.8"
}
},
"node_modules/follow-redirects": {
"version": "1.14.6",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz",
"integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -759,6 +787,14 @@
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"axios": {
"version": "0.24.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
"integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
"requires": {
"follow-redirects": "^1.14.4"
}
},
"body-parser": {
"version": "1.19.0",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
@@ -936,6 +972,11 @@
"unpipe": "~1.0.0"
}
},
"follow-redirects": {
"version": "1.14.6",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz",
"integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A=="
},
"forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",

View File

@@ -4,6 +4,7 @@
"description": "Discord RSS News Bot",
"main": "index.js",
"dependencies": {
"axios": "^0.24.0",
"discord.js": "^12.5.1",
"dotenv": "^10.0.0",
"express": "^4.17.1",