diff --git a/server/handlers/list_change.js b/server/handlers/list_change.js
index 446d442e..00ac1194 100644
--- a/server/handlers/list_change.js
+++ b/server/handlers/list_change.js
@@ -89,11 +89,11 @@ function add_function(arr, coll, guid, offline, socket) {
db.collection(coll).update({views:{$exists:true}}, {$set:{startTime: Functions.get_time()}});
List.send_play(coll, undefined);
Frontpage.update_frontpage(coll, id, title);
- Search.get_correct_info(new_song, coll, false);
+ if(!full_list) Search.get_correct_info(new_song, coll, false);
} else {
var new_song = {"_id": "asd", "added":added,"guids":guids,"id":id,"now_playing":np,"title":title,"votes":votes, "duration":duration};
io.to(coll).emit("channel", {type: "added", value: new_song});
- Search.get_correct_info(new_song, coll, true);
+ if(!full_list) Search.get_correct_info(new_song, coll, true);
}
db.collection("frontpage_lists").update({_id:coll}, {$inc:{count:1}, $set:{accessed: Functions.get_time()}}, {upsert:true}, function(err, docs){});
List.getNextSong(coll);
diff --git a/server/handlers/search.js b/server/handlers/search.js
index 38b6991b..96a41a6c 100644
--- a/server/handlers/search.js
+++ b/server/handlers/search.js
@@ -8,35 +8,38 @@ function get_correct_info(song_generated, channel, broadcast) {
url: "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+key+"&id=" + song_generated.id,
}, function(error, response, body) {
- var resp = JSON.parse(body);
- if(resp.items.length == 1) {
- var duration = parseInt(durationToSeconds(resp.items[0].contentDetails.duration));
- var title = resp.items[0].snippet.localized.title;
- if(title != song_generated.title || duration < parseInt(song_generated.duration)) {
- if(title != song_generated.title) {
- song_generated.title = title;
- }
- if(duration < parseInt(song_generated.duration)) {
- song_generated.duration = duration;
- song_generated.start = 0;
- song_generated.end = duration;
- }
- db.collection(channel).update({"id": song_generated.id}, {
- $set: {
- "duration": song_generated.duration,
- "start": song_generated.start,
- "end": song_generated.end,
- "title": song_generated.title,
+ try {
+ var resp = JSON.parse(body);
+ if(resp.items.length == 1) {
+ var duration = parseInt(durationToSeconds(resp.items[0].contentDetails.duration));
+ var title = resp.items[0].snippet.localized.title;
+ if(title != song_generated.title || duration < parseInt(song_generated.duration)) {
+ if(title != song_generated.title) {
+ song_generated.title = title;
}
- }, function(err, docs) {
- if(broadcast && docs.nModified == 1) {
- song_generated.new_id = song_generated.id;
- io.to(channel).emit("channel", {type: "changed_values", value: song_generated});
+ if(duration < parseInt(song_generated.duration)) {
+ song_generated.duration = duration;
+ song_generated.start = 0;
+ song_generated.end = duration;
}
- });
+ db.collection(channel).update({"id": song_generated.id}, {
+ $set: {
+ "duration": song_generated.duration,
+ "start": song_generated.start,
+ "end": song_generated.end,
+ "title": song_generated.title,
+ }
+ }, function(err, docs) {
+ if(broadcast && docs.nModified == 1) {
+ song_generated.new_id = song_generated.id;
+ io.to(channel).emit("channel", {type: "changed_values", value: song_generated});
+ }
+ });
+ }
}
+ catch(e){
+ console.log(e);
}
-
});
}
@@ -51,53 +54,57 @@ function check_error_video(msg, channel) {
url: "https://www.googleapis.com/youtube/v3/videos?part=id&key="+key+"&id=" + msg.id,
}, function(error, response, body) {
- var resp = JSON.parse(body);
- if(resp.pageInfo.totalResults == 0) {
- var yt_url = "https://www.googleapis.com/youtube/v3/search?key="+key+"&videoEmbeddable=true&part=id&type=video&order=viewCount&safeSearch=none&maxResults=5&q=" + encodeURIComponent(msg.title);
- request({
- method: "GET",
- url: yt_url,
- }, function(error, response, body){
- var resp = JSON.parse(body);
- if(resp.items.length > 0) {
- var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+key+"&id=";
- for(var i = 0; i < resp.items.length; i++) {
- vid_url += resp.items[i].id.videoId + ",";
- }
- request({
- type: "GET",
- url: vid_url
- }, function(error, response, body) {
- var resp = JSON.parse(body);
- var found = false;
- var element = {};
+ try {
+ var resp = JSON.parse(body);
+ if(resp.pageInfo.totalResults == 0) {
+ var yt_url = "https://www.googleapis.com/youtube/v3/search?key="+key+"&videoEmbeddable=true&part=id&type=video&order=viewCount&safeSearch=none&maxResults=5&q=" + encodeURIComponent(msg.title);
+ request({
+ method: "GET",
+ url: yt_url,
+ }, function(error, response, body){
+ var resp = JSON.parse(body);
+ if(resp.items.length > 0) {
+ var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+key+"&id=";
for(var i = 0; i < resp.items.length; i++) {
- if(similarity(resp.items[i].snippet.localized.title, msg.title) > 0.75) {
- found = true;
- element = {
- title: resp.items[i].snippet.localized.title,
- duration: parseInt(durationToSeconds(resp.items[i].contentDetails.duration)),
- id: resp.items[i].id,
- start: 0,
- end: parseInt(durationToSeconds(resp.items[i].contentDetails.duration)),
+ vid_url += resp.items[i].id.videoId + ",";
+ }
+ request({
+ type: "GET",
+ url: vid_url
+ }, function(error, response, body) {
+ var resp = JSON.parse(body);
+ var found = false;
+ var element = {};
+ for(var i = 0; i < resp.items.length; i++) {
+ if(similarity(resp.items[i].snippet.localized.title, msg.title) > 0.75) {
+ found = true;
+ element = {
+ title: resp.items[i].snippet.localized.title,
+ duration: parseInt(durationToSeconds(resp.items[i].contentDetails.duration)),
+ id: resp.items[i].id,
+ start: 0,
+ end: parseInt(durationToSeconds(resp.items[i].contentDetails.duration)),
+ }
+ break;
}
- break;
}
- }
- if(found) {
- db.collection(channel).update({"id": msg.id}, {
- $set: element
- }, function(err, docs) {
- if(docs.nModified == 1) {
- element.new_id = element.id;
- element.id = msg.id;
- io.to(channel).emit("channel", {type: "changed_values", value: element});
- }
- });
- }
- });
- }
- });
+ if(found) {
+ db.collection(channel).update({"id": msg.id}, {
+ $set: element
+ }, function(err, docs) {
+ if(docs.nModified == 1) {
+ element.new_id = element.id;
+ element.id = msg.id;
+ io.to(channel).emit("channel", {type: "changed_values", value: element});
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+ catch(e){
+ console.log(e);
}
});
}
diff --git a/server/public/assets/html/embed.html b/server/public/assets/html/embed.html
index 085347e7..7b8e81d3 100755
--- a/server/public/assets/html/embed.html
+++ b/server/public/assets/html/embed.html
@@ -7,10 +7,10 @@
-
-
-
-
+
+
+
+
diff --git a/server/public/assets/js/embed.js b/server/public/assets/js/embed.js
index 08b03308..a0004916 100755
--- a/server/public/assets/js/embed.js
+++ b/server/public/assets/js/embed.js
@@ -1,4 +1,6 @@
-
+var slider_type = "horizontal";
+var timed_remove_check;
+var gotten_np = false;
var song_title = "";
var paused = false;
var player_ready = false;
diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js
index b7c9f0ff..b334ecb1 100755
--- a/server/public/assets/js/list.js
+++ b/server/public/assets/js/list.js
@@ -153,7 +153,7 @@ var List = {
changedValues: function(song) {
var i = List.getIndexOfSong(song.id);
- if(i >= 0) {
+ if(i >= 0 && window.location.pathname != "/") {
full_playlist[i].title = song.title;
full_playlist[i].duration = song.duration;
full_playlist[i].start = song.start;
@@ -289,26 +289,34 @@ var List = {
$("#settings").css("opacity", "1");
$("#wrapper").css("opacity", "1");
- clearTimeout(timed_remove_check);
- timed_remove_check = setTimeout(function() {
- $.each(full_playlist, function(j, _current_song) {
- $.getJSON('https://www.googleapis.com/youtube/v3/videos?id=' + _current_song.id
- + "&key=" + api_key + "&part=snippet",
- function (data, status, xhr) {
- if (data.items.length == 0) {
- setTimeout(function() {
- socket.emit("error_video", {channel: chan.toLowerCase(), id: _current_song.id, title: _current_song.title});
- }, 500);
- }
+ if(!embed) {
+ clearTimeout(timed_remove_check);
+ timed_remove_check = setTimeout(function() {
+ if(full_playlist.length > 0) {
+ List.check_error_videos(0);
+ }
+ }, 1500);
+ }
+ },
- }).error(function (xhr, errorType, exception) {
- //var errorMessage = exception || xhr.statusText || xhr.responseText;
- setTimeout(function() {
- socket.emit("error_video", {channel: chan.toLowerCase(), id: _current_song.id, title: _current_song.title});
- }, 500);
- });
+ check_error_videos: function(i) {
+ console.log(i);
+ $.getJSON('https://www.googleapis.com/youtube/v3/videos?id=' + full_playlist[i].id
+ + "&key=" + api_key + "&part=snippet",
+ function (data, status, xhr) {
+ if (data.items.length == 0) {
+ socket.emit("error_video", {channel: chan.toLowerCase(), id: full_playlist[i].id, title: full_playlist[i].title});
+ }
+ if(full_playlist.length > i + 1 && window.location.pathname != "/") {
+ List.check_error_videos(i + 1);
+ }
+
+ }).error(function (xhr, errorType, exception) {
+ socket.emit("error_video", {channel: chan.toLowerCase(), id: full_playlist[i].id, title: full_playlist[i].title});
+ if(full_playlist.length > i + 1 && window.location.pathname != "/") {
+ List.check_error_videos(i + 1);
+ }
});
- }, 1500);
},
dynamicContentPageJumpTo: function(page) {
diff --git a/server/public/assets/js/player.js b/server/public/assets/js/player.js
index d4b143f0..b7c93cee 100755
--- a/server/public/assets/js/player.js
+++ b/server/public/assets/js/player.js
@@ -594,6 +594,12 @@ var Player = {
//currDurr = currDurr - Player.np.start;
minutes = Math.floor(currDurr / 60);
seconds = currDurr - (minutes * 60);
+ /*if(isNan(minutes)) {
+ minutes = 0;
+ }
+ if(isNan(seconds)) {
+ seconds = 0;
+ }*/
document.getElementById("duration").innerHTML = Helper.pad(minutes)+":"+Helper.pad(seconds)+" / "+Helper.pad(dMinutes)+":"+Helper.pad(dSeconds);
per = (100 / duration) * currDurr;
if(per >= 100) {