2.1.0 • Published 7 months ago

simple-rss-watcher v2.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

simple-rss-watcher

simple-rss-watcher is a rss watcher based on datyayu's improved rss-watcher, which fixes constant 504 returns and (slightly) optimizes the 8+ year old code.
If you need help or want to suggest something, you can join my Discord server.

Installation

You can install simple-rss-watcher by using:

  npm install simple-rss-watcher --save

Usage

A basic watcher can be created using:

  var Watcher  = require('simple-rss-watcher'),
  var rssUrl   = 'http://lorem-rss.herokuapp.com/feed?unit=second&interval=5'

  // if no interval is passed, 60s will be set as the default interval
  // but you MUST pass 'feedUrl' or you'll get an error
  var watcher = new Watcher({ feedUrl: rssUrl, interval: 10 })

  // This will emit if the script finds new itmes at your interval time
  watcher.on('new entries', (entries) => {
    entries.forEach((entry) => {
      console.log(entry.title)
    })
  })

  // Start watching the feed.
  watcher.start().then((entries) => {
    // do something
    console.log(entries)
  })
  .catch((error) => {
    console.error(error)
  })

  // Stop watching the feed.
  watcher.stop()

  // This will emit a "stop" event
  watcher.on('stop', () => {
    console.log('Watcher stopped!')
  })

Options

If you want to change the watcher config after creating it, you can use watcher.config():

  watcher.config({ feedUrl: feed, interval: 60 })

Events

Watcher exposes 3 events: 'new entries', 'stop' and 'error'.

  // Returns an array of entry objects founded since last check
  watcher.on('new entries', (entries) => {
    console.log(entries)
  })

  // Emitted when watcher.stop() is called
  watcher.on('stop', () => {
    console.log('stopped')
  })

  // Emitted when an error happens while checking feed
  watcher.on('error', (error) => {
    console.error(error)
  })

Changes from datyayu's script

I really didn't spend much time on this, but here's all the small changes I made:

  • Switched from parse-rss to rss-parser (fixes 504 returns)
  • Removed some useless functions
  • The Watcher constructer takes an Object instead of 2 values
  • Will error out if a non-number is passed for an interval
  • The request (entries fetching) function is now nested in the constructor
  • Some minor (non-breaking) typos were fixed
2.1.0

7 months ago

2.0.0

7 months ago

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago