Giter VIP home page Giter VIP logo

node-rss-watcher's Introduction

rss-watcher Build StatusCoverage Status

NPM

gyazo

What is it

RSS-Watcher is Tinu Library/Executable for RSS/Atom Feed Reader

##install

####NPM INSTALL:

npm install rss-watcher

####package.json:

{
  "dependencies":{
    "rss-watcher": "*"
  }
}

Usage

Watcher = require 'rss-watcher'
feed = 'http://github.com/nikezono.atom'

watcher = new Watcher(feed)

watcher.on 'new article',(article)->
  console.log article

watcher.run (err,articles)->
  console.error err if err
  console.log articles # current articles

option

watcher = new Watcher(feed)
watcher.set
  feed:feed # feed url
  interval: 60  # request per interval seconds. default:average update frequency

exposed events

watcher.on "error",(error)->
  console.error error

watcher.on "new article",(article)->
  console.log article # article object

watcher.on "stop", ->
  console.log 'stop'

watcher.stop()

CLI tool

> rss-watcher -f 'http://github.com/nikezono.atom' -i 20000 # 20000s interval

Test

Spec Report:

npm -i -g grunt grunt-cli
grunt test

Coverage dump:

grunt coverage
open coverage.html

node-rss-watcher's People

Contributors

chi-bd avatar greensopinion avatar nikezono avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

node-rss-watcher's Issues

Not able to watch content chage

Hello i tried rss-watcher but was not able to get any new change. Can anyone just guide me.

Here is my sample code

Is this correct?? [Not able to watch]

feed = 'http://github.com/nikezono.atom'
watcher = new Watcher({feed:feed, interval: 2000 })
watcher.on('new article',function(article){
console.log(article)
})
watcher.run(function(article){
console.log(article)
})

Error: socket hang up がたくさん出る

同じタイミングでたくさんまとめてErrorが投げられてくる。

同じURLに対するrss-watcherをたくさん生成しているということはないです

Export to ATOM/RSS

Possibility to watch several feeds, at once, and export their entries into an ATOM or RSS feed.

更新頻度の設定の引数に関数取れるようにする

watcher.set
feed: String
interval: Integer

だったけど、

interval: Function(frequnecy)

を用意して、

watcher.set
  feed: "http://hoge.atom"
  interval: (frequency)->
    if frequency > 60*10 # 10分以上
      return 60*10
    else
      return frequency / 2

とか書けるようにしよう

repeated events when multiple articles have the same pubDate and different titles

When multiple articles in the feed have the same pubDate, events are created for each of those articles on every iteration.

It looks like state retained by the watcher is based on pubDate and title, which is insufficient to handle this use-case.

The workaround is to ensure that no two articles in a watched feed have the same pubDate.

I'm going to have a look at this. My gut feel is that retaining a collection of titles for a given pubDate might be all that's needed.

Timerのほうがテストできてない

どっかのフィードを監視しつつそのフィードを更新するテストを書かないといけないので難しい

今はbin/rss-watcherのCLIツールで動作確認してるけどわりと非効率

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.