init commit
This commit is contained in:
commit
1eee149c3e
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
data/
|
||||||
|
node_modules/
|
||||||
|
.env
|
36
index.js
Normal file
36
index.js
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
require('dotenv').config();
|
||||||
|
|
||||||
|
const { WebhookClient,
|
||||||
|
MessageEmbed } = require('discord.js');
|
||||||
|
const Parser = require('rss-parser');
|
||||||
|
const Enmap = require('enmap');
|
||||||
|
const client = new WebhookClient(process.env.WH_ID, process.env.WH_TOKEN, { disableMentions: 'everyone' });
|
||||||
|
const parser = new Parser();
|
||||||
|
const db = new Enmap({ name: 'db' });
|
||||||
|
|
||||||
|
let update = async () => {
|
||||||
|
const feed = await parser.parseURL(process.env.FEED_URL);
|
||||||
|
feed.items.forEach(async item => {
|
||||||
|
if (!db.get(item.content)) {
|
||||||
|
db.set(item.content, true);
|
||||||
|
sendWH(item, feed);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
update();
|
||||||
|
//setInterval(update, 15000);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {Parser.Item} item
|
||||||
|
* @param {Parser.Output} feed
|
||||||
|
*/
|
||||||
|
let sendWH = async (item, feed) => {
|
||||||
|
let embed = new MessageEmbed()
|
||||||
|
.setAuthor(item.title || 'Untitled', feed.image?.link, item.link || feed.link)
|
||||||
|
.setDescription(`[Link](${item.link} "${item.link.replace('"', '\\"')}") | [Guid](${item.guid} "${item.guid.replace('"', '\\"')}")\n\n`
|
||||||
|
+ `${item.contentSnippet}`)
|
||||||
|
.setTimestamp(Date.parse(item.isoDate) || Date.now())
|
||||||
|
client.send({ username: feed.title, avatarURL: feed.image?.link, embeds: [ embed ] });
|
||||||
|
}
|
1595
package-lock.json
generated
Normal file
1595
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
17
package.json
Normal file
17
package.json
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"name": "rsshook",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"discord.js": "^12.5.1",
|
||||||
|
"dotenv": "^8.2.0",
|
||||||
|
"enmap": "^5.8.2",
|
||||||
|
"rss-parser": "^3.10.0"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue