Marc i need your help, i'm tryin to make last.fm radio. To include this in foobar 'youtube radio'.
It's really amazing how great it works, in same way as the web last.fm radio.
For now everything is ok.
But i must to make these 3 function, that every function start after previously is finished.
I want to use 'im.working=false;' to start next function.
But how to do that?
I think to make all this as one function, and then use: 'im.working=false;' to start next part?
Is this possible?
(till now i used timer for this).
//Open Similar Artist
this.Similar_Art = function()
{
//Select Random Page
var randomnumber=Math.floor(Math.random()*18)
var a=randomnumber;
this.working=true;
if (!this.xmlhttp) this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
this.xmlhttp.open("GET", "http://www.last.fm/music/" + START_ARTIST + "/+similar"+ "?page=" + a, true);
this.xmlhttp.send();
this.xmlhttp.onreadystatechange = function() {
if (im.xmlhttp.readyState == 4) {
if (im.xmlhttp.status == 200) {
var text = im.xmlhttp.responsetext;
if (!im.doc) im.doc = new ActiveXObject("htmlfile");
im.doc.open();
var div = im.doc.createElement("div");
div.innerHTML = text;
var data = div.getElementsByTagName("a");
var urls = [];
for (i = 0; i < data.length; i++) {
if (data[i].href.indexOf("about:/music/") == 0) urls.push("http://www.last.fm/music/" + data[i].href.replace(/about:\//,"").replace("music/","").replace("/_/"," - ").replace("+"," ").replace("free-music-downloads","").replace("/+similar?page=2","").replace("/+events","").replace("/+wiki","").replace("-+","").replace("+","").replace("+","").replace("/+albums","").replace("/+tags","").replace("/+images","").replace("/journal","").replace("/charts","").replace("/images","").replace("/listeners","").replace("/similar?page=17","").replace("/news","").replace("/groups","").replace("/albums","").replace("/videos","").replace("/tracks","").replace("/similar","").replace("/tags","").replace("noredirect/","").replace("listeners/+tracks","").replace("videos/+tracks","").replace("/+videos/","").replace("?page=1","").replace("?page=8","").replace("?page=5","").replace("?page=7","").replace("?page=9","").replace("?page=8","").replace("0","").replace("6","").replace("4","").replace("3","").replace("2","").replace("5","").replace("9","") + "/+tracks");
}
//Select Random Artist(num)
var randomnumber = Math.floor(Math.random()*(17-46)+46);
i=randomnumber;
{
p.console("Random Artist: " + urls[i]);
server = window.SetProperty("Download source", urls[i]);
server = urls[i];
window.SetProperty("Download source", urls[i]);
}
im.doc.close();
im.working=false;
} else {
p.console("HTTP error: " + im.xmlhttp.status);
}
}
}
}
//Find Track(For Selected Artist)
this.Track = function()
{
//Select Random Page
var randomnumber=Math.floor(Math.random()*18)
var a=randomnumber;
this.working=true;
if (!this.xmlhttp) this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
this.xmlhttp.open("GET", server + "?page=" + a, true);
this.xmlhttp.send();
this.xmlhttp.onreadystatechange = function() {
if (im.xmlhttp.readyState == 4) {
if (im.xmlhttp.status == 200) {
var text = im.xmlhttp.responsetext;
if (!im.doc) im.doc = new ActiveXObject("htmlfile");
im.doc.open();
var div = im.doc.createElement("td");
div.innerHTML = text;
var data = div.getElementsByTagName("a");
var urls = [];
for (i = 0; i < data.length; i++) {
if (data[i].href.indexOf("about:/music/") == 0) urls.push(data[i].href.replace(/about:\//,"").replace("music/","").replace("/_/"," - ").replace("+"," ").replace("free-music-downloads","").replace("/+similar?page=2","").replace("/+events","").replace("/+wiki","").replace("-+","").replace("+","").replace("+","").replace("/+albums","").replace("/+tags","").replace("/+images","").replace("/journal","").replace("/charts","").replace("/images","").replace("/listeners","").replace("/similar?page=17","").replace("/news","").replace("/groups","").replace("/albums","").replace("/videos","").replace("/tracks","").replace("/similar","").replace("/tags","").replace("noredirect/","").replace("listeners/+tracks","").replace("videos/+tracks","").replace("?page=1","").replace("/+videos/","").replace("?page=2","").replace("+Video","").replace("?page=1","").replace("?page=8","").replace("?page=5","").replace("?page=7","").replace("?page=9","").replace("?page=8","").replace("0/","/").replace("6/","/").replace("4/","/").replace("3/","/").replace("2/","/").replace("5/","").replace("9/","/"));
}
// Select Random Track
var randomnumber = Math.floor(Math.random()*(18-117)+117);
i=randomnumber;
{
//Track Name
p.console("Random Track: " + urls[i]);
ooo2 = window.SetProperty("ART2", urls[i]);
ooo2 = urls[i];
window.SetProperty("ART2", urls[i]);
}
im.doc.close();
im.working=false;
} else {
p.console("HTTP error: " + im.xmlhttp.status);
im.download();
}
}
}
}
//Open Youtube-Track in Foobar
this.Open_Youtube_Track = function()
{
this.working=true;
if (!this.xmlhttp) this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
this.xmlhttp.open("GET", "http://www.youtube.com/results?search_query=" + ooo2, true);
this.xmlhttp.send();
this.xmlhttp.onreadystatechange = function() {
if (im.xmlhttp.readyState == 4) {
if (im.xmlhttp.status == 200) {
var text = im.xmlhttp.responsetext;
if (!im.doc) im.doc = new ActiveXObject("htmlfile");
im.doc.open();
var div = im.doc.createElement("li");
div.innerHTML = text;
var data = div.getElementsByTagName("a");
var urls = [];
for (i = 0; i < data.length; i++) {
if (data[i].href.indexOf("about:/watch?v=") == 0) urls.push("http://www.youtube.com/" + data[i].href.replace(/about:\//,""));
}
//Open first youtube video(found)
i = 1;
{
p.console("YT Video" + urls[i]);
var tmppath = p.fso.GetFolder(fb.FoobarPath).ShortPath;
p.run(tmppath+"\\foobar2000.exe /add "+"\ " + urls[i] + "\"");
}
im.doc.close();
im.working=false;
} else {
p.console("HTTP error: " + im.xmlhttp.status);
}
}
}
}