random and feed saving started

This commit is contained in:
John Facey
2021-12-13 17:38:47 -06:00
parent 164fdea08a
commit 5c91571300
7 changed files with 130 additions and 7 deletions

View File

@@ -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();
},

View File

@@ -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
View 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
View 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"
}
]

View File

@@ -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
View File

@@ -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",

View File

@@ -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": {