Started migration from jquery

This commit is contained in:
Kasper Rynning-Tønnesen
2018-04-23 17:53:07 +02:00
parent 6dabe2963e
commit a6e91ce590
11 changed files with 211 additions and 102 deletions

View File

@@ -9,8 +9,8 @@ var Admin = {
w_p = false; w_p = false;
if(Admin.logged_in) { if(Admin.logged_in) {
$("#thumbnail_form").css("display", "inline-block"); Helper.css("#thumbnail_form", "display", "inline-block");
$("#description_form").css("display", "inline-block"); Helper.css("#description_form", "display", "inline-block");
$("#user_suggests").removeClass("hide"); $("#user_suggests").removeClass("hide");
$("#user-suggest-html").removeClass("hide"); $("#user-suggest-html").removeClass("hide");
if($(".suggested-badge").text() != "0" && $(".suggested-badge").text() != "") { if($(".suggested-badge").text() != "0" && $(".suggested-badge").text() != "") {

View File

@@ -571,8 +571,9 @@ var Channel = {
socket.removeEventListener("suggested"); socket.removeEventListener("suggested");
socket.removeEventListener("color"); socket.removeEventListener("color");
socket.removeEventListener("chat_history"); socket.removeEventListener("chat_history");
$.ajax({ Helper.ajax({
url: "/", url: "/",
method: "GET",
success: function(e){ success: function(e){
if(!client) { if(!client) {

View File

@@ -215,7 +215,7 @@ var Frontpage = {
if(window.location.hostname == "fb.zoff.me") { if(window.location.hostname == "fb.zoff.me") {
add = "https://zoff.me"; add = "https://zoff.me";
} }
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
data: {id:id}, data: {id:id},
url: add + "/api/imageblob", url: add + "/api/imageblob",
@@ -259,10 +259,11 @@ var Frontpage = {
if(window.location.hostname == "fb.zoff.me") { if(window.location.hostname == "fb.zoff.me") {
add = "https://zoff.me"; add = "https://zoff.me";
} }
$.ajax({ Helper.ajax({
url: add + "/api/frontpages", url: add + "/api/frontpages",
method: "get", method: "get",
success: function(response){ success: function(response){
response = JSON.parse(response);
Frontpage.frontpage_function(response.results); Frontpage.frontpage_function(response.results);
}, },
error: function() { error: function() {
@@ -327,7 +328,7 @@ var Frontpage = {
} }
currently_showing_channels = 1; currently_showing_channels = 1;
clearTimeout(retry_frontpage); clearTimeout(retry_frontpage);
$.ajax({ Helper.ajax({
url: "/" + new_channel, url: "/" + new_channel,
method: "get", method: "get",
data: {channel: new_channel}, data: {channel: new_channel},

View File

@@ -22,7 +22,7 @@ function removeAllListeners() {
} }
function getColor(id) { function getColor(id) {
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
url: "/api/color", url: "/api/color",
async: true, async: true,
@@ -30,6 +30,7 @@ function getColor(id) {
id: id id: id
}, },
success: function(c) { success: function(c) {
c = JSON.parse(c);
if(typeof(c) == "object") { if(typeof(c) == "object") {
Player.setBGimage({color:c, only:true}); Player.setBGimage({color:c, only:true});
} }
@@ -185,7 +186,7 @@ function emit_list() {
function get_list_ajax() { function get_list_ajax() {
//var c = Crypt.get_userpass(chan.toLowerCase()); //var c = Crypt.get_userpass(chan.toLowerCase());
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
data: { data: {
userpass: "", userpass: "",
@@ -193,6 +194,7 @@ function get_list_ajax() {
}, },
url: "/api/list/" + chan.toLowerCase(), url: "/api/list/" + chan.toLowerCase(),
success: function(response) { success: function(response) {
response = JSON.parse(response);
if(response.results.length > 0) { if(response.results.length > 0) {
if(response.status == 403) { if(response.status == 403) {
start_auth(); start_auth();
@@ -203,13 +205,14 @@ function get_list_ajax() {
List.populate_list(response.results); List.populate_list(response.results);
} }
}, },
error: function(response) { error: function(response, xmlhttp) {
if(response.responseJSON.status == 403) { response = JSON.parse(response);
if(response.status == 403) {
start_auth(); start_auth();
} else if(response.responseJSON.status == 429) { } else if(response.status == 429) {
setTimeout(function() { setTimeout(function() {
get_list_ajax(); get_list_ajax();
}, response.getResponseHeader("Retry-After") * 1000) }, xmlhttp.getResponseHeader("Retry-After") * 1000)
} }
if(client) { if(client) {
$("#channel-load").remove(); $("#channel-load").remove();
@@ -260,7 +263,7 @@ function mouseContext(left, top) {
function get_np_ajax() { function get_np_ajax() {
/*var c = Crypt.get_userpass(chan.toLowerCase()); /*var c = Crypt.get_userpass(chan.toLowerCase());
if(c == undefined) c = "";*/ if(c == undefined) c = "";*/
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
data: { data: {
userpass: "", userpass: "",
@@ -269,15 +272,17 @@ function get_np_ajax() {
}, },
url: "/api/list/" + chan.toLowerCase() + "/__np__", url: "/api/list/" + chan.toLowerCase() + "/__np__",
success: function(response) { success: function(response) {
response = JSON.parse(response);
Player.getTitle(response.results[0].title, 1); Player.getTitle(response.results[0].title, 1);
}, },
error: function(response) { error: function(response, xmlhttp) {
if(response.responseJSON.status == 403) { response = JSON.parse(response);
if(response.status == 403) {
start_auth(); start_auth();
} else if(response.responseJSON.status == 429) { } else if(response.status == 429) {
setTimeout(function() { setTimeout(function() {
get_np_ajax(); get_np_ajax();
}, response.getResponseHeader("Retry-After") * 1000) }, xmlhttp.getResponseHeader("Retry-After") * 1000)
} }
} }
}) })
@@ -288,7 +293,7 @@ function del_ajax(id) {
var u = Crypt.get_userpass(chan.toLowerCase()); var u = Crypt.get_userpass(chan.toLowerCase());
if(a == undefined) a = ""; if(a == undefined) a = "";
if(u == undefined) u = "";*/ if(u == undefined) u = "";*/
$.ajax({ Helper.ajax({
type: "DELETE", type: "DELETE",
data: { data: {
adminpass: "", adminpass: "",
@@ -300,13 +305,14 @@ function del_ajax(id) {
toast("deletesong"); toast("deletesong");
get_list_ajax(); get_list_ajax();
}, },
error: function(response) { error: function(response, xmlhttp) {
if(response.responseJSON.status == 403) { response = JSON.parse(response);
if(response.status == 403) {
toast("listhaspass"); toast("listhaspass");
} else if(response.responseJSON.status == 429) { } else if(response.status == 429) {
setTimeout(function() { setTimeout(function() {
del_ajax(id); del_ajax(id);
}, response.getResponseHeader("Retry-After") * 1000); }, xmlhttp.getResponseHeader("Retry-After") * 1000);
} }
} }
}) })
@@ -317,7 +323,7 @@ function add_ajax(id, title, duration, playlist, num, full_num, start, end) {
var u = Crypt.get_userpass(chan.toLowerCase()); var u = Crypt.get_userpass(chan.toLowerCase());
if(a == undefined) a = ""; if(a == undefined) a = "";
if(u == undefined) u = "";*/ if(u == undefined) u = "";*/
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
data: { data: {
adminpass: "", adminpass: "",
@@ -333,15 +339,16 @@ function add_ajax(id, title, duration, playlist, num, full_num, start, end) {
toast("addedsong"); toast("addedsong");
get_list_ajax(); get_list_ajax();
}, },
error: function(response) { error: function(response, xmlhttp) {
if(response.responseJSON.status == 403) { response = JSON.parse(response);
if(response.status == 403) {
toast("listhaspass"); toast("listhaspass");
} else if(response.responseJSON.status == 409) { } else if(response.status == 409) {
vote_ajax(id); vote_ajax(id);
} else if(response.responseJSON.status == 429) { } else if(response.status == 429) {
setTimeout(function() { setTimeout(function() {
add_ajax(id, title, duration, playlist, num, full_num, start, end); add_ajax(id, title, duration, playlist, num, full_num, start, end);
}, response.getResponseHeader("Retry-After") * 1000); }, xmlhttp.getResponseHeader("Retry-After") * 1000);
} }
} }
}); });
@@ -352,7 +359,7 @@ function vote_ajax(id) {
var u = Crypt.get_userpass(chan.toLowerCase()); var u = Crypt.get_userpass(chan.toLowerCase());
if(a == undefined) a = ""; if(a == undefined) a = "";
if(u == undefined) u = "";*/ if(u == undefined) u = "";*/
$.ajax({ Helper.ajax({
type: "PUT", type: "PUT",
data: { data: {
adminpass: "", adminpass: "",
@@ -364,13 +371,14 @@ function vote_ajax(id) {
toast("voted"); toast("voted");
get_list_ajax(); get_list_ajax();
}, },
error: function(response) { error: function(response, xmlhttp) {
if(response.responseJSON.status == 403) { response = JSON.parse(response);
if(response.status == 403) {
toast("listhaspass"); toast("listhaspass");
} else if(response.responseJSON.status == 429) { } else if(response.status == 429) {
setTimeout(function() { setTimeout(function() {
vote_ajax(id); vote_ajax(id);
}, response.getResponseHeader("Retry-After") * 1000); }, xmlhttp.getResponseHeader("Retry-After") * 1000);
} }
} }
}) })

View File

@@ -18,6 +18,81 @@ var Helper = {
return arr[Math.floor(Math.random() * arr.length)]; return arr[Math.floor(Math.random() * arr.length)];
}, },
css: function(element, attribute, value) {
try {
if(element.substring(0,1) == "#") {
document.getElementById(element.substring(1)).style[attribute] = value;
} else {
var elements = documents.getElementsByClassName(element.substring(1));
for(var i = 0; i < elements.length; i++) {
elements[i].style[attribute] = value;
}
}
} catch(e) {
console.log(e);
}
},
removeClass: function(element, className) {
try {
if(element.substring(0,1) == "#") {
document.getElementById(element.substring(1)).classList.remove(className);
} else {
var elements = documents.getElementsByClassName(element.substring(1));
for(var i = 0; i < elements.length; i++) {
elements[i].classList.remove(className);
}
}
} catch(e) {
console.log(e);
}
},
addClass: function(element, className) {
if(element.substring(0,1) == "#") {
var elem = document.getElementById(element.substring(1));
if(elem.className.indexOf(className) == -1) {
elem.className += " " + className;
}
} else {
var elements = documents.getElementsByClassName(element.substring(1));
for(var i = 0; i < elements.length; i++) {
if(elements[i].className.indexOf(className) == -1) {
elements[i].className += " " + className;
}
}
}
},
ajax: function(obj) {
var _async = true;
if(obj.async) _async = obj.async;
if(obj.method == undefined) obj.method = "GET";
var xmlhttp = new XMLHttpRequest();
if(obj.headers) {
for(header in obj.headers) {
xmlhttp.setRequestHeader(header, obj.headers[header]);
}
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE) { // XMLHttpRequest.DONE == 4
if (xmlhttp.status == 200) {
obj.success(xmlhttp.responseText, xmlhttp);
}
else {
obj.error(xmlhttp);
}
}
};
xmlhttp.open(obj.method, obj.url, _async);
if(obj.data) {
if(typeof(obj.data) == "object") obj.data = JSON.stringify(obj.data);
xmlhttp.send(obj.data);
}
else xmlhttp.send();
},
randomString: function(length){ randomString: function(length){
var text = ""; var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_"; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_";
@@ -262,12 +337,6 @@ var Helper = {
return string.substring(0,1).toUpperCase()+string.substring(1).toLowerCase(); return string.substring(0,1).toUpperCase()+string.substring(1).toLowerCase();
}, },
addClass: function(object, toAdd){
if(!Helper.contains($(object).attr("class").split(" "), toAdd)){
$(object).addClass(toAdd);
}
},
send_mail: function(from, message){ send_mail: function(from, message){
if(from !== "" && message !== ""){ if(from !== "" && message !== ""){
@@ -276,7 +345,7 @@ var Helper = {
$("#contact-form-from").attr("disabled", "true"); $("#contact-form-from").attr("disabled", "true");
$("#contact-form-message").attr("disabled", "true"); $("#contact-form-message").attr("disabled", "true");
var captcha_response = grecaptcha.getResponse(); var captcha_response = grecaptcha.getResponse();
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
data: { data: {
from: from, from: from,

View File

@@ -187,14 +187,15 @@ var List = {
full_playlist full_playlist
]); ]);
if(full_playlist.length > 1){ if(full_playlist.length > 1){
$.each(full_playlist, function(j, _current_song){ for(var j = 0; j < full_playlist.length; j++) {
var _current_song = full_playlist[j];
if(!_current_song.hasOwnProperty("start")) full_playlist[j].start = 0; if(!_current_song.hasOwnProperty("start")) full_playlist[j].start = 0;
if(!_current_song.hasOwnProperty("end")) full_playlist[j].end = full_playlist[j].duration; if(!_current_song.hasOwnProperty("end")) full_playlist[j].end = full_playlist[j].duration;
if(!_current_song.now_playing && _current_song.type != "suggested"){ //check that the song isnt playing if(!_current_song.now_playing && _current_song.type != "suggested"){ //check that the song isnt playing
var generated = List.generateSong(_current_song, false, lazy_load, true, false, "", true) var generated = List.generateSong(_current_song, false, lazy_load, true, false, "", true)
$("#wrapper").append(generated); $("#wrapper").append(generated);
} }
}); }
if($("#wrapper").children().length > List.can_fit && !$("#pageButtons").length){ if($("#wrapper").children().length > List.can_fit && !$("#pageButtons").length){
$(".prev_page").css("display", "none"); $(".prev_page").css("display", "none");
$(".first_page").css("display", "none"); $(".first_page").css("display", "none");
@@ -593,17 +594,18 @@ var List = {
exportToSpotify: function() { exportToSpotify: function() {
ga('send', 'event', "export", "spotify"); ga('send', 'event', "export", "spotify");
$.ajax({ Helper.ajax({
type: "GET", type: "GET",
url: "https://api.spotify.com/v1/me", url: "https://api.spotify.com/v1/me",
headers: { headers: {
'Authorization': 'Bearer ' + access_token_data.access_token 'Authorization': 'Bearer ' + access_token_data.access_token
}, },
success: function(response){ success: function(response){
response = JSON.parse(response);
var user_id = response.id; var user_id = response.id;
$("#playlist_loader_export").removeClass("hide"); $("#playlist_loader_export").removeClass("hide");
$(".exported-list-container").removeClass("hide"); $(".exported-list-container").removeClass("hide");
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
url: "https://api.spotify.com/v1/users/" + user_id + "/playlists", url: "https://api.spotify.com/v1/users/" + user_id + "/playlists",
headers: { headers: {
@@ -616,13 +618,14 @@ var List = {
public: true public: true
}), }),
success: function(response){ success: function(response){
response = JSON.parse(response);
var playlist_id = response.id; var playlist_id = response.id;
$.ajax({ Helper.ajax({
type: "GET", type: "GET",
url: window.location.protocol + "//" + window.location.hostname + "/assets/images/small-square.base64.txt", url: window.location.protocol + "//" + window.location.hostname + "/assets/images/small-square.base64.txt",
success: function(base64image) { success: function(base64image) {
var image = base64image.substring(0, base64image.length - 1); var image = base64image.substring(0, base64image.length - 1);
$.ajax({ Helper.ajax({
type: "PUT", type: "PUT",
url: "https://api.spotify.com/v1/users/" + user_id + "/playlists/" + playlist_id + "/images", url: "https://api.spotify.com/v1/users/" + user_id + "/playlists/" + playlist_id + "/images",
headers: { headers: {
@@ -656,7 +659,7 @@ var List = {
$(".current_number").removeClass("hide"); $(".current_number").removeClass("hide");
$(".current_number").text((current_element + 1) + " of " + (full_playlist.length)); $(".current_number").text((current_element + 1) + " of " + (full_playlist.length));
$.ajax({ Helper.ajax({
type: "GET", type: "GET",
url: "https://api.spotify.com/v1/search?q=" + track + "&type=track", url: "https://api.spotify.com/v1/search?q=" + track + "&type=track",
headers: { headers: {
@@ -677,8 +680,10 @@ var List = {
} }
}, },
success: function(response){ success: function(response){
response = JSON.parse(response);
var found = false; var found = false;
$.each(response.tracks.items, function(i, data){ for(var i = 0; i < response.tracks.items.length; i++) {
var data = response.tracks.items[i];
data.name = Helper.replaceForFind(data.name); data.name = Helper.replaceForFind(data.name);
data.artists[0].name = Helper.replaceForFind(data.artists[0].name); data.artists[0].name = Helper.replaceForFind(data.artists[0].name);
if(data.name.substring(data.name.length-1) == " ") data.name = data.name.substring(0,data.name.length-1); if(data.name.substring(data.name.length-1) == " ") data.name = data.name.substring(0,data.name.length-1);
@@ -693,7 +698,7 @@ var List = {
track track
]); ]);
//List.num_songs = List.num_songs + 1; //List.num_songs = List.num_songs + 1;
return false; break;
} else if(decodeURIComponent(track).indexOf(data.artists[0].name.toLowerCase()) >= 0 && decodeURIComponent(track).indexOf(data.name.toLowerCase()) >= 0){ } else if(decodeURIComponent(track).indexOf(data.artists[0].name.toLowerCase()) >= 0 && decodeURIComponent(track).indexOf(data.name.toLowerCase()) >= 0){
found = true; found = true;
List.uris.push(data.uri); List.uris.push(data.uri);
@@ -702,16 +707,19 @@ var List = {
track track
]); ]);
//List.num_songs = List.num_songs + 1; //List.num_songs = List.num_songs + 1;
return false; break;
} else { } else {
var splitted = data.name.split(" "); var splitted = data.name.split(" ");
for(var i = 0; i < splitted.length; i++){ var toBreak = false;
for(var i = 0; i < splitted.length; i++) {
if((splitted[i] == "and" && track.indexOf("&") >= 0) || (splitted[i] == "&" && track.indexOf("and") >= 0)){ if((splitted[i] == "and" && track.indexOf("&") >= 0) || (splitted[i] == "&" && track.indexOf("and") >= 0)){
continue; continue;
} else if(track.indexOf(splitted[i]) < 0){ } else if(track.indexOf(splitted[i]) < 0){
return true; toBreak = true;
break;
} }
} }
if(toBreak) break;
found = true; found = true;
List.uris.push(data.uri); List.uris.push(data.uri);
Helper.log([ Helper.log([
@@ -719,9 +727,9 @@ var List = {
track track
]); ]);
//List.num_songs = List.num_songs + 1; //List.num_songs = List.num_songs + 1;
return false; break;
} }
}); }
if(!found){ if(!found){
List.not_found.push(original_track); List.not_found.push(original_track);
List.num_songs = List.num_songs + 1; List.num_songs = List.num_songs + 1;
@@ -745,12 +753,14 @@ var List = {
if($(".exported-spotify-list").length == 0) { if($(".exported-spotify-list").length == 0) {
$(".exported-list").append("<a target='_blank' class='btn light exported-playlist exported-spotify-list' href='https://open.spotify.com/user/" + user_id + "/playlist/"+ playlist_id + "'>" + chan + "</a>"); $(".exported-list").append("<a target='_blank' class='btn light exported-playlist exported-spotify-list' href='https://open.spotify.com/user/" + user_id + "/playlist/"+ playlist_id + "'>" + chan + "</a>");
} }
$.each(List.not_found, function(i, data){ for(var i = 0; i < List.not_found.length; i++) {
var data = List.not_found[i];
var not_added_song = $("<div>" + not_export_html + "</div>"); var not_added_song = $("<div>" + not_export_html + "</div>");
not_added_song.find(".extra-add-text").attr("value", data); not_added_song.find(".extra-add-text").attr("value", data);
not_added_song.find(".extra-add-text").attr("title", data); not_added_song.find(".extra-add-text").attr("title", data);
$(".not-exported-container").append(not_added_song.html()); $(".not-exported-container").append(not_added_song.html());
}) }
$(".current_number").addClass("hide"); $(".current_number").addClass("hide");
$(".not-exported").removeClass("hide"); $(".not-exported").removeClass("hide");
$(".spotify_export_button").css("display", "block"); $(".spotify_export_button").css("display", "block");
@@ -762,7 +772,7 @@ var List = {
}, },
addToSpotifyPlaylist: function(uris, playlist_id, user_id) { addToSpotifyPlaylist: function(uris, playlist_id, user_id) {
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
url: "https://api.spotify.com/v1/users/" + user_id + "/playlists/" + playlist_id + "/tracks", url: "https://api.spotify.com/v1/users/" + user_id + "/playlists/" + playlist_id + "/tracks",
headers: { headers: {
@@ -792,7 +802,7 @@ var List = {
var request_url = "https://www.googleapis.com/youtube/v3/playlists?part=snippet"; var request_url = "https://www.googleapis.com/youtube/v3/playlists?part=snippet";
$(".exported-list-container").removeClass("hide"); $(".exported-list-container").removeClass("hide");
$("#playlist_loader_export").removeClass("hide"); $("#playlist_loader_export").removeClass("hide");
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
url: request_url, url: request_url,
headers: { headers: {
@@ -806,12 +816,14 @@ var List = {
} }
}), }),
success: function(response){ success: function(response){
response = JSON.parse(response);
var number_added = 0; var number_added = 0;
var playlist_id = response.id; var playlist_id = response.id;
var request_url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet"; var request_url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet";
List.addToYoutubePlaylist(playlist_id, full_playlist, number_added, request_url) List.addToYoutubePlaylist(playlist_id, full_playlist, number_added, request_url)
}, },
error: function(response){ error: function(response){
response = response.responseText;
Helper.log([ Helper.log([
"export to youtube response", "export to youtube response",
response response
@@ -830,7 +842,7 @@ var List = {
} }
} }
}); });
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
url: request_url, url: request_url,
headers: { headers: {
@@ -839,6 +851,7 @@ var List = {
}, },
data: _data, data: _data,
success: function(response){ success: function(response){
response = JSON.parse(response);
Helper.log(["Added video: " + full_playlist[num].id + " to playlist id " + playlist_id]); Helper.log(["Added video: " + full_playlist[num].id + " to playlist id " + playlist_id]);
if(num == full_playlist.length - 1){ if(num == full_playlist.length - 1){
Helper.log(["All videoes added!"]); Helper.log(["All videoes added!"]);

View File

@@ -141,9 +141,10 @@ try{
} catch(e) {} } catch(e) {}
/*
$.ajaxPrefilter(function( options, original_Options, jqXHR ) { $.ajaxPrefilter(function( options, original_Options, jqXHR ) {
options.async = true; options.async = true;
}); });*/
window.zoff = { window.zoff = {
enable_debug: enable_debug, enable_debug: enable_debug,
@@ -1226,7 +1227,7 @@ $(document).on('submit', "#error-report-form", function(e) {
e.preventDefault(); e.preventDefault();
var captcha_response = grecaptcha.getResponse(); var captcha_response = grecaptcha.getResponse();
$("#send-loader").removeClass("hide"); $("#send-loader").removeClass("hide");
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
data: { data: {
from: "no-reply@zoff.me", from: "no-reply@zoff.me",
@@ -1358,7 +1359,7 @@ $(document).on("click", "#player_bottom_overlay", function(e){
$(document).on("click", ".generate-channel-name", function(e) { $(document).on("click", ".generate-channel-name", function(e) {
e.preventDefault(); e.preventDefault();
$.ajax({ Helper.ajax({
type: "GET", type: "GET",
url: "/api/generate_name", url: "/api/generate_name",
success: function(response) { success: function(response) {

View File

@@ -295,6 +295,8 @@ var Player = {
}*/ }*/
//} //}
} }
$("#playpause").css("visibility", "visible");
$("#playpause").css("pointer-events", "all");
playing = true; playing = true;
if(beginning && Helper.mobilecheck() && !chromecastAvailable){ if(beginning && Helper.mobilecheck() && !chromecastAvailable){
//Player.pauseVideo(); //Player.pauseVideo();

View File

@@ -58,11 +58,12 @@ var Search = {
if(Helper.contains($("#results").attr("class").split(" "), "hide")) if(Helper.contains($("#results").attr("class").split(" "), "hide"))
$("#results").removeClass("hide"); $("#results").removeClass("hide");
$.ajax({ Helper.ajax({
type: "GET", type: "GET",
url: yt_url, url: yt_url,
dataType:"jsonp", dataType: "jsonp",
success: function(response){ success: function(response){
response = JSON.parse(response);
var nextPageToken = response.nextPageToken; var nextPageToken = response.nextPageToken;
var prevPageToken = response.prevPageToken; var prevPageToken = response.prevPageToken;
if(response.items.length === 0) { if(response.items.length === 0) {
@@ -73,23 +74,23 @@ var Search = {
$(".search_loader_spinner").removeClass("active"); $(".search_loader_spinner").removeClass("active");
} else if(response.items){ } else if(response.items){
$.each(response.items, function(i,data) { for(var i = 0; i < response.items.length; i++) {
vid_url += data.id.videoId+","; vid_url += response.items[i].id.videoId+",";
}); }
$.ajax({ Helper.ajax({
type: "GET", type: "GET",
url: vid_url, url: vid_url,
dataType:"jsonp", dataType:"jsonp",
success: function(response){ success: function(response){
response = JSON.parse(response);
var output = ""; var output = "";
var pre_result = $(result_html); var pre_result = $(result_html);
//$("#results").append(result_html); //$("#results").append(result_html);
$.each(response.items, function(i,song) for(var i = 0; i < response.items.length; i++) {
{ var song = response.items[i];
var duration=song.contentDetails.duration; var duration=song.contentDetails.duration;
secs=Search.durationToSeconds(duration); secs=Search.durationToSeconds(duration);
var _temp_duration = Helper.secondsToOther(secs); var _temp_duration = Helper.secondsToOther(secs);
@@ -121,7 +122,7 @@ var Search = {
output += songs.html(); output += songs.html();
} }
} }
}); }
var fresh = false; var fresh = false;
if($("#inner-results").length == 0) { if($("#inner-results").length == 0) {
fresh = true; fresh = true;
@@ -189,11 +190,12 @@ var Search = {
artist = artist.split(" "); artist = artist.split(" ");
var temptitle = title.split("-"); var temptitle = title.split("-");
temptitle = temptitle.join(" ").split(" "); temptitle = temptitle.join(" ").split(" ");
$.ajax({ Helper.ajax({
type: "GET", type: "GET",
url: yt_url, url: yt_url,
dataType:"jsonp", dataType:"jsonp",
success: function(response){ success: function(response){
response = JSON.parse(response);
//Helper.log(response); //Helper.log(response);
if(response.items.length === 0){ if(response.items.length === 0){
Search.readySubmit(false, {totalLength: totalNumber - 1}); Search.readySubmit(false, {totalLength: totalNumber - 1});
@@ -209,19 +211,21 @@ var Search = {
$(".not-imported-container").append(not_added_song.html()); $(".not-imported-container").append(not_added_song.html());
$(".not-imported").removeClass("hide"); $(".not-imported").removeClass("hide");
} else if(response.items.length > 0) { } else if(response.items.length > 0) {
$.each(response.items, function(i,data) for(var i = 0; i < response.items; i++) {
{ var data = response.items[i];
vid_url += data.id.videoId+","; vid_url += data.id.videoId+",";
}); }
$.ajax({ Helper.ajax({
type: "GET", type: "GET",
url: vid_url, url: vid_url,
dataType:"jsonp", dataType:"jsonp",
success: function(response){ success: function(response){
response = JSON.parse(response);
if(response.items.length > 0) { if(response.items.length > 0) {
var matched = false; var matched = false;
$.each(response.items, function(i, data){ for(var i = 0; i < response.items.length; i++) {
var data = response.items[i];
//Helper.log(data); //Helper.log(data);
//var title = data.snippet.title; //var title = data.snippet.title;
var duration = Search.durationToSeconds(data.contentDetails.duration); var duration = Search.durationToSeconds(data.contentDetails.duration);
@@ -229,7 +233,9 @@ var Search = {
if(similarity(data.snippet.title, artist + " - " + title) > 0.75) { if(similarity(data.snippet.title, artist + " - " + title) > 0.75) {
not_matched = false; not_matched = false;
} else { } else {
$.each(temptitle, function(i, data_title){ for(var i = 0; i < temptitle.length; i++) {
var data_title = temptitle[i];
if(data.snippet.title.toLowerCase().indexOf(data_title.toLowerCase()) == -1 || !( if(data.snippet.title.toLowerCase().indexOf(data_title.toLowerCase()) == -1 || !(
data.snippet.title.toLowerCase().indexOf("cover") == -1 && data.snippet.title.toLowerCase().indexOf("cover") == -1 &&
title.toLowerCase().indexOf("cover") == -1 && title.toLowerCase().indexOf("cover") == -1 &&
@@ -243,16 +249,16 @@ var Search = {
not_matched = true; not_matched = true;
else if(duration > 1800) not_matched = true; else if(duration > 1800) not_matched = true;
return false;
}); }
} }
if((!not_matched)){ if((!not_matched)){
matched = true; matched = true;
Search.readySubmit(true, { id: data.id, title: data.snippet.title, duration: duration, totalLength: totalNumber - 1}); Search.readySubmit(true, { id: data.id, title: data.snippet.title, duration: duration, totalLength: totalNumber - 1});
return false; break;
} }
}); }
if(!matched){ if(!matched){
Search.readySubmit(false, {totalLength: totalNumber - 1}); Search.readySubmit(false, {totalLength: totalNumber - 1});
Helper.log([ Helper.log([
@@ -327,13 +333,14 @@ var Search = {
headers = {};//'Content-Type': 'application/json'}; headers = {};//'Content-Type': 'application/json'};
datatype = "jsonp"; datatype = "jsonp";
} }
$.ajax({ Helper.ajax({
type: "GET", type: "GET",
url: playlist_url, url: playlist_url,
dataType: datatype, dataType: datatype,
//dataType:"jsonp", //dataType:"jsonp",
headers: headers, headers: headers,
success: function(response) { success: function(response) {
response = JSON.parse(response);
if(response.error){ if(response.error){
if(response.error.errors[0].reason == "playlistItemsNotAccessible"){ if(response.error.errors[0].reason == "playlistItemsNotAccessible"){
var nonce = Helper.randomString(29); var nonce = Helper.randomString(29);
@@ -372,12 +379,13 @@ var Search = {
if(typeof(response) == "string") response = $.parseJSON(response); if(typeof(response) == "string") response = $.parseJSON(response);
//Search.addVideos(response.items[0].contentDetails.videoId); //Search.addVideos(response.items[0].contentDetails.videoId);
//response.items.shift(); //response.items.shift();
$.each(response.items, function(i,data) { for(var i = 0; i < response.items.length; i++) {
var data = response.items[i];
ids+=data.contentDetails.videoId+","; ids+=data.contentDetails.videoId+",";
Search.submitYouTubeArrayIds.push(data.contentDetails.videoId); Search.submitYouTubeArrayIds.push(data.contentDetails.videoId);
this_length += 1; this_length += 1;
Search.submitYouTubeExpected += 1; Search.submitYouTubeExpected += 1;
}); }
if(response.nextPageToken) { if(response.nextPageToken) {
//Search.addVideos(ids, true, 0, false, this_length); //Search.addVideos(ids, true, 0, false, this_length);
@@ -394,18 +402,19 @@ var Search = {
}, },
importSpotifyPlaylist: function(url){ importSpotifyPlaylist: function(url){
$.ajax({ Helper.ajax({
url: url, url: url,
headers: { headers: {
'Authorization': 'Bearer ' + access_token_data.access_token 'Authorization': 'Bearer ' + access_token_data.access_token
}, },
success: function(response) { success: function(response) {
$.each(response.items, function(i,data) response = JSON.parse(response);
{ for(var i = 0; i < response.items.length; i++) {
var data = response.items[i];
//ids+=data.contentDetails.videoId+","; //ids+=data.contentDetails.videoId+",";
Search.backgroundSearch(data.track.name, data.track.artists.map(function(elem){return elem.name;}).join(" "), Math.floor(data.track.duration_ms/1000), response.total, i + response.offset); Search.backgroundSearch(data.track.name, data.track.artists.map(function(elem){return elem.name;}).join(" "), Math.floor(data.track.duration_ms/1000), response.total, i + response.offset);
}); }
if(response.next){ if(response.next){
Search.importSpotifyPlaylist(response.next); Search.importSpotifyPlaylist(response.next);
} }
@@ -433,16 +442,18 @@ var Search = {
request_url += ids[i] + ","; request_url += ids[i] + ",";
} }
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
url: request_url, url: request_url,
dataType:"jsonp", dataType:"jsonp",
success: function(response){ success: function(response){
response = JSON.parse(response);
var x = 0; var x = 0;
if(response.error) { if(response.error) {
Search.submitYouTubeError = true; Search.submitYouTubeError = true;
} }
$.each(response.items, function(i,song) { for(var i = 0; i < response.items.length; i++) {
var song = response.items[i];
var duration=Search.durationToSeconds(song.contentDetails.duration); var duration=Search.durationToSeconds(song.contentDetails.duration);
if(!longsongs || duration<720){ if(!longsongs || duration<720){
enc_title= song.snippet.title;//encodeURIComponent(song.snippet.title); enc_title= song.snippet.title;//encodeURIComponent(song.snippet.title);
@@ -450,7 +461,7 @@ var Search = {
x += 1; x += 1;
Search.submitYouTubeArray.push({id: song.id, title: enc_title, duration: duration}); Search.submitYouTubeArray.push({id: song.id, title: enc_title, duration: duration});
} }
}); }
if(more) Search.addVideos(next_ids); if(more) Search.addVideos(next_ids);
else { else {
socket.emit("addPlaylist", {channel: chan.toLowerCase(), songs: Search.submitYouTubeArray}); socket.emit("addPlaylist", {channel: chan.toLowerCase(), songs: Search.submitYouTubeArray});

View File

@@ -40,26 +40,29 @@ var Suggestions = {
var get_url = "https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+id+"&type=video&key="+api_key; var get_url = "https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+id+"&type=video&key="+api_key;
var video_urls = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key+"&id="; var video_urls = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key+"&id=";
$.ajax({ Helper.ajax({
type: "GET", type: "GET",
url: get_url, url: get_url,
dataType:"jsonp", dataType:"jsonp",
success: function(response) success: function(response)
{ {
$.each(response.items.slice(0,5), function(i,data){ response = JSON.parse(response);
var this_resp = response.items.slice(0,5);
for(var i = 0; i < this_resp.length; i++) {
var data = this_resp[i];
video_urls += data.id.videoId+","; video_urls += data.id.videoId+",";
}); }
$.ajax({ Helper.ajax({
type: "GET", type: "GET",
url: video_urls, url: video_urls,
dataType: "jsonp", dataType: "jsonp",
success: function(response) success: function(response)
{ {
response = JSON.parse(response);
$("#suggest-song-html").empty(); $("#suggest-song-html").empty();
for(var i = 0; i < response.items.length; i++) {
$.each(response.items, function(i,song) var song = response.items[i];
{
var duration = song.contentDetails.duration; var duration = song.contentDetails.duration;
var length = Search.durationToSeconds(duration); var length = Search.durationToSeconds(duration);
duration = Helper.secondsToOther(Search.durationToSeconds(duration)); duration = Helper.secondsToOther(Search.durationToSeconds(duration));
@@ -67,7 +70,7 @@ var Suggestions = {
var video_title = song.snippet.title; var video_title = song.snippet.title;
$("#suggest-song-html").append(List.generateSong({id: video_id, title: video_title, length: length, duration: duration}, false, false, false)); $("#suggest-song-html").append(List.generateSong({id: video_id, title: video_title, length: length, duration: duration}, false, false, false));
}); }
} }
}); });
} }

View File

@@ -22,7 +22,7 @@ $(document).ready(function() {
$(".submit").toggleClass("disabled"); $(".submit").toggleClass("disabled");
$(".full-form-token").removeClass("hide"); $(".full-form-token").removeClass("hide");
var captcha_response = grecaptcha.getResponse(); var captcha_response = grecaptcha.getResponse();
$.ajax({ Helper.ajax({
type: "POST", type: "POST",
url: "/api/apply", url: "/api/apply",
data: { data: {