diff --git a/js/admin.js b/js/admin.js index d8a252a4..57da7a1e 100755 --- a/js/admin.js +++ b/js/admin.js @@ -1,10 +1,10 @@ var adminTogg = false; var pass_corr = ""; -socket.on("success_settings", function() +socket.on("success_settings", function(msg) { pass_corr = "correct"; - document.getElementById("sBar").innerHTML = "Successfully applied settings."; + document.getElementById("sBar").innerHTML = msg; $("#sBar").addClass("opacityFull"); document.getElementById("passbox").value = ""; remove_bar(); @@ -106,6 +106,7 @@ function remove_bar() function shuffle(form) { console.log(adminpass); + socket.emit('shuffle', adminpass); /* confRes = $.ajax({ type: "GET", diff --git a/js/search.js b/js/search.js index 1e3fe7a6..a6cc0933 100755 --- a/js/search.js +++ b/js/search.js @@ -186,7 +186,14 @@ function submitAndClose(id,title){ function submit(id,title,type){ - socket.emit("add", [id, title, adminpass]); + socket.emit("add", [id, decodeURI(title), adminpass]); + if(type){ + document.getElementById("search").value = ""; + $("#results").html = ""; + $(".main").removeClass("blurT"); + $("#controls").removeClass("blurT"); + $(".main").removeClass("clickthrough"); + } /* serverAns = $.ajax({ type: "GET", diff --git a/js/youtube.js b/js/youtube.js index 5a50fcd5..ed9860b9 100755 --- a/js/youtube.js +++ b/js/youtube.js @@ -55,10 +55,9 @@ socket.on(chan.toLowerCase()+",np", function(obj) console.log(seekTo); if(player_ready) { - if(!playing){ + if(ytplayer.getVideoUrl().split('v=')[1] != video_id) ytplayer.loadVideoById(video_id); - ytplayer.playVideo(); - } + ytplayer.playVideo(); ytplayer.seekTo(seekTo); } }); diff --git a/php/nochan.php b/php/nochan.php index bb746b26..5f83ffc5 100755 --- a/php/nochan.php +++ b/php/nochan.php @@ -24,7 +24,7 @@ foreach($fil as $files){ $time_lasted = time() - filemtime($files); if($time_lasted > $to) { - $file = file_get_contents($files); + $file = file_get_contents($files); $data = json_decode($file, TRUE); $q = array_values($data["nowPlaying"]); /*if($q[0]["id"] == "30H2Z8Lr-4c"); @@ -54,6 +54,8 @@ foreach($fil as $files){ } + +
@@ -72,7 +74,7 @@ foreach($fil as $files){
Active Channels
- ".htmlspecialchars($channel).""; $v++;} ?> +
@@ -84,8 +86,8 @@ foreach($fil as $files){ © - Nixo & - KasperRT + Nixo & + KasperRT + diff --git a/server/server.js b/server/server.js index adb812e7..a481c5be 100755 --- a/server/server.js +++ b/server/server.js @@ -23,9 +23,52 @@ io.on('connection', function(socket){ var coll; var guid; + var tot_lists = []; + var in_list = false; + + socket.on('frontpage_lists', function() + { + var playlists_to_send = []; + var i = 0; + var playlists_to_send = []; + in_list = false; + + db.getCollectionNames(function(err, colNames){ + colNames.forEach(function(name){ + if(name != "system.indexes") + { + db.collection(name).find({now_playing:true}, function(err, np){ + complete(np, i, colNames.length-2, name); + i++; + }); + } + }); + }); + + var complete = function(list, curr, tot, name) + { + console.log("inside"); + if(list.length > 0) + { + var id = list[0]["id"]; + var title = list[0]["title"]; + try{ + var viewers = lists[name].length; + }catch(err){console.log("no viewers"); var viewers = 0;} + var to_push = [viewers, id, title, name]; + playlists_to_send.push(to_push); + } + if(curr == tot) + { + socket.emit("playlists", playlists_to_send); + } + } + + }); socket.on('list', function(list) { + in_list = true; list = list.split(','); coll = list[0].toLowerCase(); guid = list[1]; @@ -110,7 +153,7 @@ io.on('connection', function(socket){ { var id = msg[1]; guid = msg[3]; - var hash = has_pass(msg[4]); + var hash = hash_pass(msg[4]); db.collection(coll).find({views:{$exists:true}}, function(err, docs) { if((docs[0]["vote"] == "true" && (hash == docs[0]["adminpass"] || docs[0]["adminpass"] == "")) || docs[0]["vote"] == "false") @@ -174,7 +217,7 @@ io.on('connection', function(socket){ shuffle:shuffling, longsongs:longsongs, adminpass:hash}}, function(err, docs){ - socket.emit("success_settings"); + socket.emit("success_settings", "Successfully applied settings!"); sort_list(coll,undefined,false); }); @@ -185,14 +228,37 @@ io.on('connection', function(socket){ }); }); + socket.on('shuffle', function(pass){ + var hash = hash_pass(pass); + db.collection(coll).find({views:{$exists:true}}, function(err, docs){ + if((docs[0]["adminpass"] == hash || docs[0]["adminpass"] == "") || docs[0]["shuffle"] == "true") + { + db.collection(coll).find({now_playing:false}).forEach(function(err, docs){ + if(!docs){ + sort_list(coll, undefined, false); + return; + }else{ + console.log(docs); + num = Math.floor(Math.random()*1000000); + db.collection(coll).update({id:docs["id"]}, {$set:{added:num}}, function(err, d) + {}); + } + }); + } + }); + }); + socket.on('disconnect', function() { - try - { - var index = lists[coll].indexOf(guid); - lists[coll].splice(index, 1); - io.sockets.emit(coll+",viewers", lists[coll].length); - }catch(err){} + if(in_list) + { + try + { + var index = lists[coll].indexOf(guid); + lists[coll].splice(index, 1); + io.sockets.emit(coll+",viewers", lists[coll].length); + }catch(err){} + } }); socket.on('pos', function() @@ -200,14 +266,16 @@ io.on('connection', function(socket){ console.log("EMITTED"); send_play(coll, socket); }); - }); function del(params) { - db.collection(coll).find({adminpass:hash_pass(params[4])}, function(err, docs){ - if(docs.length == 1) + var coll = params[0].toLowerCase(); + db.collection(coll).find({views:{$exists:true}}, function(err, docs){ + console.log(docs); + if(docs[0]["adminpass"] == hash_pass(params[4])) { + console.log("del"); db.collection(coll).remove({id:params[1]}, function(err, docs){ sort_list(coll, undefined, false); }) @@ -227,41 +295,58 @@ function vote(coll, id, guid) { db.collection(coll).update({id:id}, {$inc:{votes:1}, $set:{added:get_time()}}, function(err, docs) { - /*db.collection(coll).update({id:id}, {$push :{guids: guid}}, function(err, docs) + db.collection(coll).update({id:id}, {$push :{guids: guid}}, function(err, docs) { sort_list(coll, undefined, false); - });*/ - sort_list(coll, undefined, false); + }); + //sort_list(coll, undefined, false); }); } }); } + function change_song(coll) { - db.collection(coll).update({now_playing:true}, - {$set:{ - now_playing:false, - votes:0, - guids:[] - }}, function(err, docs) + db.collection(coll).find({views:{$exists:true}}, function(err, docs){ + if(docs[0]["removeplay"] == "true") { - db.collection(coll).aggregate([ - {$match:{now_playing:false}}, - {$sort:{votes:-1, added:1}}, - {$limit:1}], function(err, docs){ - db.collection(coll).update({id:docs[0]["id"]}, - {$set:{ - now_playing:true, - votes:0, - guids:[], - added:get_time()}}, function(err, docs){ - db.collection(coll).update({views:{$exists:true}}, - {$set:{startTime:get_time()}}, function(err, docs){ - sort_list(coll,undefined,true); - }); - + db.collection(coll).remove({now_playing:true}, function(err, docs) + { + change_song_post(coll); + }) + }else + { + db.collection(coll).update({now_playing:true}, + {$set:{ + now_playing:false, + votes:0, + guids:[] + }}, function(err, docs) + { + change_song_post(coll); }); + } + }) +} + +function change_song_post(coll) +{ + db.collection(coll).aggregate([ + {$match:{now_playing:false}}, + {$sort:{votes:-1, added:1}}, + {$limit:1}], function(err, docs){ + db.collection(coll).update({id:docs[0]["id"]}, + {$set:{ + now_playing:true, + votes:0, + guids:[], + added:get_time()}}, function(err, docs){ + db.collection(coll).update({views:{$exists:true}}, + {$set:{startTime:get_time()}}, function(err, docs){ + sort_list(coll,undefined,true); + }); + }); }); }