Do a second search without trailing brackets
This commit is contained in:
parent
f7b1fcd53f
commit
8802ffe959
6 changed files with 113 additions and 39 deletions
|
@ -56,29 +56,40 @@ module.exports.lookupId = function(id, type) {
|
|||
|
||||
module.exports.search = function(data) {
|
||||
var deferred = Q.defer();
|
||||
var query = "";
|
||||
var query, album;
|
||||
var type = data.type;
|
||||
|
||||
if (type == "album") {
|
||||
query = "artist:" + data.artist.name.replace(":", "") + " album:" + data.name.replace(":", "");
|
||||
album = data.name;
|
||||
} else if (type == "track") {
|
||||
query = "artist:" + data.artist.name.replace(":", "") + " album:" + data.album.name.replace(":", "") + " track:" + data.name.replace(":", "");
|
||||
album = data.album.name;
|
||||
}
|
||||
|
||||
spotify.search({query: query, type: type}, function(err, data) {
|
||||
if ( err ) {
|
||||
console.log('Error occurred: ' + err);
|
||||
deferred.resolve({service: "spotify"});
|
||||
return;
|
||||
}
|
||||
|
||||
if (!data[type + "s"].items[0]) {
|
||||
deferred.resolve({service:"spotify"});
|
||||
return;
|
||||
var matches = album.match(/^[^\(\[]+/);
|
||||
if (matches[0]) {
|
||||
var cleanedData = JSON.parse(JSON.stringify(data));
|
||||
if (type == "album") {
|
||||
cleanedData.name = matches[0].trim();
|
||||
} else if (type == "track") {
|
||||
cleanedData.album = matches[0].trim();
|
||||
}
|
||||
module.exports.search(cleanedData).then(deferred.resolve);
|
||||
} else {
|
||||
deferred.resolve({service: "spotify"});
|
||||
}
|
||||
} else {
|
||||
module.exports.lookupId(data[type + "s"].items[0].id, type).then(deferred.resolve);
|
||||
}
|
||||
|
||||
var item = data[type + "s"].items[0];
|
||||
|
||||
module.exports.lookupId(item.id, type).then(deferred.resolve);
|
||||
});
|
||||
return deferred.promise;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue