From 2a4b7380e4813b7506f5dfbad473785bad444328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Fri, 4 May 2018 21:44:57 +0200 Subject: [PATCH] Better handling for frontpage-lists thumbnails --- server/handlers/frontpage.js | 22 ++++++++++++------ server/handlers/list_change.js | 34 ++++++++++++++++++---------- server/public/assets/js/frontpage.js | 10 +++----- server/public/assets/js/search.js | 9 ++++---- 4 files changed, 44 insertions(+), 31 deletions(-) diff --git a/server/handlers/frontpage.js b/server/handlers/frontpage.js index 6be2c58c..7b8225b9 100644 --- a/server/handlers/frontpage.js +++ b/server/handlers/frontpage.js @@ -19,13 +19,21 @@ function frontpage_lists(msg, socket) { function update_frontpage(coll, id, title, thumbnail, callback) { coll = coll.replace(/ /g,''); - db.collection("frontpage_lists").update({_id: coll}, {$set: { - id: id, - title: title, - thumbnail: thumbnail, - accessed: Functions.get_time()} - },{upsert: true}, function(err, returnDocs){ - if(typeof(callback) == "function") callback(); + db.collection("frontpage_lists").find({_id: coll}, function(e, doc) { + var updateObject = { + id: id, + title: title, + accessed: Functions.get_time() + }; + if(doc.length > 0 && (doc[0].thumbnail == "" || doc[0].thumbnail == undefined || doc[0].thumbnail.indexOf("ttps://i1.sndcdn.com") > -1)) { + updateObject.thumbnail = thumbnail; + if(thumbnail == undefined) updateObject.thumbnail = ""; + } + + db.collection("frontpage_lists").update({_id: coll}, {$set: updateObject + },{upsert: true}, function(err, returnDocs){ + if(typeof(callback) == "function") callback(); + }); }); } diff --git a/server/handlers/list_change.js b/server/handlers/list_change.js index 9aaa6945..88af15fd 100644 --- a/server/handlers/list_change.js +++ b/server/handlers/list_change.js @@ -88,12 +88,17 @@ function addFromOtherList(arr, guid, offline, socket) { db.collection(channel).find({now_playing: true}, function(e, np_docs) { to_change.id = np_docs[0].id; to_change.title = np_docs[0].title; - to_change.thumbnail = np_docs[0].thumbnail; - db.collection("frontpage_lists").update({_id: channel}, {$set: to_change}, function(e, d) { - List.send_list(channel, undefined, false, true, false); - List.send_play(channel, undefined); - socket.emit("toast", "addedplaylist"); - _db.close(); + db.collection("frontpage_lists").find({_id: coll}, function(e, doc) { + if(doc.length > 0 && doc[0].thumbnail != "" && doc[0].thumbnail != undefined) { + to_change.thumbnail = np_docs[0].thumbnail; + } + + db.collection("frontpage_lists").update({_id: channel}, {$set: to_change}, function(e, d) { + List.send_list(channel, undefined, false, true, false); + List.send_play(channel, undefined); + socket.emit("toast", "addedplaylist"); + _db.close(); + }); }); }); } else { @@ -219,12 +224,17 @@ function addPlaylist(arr, guid, offline, socket) { db.collection(channel).find({now_playing: true}, function(e, np_docs) { to_change.id = np_docs[0].id; to_change.title = np_docs[0].title; - to_change.thumbnail = np_docs[0].thumbnail; - db.collection("frontpage_lists").update({_id: channel}, {$set: to_change}, function(e, d) { - List.send_list(channel, undefined, false, true, false); - List.send_play(channel, undefined); - socket.emit("toast", "addedplaylist"); - _db.close(); + db.collection("frontpage_lists").find({_id: coll}, function(e, doc) { + if(doc.length > 0 && doc[0].thumbnail != "" && doc[0].thumbnail != undefined) { + to_change.thumbnail = np_docs[0].thumbnail; + } + + db.collection("frontpage_lists").update({_id: channel}, {$set: to_change}, function(e, d) { + List.send_list(channel, undefined, false, true, false); + List.send_play(channel, undefined); + socket.emit("toast", "addedplaylist"); + _db.close(); + }); }); }); } else { diff --git a/server/public/assets/js/frontpage.js b/server/public/assets/js/frontpage.js index 8b90e3dd..5ace6f9e 100755 --- a/server/public/assets/js/frontpage.js +++ b/server/public/assets/js/frontpage.js @@ -78,20 +78,16 @@ var Frontpage = { var viewers = lists[x].viewers; var description = lists[x].description; var img; - if(id.indexOf("soundcloud.com") > -1) { + img = "background-image:url('https://img.youtube.com/vi/"+id+"/hqdefault.jpg');"; + if(lists[x].thumbnail && lists[x].thumbnail != "") { img = "background-image:url('" + lists[x].thumbnail + "');"; - } else { - img = "background-image:url('https://img.youtube.com/vi/"+id+"/hqdefault.jpg');"; - if(lists[x].thumbnail) { - img = "background-image:url('" + lists[x].thumbnail + "');"; - } } var song_count = lists[x].count; var card = document.createElement("div"); card.innerHTML += pre_card; //card.innerHTML = card.children[0]; - if(song_count > 4) { + if(song_count > 3) { if(lists[x].pinned == 1) { card.querySelector(".pin").setAttribute("style", "display:block;"); //card.find(".card").attr("title", "Featured list"); diff --git a/server/public/assets/js/search.js b/server/public/assets/js/search.js index a29a864c..3cb0297e 100755 --- a/server/public/assets/js/search.js +++ b/server/public/assets/js/search.js @@ -194,7 +194,6 @@ var Search = { SC.get('/tracks', { q: keyword }).then(function(tracks) { - var pre_result = document.createElement("div"); pre_result.innerHTML = result_html.outerHTML; @@ -203,7 +202,7 @@ var Search = { var output = ""; for(var i = 0; i < tracks.length; i++) { var song = tracks[i]; - + if(!song.streamable) continue; var duration=Math.floor(song.duration / 1000); //var secs=Search.durationToSeconds(duration); var secs = duration; @@ -391,13 +390,13 @@ var Search = { } }, error: function(e) { - console.log(e); + console.error(e); } }); } }, error: function(e) { - console.log(e); + console.error(e); } }); }, @@ -623,7 +622,7 @@ addVideos: function(ids){ } }, error: function(e) { - console.log(e); + console.error(e); } }); },