mirror of
				https://github.com/KevinMidboe/zoff.git
				synced 2025-10-29 18:00:23 +00:00 
			
		
		
		
	Revert "Feature/song replacement"
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							5a08358f62
						
					
				
				
					commit
					7a62057a30
				
			| @@ -57,20 +57,6 @@ module.exports = function() { | |||||||
|             } |             } | ||||||
|         }); |         }); | ||||||
|  |  | ||||||
|         socket.on("error_video", function(msg) { |  | ||||||
|             try { |  | ||||||
|                 var _list = msg.channel; |  | ||||||
|                 if(_list.length == 0) return; |  | ||||||
|                 coll = emojiStrip(_list).toLowerCase(); |  | ||||||
|                 coll = coll.replace("_", ""); |  | ||||||
|                 coll = encodeURIComponent(coll).replace(/\W/g, ''); |  | ||||||
|                 coll = filter.clean(coll); |  | ||||||
|             } catch(e) { |  | ||||||
|                 return; |  | ||||||
|             } |  | ||||||
|             Search.check_error_video(msg, coll); |  | ||||||
|         }); |  | ||||||
|  |  | ||||||
|         socket.on("get_spread", function(){ |         socket.on("get_spread", function(){ | ||||||
|             db.collection("connected_users").find({"_id": "total_users"}, function(err, tot) { |             db.collection("connected_users").find({"_id": "total_users"}, function(err, tot) { | ||||||
|                 db.collection("connected_users").find({"_id": "offline_users"}, function(err, off) { |                 db.collection("connected_users").find({"_id": "offline_users"}, function(err, off) { | ||||||
|   | |||||||
| @@ -84,7 +84,6 @@ 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){ |                                     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) |                                         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); |                                             List.send_list(coll, undefined, false, true, false); | ||||||
|                                             db.collection(coll).update({views:{$exists:true}}, {$set:{startTime: Functions.get_time()}}); |                                             db.collection(coll).update({views:{$exists:true}}, {$set:{startTime: Functions.get_time()}}); | ||||||
|                                             List.send_play(coll, undefined); |                                             List.send_play(coll, undefined); | ||||||
|   | |||||||
| @@ -29,8 +29,7 @@ function get_correct_info(song_generated, channel, broadcast) { | |||||||
|                         "title": song_generated.title, |                         "title": song_generated.title, | ||||||
|                     } |                     } | ||||||
|                 }, function(err, docs) { |                 }, function(err, docs) { | ||||||
|                     if(broadcast && docs.nModified == 1) { |                     if(broadcast) { | ||||||
|                         song_generated.new_id = song_generated.id; |  | ||||||
|                         io.to(channel).emit("channel", {type: "changed_values", value: song_generated}); |                         io.to(channel).emit("channel", {type: "changed_values", value: song_generated}); | ||||||
|                     } |                     } | ||||||
|                 }); |                 }); | ||||||
| @@ -40,110 +39,6 @@ function get_correct_info(song_generated, channel, broadcast) { | |||||||
|     }); |     }); | ||||||
| } | } | ||||||
|  |  | ||||||
| function check_error_video(msg, channel) { |  | ||||||
|     if(!msg.hasOwnProperty("id") || !msg.hasOwnProperty("title")) { |  | ||||||
|         socket.emit("update_required"); |  | ||||||
|         return; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     request({ |  | ||||||
|             type: "GET", |  | ||||||
|             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 = {}; |  | ||||||
|                         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; |  | ||||||
|                             } |  | ||||||
|                         } |  | ||||||
|                         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}); |  | ||||||
|                                 } |  | ||||||
|                             }); |  | ||||||
|                         } |  | ||||||
|                     }); |  | ||||||
|                 } |  | ||||||
|             }); |  | ||||||
|         } |  | ||||||
|     }); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function similarity(s1, s2) { |  | ||||||
|   var longer = s1; |  | ||||||
|   var shorter = s2; |  | ||||||
|   if (s1.length < s2.length) { |  | ||||||
|     longer = s2; |  | ||||||
|     shorter = s1; |  | ||||||
|   } |  | ||||||
|   var longerLength = longer.length; |  | ||||||
|   if (longerLength == 0) { |  | ||||||
|     return 1.0; |  | ||||||
|   } |  | ||||||
|   return (longerLength - editDistance(longer, shorter)) / parseFloat(longerLength); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function editDistance(s1, s2) { |  | ||||||
|   s1 = s1.toLowerCase(); |  | ||||||
|   s2 = s2.toLowerCase(); |  | ||||||
|  |  | ||||||
|   var costs = new Array(); |  | ||||||
|   for (var i = 0; i <= s1.length; i++) { |  | ||||||
|     var lastValue = i; |  | ||||||
|     for (var j = 0; j <= s2.length; j++) { |  | ||||||
|       if (i == 0) |  | ||||||
|         costs[j] = j; |  | ||||||
|       else { |  | ||||||
|         if (j > 0) { |  | ||||||
|           var newValue = costs[j - 1]; |  | ||||||
|           if (s1.charAt(i - 1) != s2.charAt(j - 1)) |  | ||||||
|             newValue = Math.min(Math.min(newValue, lastValue), |  | ||||||
|               costs[j]) + 1; |  | ||||||
|           costs[j - 1] = lastValue; |  | ||||||
|           lastValue = newValue; |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|     if (i > 0) |  | ||||||
|       costs[s2.length] = lastValue; |  | ||||||
|   } |  | ||||||
|   return costs[s2.length]; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function durationToSeconds(duration) { | function durationToSeconds(duration) { | ||||||
|     var matches = duration.match(time_regex); |     var matches = duration.match(time_regex); | ||||||
|     hours= parseInt(matches[12])||0; |     hours= parseInt(matches[12])||0; | ||||||
| @@ -152,5 +47,4 @@ function durationToSeconds(duration) { | |||||||
|     return hours*60*60+minutes*60+seconds; |     return hours*60*60+minutes*60+seconds; | ||||||
| } | } | ||||||
|  |  | ||||||
| module.exports.check_error_video = check_error_video; |  | ||||||
| module.exports.get_correct_info = get_correct_info; | module.exports.get_correct_info = get_correct_info; | ||||||
|   | |||||||
| @@ -153,21 +153,16 @@ var List = { | |||||||
|  |  | ||||||
|     changedValues: function(song) { |     changedValues: function(song) { | ||||||
|         var i = List.getIndexOfSong(song.id); |         var i = List.getIndexOfSong(song.id); | ||||||
|         if(i >= 0) { |         full_playlist[i].title = song.title; | ||||||
|             full_playlist[i].title = song.title; |         full_playlist[i].duration = song.duration; | ||||||
|             full_playlist[i].duration = song.duration; |         full_playlist[i].start = song.start; | ||||||
|             full_playlist[i].start = song.start; |         full_playlist[i].end = song.end; | ||||||
|             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(".vote-container").attr("title", song.title); | ||||||
|             $("#" + song.id).find(".list-title").attr("title", song.title); |         $("#" + song.id).find(".list-title").attr("title", song.title); | ||||||
|             $("#" + song.id).find(".list-title").text(song.title); |         $("#" + song.id).find(".list-title").text(song.title); | ||||||
|             var _temp_duration = Helper.secondsToOther(song.duration); |         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(".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) { |     insertAtBeginning: function(song_info, transition) { | ||||||
| @@ -939,8 +934,7 @@ var List = { | |||||||
|         var video_id    = _song_info.id; |         var video_id    = _song_info.id; | ||||||
|         var video_title = _song_info.title; |         var video_title = _song_info.title; | ||||||
|         var video_votes = _song_info.votes; |         var video_votes = _song_info.votes; | ||||||
|         var video_thumb_url = "//img.youtube.com/vi/"+video_id+"/mqdefault.jpg"; |         var video_thumb = "background-image:url('//img.youtube.com/vi/"+video_id+"/mqdefault.jpg');"; | ||||||
|         var video_thumb = "background-image:url('" + video_thumb_url + "');"; |  | ||||||
|         var song        = $("<div>"+list_html+"</div>"); |         var song        = $("<div>"+list_html+"</div>"); | ||||||
|         var image_attr  = "style"; |         var image_attr  = "style"; | ||||||
|         if(_song_info.hasOwnProperty("start") && _song_info.hasOwnProperty("end")) { |         if(_song_info.hasOwnProperty("start") && _song_info.hasOwnProperty("end")) { | ||||||
| @@ -972,19 +966,6 @@ var List = { | |||||||
|             attr     = ".vote-container"; |             attr     = ".vote-container"; | ||||||
|             del_attr = "delete_button"; |             del_attr = "delete_button"; | ||||||
|  |  | ||||||
|             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); |             var _temp_duration = Helper.secondsToOther(_song_info.duration); | ||||||
|             song.find(".card-duration").text(Helper.pad(_temp_duration[0]) + ":" + Helper.pad(_temp_duration[1])); |             song.find(".card-duration").text(Helper.pad(_temp_duration[0]) + ":" + Helper.pad(_temp_duration[1])); | ||||||
|         }else if(!list){ |         }else if(!list){ | ||||||
| @@ -1020,7 +1001,6 @@ var List = { | |||||||
|         song.find(".list-title").attr("title", video_title); |         song.find(".list-title").attr("title", video_title); | ||||||
|         song.find(attr).attr("data-video-id", video_id); |         song.find(attr).attr("data-video-id", video_id); | ||||||
|         song.find(".list-image").attr(image_attr,video_thumb); |         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(".list-suggested-image").attr(image_attr,video_thumb); | ||||||
|         song.find("."+del_attr).attr("data-video-id", video_id); |         song.find("."+del_attr).attr("data-video-id", video_id); | ||||||
|         return song.html(); |         return song.html(); | ||||||
|   | |||||||
| @@ -3,7 +3,8 @@ | |||||||
|         <div id="list-song" class="card left-align list-song playlist-element waves-effect waves-light"> |         <div id="list-song" class="card left-align list-song playlist-element waves-effect waves-light"> | ||||||
|             <div class="clickable vote-container" title="Vote!"> |             <div class="clickable vote-container" title="Vote!"> | ||||||
|                 <a class="clickable center-align votebg"> |                 <a class="clickable center-align votebg"> | ||||||
|                     <span class="card-image cardbg list-image" style="background-image:url('/assets/images/loading.png');"></span> |                     <span class="lazy card-image cardbg list-image" style="background-image:url('/assets/images/loading.png');"> | ||||||
|  |                     </span> | ||||||
|                     <span class="card-duration"> |                     <span class="card-duration"> | ||||||
|                         01:00 |                         01:00 | ||||||
|                     </span> |                     </span> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user