build | ||
src | ||
tests | ||
.eslintrc.json | ||
.gitignore | ||
.prettierrc.json | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig.base.json | ||
tsconfig.json |
Listener-rss-agregator
Brief
This is an agregator of rss's listener (more information about it here : ).
Usage
The basic usage is to use many listener-rss with a unique class.
import { ManageListener } from 'Listener-rss-agregator';
const path = '/my/data/directorie/bd.sqlite'
const myManager = new ManageListener(path);
await ml.load(); // he is reading the database
const listenerConfig =
{
"address": "fake.rss.service.1",
"timeloop": 10
};
ml.registerListener(listenerConfig);
ml.on('update', (obj) => {
doSomethingWithNewEntries(obj);
ml.save();
})
ml.startAll();
//...
ml.stopAll();
ml.save();
Documentation
Why SQLITE
This project use SQLITE to store the listener-rss configs and keep an correct historic of this. Sqlite was choice for her difficulty to access and read it. The database dont need to be modify by the user.
Constructor
The constructor need to have a file to store the sqlite data. If the file does not exist he will be create, but the path must be valid.
Function
load()
An async method who would read the sqlite file and create the corresponding objects
save()
An method who would store the actual configuration and erase the older
registerListener(listenerConfig)
He's create an new listener-rss with the corresponding config data. (More information about the listenerConfig here : )
startAll()
Start all the listener who are actually register
stopAll()
Start all the listener who are actually register
Events
Like listener-rss, listener-rss-agregator implement EventEmitter.
The event who's used is named update
. He's called for each new entries detection per listener. he's giving back an object who contains all the new entries