A graphql microservice that parses rss feeds and returns a JSON representation of the given feed.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
__fixtures__
src
.eslintrc.js
.gitignore
.npmignore
Dockerfile
changelog.md
circle.yml
cli.js
license
nodemon.json
package.json
readme.md
yarn.lock

readme.md

micro-rss-parser

CircleCI codecov npm version

A graphql microservice that parses rss feeds and returns a JSON representation of the given feed. It uses different parses installed from npm. When a parser fail it will try the next following this order: feedparser, rss-parser, feedme. To specify a specific parser see example queries below.

Installation

npm i -g micro-rss-parser

Usage

CLI for starting the server

$ micro-rss-parser --help

  Usage: micro-rss-parser [options] [command]

  Commands:

    help  Display help

  Options:

    -h, --help          Output usage information
    -H, --host [value]  Host to listen on (defaults to "0.0.0.0")
    -p, --port <n>      Port to listen on (defaults to 3000)
    -R, --raven-dsn     Raven DSN. This is used to configure logging with sentry.io
    -v, --version       Output the version number

Example queries

feed(url: String, [parser: Parser])

{
  feed(url: "https://rolflekang.com/feed.xml") {
    title
    entries {
      title
      pubDate
      link
    }
  }
}
Specifying the parser.

micro-rss-parser supports several of the rss parsers on npm. It can be specified with the parser option in a feed query as seen below.

Available parsers:

{
  feed(url: "https://rolflekang.com/feed.xml", parser: FEEDPARSER) {
    entries {
      link
    }
  }
}

findFeed(url: String)

{
  findFeed(url: "https://rolflekang.com") {
    link
  }
}