I've been using Marc2003's "Now Playing" panel for a number of years, but it appears to have stopped working due to the new last.fm.
Anyone know what changes might need to be made to the script to make it operational again?
Code for reference:
// ==PREPROCESSOR==
// @import "%fb2k_profile_path%marc2003\common7.js"
// @name "Now Playing"
// @author "marc2003"
// @feature "v1.4"
// @feature "watch-metadb"
// ==/PREPROCESSOR==
//the track info section displays 3 lines of title formatted text. you can customise that here/////////////////////////////////////////////
var line1 = {
text: "", //leave this blank
tf: "%artist%", //enter any title formatting
font: gdi.Font("Segoe UI", 30, 1), //font name, size, style. 1 means bold and 0 is normal.
colour: RGB(40,179,255), //colour
y: 0 //change this value to move text up or down.
}
var line2 = {
text: "",
tf: "[%discnumber%.]%tracknumber%'/'[%discnumber%.]%totaltracks% - %title%",
font: gdi.Font("Segoe UI", 23, 1),
colour: RGB(210, 210, 210),
y: 38
}
var line3 = {
text: "",
tf: "$ifequal([%LASTFM_LOVED_DB%],1,♥,)",
font: gdi.Font("Segoe UI", 23, 1),
colour: RGB(255,0,0),
y: 70
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var p = new panel("Now Playing", ["custom_background", "now_playing", "lastfm_wiki", "remap"]);
p.version = "7.2013-04-23.01";
p.filename = "now playing.txt";
var c = new cd(0, 0, 0, 0);
var r = new rating(0, 0, 24);
var t = new text(0, 0, 0, 0);
var im = new images(0, 0, 0, 0);
var th = new thumbs(0, 0 , 0, 0)
var b = new buttons();
p.check_version();
p.selection_mode = 1;
var np_cd = window.GetProperty("np_cd", true);
var np_cd_size = window.GetProperty("np_cd_size", 200);
var np_track = window.GetProperty("np_track", true);
var np_track_top = window.GetProperty("np_track_top", false);
var np_buttons = window.GetProperty("np_buttons", true);
var np_bio = window.GetProperty("np_bio", true);
var np_cd_size = window.GetProperty("np_cd_size", 200);
var np_rating = window.GetProperty("np_rating", true);
var bar1y = 0;
var bar1h = 0;
var bar2y = 0;
var bar2h = 0;
b.update = function() {
if (p.metadb) {
var artist = encodeURIComponent(p.eval("%artist%"));
var title = encodeURIComponent(p.eval("%title%"));
var google = "https://www.google.co.uk/search?q=" + artist;
var myspace = "http://www.myspace.com/search/music?q=" + artist;
var lastfm = "http://www.last.fm/music/" + artist + "/_/" + title;
var youtube = "http://www.youtube.com/results?search_query=" + artist + "+" + title;
var discogs = "http://www.discogs.com/search?q=" + artist;
var allmusic = "http://www.allmusic.com/search/artists/" + artist;
b.buttons = {
google: new button(im.x + im.w - 192, bar2y - 1, 32, 32, {normal: "google.png", hover: "google_h.png"}, function() { p.browser(google); }, google),
myspace: new button(im.x + im.w - 160, bar2y - 1, 32, 32, {normal: "myspace.png", hover: "myspace_h.png"}, function() { p.browser(myspace); }, myspace),
lastfm: new button(im.x + im.w - 128, bar2y - 1, 32, 32, {normal: "lastfm.png", hover: "lastfm_h.png"}, function() { p.browser(lastfm); }, lastfm),
youtube: new button(im.x + im.w - 96, bar2y - 1, 32, 32, {normal: "youtube.png", hover: "youtube_h.png"}, function() { p.browser(youtube); }, youtube),
discogs: new button(im.x + im.w - 64, bar2y - 1, 32, 32, {normal: "discogs.png", hover: "discogs_h.png"}, function() { p.browser(discogs); }, discogs),
allmusic: new button(im.x + im.w - 32, bar2y - 1, 32, 32, {normal: "allmusic.png", hover: "allmusic_h.png"}, function() { p.browser(allmusic); }, allmusic)
}
}
window.RepaintRect(0, bar2y, im.w, bar2h);
}
on_item_focus_change();
function on_playback_time(time) {
im.playback_time(time);
}
function on_size() {
p.size();
th.calc();
switch(true) {
case np_track_top:
c.y = im.y - (np_cd_size * 0.05);
bar1y = im.y;
bar1h = np_track ? 100 : 0;
bar2y = im.y + bar1h;
bar2h = np_buttons || np_rating ? 30 : 0;
t.y = im.y + bar1h + bar2h;
break;
default:
c.y = im.y + im.h - np_cd_size + (np_cd_size * 0.05);
bar1y = im.y + (np_rating || np_buttons ? im.h - 130 : im.h - 100);
bar1h = np_track ? 100 : 0;
bar2y = im.y + im.h - 30;
bar2h = np_buttons || np_rating ? 30 : 0;
t.y = im.y;
break;
}
c.x = im.x;
c.w = np_cd_size;
c.h = np_cd_size;
r.y = bar2y + 3;
t.x = im.x + im.w - Math.round(im.w / 3);
t.w = im.x + im.w - t.x - 15;
t.h = im.h - bar1h - bar2h;
t.size();
b.update();
}
function on_paint(gr) {
p.draw_background(gr);
th.draw(gr);
tix = im.x + (np_cd ? np_cd_size : 10);
r.x = tix;
if (np_track) {
gr.FillSolidRect(im.x, bar1y, im.w, bar1h, RGBA(0, 0, 0, 196));
p.left_text(gr, line1.text, line1.font, line1.colour, tix, bar1y + line1.y, im.x + im.w - tix - 10, line1.font.Height);
p.left_text(gr, line2.text, line2.font, line2.colour, tix, bar1y + line2.y, im.x + im.w - tix - 10, line2.font.Height);
p.left_text(gr, line3.text, line3.font, line3.colour, tix, bar1y + line3.y, im.x + im.w - tix - 10, line3.font.Height);
}
if (np_rating || np_buttons) gr.FillSolidRect(im.x, bar2y, im.w, bar2h, RGBA(0, 0, 0, 136));
if (np_cd) c.draw(gr);
if (np_rating) r.draw(gr);
if (np_buttons) b.draw(gr);
if (np_bio) {
gr.FillSolidRect(t.x - 15, t.y, t.w + 30, t.h, RGBA(0, 0, 0, 156));
t.draw(gr, RGB(240, 240, 240));
}
}
function on_metadb_changed() {
b.update();
r.metadb_changed();
im.metadb_changed();
t.metadb_changed();
c.metadb_changed();
if (p.metadb) {
line1.text = p.eval(line1.tf);
line2.text = p.eval(line2.tf);
line3.text = p.eval(line3.tf);
}
window.Repaint();
}
function on_playback_stop() {
on_item_focus_change();
b.update();
}
function on_playback_pause() {
b.update();
}
function on_playback_starting() {
b.update();
}
function on_get_album_art_done(metadb, art_id, im, ip) {
c.get_album_art_done(ip);
}
function on_mouse_wheel(step) {
if (np_cd && c.trace(p.mx, p.my)) {
np_cd_size += step * 25;
if (np_cd_size < 200) np_cd_size = 200;
if (np_cd_size > 400) np_cd_size = 400;
window.SetProperty("np_cd_size", np_cd_size);
c.y = Math.round(np_track_top ? im.y - (np_cd_size * 0.05) : im.y + im.h - np_cd_size + (np_cd_size * 0.05));
c.w = np_cd_size;
c.h = np_cd_size;
window.RepaintRect(im.x, np_track_top ? im.y : im.y + im.h - 450, im.w, 450);
return;
}
if (th.wheel(step)) return;
if (np_bio && t.wheel(step)) return;
im.wheel(step);
}
function on_mouse_move(x, y) {
p.move(x, y);
if (np_rating && r.move(x, y)) return;
if (np_bio && t.move(x, y)) return;
if (np_buttons && b.move(x,y)) return;
if (np_cd && c.move(x, y)) return;
if (th.move(x, y)) return;
}
function on_mouse_lbtn_up(x, y) {
if (np_buttons && b.lbtn_up(x, y)) return;
if (np_rating && r.lbtn_up(x, y)) return;
if (np_bio && t.lbtn_up(x, y)) return;
if (th.lbtn_up(x, y)) return;
}
function on_mouse_lbtn_dblclk(x, y) {
if (np_cd && c.lbtn_dblclk(x, y)) return;
if (th.lbtn_dblclk(x, y)) return;
}