UNPKG

hackernews2nntp

Version:

Post Hacker News Stories & Comments to an NNTP Server

66 lines (57 loc) 1.51 kB
// Generated by CoffeeScript 1.8.0 (function() { var Q, http_get, request, util; util = require('util'); Q = require('q'); request = require('request'); exports.conf = { url: 'https://hacker-news.firebaseio.com/v0/%s.json' }; http_get = function(url) { var deferred, opt; deferred = Q.defer(); opt = { url: url }; request.get(opt, function(err, res, body) { if (err) { err.message = "" + url + ": " + err.message; deferred.reject(err); return; } if (res.statusCode === 200) { return deferred.resolve(body); } else { return deferred.reject(new Error("HTTP " + res.statusCode)); } }); return deferred.promise; }; exports.maxitem = function() { return http_get(util.format(exports.conf.url, 'maxitem')).then(function(body) { var maxitem; maxitem = parseInt(body) || 0; if (maxitem < 1) { throw new Error("maxitem <= 0"); } else { return maxitem; } }); }; exports.top100 = function() { return http_get(util.format(exports.conf.url, 'topstories')).then(function(body) { var arr, err; try { arr = JSON.parse(body); } catch (_error) { err = _error; throw new Error("invalid json: " + err.message); } if (util.isArray(arr) && arr.length > 0) { return arr; } else { throw new Error('a non-empty array is required'); } }); }; }).call(this);