UNPKG

hubot-weirdmeetup-blog

Version:
48 lines (37 loc) 973 B
# Description: # RSS Entries Fetcher # # Author: # @golbin 'use strict' request = require 'request' FeedParser = require 'feedparser' Promise = require 'bluebird' module.exports = class RSSReader fetch: (url) -> new Promise (resolve, reject) => feedparser = new FeedParser req = request uri: url timeout: 10000 req.on 'error', (err) -> reject err req.on 'response', (res) -> stream = this if res.statusCode isnt 200 return reject "statusCode: #{res.statusCode}" stream.pipe feedparser feedparser.on 'error', (err) -> reject err entries = [] feedparser.on 'data', (chunk) => entry = url: chunk.guid title: chunk.title author: chunk.author toString: -> s = "#{@title} - #{@url}" return s entries.push entry feedparser.on 'end', -> resolve entries