albumart(artist, function (err, url) { if (err) { console.log("ERRORE: " + err); defer.reject(new Error(err)); return defer.promise; } else { if (url != undefined && url != '') { var splitted = url.split('.'); var fileExtension = splitted[splitted.length - 1]; var diskFileName = uuid.v4() + '.' + fileExtension; var options = { directory: folder, filename: diskFileName } //console.log("URL: " + url); download(url, options, function (err) { if (err) defer.reject(new Error(err)); else defer.resolve(folder + diskFileName); }); infoJson[resolution] = diskFileName; } else { defer.reject(new Error('No albumart URL')); return defer.promise; } } fs.writeJsonSync(infoPath, infoJson); });
retrieveAlbumart(decodedArtist, decodedAlbum, decodedResolution, function (err, url) { if (err) { //console.log("ERROR getting albumart: " + err + " for Infopath '" + infoPath + "'"); defer.reject(new Error(err)); return defer.promise; } else { if (url != undefined && url != '') { var splitted = url.split('.'); var fileExtension = splitted[splitted.length - 1]; var diskFileName = uuid.v4() + '.' + fileExtension; var options = { directory: folder, filename: diskFileName }; //console.log("URL: " + url); download(url, options, function (err) { if (err) defer.reject(new Error(err)); else { //waiting 2 secodns to flush data on disk. Should use a better method setTimeout(function(){ defer.resolve(folder + diskFileName); },500); } }); infoJson[resolution] = diskFileName; } else { defer.reject(new Error('No albumart URL')); return defer.promise; } } try { fs.writeJsonSync(infoPath, infoJson); } catch(e) { console.log('Error in writing albumart JSON file: ' + e); } });