update readme + more comments
This commit is contained in:
		
							
								
								
									
										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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user