update readme + more comments
This commit is contained in:
parent
30f5e576d0
commit
67907d7cfb
114
README.md
114
README.md
|
@ -1,6 +1,6 @@
|
|||
# easy-rss-parser
|
||||
# listener rss
|
||||
|
||||
A lightweight library to give some additions for the [rss-parser package](https://github.com/rbren/rss-parser).
|
||||
A lightweight library to make simple actions with a RSS feed.
|
||||
|
||||
# USAGE
|
||||
|
||||
|
@ -10,10 +10,10 @@ You can parse RSS from a URL with some custom data.
|
|||
An example :
|
||||
|
||||
```js
|
||||
const easyParser = require("easy-rss-parser");
|
||||
const ListenerRss = easyParser.ListenerRss;
|
||||
const ListenerModule = require("ListenerRSS");
|
||||
const ListenerRss = ListenerModule.ListenerRss;
|
||||
|
||||
let listener = new ListenerRss("my-test-service", "fake.rss.service");
|
||||
const listener = new ListenerRss("my-test-service", "fake.rss.service");
|
||||
|
||||
// make a request to the adr 'fake.rss.service'
|
||||
myListener.fetchRSS().then((obj, err) => {
|
||||
|
@ -27,16 +27,22 @@ You can parse RSS from a URL each n times.
|
|||
An example :
|
||||
|
||||
```js
|
||||
const easyParser = require("easy-rss-parser");
|
||||
const ListenerRss = easyParser.ListenerRss;
|
||||
const ListenerModule = require("ListenerRSS");
|
||||
const ListenerRss = ListenerModule.ListenerRss;
|
||||
|
||||
let listener = new ListenerRss("my-test-service", "fake.rss.service", 5 * 60);
|
||||
const listener = new ListenerRss("my-test-service", "fake.rss.service", 5 * 60);
|
||||
|
||||
let callback_fun = (obj, err) => {
|
||||
const callback_fun_update = (obj) => {
|
||||
// some act
|
||||
};
|
||||
// call callback_fun each 5 minutes
|
||||
listener.start(callback_fun);
|
||||
const callback_fun_new_entries = (obj) => {
|
||||
// some act
|
||||
};
|
||||
|
||||
listener.on("update", callback_fun);
|
||||
listener.on("newEntries", callback_fun);
|
||||
|
||||
listener.start();
|
||||
|
||||
/*...*/
|
||||
|
||||
|
@ -47,12 +53,9 @@ listener.stop();
|
|||
|
||||
## ListenerRSSInfo
|
||||
|
||||
A class to structure listener's data.
|
||||
An interface to structure listener's data.
|
||||
|
||||
### Constructor
|
||||
|
||||
`constructor(name, address, timeloop, customfields)`
|
||||
|
||||
- name : the service name
|
||||
- address : the service address
|
||||
- [optional] timeloop : time to wait between 2 request in seconds (default 5 minutes)
|
||||
|
@ -67,13 +70,6 @@ A class to structure listener's data.
|
|||
|
||||
- listenerRSSInfo : object from the ListenerRSSInfo's class.
|
||||
|
||||
`constructor(name, address, timeloop, customfields)`
|
||||
|
||||
- name : the service name
|
||||
- address : the service address
|
||||
- [optional] timeloop : time to wait between 2 request in seconds (default 5 minutes)
|
||||
- [optional] customfields : to notice field who's custom to the service (default blank)
|
||||
|
||||
### fetchRSS()
|
||||
|
||||
This function allows to make a request to the rss service.
|
||||
|
@ -85,22 +81,41 @@ object who's contain the data. [cf Annexe Output](#output)
|
|||
|
||||
#### Issues
|
||||
|
||||
Return an error if the server can't be resolved.
|
||||
Reject the promise if the server can't be resolved.
|
||||
|
||||
### start(callbackFun)
|
||||
### start()
|
||||
|
||||
This function will execute the callbackFun each time loop.
|
||||
This function will call the `update` event to each success update, the
|
||||
`update_err` event to each fail update, and the `newEntries` event for
|
||||
each update who contains a new item.
|
||||
|
||||
#### Parameter
|
||||
#### Events
|
||||
|
||||
The `callbackFun` is the function who's going to be called each time loop. She need to be under the shape :
|
||||
Each event take one arg into the callback function.
|
||||
|
||||
```js
|
||||
(obj, err) => {
|
||||
/*...*/
|
||||
const callback_fun = (obj) => {
|
||||
// some act
|
||||
};
|
||||
const callback_fun_err = (err) => {
|
||||
// some act
|
||||
};
|
||||
const callback_fun_new_entries = (newEntries) => {
|
||||
// some act
|
||||
};
|
||||
|
||||
listener.on("update", callback_fun);
|
||||
listener.on("update_err", callback_fun_err);
|
||||
listener.on("newEntries", callback_fun_new_entries);
|
||||
```
|
||||
|
||||
#### update
|
||||
It used a callback who receive the received object entirely inside an object.
|
||||
#### update_err
|
||||
It used a callback who receive an error object.
|
||||
#### newEntries
|
||||
It used a callback who receive only new entries inside an array.
|
||||
|
||||
### stop()
|
||||
|
||||
This function will stop the execution of the callbackFun each time loop.
|
||||
|
@ -146,21 +161,28 @@ In this case it's useless to specify the parent field, so you can just omit the
|
|||
Here an example of what type of json object is output during a fetch :
|
||||
|
||||
```json
|
||||
feedUrl: 'fake.rrs.service'
|
||||
title: 'myFakeApiTitle'
|
||||
description: 'My Fake api desc'
|
||||
link: 'fake.rrs.service'
|
||||
items:
|
||||
- title: 'My last item'
|
||||
link: 'fake.rrs.service/item1'
|
||||
pubDate: 'Thu, 12 Nov 2015 21:16:39 +0000'
|
||||
creator: 'someone'
|
||||
content: '<a href="http://example.com">this is a link</a> & <b>this is bold text</b>'
|
||||
contentSnippet: 'this is a link & this is bold text'
|
||||
guid: 'fake.rrs.service/item1'
|
||||
categories:
|
||||
- test
|
||||
- npm
|
||||
- fakeInfos
|
||||
isoDate: '2015-11-12T21:16:39.000Z'
|
||||
{
|
||||
"feedUrl": "fake.rrs.service",
|
||||
"title": "myFakeApiTitle",
|
||||
"description": "My Fake api desc",
|
||||
"link": "fake.rrs.service",
|
||||
"items": [
|
||||
{
|
||||
"title": "My last item",
|
||||
"link": "fake.rrs.service/item1",
|
||||
"pubDate": "Thu, 12 Nov 2015 21:16:39 +0000",
|
||||
"creator": "someone",
|
||||
"content": "<a href=\"http://example.com\">this is a link</a> & <b>this is bold text</b>",
|
||||
"contentSnippet": "this is a link & this is bold text",
|
||||
"guid": "fake.rrs.service/item1",
|
||||
"categories": [
|
||||
"test",
|
||||
"npm",
|
||||
"fakeInfos",
|
||||
],
|
||||
"isoDate": "2015-11-12T21:16:39.000Z"
|
||||
},
|
||||
/*Some Others items*/
|
||||
]
|
||||
}
|
||||
```
|
||||
|
|
|
@ -6,7 +6,8 @@ const DEFAULT_TIMELOOP: number = 5 * 60; // default timeloop is 5 min
|
|||
|
||||
/**
|
||||
* Emit 'update' when he's making a fetch during the start fun
|
||||
* Emit 'update_err' when the fetch has an issue
|
||||
* Emit 'error' when the fetch has an issue
|
||||
* Emit 'newEntries' when the fetch has new entris
|
||||
*/
|
||||
export class ListenerRss extends EventEmitter {
|
||||
name: string = "";
|
||||
|
@ -21,7 +22,7 @@ export class ListenerRss extends EventEmitter {
|
|||
|
||||
/**
|
||||
* @brief constructor
|
||||
* @param config ListenerRSSInfos interface who's contain the ListenerInfos
|
||||
* @param config ListenerRSSInfos interface who contains the ListenerInfos
|
||||
*/
|
||||
constructor(config: ListenerInfo) {
|
||||
super();
|
||||
|
@ -36,7 +37,7 @@ export class ListenerRss extends EventEmitter {
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Private function. Is useed to initilize the parser object with the customfields var
|
||||
* @brief Private function. Is used to initilize the parser object with the customfields var
|
||||
*/
|
||||
generateParser() {
|
||||
const parserConfig = this.customfields && {
|
||||
|
@ -51,7 +52,7 @@ export class ListenerRss extends EventEmitter {
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief use the parseURL function from rss-parser with the objects datas
|
||||
* @brief use the parseURL function from rss-parser with the objects data
|
||||
* @return return a promise with the received data
|
||||
*/
|
||||
fetchRSS(): Promise<Parser.Output<any>> {
|
||||
|
@ -60,7 +61,6 @@ export class ListenerRss extends EventEmitter {
|
|||
|
||||
/**
|
||||
* @brief call the callback function each looptime
|
||||
* @param callback function who's going to be called with the latest get
|
||||
*/
|
||||
start(): void {
|
||||
this.loopRunning = true;
|
||||
|
|
Loading…
Reference in New Issue
Block a user