Add README
This commit is contained in:
		
							
								
								
									
										125
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,125 @@
 | 
			
		||||
# easy-rss-parser
 | 
			
		||||
A lightweight library to give some additions for the [rss-parser package](https://github.com/rbren/rss-parser).
 | 
			
		||||
# USAGE
 | 
			
		||||
## Punctual usage
 | 
			
		||||
You can parse RSS from a URL with some custom data.  
 | 
			
		||||
An example :
 | 
			
		||||
```js
 | 
			
		||||
const easyParser = require('easy-rss-parser');
 | 
			
		||||
const ListenerRss = easyParser.ListenerRss;
 | 
			
		||||
 | 
			
		||||
let listener = new ListenerRss('my-test-service', 'fake.rss.service');
 | 
			
		||||
 | 
			
		||||
// make a request to the adr 'fake.rss.service'
 | 
			
		||||
myListener.fetchRSS().then((obj, err) => {
 | 
			
		||||
    // some act
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
## Recurrent usage
 | 
			
		||||
You can parse RSS from a URL each n times.  
 | 
			
		||||
An example :
 | 
			
		||||
```js
 | 
			
		||||
const easyParser = require('easy-rss-parser');
 | 
			
		||||
const ListenerRss = easyParser.ListenerRss;
 | 
			
		||||
 | 
			
		||||
let listener = new ListenerRss('my-test-service', 'fake.rss.service', 5*60);
 | 
			
		||||
 | 
			
		||||
let callback_fun = (obj, err) => {
 | 
			
		||||
        // some act
 | 
			
		||||
    };
 | 
			
		||||
// call callback_fun each 5 minutes
 | 
			
		||||
listener.start(callback_fun);
 | 
			
		||||
 | 
			
		||||
/*...*/
 | 
			
		||||
 | 
			
		||||
listener.stop();
 | 
			
		||||
```
 | 
			
		||||
# Documentation
 | 
			
		||||
## ListenerRSSInfo
 | 
			
		||||
A class 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)
 | 
			
		||||
- [optional] customfields : to notice field who's custom to the service (default blank) 
 | 
			
		||||
  [cf annexe CustomFields](#customfields)
 | 
			
		||||
## ListenerRSS
 | 
			
		||||
### Constructor
 | 
			
		||||
`constructor(listenerRSSInfo)`
 | 
			
		||||
- 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.
 | 
			
		||||
#### Return
 | 
			
		||||
Return a promise object who's resolved like `resolve: (value: result_fetch) => void))` where `result_fetch` is a json 
 | 
			
		||||
object who's contain the data. [cf Annexe Output](#output)
 | 
			
		||||
#### Issues
 | 
			
		||||
Return an error if the server can't be resolved.
 | 
			
		||||
### start(callbackFun)
 | 
			
		||||
This function will execute the callbackFun each time loop.
 | 
			
		||||
#### Parameter
 | 
			
		||||
The `callbackFun` is the function who's going to be called each time loop. She need to be under the shape :
 | 
			
		||||
```js
 | 
			
		||||
(obj, err) => {
 | 
			
		||||
  /*...*/
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
### stop()
 | 
			
		||||
This function will stop the execution of the callbackFun each time loop.
 | 
			
		||||
# Annexe
 | 
			
		||||
## CustomFields
 | 
			
		||||
This parameter permit to specify some custom fields who's present in the service but not in the RFC.
 | 
			
		||||
For example the YouTube RSS api give some data into the `<media:group>` field. So you can give this info with this :
 | 
			
		||||
```js
 | 
			
		||||
[
 | 
			
		||||
    ['media:group', 'media:group'] 
 | 
			
		||||
]
 | 
			
		||||
```
 | 
			
		||||
You can also rename the field with the left part :
 | 
			
		||||
```js
 | 
			
		||||
[
 | 
			
		||||
    ['my_custom_media_group_name', 'media:group']
 | 
			
		||||
]
 | 
			
		||||
```
 | 
			
		||||
In adition you can rename child element into custom field like this :
 | 
			
		||||
```js
 | 
			
		||||
[
 | 
			
		||||
    ['media:group', 'media:group'],
 | 
			
		||||
    ['description', ['media:group', 'media:description']],
 | 
			
		||||
    ['icon', ['media:group', 'media:thumbnail']]
 | 
			
		||||
]
 | 
			
		||||
```
 | 
			
		||||
In this case it's useless to specify the parent field, so you can just omit the first line :
 | 
			
		||||
```js
 | 
			
		||||
[
 | 
			
		||||
    ['description', ['media:group', 'media:description']],
 | 
			
		||||
    ['icon', ['media:group', 'media:thumbnail']]
 | 
			
		||||
]
 | 
			
		||||
```
 | 
			
		||||
## Output
 | 
			
		||||
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'
 | 
			
		||||
```
 | 
			
		||||
		Reference in New Issue
	
	Block a user