Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var http = require('http');
- var child_process = require('child_process');
- var radioUrl = 'http://relay1.everfreeradio.com:8000/stream/2/';
- var playerCmd = "omxplayer.bin";
- var options = {
- stdio: [null, process.stdout, process.stderr]
- };
- var player;
- function startPlayer() {
- console.log("Started player");
- player = child_process.spawn(playerCmd, [radioUrl], options);
- player.on('exit', function () {
- console.log('exit', arguments);
- });
- player.on('close', function () {
- console.log('close', arguments);
- player.kill();
- setTimeout(startPlayer, 5*1000);
- });
- //player.stdout.on('data', function () {console.log(data);});
- }
- function getData(cb) {
- var timerData = setTimeout(cb, 10*1000);
- var request = http.get("http://everfree.net/ajax/radioinfo.php", function (res) {
- var data = "";
- res.on('data', function (chunk) { data += chunk.toString('binary'); });
- res.on('end', function () {
- clearTimeout(timerData);
- cb(JSON.parse(data));
- });
- res.on('error', console.log);
- });
- request.on('error', console.log);
- }
- var trackListeners = 0;
- var trackTitle = "";
- var scrollPos = 0;
- var scrollLength = 15;
- var scrollTimer;
- function updateData() {
- getData(function (data) {
- if (data) {
- trackListeners = data.listeners;
- //console.log("Current listeners:", trackListeners);
- if (data.title !== trackTitle) {
- console.log("NOW PLAYING:", data.title);
- scrollPos = 0;
- trackTitle = data.title;
- updateTitle();
- }
- } else {
- player.kill();
- }
- setTimeout(updateData, 15*1000);
- });
- }
- function updateTitle() {
- var len = trackTitle.length;
- var maxlen = Math.min(len, scrollLength);
- clearTimeout(scrollTimer);
- process.title = "I>"+(trackTitle.substring(scrollPos, len) /*+ trackTitle.substring(0,
- scrollPos)*/).substring(0, maxlen).replace(/\ /g, '_')+"<I";
- //console.log(process.title);
- scrollPos++;
- if (scrollPos >= len+1-maxlen) {
- scrollPos = 0;
- //console.log("Extra wait");
- scrollTimer = setTimeout(updateTitle, 2000);
- } else if (scrollPos === 1) {
- scrollTimer = setTimeout(updateTitle, 1500);
- } else {
- scrollTimer = setTimeout(updateTitle, 500);
- }
- }
- console.log("Starting...");
- startPlayer();
- updateData();
Add Comment
Please, Sign In to add comment