251 lines
6.5 KiB
JavaScript
251 lines
6.5 KiB
JavaScript
|
pluginManager.addPlugin(language.gettext("button_infoyou"), null, null, 'plugins/code/helpfulthings.js', true);
|
||
|
pluginManager.addPlugin(language.gettext("label_charts"), null, null, 'plugins/code/charts.js', true);
|
||
|
pluginManager.addPlugin(language.gettext("label_recentlyplayed"), null, null, 'plugins/code/recentlyplayed.js', true);
|
||
|
pluginManager.addPlugin(language.gettext("label_playlistmanager"), null, null, 'plugins/code/playlistmanager.js', true);
|
||
|
pluginManager.addPlugin(language.gettext("config_tagrat"), null, null, 'plugins/code/ratingmanager.js', true);
|
||
|
pluginManager.addPlugin(language.gettext("label_viewwishlist"), null, null, 'plugins/code/wishlistviewer.js', true);
|
||
|
pluginManager.addPlugin(language.gettext("label_albumstolistento"), null, null, 'plugins/code/albumstolistento.js', true);
|
||
|
pluginManager.addPlugin(language.gettext("label_metabackup"), null, null, 'plugins/code/metaBackup.js', true);
|
||
|
pluginManager.addPlugin(language.gettext("label_opmlimporter"), null, null, 'plugins/code/opmlImporter.js', true);
|
||
|
pluginManager.addPlugin(language.gettext("label_lfm_playcountimporter"), null, null, 'plugins/code/lfmimporter.js', true);
|
||
|
pluginManager.addPlugin(language.gettext("label_unplayabletracks"), null, null, 'plugins/code/unplayabletracks.js', true);
|
||
|
|
||
|
function lfmDataExtractor(data) {
|
||
|
|
||
|
this.getCheckedData = function(subtype) {
|
||
|
debug.debug("LASTFM", "Checking Data");
|
||
|
var r;
|
||
|
if (!data) {
|
||
|
debug.debug("LASTFM", " - No Data");
|
||
|
r = new Object();
|
||
|
r[subtype] = {error: 1, message: language.gettext("lastfm_notfound", [language.gettext("label_"+subtype)])};
|
||
|
} else if (data && data.error) {
|
||
|
debug.debug("LASTFM", " - Error Data",data.error, data.message);
|
||
|
r = new Object();
|
||
|
r[subtype] = data;
|
||
|
} else {
|
||
|
debug.debug("LASTFM", " - Good Data");
|
||
|
return data;
|
||
|
}
|
||
|
return r;
|
||
|
}
|
||
|
|
||
|
this.error = function() {
|
||
|
if (data && data.error) {
|
||
|
return data.message;
|
||
|
} else {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.errorcode = function() {
|
||
|
if (data && data.error) {
|
||
|
return data.error;
|
||
|
} else {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.id = function() {
|
||
|
try {
|
||
|
return data.id || "";
|
||
|
} catch(err) {
|
||
|
return '';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.artist = function() {
|
||
|
try {
|
||
|
return data.artist || "";
|
||
|
} catch(err) {
|
||
|
return '';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.name = function() {
|
||
|
try {
|
||
|
return data.name || "";
|
||
|
} catch(err) {
|
||
|
return '';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.listeners = function() {
|
||
|
try {
|
||
|
return data.stats.listeners || 0;
|
||
|
} catch(err) {
|
||
|
try {
|
||
|
return data.listeners || 0;
|
||
|
} catch (err) {
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.playcount = function() {
|
||
|
try {
|
||
|
return data.stats.playcount || 0;
|
||
|
} catch(err) {
|
||
|
try {
|
||
|
return data.playcount || 0;
|
||
|
} catch(err) {
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.duration = function() {
|
||
|
try {
|
||
|
return data.duration || 0;
|
||
|
} catch(err) {
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.releasedate = function() {
|
||
|
try {
|
||
|
return data.releasedate || "Unknown";
|
||
|
} catch(err) {
|
||
|
return "Unknown";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.mbid = function() {
|
||
|
try {
|
||
|
return data.mbid || false;
|
||
|
} catch(err) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.userplaycount = function() {
|
||
|
try {
|
||
|
return data.stats.userplaycount || 0;
|
||
|
} catch(err) {
|
||
|
try {
|
||
|
return data.userplaycount || 0;
|
||
|
} catch(err) {
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.url = function() {
|
||
|
try {
|
||
|
return data.url || null;
|
||
|
} catch(err) {
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.bio = function() {
|
||
|
try {
|
||
|
if (data.wiki) {
|
||
|
return data.wiki.content;
|
||
|
} else if (data.bio && data.bio.content) {
|
||
|
return data.bio.content;
|
||
|
} else if (data.bio && data.bio.summary) {
|
||
|
return data.bio.summary;
|
||
|
} else {
|
||
|
return false;
|
||
|
}
|
||
|
} catch(err) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.userloved = function() {
|
||
|
try {
|
||
|
var loved = data.userloved || 0;
|
||
|
return (loved == 1) ? true : false;
|
||
|
} catch(err) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.tags = function() {
|
||
|
try {
|
||
|
if (data.tags) {
|
||
|
try {
|
||
|
return getArray(data.tags.tag);
|
||
|
} catch(err) {
|
||
|
return [];
|
||
|
}
|
||
|
} else {
|
||
|
try {
|
||
|
return getArray(data.toptags.tag);
|
||
|
} catch(err) {
|
||
|
return [];
|
||
|
}
|
||
|
}
|
||
|
} catch(err) {
|
||
|
return [];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.tracklisting = function() {
|
||
|
try {
|
||
|
return getArray(data.tracks.track);
|
||
|
} catch(err) {
|
||
|
return [];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.image = function(size) {
|
||
|
// Get image of the specified size.
|
||
|
// If no image of that size exists, return a different one - just so we've got one.
|
||
|
try {
|
||
|
var url = "";
|
||
|
var temp_url = "";
|
||
|
for(var i in data.image) {
|
||
|
temp_url = data.image[i]['#text'];
|
||
|
if (data.image[i].size == size) {
|
||
|
url = temp_url;
|
||
|
}
|
||
|
}
|
||
|
if (url == "") { url = temp_url; }
|
||
|
return url;
|
||
|
} catch(err) {
|
||
|
return "";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.similar = function() {
|
||
|
try {
|
||
|
return getArray(data.similar.artist);
|
||
|
} catch(err) {
|
||
|
return [];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.similarimage = function(index, size) {
|
||
|
try {
|
||
|
var url = "";
|
||
|
var temp_url = "";
|
||
|
for(var i in data.similar.artist[index].image) {
|
||
|
temp_url = data.similar.artist[index].image[i]['#text'];
|
||
|
if (data.similar.artist[index].image[i].size == size) {
|
||
|
url = temp_url;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
if (url == "") {
|
||
|
url = temp_url;
|
||
|
}
|
||
|
return url;
|
||
|
} catch(err) {
|
||
|
return "";
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
this.url = function() {
|
||
|
try {
|
||
|
return data.url || null;
|
||
|
} catch(err) {
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|