Skip to content

Instantly share code, notes, and snippets.

@runeh
Created March 3, 2015 14:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save runeh/2a03e2931c3618515a74 to your computer and use it in GitHub Desktop.
Save runeh/2a03e2931c3618515a74 to your computer and use it in GitHub Desktop.
"use strict";
var highland = require("highland");
var request = require("request-promise");
var cowsay = require("cowsay");
var promiseToStream = highland;
var arrayToStream = highland;
var pollerToStream = highland;
function cowPageGenerator(url) {
var page = 1;
return function (push, next) {
console.log("PLANG");
push(null, request(url, { qs: { page: page++ } }));
next();
};
}
function cowStream(url) {
return pollerToStream(cowPageGenerator(url)).flatMap(promiseToStream).map(JSON.parse).map(function (e) {
return e.entries;
}).flatMap(arrayToStream);
}
var url = "http://hotell.difi.no/api/json/mattilsynet/husdyrregisteret/storfeindivider";
function entryString(cow) {
return cow.individmerke + ": " + cow.kjonn;
}
cowStream(url).ratelimit(1, 1000).map(entryString).map(function (e) {
return cowsay.say({ text: e, e: "oO", T: "U " });
}).each(console.log);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment