mirror of
				https://github.com/KevinMidboe/zoff.git
				synced 2025-10-29 18:00:23 +00:00 
			
		
		
		
	Everything except img error handling working
This commit is contained in:
		| @@ -57,6 +57,20 @@ 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) { | ||||||
|   | |||||||
| @@ -30,6 +30,7 @@ function get_correct_info(song_generated, channel, broadcast) { | |||||||
|                     } |                     } | ||||||
|                 }, function(err, docs) { |                 }, function(err, docs) { | ||||||
|                     if(broadcast) { |                     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}); | ||||||
|                     } |                     } | ||||||
|                 }); |                 }); | ||||||
| @@ -39,6 +40,115 @@ 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); | ||||||
|  |         //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 + ","; | ||||||
|  |                     } | ||||||
|  |  | ||||||
|  |                     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) { | ||||||
|  |                             console.log("time to change", msg.id, element); | ||||||
|  |                             db.collection(channel).update({"id": msg.id}, { | ||||||
|  |                                 $set: element | ||||||
|  |                             }, function(err, docs) { | ||||||
|  |                                 console.log(err, docs); | ||||||
|  |                                     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; | ||||||
| @@ -47,4 +157,5 @@ 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; | ||||||
|   | |||||||
| @@ -157,12 +157,14 @@ var List = { | |||||||
|         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).attr("id", song.new_id); | ||||||
|     }, |     }, | ||||||
|  |  | ||||||
|     insertAtBeginning: function(song_info, transition) { |     insertAtBeginning: function(song_info, transition) { | ||||||
| @@ -966,6 +968,14 @@ var List = { | |||||||
|             attr     = ".vote-container"; |             attr     = ".vote-container"; | ||||||
|             del_attr = "delete_button"; |             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 _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){ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user