diff --git a/server/handlers/list_change.js b/server/handlers/list_change.js index b433a720..446d442e 100644 --- a/server/handlers/list_change.js +++ b/server/handlers/list_change.js @@ -84,6 +84,7 @@ function add_function(arr, coll, guid, offline, socket) { db.collection(coll).update({id: id}, {"added": added,"guids":guids,"id":id,"now_playing":np,"title":title,"votes":votes, "duration":duration, "start": start, "end": end}, {upsert: true}, function(err, docs){ if(np) { + var new_song = {"added": added,"guids":guids,"id":id,"now_playing":np,"title":title,"votes":votes, "duration":duration, "start": start, "end": end}; List.send_list(coll, undefined, false, true, false); db.collection(coll).update({views:{$exists:true}}, {$set:{startTime: Functions.get_time()}}); List.send_play(coll, undefined); diff --git a/server/handlers/search.js b/server/handlers/search.js index dad0223b..1f2e0c11 100644 --- a/server/handlers/search.js +++ b/server/handlers/search.js @@ -29,7 +29,7 @@ function get_correct_info(song_generated, channel, broadcast) { "title": song_generated.title, } }, function(err, docs) { - if(broadcast) { + if(broadcast && docs.nModified == 1) { song_generated.new_id = song_generated.id; io.to(channel).emit("channel", {type: "changed_values", value: song_generated}); } @@ -52,19 +52,14 @@ function check_error_video(msg, channel) { }, function(error, response, body) { var resp = JSON.parse(body); - //console.log(resp.pageInfo.totalResults); 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); - //console.log(yt_url); request({ method: "GET", url: yt_url, }, function(error, response, body){ var resp = JSON.parse(body); - if(resp.items.length > 0) { - //console.log(resp.items); - 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 + ","; @@ -91,14 +86,14 @@ function check_error_video(msg, channel) { } } if(found) { - console.log("time to change", msg.id, element); db.collection(channel).update({"id": msg.id}, { $set: element }, function(err, docs) { - console.log(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}); + } }); } }); diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 8f9c43b9..e0edeee5 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -153,18 +153,21 @@ var List = { changedValues: function(song) { var i = List.getIndexOfSong(song.id); - full_playlist[i].title = song.title; - full_playlist[i].duration = song.duration; - full_playlist[i].start = song.start; - full_playlist[i].end = song.end; - full_playlist[i].id = song.new_id; + if(i >= 0) { + full_playlist[i].title = song.title; + full_playlist[i].duration = song.duration; + full_playlist[i].start = song.start; + full_playlist[i].end = song.end; + full_playlist[i].id = song.new_id; - $("#" + song.id).find(".vote-container").attr("title", song.title); - $("#" + song.id).find(".list-title").attr("title", song.title); - $("#" + song.id).find(".list-title").text(song.title); - var _temp_duration = Helper.secondsToOther(song.duration); - $("#" + song.id).find(".card-duration").text(Helper.pad(_temp_duration[0]) + ":" + Helper.pad(_temp_duration[1])); - $("#" + song.id).attr("id", song.new_id); + $("#" + song.id).find(".vote-container").attr("title", song.title); + $("#" + song.id).find(".list-title").attr("title", song.title); + $("#" + song.id).find(".list-title").text(song.title); + var _temp_duration = Helper.secondsToOther(song.duration); + $("#" + song.id).find(".card-duration").text(Helper.pad(_temp_duration[0]) + ":" + Helper.pad(_temp_duration[1])); + $("#" + song.id).find(".list-image").attr("style", "background-image:url('//img.youtube.com/vi/"+song.new_id+"/mqdefault.jpg');"); + $("#" + song.id).attr("id", song.new_id); + } }, insertAtBeginning: function(song_info, transition) { @@ -936,7 +939,8 @@ var List = { var video_id = _song_info.id; var video_title = _song_info.title; var video_votes = _song_info.votes; - var video_thumb = "background-image:url('//img.youtube.com/vi/"+video_id+"/mqdefault.jpg');"; + var video_thumb_url = "//img.youtube.com/vi/"+video_id+"/mqdefault.jpg"; + var video_thumb = "background-image:url('" + video_thumb_url + "');"; var song = $("
"+list_html+"
"); var image_attr = "style"; if(_song_info.hasOwnProperty("start") && _song_info.hasOwnProperty("end")) { @@ -968,13 +972,18 @@ var List = { attr = ".vote-container"; del_attr = "delete_button"; - var img = new Image(); - img.onerror = function() { - setTimeout(function() { - socket.emit("error_video", {channel: chan.toLowerCase(), id: video_id, title: video_title}); - }, 500); - }; - img.src = "//img.youtube.com/vi/"+video_id+"/mqdefault.jpg"; + var url = "https://zoff.me:8081/https://img.youtube.com/vi/"+video_id+"/mqdefault.jpg"; + $.ajax({ + type: "HEAD", + url: url, + error: function(e) { + if(e.status == 404) { + setTimeout(function() { + socket.emit("error_video", {channel: chan.toLowerCase(), id: video_id, title: video_title}); + }, 500); + } + } + }); var _temp_duration = Helper.secondsToOther(_song_info.duration); song.find(".card-duration").text(Helper.pad(_temp_duration[0]) + ":" + Helper.pad(_temp_duration[1])); @@ -1011,6 +1020,7 @@ var List = { song.find(".list-title").attr("title", video_title); song.find(attr).attr("data-video-id", video_id); song.find(".list-image").attr(image_attr,video_thumb); + song.find(".list-image-placeholder").attr("src", video_thumb_url); song.find(".list-suggested-image").attr(image_attr,video_thumb); song.find("."+del_attr).attr("data-video-id", video_id); return song.html(); diff --git a/server/public/partials/channel/playlist.handlebars b/server/public/partials/channel/playlist.handlebars index 027be024..4ded5276 100644 --- a/server/public/partials/channel/playlist.handlebars +++ b/server/public/partials/channel/playlist.handlebars @@ -3,8 +3,7 @@
- - + 01:00