added !answer command
This commit is contained in:
@@ -18,5 +18,5 @@ module.exports = {
|
||||
libFlayer.writeFeed(sources);
|
||||
libFlayer.loadFeeds();
|
||||
|
||||
},
|
||||
}
|
||||
};
|
||||
19
commands/answer.js
Normal file
19
commands/answer.js
Normal 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}`);
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
34
libFlayer.js
34
libFlayer.js
@@ -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
41
package-lock.json
generated
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user