# Listener-rss-aggregator --- ## Brief This is an aggregator of rss's listener (more information about it here : https://www.npmjs.com/package/listener-rss). ## Usage The basic usage is to use many listener-rss with a unique class. ```typescript import { ListenerRssAggregator } from 'Listener-rss-aggregator'; const path = '/my/data/directorie/bd.sqlite' const configAggregator = await ListenerRssAggregator.instantiateAggregator( path ); myManager = new ListenerRssAggregator(configAggregator); const listenerConfig: ListenerRss.Config = { "address": "fake.rss.service.1", "timeloop": 10 }; ml.registerListener(listenerConfig); ml.on('update', (obj) => { doSomethingWithNewEntries(obj); }) ml.startAll(); //... ml.stopAll(); ``` ## 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 #### `registerListener(listenerConfig)` He's create an new listener-rss with the corresponding config data. (More information about the listenerConfig here : https://www.npmjs.com/package/listener-rss) #### `startAll()` Start all the listener who are actually register #### `stopAll()` Start all the listener who are actually register #### `editConfig(callback)` This method will call the callback with the actual config of the Manager and override the actual config with the returned object. e.g.: ```typescript myManager.editConfig((actualConfig: ListenerRss.Config[]) : ListenerRss.Config[] => { const modifiedConfig = doSomethingToThisConfig(actualConfig); return modifiedConfig; }) ``` ### Events Like listener-rss, listener-rss-aggregator implement EventEmitter. He call the same events than listener-rss. One call is made for each listener who triggered an event. The `update` event return all the rss file content in one json object. The `newEntries` event return an object with a file `items` who's contains the new items detected. And a field called `addressListener` who's a string with the address of the the rss service.