Skip to content

Commit

Permalink
De-dupe adapter options
Browse files Browse the repository at this point in the history
  • Loading branch information
kjell committed Apr 22, 2014
1 parent 36e1fa0 commit 9106906
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 31 deletions.
21 changes: 6 additions & 15 deletions adapters/directory.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,15 @@
var fs = require('fs'),
exec = require('exec'),
mkdirp = require('mkdirp')
exec = require('exec')

var home = function(path) { return process.env.HOME + '/' + path },
imagedirectory = process.env.IMAGEDIRECTORY || home('tmp/tilesaw/data/images/'),
tiledirectory = process.env.TILEDIR || home('Documents/MapBox/tiles/'),
tilesaw = process.env.TILESAW || home('tmp/tilesaw/'),
directories = [imagedirectory, tiledirectory, tilesaw]

directories.forEach(mkdirp.sync)

module.exports = function(imageName, callback) {
var image = imagedirectory + imageName + '.jpg',
tiles = imagedirectory + imageName + '.mbtiles'
module.exports = function(imageName, options, callback) {
var image = options.imagedirectory + imageName + '.jpg',
tiles = options.imagedirectory + imageName + '.mbtiles'

if (fs.existsSync(image)) {
var saw = exec([tilesaw+'tilesaw.sh', image], function(stderr, out, code) {
var saw = exec([options.tilesaw+'tilesaw.sh', image], function(stderr, out, code) {
if(code != 0) return callback('error with tilesaw: ' + stderr)

mv = exec(['mv', tiles, tiledirectory], function(stderr, out, code) {
mv = exec(['mv', tiles, options.tiledirectory], function(stderr, out, code) {
callback(null, image)
exec(['rm', image], function() {})
})
Expand Down
19 changes: 5 additions & 14 deletions adapters/mia-api.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,5 @@
var httpget = require('http-get'),
exec = require('exec'),
mkdirp = require('mkdirp')

var home = function(path) { return process.env.HOME + '/' + path },
imagedirectory = process.env.IMAGEDIRECTORY || home('tmp/tilesaw/data/images/'),
tiledirectory = process.env.TILEDIR || home('Documents/MapBox/tiles/'),
tilesaw = process.env.TILESAW || home('tmp/tilesaw/'),
directories = [imagedirectory, tiledirectory, tilesaw]

directories.forEach(mkdirp.sync)
exec = require('exec')

function maxDimensionForImage(id, cb) {
rcli = require('redis').createClient()
Expand All @@ -22,19 +13,19 @@ function maxDimensionForImage(id, cb) {
})
}

module.exports = function(imageId, callback) {
module.exports = function(imageId, options, callback) {
maxDimensionForImage(imageId, function(err, maxDimension) {
if(err) return callback(err)

var imageUrl = 'http://api.artsmia.org/images/'+imageId+'/'+maxDimension+'/large.jpg',
imageFile = imagedirectory + '/' + imageId + '.jpg'
imageFile = options.imagedirectory + '/' + imageId + '.jpg'

httpget.get({url: imageUrl}, imageFile, function(error, result) {
if(error || result == undefined) { return cb([error, result]) }

var saw = exec([tilesaw+'/tilesaw.sh', imageFile], function(err, out, code) {
var saw = exec([options.tilesaw+'/tilesaw.sh', imageFile], function(err, out, code) {
if(code == 0) {
mv = exec(['mv', imageFile.replace('.jpg', '.mbtiles'), tiledirectory], function(err, out, code) {
mv = exec(['mv', imageFile.replace('.jpg', '.mbtiles'), options.tiledirectory], function(err, out, code) {
exec(['rm', imageFile], function() {})
callback(null, imageFile)
})
Expand Down
2 changes: 1 addition & 1 deletion adapters/noop.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = function(imageName, fn) {
module.exports = function(imageName, options, fn) {
console.log('noop adapter, noop`ing')
fn('noop')
}
16 changes: 15 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,24 @@
var http = require('http'),
express = require('express'),
mkdirp = require('mkdirp')

app = express()

var tileserver = process.env.TILESERVER || 'http://localhost:8888/v2/'

var home = function(path) { return process.env.HOME + '/' + path },
imagedirectory = process.env.IMAGEDIRECTORY || home('tmp/tilesaw/data/images/'),
tiledirectory = process.env.TILEDIR || home('Documents/MapBox/tiles/'),
tilesaw = process.env.TILESAW || home('tmp/tilesaw/'),
adapterOptions = {
imagedirectory: imagedirectory,
tiledirectory: tiledirectory,
tilesaw: tilesaw
},
directories = [imagedirectory, tiledirectory, tilesaw]

directories.forEach(mkdirp.sync)

var adapters = 'noop directory mia-api'

app.get('/:image', function(req, res) {
Expand All @@ -26,7 +40,7 @@ app.get('/:image', function(req, res) {
} else {
var _adapters = adapters.split(' ')
_adapters.some(function(adapter, index) {
return require('./adapters/'+adapter)(imageName, function(err, mbtiles) {
return require('./adapters/'+adapter)(imageName, adapterOptions, function(err, mbtiles) {
if(err) {
if(index+1 == _adapters.length) res.send(404, err)
return false
Expand Down

0 comments on commit 9106906

Please sign in to comment.