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);
+ });
+
});
});
}