Skip to content

Instantly share code, notes, and snippets.

@karlbright
Created December 9, 2015 06:34
Show Gist options
  • Save karlbright/e3d02ceea74011e5d3da to your computer and use it in GitHub Desktop.
Save karlbright/e3d02ceea74011e5d3da to your computer and use it in GitHub Desktop.
var BASE_URL = "http://cheersfrom.bamcreative.com/image.php?name="
var foreach = require('for-each')
var request = require('request')
var temp = require('temp')
var async = require('async')
var gm = require('gm')
temp.track()
function getLetter(letter, cb) {
console.log('Getting letter', letter)
var stream = temp.createWriteStream()
request(BASE_URL + letter).pipe(stream).on('close', cb.bind(null, null, stream))
}
function write(str, cb) {
async.map(str.split(''), getLetter, function(err, letters) {
var image
var path = process.cwd() + '/' + str + '.jpg'
foreach(letters, function(letter) {
console.log('Appending letter', letter.path)
if (!image) {
image = gm(letter.path)
} else {
image.append(letter.path, true)
}
})
image.write(path, function (err) {
if (err) console.log(err)
temp.cleanupSync()
})
})
}
module.exports = write
{
"name": "bamswearative",
"version": "1.0.0",
"description": "",
"bin": { "bamswearative": "./bin/bamswearative" },
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"async": "^1.5.0",
"for-each": "^0.3.2",
"gm": "^1.21.1",
"request": "^2.67.0",
"temp": "^0.8.3",
"tmp-file": "^1.0.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment