Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
HaykRssApp committed Jul 14, 2022
1 parent ee233c9 commit 6e55921
Show file tree
Hide file tree
Showing 26 changed files with 13,584 additions and 4 deletions.
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2022 HaykRssApp
Copyright (c) 2022 Hayk Poghosyan <hayk@rss.app>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand All @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.
121 changes: 119 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,119 @@
# site-to-rss
Site to Rss API module and examples
# RSS.app Node.js Library

[![Version](https://img.shields.io/npm/v/site-to-rss.svg)](https://www.npmjs.org/package/site-to-rss)
[![Try on RunKit](https://badge.runkitcdn.com/site-to-rss.svg)](https://npm.runkit.com/site-to-rss)
[![Types](https://badgen.net/npm/types/site-to-rss)](https://www.npmjs.org/package/site-to-rss)
[![Covarage](https://badgen.net/codecov/c/github/babel/babel)](https://www.npmjs.org/package/site-to-rss)

The site-to-rss library provides convenient access to the RSS.app API from
applications written in JavaScript.

## Documentation

See the [ API docs](https://rss.app/docs/api) for Node.js.

## Live Demo

A minimal demo project can be found in [examples directory](https://github.com/RSSapp/site-to-rss/tree/main/examples).

[Online demo](https://npm.runkit.com/site-to-rss) is also available!

## Requirements

Node 8 or higher.

## Installation

Install the package with:

```sh
npm install site-to-rss --save
# or
yarn add site-to-rss
```

## Usage

The package needs to be configured with your account's api and secret key, which is
available in the [RSS.app Dashboard](https://rss.app/docs/api/authentication). Require it with the key's
value:

<!-- prettier-ignore -->
```js
const RssApp = require('site-to-rss');

const rssApp = new RssApp({ apiKey: 'c_...', apiSecret: 's_...' });

rssApp.feed
.create({ url: 'https://bbc.com' })
.then((feed) => {
console.log('Success', feed);
})
.catch((err) => {
console.log('Error', err);
});
```

Or using ES modules and `async`/`await`:

```js
import RssApp from 'site-to-rss';
const rssApp = new RssApp({ apiKey: 'c_...', apiSecret: 's_...' });

(async () => {
const feed = await rssApp.feed.create({ url: 'https://bbc.com' });

console.log(feed.id);
})();
```

### Usage with TypeScript

RSS.app maintains types.

```ts
import RssApp, { RssAppFeed } from 'site-to-rss';
const rssApp = new RssApp({ apiKey: 'c_...', apiSecret: 's_...' });

const createFeed = async () => {
const feed: RssAppFeed = await rssApp.feed.create({ url: 'https://bbc.com' });

console.log(feed.id);
};
createFeed();
```

### Using Promises

Every method returns a chainable promise which can be used instead of a regular
callback:

```js
// Create a new feed and then list all feeds in account:
rssApp.feed
.create({
url: 'https://bbc.com',
})
.then((feed) => {
return rssApp.feed
.list({
limit: 10,
offset: 0,
})
.then((res) => {
console.log(res.data);
})
.catch((err) => {
// Deal with an error
});
});
```

## More Information

- [Error Handling](https://rss.app/docs/api/errors)
- [Pagination](https://rss.app/docs/api/pagination)

## License

Rss Generator API is freely distributable under the terms of the [MIT license](https://github.com/RSSapp/site-to-rss/blob/main/LICENSE).
3 changes: 3 additions & 0 deletions examples/generate-rss-feed/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# RSS.app keys
RSS_APP_API_KEY=
RSS_APP_API_SECRET=
1 change: 1 addition & 0 deletions examples/generate-rss-feed/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.env
Empty file.
10 changes: 10 additions & 0 deletions examples/generate-rss-feed/node/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module.exports = {
parserOptions: {
ecmaVersion: 6,
sourceType: 'module',
},
rules: {
'new-cap': 'off',
'no-console': 'off',
},
};
27 changes: 27 additions & 0 deletions examples/generate-rss-feed/node/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
require('dotenv').config();

// Load the RssApp SDK
const RssApp = require('site-to-rss');

// Create RssApp service object
const rssApp = new RssApp({ apiKey: process.env.RSS_APP_API_KEY, apiSecret: process.env.RSS_APP_API_SECRET });

// Call RssApp to create the feed
rssApp.feed
.create({ url: 'https://bbc.com' })
.then((feed) => {
console.log('Success', feed);
})
.catch((err) => {
console.log('Error', err);
});

// Call RssApp to list the feeds
rssApp.feed
.list({ limit: 10, offset: 0 })
.then((list) => {
console.log('Success', list.data);
})
.catch((err) => {
console.log('Error', err);
});
Loading

0 comments on commit 6e55921

Please sign in to comment.