UNPKG

spacewall

Version:

Set your wallpaper to the NASA Astronomy Photo of the Day.

60 lines (46 loc) 1.24 kB
module.exports = spacewall var apod = require('apod') var fs = require('fs') var path = require('path') var req = require('request') var tmp = require('os-tmpdir')() var wallpaper = require('wallpaper') function spacewall (opts) { opts = opts || {} apod.apiKey = opts.key || process.env.NASA_API_KEY || 'DEMO_KEY' if (opts.random) { apod.random(processApod) } else { apod(processApod) } function processApod (err, data) { if (err) { console.error(err) return } var dest = path.join(tmp, path.parse(data.url).base) var stream = req(data.url).pipe(fs.createWriteStream(dest)) stream.on('finish', function () { wallpaper.set(dest, function (err) { if (err) console.error(err) }) if (!opts.silent) outputData(data) }) } function outputData (data) { if (opts.title) { console.log(data.title) return } if (opts.json) { console.log(data) return } console.log(data.title) console.log(data.explanation) if (apod.apiKey === 'DEMO_KEY') { console.log('*** Get your NASA developer key to avoid rate limits!') console.log('*** https://api.nasa.gov/api.html#authentication') } } }