chromium extension syncs icecast metadata to tabs

From RtMF (Quinn Storm), 7 Months ago, written in JavaScript, viewed 66 times.
URL http://paste.beautifulsunrise.org/view/30acf488 Embed
Download Paste or View Raw
  1. var pollingTimer;
  2.  
  3. function schedulePoll() {
  4.   if (pollingTimer) {
  5.     window.clearTimeout(requestTimer);
  6.   }
  7.   requestTimer=window.setTimeout(doPoll, 10000); // every 10 seconds
  8. }
  9.  
  10. function setPlaying(text)
  11. {
  12.   ["/320.mp3","/500.ogg"].forEach(function (mount) {
  13.     var user="";
  14.     var pass="";
  15.     var xhr = new XMLHttpRequest();
  16.     xhr.onload = function() {
  17.       switch(this.responseType)
  18.       {
  19.         case "":
  20.         case "text":
  21.           console.log(this.responseText);
  22.           break;
  23.         case "document":
  24.           console.log("We got some XML.");
  25.           break;
  26.         case "arraybuffer":
  27.           console.log("We got an arraybuffer.");
  28.           break;
  29.         case "blob":
  30.           console.log("We got a blob.");
  31.           break;
  32.         case "json":
  33.           console.log(JSON.stringify(this.response));
  34.           break;
  35.       };
  36.     };
  37.     xhr.open("GET","http://rfh.tymestl.org/admin/metadata?mode=updinfo&mount=" + encodeURIComponent(mount) + "&song=" + encodeURIComponent(this),true,user,pass);
  38.     xhr.send();
  39.   }, text);
  40. }
  41.  
  42. function doPoll()
  43. {
  44.   chrome.tabs.query({'audible': true}, function (tabsPlaying) {
  45.     if (tabsPlaying.length>0) {
  46.       var pagesPlaying = tabsPlaying.reduce(function (tabs,tab) {
  47.         return tabs.concat([tab.url,tab.title]);
  48.       },[]);
  49.       setPlaying(pagesPlaying.join(' | '));
  50.     } else {
  51.       setPlaying("Nothing currently playing! :(");
  52.     };
  53.     schedulePoll();
  54.   });
  55. }
  56.  
  57. function onInit() {
  58.   console.log('onInit');
  59.   schedulePoll();
  60. }
  61. onInit();
  62. ~                                                                                                                                                                                                                                                                                                                                                    
  63. ~                                        

Reply to "chromium extension syncs icecast metadata to tabs"

Here you can reply to the paste above