random and feed saving started
This commit is contained in:
@@ -13,8 +13,8 @@ module.exports = {
|
||||
var link = args[1];
|
||||
|
||||
libFlayer.addSource(title,link);
|
||||
message.reply(
|
||||
`Adding ${title} to the list of RSS sources`);
|
||||
message.reply(`Adding ${title} to the list of RSS sources`);
|
||||
libFlayer.writeFeed();
|
||||
libFlayer.loadFeeds();
|
||||
|
||||
},
|
||||
|
||||
@@ -7,11 +7,11 @@ module.exports = {
|
||||
message.reply(
|
||||
`!help - Lists the available commands
|
||||
**!search** - Searches the RSS Sources: *!search google*
|
||||
**!get**- Retrieves Search By Index: *!get 25*
|
||||
**!get** - Retrieves Search By Index: *!get 25*
|
||||
**!add** - Add a new RSS Source Feed dynamically: *!add http://www.engadget.com/rss.xml*
|
||||
**!update** - Updates all current RSS Feeds: *!update*
|
||||
**!quote** - Selects a random quote: *!update*
|
||||
**!exit** - Force kills bot: *!exit*
|
||||
**!quote** - Selects a random quote: *!quote*
|
||||
**!random** - Selects a random article: *!random*
|
||||
`
|
||||
);
|
||||
}
|
||||
|
||||
16
commands/random.js
Normal file
16
commands/random.js
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
var libFlayer = require("../libFlayer.js");
|
||||
|
||||
module.exports = {
|
||||
name: 'random',
|
||||
description: 'Random',
|
||||
async execute(message) {
|
||||
message.reply(
|
||||
`Selecting a random article...`
|
||||
);
|
||||
var i = Math.floor(Math.random() * (max - min + 1) + min );
|
||||
var feedArray = libFlayer.getFeeds();
|
||||
message.reply(`Retrieving: [Link](${feedArray[i].link})`);
|
||||
}
|
||||
};
|
||||
|
||||
34
feeds2.json
Normal file
34
feeds2.json
Normal file
@@ -0,0 +1,34 @@
|
||||
[
|
||||
{
|
||||
"title": "CNN Top Stories",
|
||||
"link": "http://rss.cnn.com/rss/cnn_topstories.rss"
|
||||
},
|
||||
{
|
||||
"title": "Reddit Front Page",
|
||||
"link": "http://www.reddit.com/.rss"
|
||||
},
|
||||
{
|
||||
"title": "Arstechnica",
|
||||
"link": "http://feeds.arstechnica.com/arstechnica/index"
|
||||
},
|
||||
{
|
||||
"title": "TechCrunchGadgets",
|
||||
"link": "https://techcrunch.com/gadgets/feed/"
|
||||
},
|
||||
{
|
||||
"title": "BusinessInsider",
|
||||
"link": "https://markets.businessinsider.com/rss/news"
|
||||
},
|
||||
{
|
||||
"title": "TheGuardian",
|
||||
"link": "https://www.theguardian.com/world/rss"
|
||||
},
|
||||
{
|
||||
"title": "Yahoo",
|
||||
"link": "https://news.google.com/news/rss"
|
||||
},
|
||||
{
|
||||
"title": "CBSWorldNews",
|
||||
"link": "https://www.cbsnews.com/latest/rss/world"
|
||||
}
|
||||
]
|
||||
18
libFlayer.js
18
libFlayer.js
@@ -1,8 +1,9 @@
|
||||
let Parser = require('rss-parser');
|
||||
let parser = new Parser();
|
||||
let feeds = require('./feeds.json');
|
||||
|
||||
|
||||
var jsonfile = require('jsonfile');
|
||||
var fs = require('fs');
|
||||
var file = ('./feeds.json');
|
||||
let linkFlayerMap = [];
|
||||
|
||||
const { quotes } = require('./quotes.json');
|
||||
@@ -13,6 +14,7 @@ exports.addSource = function(title,source){
|
||||
link: `${source}`
|
||||
}
|
||||
feeds.push(linkData);
|
||||
|
||||
}
|
||||
|
||||
exports.sleep = (ms) => new Promise((resolve) => { setTimeout(resolve, ms); })
|
||||
@@ -38,6 +40,18 @@ exports.loadFeeds = function() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
exports.writeFeed = function (feeds) {
|
||||
|
||||
jsonfile.writeFile(file, feeds, function (err) {
|
||||
if (err != null) {
|
||||
console.error(err);
|
||||
}
|
||||
});
|
||||
|
||||
console.log("saving feeds.json");
|
||||
|
||||
};
|
||||
exports.getFeeds = function () {
|
||||
return linkFlayerMap;
|
||||
}
|
||||
|
||||
57
package-lock.json
generated
57
package-lock.json
generated
@@ -12,6 +12,8 @@
|
||||
"discord.js": "^12.5.1",
|
||||
"dotenv": "^10.0.0",
|
||||
"express": "^4.17.1",
|
||||
"fs": "^0.0.1-security",
|
||||
"jsonfile": "^6.1.0",
|
||||
"rss-parser": "^3.12.0"
|
||||
}
|
||||
},
|
||||
@@ -308,6 +310,17 @@
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/fs": {
|
||||
"version": "0.0.1-security",
|
||||
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
|
||||
"integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ="
|
||||
},
|
||||
"node_modules/graceful-fs": {
|
||||
"version": "4.2.8",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
|
||||
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/http-errors": {
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
|
||||
@@ -347,6 +360,17 @@
|
||||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/jsonfile": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
||||
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
|
||||
"dependencies": {
|
||||
"universalify": "^2.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"graceful-fs": "^4.1.6"
|
||||
}
|
||||
},
|
||||
"node_modules/media-typer": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
@@ -619,6 +643,14 @@
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/universalify": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
|
||||
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
|
||||
"engines": {
|
||||
"node": ">= 10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/unpipe": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||
@@ -914,6 +946,17 @@
|
||||
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
||||
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
|
||||
},
|
||||
"fs": {
|
||||
"version": "0.0.1-security",
|
||||
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
|
||||
"integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ="
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.2.8",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
|
||||
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
|
||||
"optional": true
|
||||
},
|
||||
"http-errors": {
|
||||
"version": "1.7.2",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
|
||||
@@ -944,6 +987,15 @@
|
||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
||||
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
|
||||
},
|
||||
"jsonfile": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
||||
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.6",
|
||||
"universalify": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"media-typer": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
@@ -1142,6 +1194,11 @@
|
||||
"mime-types": "~2.1.24"
|
||||
}
|
||||
},
|
||||
"universalify": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
|
||||
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
|
||||
},
|
||||
"unpipe": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
"discord.js": "^12.5.1",
|
||||
"dotenv": "^10.0.0",
|
||||
"express": "^4.17.1",
|
||||
"fs": "^0.0.1-security",
|
||||
"jsonfile": "^6.1.0",
|
||||
"rss-parser": "^3.12.0"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
Reference in New Issue
Block a user