listener-rss-aggregator/README.md

61 lines
2.3 KiB
Markdown
Raw Permalink Normal View History

2021-07-24 18:24:52 +02:00
# Listener-rss-aggregator
---
## Brief
2021-07-24 18:24:52 +02:00
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
2021-07-24 18:24:52 +02:00
import { ListenerRssAggregator } from 'Listener-rss-aggregator';
2021-07-24 18:24:52 +02:00
const path = '/my/data/directorie/bd.sqlite'
const configAggregator = await ListenerRssAggregator.instantiateAggregator(
path
);
myManager = new ListenerRssAggregator(configAggregator);
2021-07-24 18:24:52 +02:00
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)`
2021-07-24 18:24:52 +02:00
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
2021-07-24 18:24:52 +02:00
#### `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
2021-07-24 18:24:52 +02:00
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.