init commit
commit
1eee149c3e
|
@ -0,0 +1,3 @@
|
|||
data/
|
||||
node_modules/
|
||||
.env
|
|
@ -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 ] });
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -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 New Issue