More bluebird, fetch larger artwork

This commit is contained in:
Jonathan Cremin 2014-12-13 12:05:47 +00:00
parent e671b823e9
commit 23896f7ee6
16 changed files with 117 additions and 81 deletions

View file

@ -33,27 +33,30 @@ module.exports.parseUrl = function(url) {
module.exports.lookupId = function(id, type) {
if (type == "album") {
return request.get(apiRoot + "/albums/" + id + "/images/default?size=medium&client_id=" + credentials.key).redirects(0).promise().then(function(res) {
var artwork = res.headers.location;
return request.get(apiRoot + "/albums/" + id + "?client_id=" + credentials.key).promise().then(function(res) {
if (!res.body.data) {
var error = new Error("Not Found");
error.status = 404;
throw error;
}
var result = res.body.data;
return {
service: "beats",
type: "album",
id: result.id,
name: result.title,
streamUrl: "https://listen.beatsmusic.com/albums/" + result.id,
purchaseUrl: null,
artwork: artwork.replace("http:", "https:"),
artist: {
name: result.artist_display_name
return request.get(apiRoot + "/albums/" + id + "/images/default?size=large&client_id=" + credentials.key).redirects(0).promise().then(function(res) {
var artwork = {large: res.headers.location.replace("http:", "https:")};
return request.get(apiRoot + "/albums/" + id + "/images/default?client_id=" + credentials.key).redirects(0).promise().then(function(res) {
artwork.small = res.headers.location.replace("http:", "https:");
return request.get(apiRoot + "/albums/" + id + "?client_id=" + credentials.key).promise().then(function(res) {
if (!res.body.data) {
var error = new Error("Not Found");
error.status = 404;
throw error;
}
};
var result = res.body.data;
return {
service: "beats",
type: "album",
id: result.id,
name: result.title,
streamUrl: "https://listen.beatsmusic.com/albums/" + result.id,
purchaseUrl: null,
artwork: artwork,
artist: {
name: result.artist_display_name
}
};
});
});
});
} else if (type == "track") {
@ -64,23 +67,26 @@ module.exports.lookupId = function(id, type) {
throw error;
}
var result = res.body.data;
return request.get(apiRoot + "/albums/" + result.refs.album.id + "/images/default?size=medium&client_id=" + credentials.key).redirects(0).promise().then(function(res) {
var artwork = res.headers.location;
return {
service: "beats",
type: "track",
id: result.id,
name: result.title,
streamUrl: "https://listen.beatsmusic.com/albums/" + result.refs.album.id + "/tracks/" + result.id,
purchaseUrl: null,
artwork: artwork.replace("http:", "https:"),
artist: {
name: result.artist_display_name
},
album: {
name: result.refs.album.display
}
};
return request.get(apiRoot + "/albums/" + result.refs.album.id + "/images/default?size=large&client_id=" + credentials.key).redirects(0).promise().then(function(res) {
var artwork = {large: res.headers.location.replace("http:", "https:")};
return request.get(apiRoot + "/albums/" + result.refs.album.id + "/images/default?client_id=" + credentials.key).redirects(0).promise().then(function(res) {
artwork.small = res.headers.location.replace("http:", "https:");
return {
service: "beats",
type: "track",
id: result.id,
name: result.title,
streamUrl: "https://listen.beatsmusic.com/albums/" + result.refs.album.id + "/tracks/" + result.id,
purchaseUrl: null,
artwork: artwork,
artist: {
name: result.artist_display_name
},
album: {
name: result.refs.album.display
}
};
});
});
});
} else {