astrXbian/www/jukebox/plugins/dynamic.js

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;
}
}
}