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