Refactored to have more files, but less long files

This commit is contained in:
Kasper Rynning-Tønnesen
2018-01-31 11:28:35 +01:00
parent 8d57fd4774
commit fd6db734f4
6 changed files with 1117 additions and 1118 deletions

View File

@@ -0,0 +1,597 @@
var Channel = {
init: function() {
number_suggested = 0;
var no_socket = true;
chan = $("#chan").html();
mobile_beginning = Helper.mobilecheck();
var side = Helper.mobilecheck() ? "left" : "right";
ga('send', 'pageview');
window.onpopstate = function(e){
Channel.onepage_load();
};
if(window.location.hostname == "fb.zoff.me") {
$("footer").addClass("hide");
}
if(window.location.hostname != "fb.zoff.me") Channel.share_link_modifier();
if(window.location.hostname == "zoff.me" || window.location.hostname == "fb.zoff.me") add = "https://zoff.me";
else add = window.location.hostname;
if(Player !== undefined) Player.stopInterval= false;
$('ul.playlist-tabs').tabs();
$('ul.playlist-tabs-loggedIn').tabs();
$('ul.chatTabs').tabs();
$("#settings").sideNav({
menuWidth: 310,
edge: side,
closeOnClick: false,
onOpen: function(el) {
if(!$(".hamburger-sidenav").hasClass("open")) {
$(".hamburger-sidenav").addClass("open");
}
$('*[id*=sidenav-overlay]:visible').each(function(i) {
if(i > 0) {
this.remove();
}
});
},
onClose: function(el) {
$(".hamburger-sidenav").removeClass("open");
$('*[id*=sidenav-overlay]:visible').each(function(i) {
if(i > 0) {
this.remove();
}
});
},
});
$('.collapsible').collapsible({
accordion : true
});
$("#help").modal();
$("#contact").modal();
$("#embed").modal();
$("#delete_song_alert").modal({
dismissible: false
});
$("#user_password").modal({
dismissible: false
});
Channel.spotify_is_authenticated(spotify_authenticated);
result_html = $("#temp-results-container");
pagination_buttons_html = $("<div>").append($(".pagination-results").clone()).html();
empty_results_html = $("#empty-results-container").html();
not_import_html = $(".not-imported-container").html();
not_export_html = $(".not-exported-container").html();
$(".not-imported-container").empty();
$(".not-exported-container").empty();
$(".video-container").resizable({
start: function(event, ui) {
$('iframe').css('pointer-events','none');
},
stop: function(event, ui) {
$('iframe').css('pointer-events','auto');
Crypt.set_width($(this).width());
Channel.set_title_width();
},
handles: "e",
minWidth: 350,
maxWidth: $(window).width()-241
});
if(socket === undefined || Helper.mobilecheck()){
no_socket = false;
socket = io.connect(''+add+':8080', connection_options);
socket.on('update_required', function() {
window.location.reload(true);
});
}
Crypt.init();
setup_auth_listener();
if(Crypt.get_offline()){
$(".offline_switch_class")[0].checked = true;
change_offline(true, offline);
}
if($("#alreadychannel").length === 0 || Helper.mobilecheck()){
setup_youtube_listener();
get_list_listener();
setup_suggested_listener();
setup_viewers_listener();
} else {
$("#channel-load").css("display", "none");
$("#player").css("opacity", "1");
$("#controls").css("opacity", "1");
$(".playlist").css("opacity", "1");
Player.readyLooks();
Playercontrols.initYoutubeControls(Player.player);
Playercontrols.initSlider();
Player.player.setVolume(Crypt.get_volume());
$(".video-container").removeClass("no-opacity");
var codeURL = "https://remote."+window.location.hostname+"/"+id;
$("#code-text").text(id);
$("#code-qr").attr("src", "https://chart.googleapis.com/chart?chs=221x221&cht=qr&choe=UTF-8&chld=L|1&chl="+codeURL);
$("#code-link").attr("href", codeURL);
}
if(no_socket){
var add = "";
if(private_channel) add = Crypt.getCookie("_uI") + "_";
socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
}
if(!Helper.mobilecheck()) {
$("#viewers").tooltip({
delay: 5,
position: "top",
tooltip: "Viewers"
});
$("#fullscreen").tooltip({
delay: 5,
position: "top",
tooltip: "Fullscreen"
});
$("#search-btn").tooltip({
delay: 5,
position: "bottom",
tooltip: "Search"
});
$("#shuffle").tooltip({
delay: 5,
position: "bottom",
tooltip: "Shuffle",
});
$("#settings").tooltip({
delay: 5,
position: "bottom",
tooltip: "Settings",
});
}
window.onYouTubeIframeAPIReady = Player.onYouTubeIframeAPIReady;
if(Player.player === "" || Player.player === undefined || Helper.mobilecheck()) Player.loadPlayer();
//}
if(Helper.mobilecheck()) {
Mobile_remote.initiate_volume();
$(".close-settings").addClass("hide");
} else {
$('input#chan_description').characterCounter();
Channel.window_width_volume_slider();
}
setup_admin_listener();
setup_list_listener();
setup_chat_listener();
socket.emit("get_history", {channel: chan.toLowerCase(), all: false});
socket.emit("get_history", {channel: chan.toLowerCase(), all: true});
if(!Helper.mobilecheck() && $("#alreadychannel").length === 0) setup_host_initialization();
if(!Helper.msieversion() && !Helper.mobilecheck()) Notification.requestPermission();
$(".search_input").focus();
Helper.sample();
if(!Helper.mobilecheck()) {
$('.castButton').tooltip({
delay: 5,
position: "top",
tooltip: "Cast Zoff to TV"
});
$("#color_embed").spectrum({
color: "#808080",
change: function(c) {
color = c.toHexString().substring(1); // #ff0000
$("#embed-area").val(embed_code(embed_autoplay, embed_width, embed_height, color));
},
appendTo: "#embed",
containerClassName: 'polyfill-color z-depth-4',
show: function(color) {
},
});
$(".sp-choose").addClass("hide");
$(".sp-cancel").addClass("btn-flat waves-effect waves-red");
$(".sp-cancel").removeClass("sp-cancel");
$(".sp-button-container").append("<a href='#' class='btn-flat waves-effect waves-green sp-choose-link'>CHOOSE</a>");
}
$(".sp-choose-link").on("click", function(e) {
e.preventDefault();
$(".sp-choose").trigger("click");
});
$("#results" ).hover( function() { $("div.result").removeClass("hoverResults"); i = 0; }, function(){ });
$("#search").focus();
$("#embed-button").css("display", "inline-block");
$("#embed-area").val(embed_code(embed_autoplay, embed_width, embed_height, color));
$("#search").attr("placeholder", "Find song on YouTube...");
if(!$("footer").hasClass("padding-bottom-novideo")) {
$("footer").addClass("padding-bottom-novideo");
}
if(!/chrom(e|ium)/.test(navigator.userAgent.toLowerCase()) && !Helper.mobilecheck()){
$(".castButton").css("display", "none");
}
Helper.log("chromecastAvailable" + chromecastAvailable);
Helper.log("chromecastAvailable" + chromecastReady);
if(chromecastAvailable){
hide_native(1);
} else if(chromecastReady) {
initializeCastApi();
} else {
window['__onGCastApiAvailable'] = function(loaded, errorInfo) {
if (loaded) {
setTimeout(function(){
chromecastReady = true;
initializeCastApi();
}, 1000);
} else {
chromecastReady = true;
}
}
}
Channel.listeners(true);
Channel.add_context_menu();
if(!Helper.mobilecheck() && navigator.userAgent.match(/iPad/i) == null){
setTimeout(function(){Channel.set_title_width();}, 100);
}
},
seekToClick: function(e){
var acceptable = ["bar", "controls", "duration"];
if(acceptable.indexOf($(e.target).attr("id")) >= 0) {
var total = full_playlist[full_playlist.length - 1].duration / $("#controls").width();
total = total * e.clientX;
Helper.log(total);
if(!chromecastAvailable){
Player.player.seekTo(total + Player.np.start);
dMinutes = Math.floor(duration / 60);
dSeconds = duration - dMinutes * 60;
currDurr = total;
if(currDurr - Player.np.start > duration) {
currDurr = duration - Player.np.start;
}
currDurr = currDurr - Player.np.start;
minutes = Math.floor(currDurr / 60);
seconds = currDurr - (minutes * 60);
document.getElementById("duration").innerHTML = Helper.pad(minutes)+":"+Helper.pad(seconds)+" <span id='dash'>/</span> "+Helper.pad(dMinutes)+":"+Helper.pad(dSeconds);
per = (100 / duration) * currDurr;
if(per >= 100)
per = 100;
else if(duration === 0)
per = 0;
$("#bar").width(per+"%");
} else {
castSession.sendMessage("urn:x-cast:zoff.me", {type: "seekTo", seekTo: total});
}
}
},
seekToMove: function(e){
var pos_x = e.clientX - Math.ceil($("#seekToDuration").width() / 2) - 8;
if(pos_x < 0) pos_x = 0;
else if(pos_x + $("#seekToDuration").width() > $("#controls").width()) {
pos_x = $("#controls").width() - $("#seekToDuration").width();
}
$("#seekToDuration").css("left", pos_x);
try{
var total = full_playlist[full_playlist.length - 1].duration / $("#controls").width();
total = total * e.clientX;
var _time = Helper.secondsToOther(total);
var _minutes = Helper.pad(_time[0]);
var _seconds = Helper.pad(Math.ceil(_time[1]));
$("#seekToDuration").text(_minutes + ":" + _seconds);
var acceptable = ["bar", "controls", "duration"];
if(acceptable.indexOf($(e.target).attr("id")) >= 0 && dragging) {
$("#bar").width(((100 / duration) * total) + "%");
}
} catch(e){}
},
set_title_width: function(start){
if($(window).width() > 760){
var add_width = $(".brand-logo").outerWidth()
if(start){
add_width = $(window).width()*0.15;
}
var test_against_width = $(window).width() - $(".control-list").width() - add_width - 33;
title_width = test_against_width;
$(".title-container").width(title_width);
} else {
$(".title-container").width("100%");
}
},
spotify_is_authenticated: function(bool){
if(bool){
Helper.log("------------------------");
Helper.log("Spotify is authenticated");
Helper.log("access_token: " + access_token_data.access_token);
Helper.log("token_type:" + access_token_data.token_type);
Helper.log("expires_in: " + access_token_data.expires_in);
Helper.log("------------------------");
$(".spotify_authenticated").css("display", "block");
$(".spotify_unauthenticated").css("display", "none");
} else {
Helper.log("----------------------------");
Helper.log("Spotify is not authenticated");
Helper.log("----------------------------");
$(".spotify_authenticated").css("display", "none");
$(".spotify_unauthenticated").css("display", "block");
}
},
add_context_menu: function() {
$.contextMenu({
selector: '.playlist-element',
reposition: true,
autoHide: true,
items: {
copy: {
name: "Copy link",
callback: function(key, opt){
var this_id = $(this[0]).attr("data-video-id");
var this_url = "https://www.youtube.com/watch?v=" + this_id;
$(".copy_video_id").css("display", "block");
$(".copy_video_id").text(this_url);
var copyTextarea = document.querySelector('.copy_video_id');
copyTextarea.select();
var successful = document.execCommand('copy');
if(successful) {
Materialize.toast("Copied!", 2000, "green lighten");
} else {
Materialize.toast("Error copying..", 2000, "red lighten");
}
$(".copy_video_id").css("display", "none");
}
},
similar: {
name: "Find Similar",
callback: function(key, opt) {
var this_id = $(this[0]).attr("data-video-id");
Search.search(this_id, false, true);
if(Helper.contains($(".search-container").attr("class").split(" "), "hide")) {
Search.showSearch();
}
}
},
"sep1": "---------",
delete: {
name: "Delete",
callback: function(key, opt) {
var this_id = $(this[0]).attr("data-video-id");
var this_type = $(this[0]).attr("data-video-type");
if(this_type == "suggested") {
number_suggested = number_suggested - 1;
if(number_suggested < 0) number_suggested = 0;
var to_display = number_suggested > 9 ? "9+" : number_suggested;
if(!$(".suggested-link span.badge.new.white").hasClass("hide") && to_display == 0){
$(".suggested-link span.badge.new.white").addClass("hide");
}
$(".suggested-link span.badge.new.white").text(to_display);
}
List.vote(this_id, "del");
},
disabled: function(key, opt) {
return w_p;
}
}
}
});
},
share_link_modifier: function(){
$("#facebook-code-link").attr("href", "https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/" + chan.toLowerCase());
$("#facebook-code-link").attr("onclick", "window.open('https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/" + chan.toLowerCase() + "', 'Share Playlist','width=600,height=300'); return false;");
$("#twitter-code-link").attr("href", "https://twitter.com/intent/tweet?url=https://zoff.me/" + chan.toLowerCase() + "&amp;text=Check%20out%20this%20playlist%20" + chan.toLowerCase() + "%20on%20Zoff!&amp;via=zoffmusic");
$("#twitter-code-link").attr("onclick", "window.open('https://twitter.com/intent/tweet?url=https://zoff.me/" + chan.toLowerCase() + "/&amp;text=Check%20out%20this%20playlist%20" + chan.toLowerCase() + "%20on%20Zoff!&amp;via=zoffmusic','Share Playlist','width=600,height=300'); return false;");
//$("#qr-code-image-link").attr("src", "//chart.googleapis.com/chart?chs=150x150&cht=qr&chl=https://zoff.me/" + chan.toLowerCase() + "&choe=UTF-8&chld=L%7C1");
},
window_width_volume_slider: function() {
if(window.innerWidth <= 600 && slider_type == "horizontal") {
slider_type = "vertical";
Playercontrols.initSlider();
} else if(window.innerWidth > 600 && slider_type == "vertical") {
slider_type = "horizontal";
Playercontrols.initSlider();
$(".volume-container").removeClass("hide");
}
},
listeners: function(on) {
if(on) {
$("#chatchannel").scroll(function(e) {
if(!programscroll) {
userscroll = true;
if($("#chatchannel").scrollTop() + $("#chatchannel").innerHeight() >= $("#chatchannel")[0].scrollHeight) {
userscroll = false;
}
}
});
$("#chatall").scroll(function(e) {
if(!programscroll) {
userscroll = true;
if($("#chatall").scrollTop() + $("#chatall").innerHeight() >= $("#chatall")[0].scrollHeight) {
userscroll = false;
}
}
})
} else {
$("#chatchannel").off("scroll");
$("#chatall").off("scroll");
}
},
onepage_load: function(){
var url_split = window.location.href.split("/");
if(url_split[3].substr(0,1) != "#!" && url_split[3] !== "" && !(url_split.length == 5 && url_split[4].substr(0,1) == "#")){
socket.emit("change_channel");
Admin.beginning = true;
chan = url_split[3].replace("#", "");
$("#chan").html(Helper.upperFirst(chan));
var add = "";
w_p = true;
if(private_channel) add = Crypt.getCookie("_uI") + "_";
socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
} else if(url_split[3] === "") {
clearTimeout(timed_remove_check);
changing_to_frontpage = true;
$.contextMenu( 'destroy', ".playlist-element" );
user_change_password = false;
clearTimeout(width_timeout);
if(fireplace_initiated){
fireplace_initiated = false;
Player.fireplace.destroy();
$("#fireplace_player").css("display", "none");
}
$("#channel-load").css("display", "block");
window.scrollTo(0, 0);
Player.stopInterval = true;
Admin.display_logged_out();
Admin.beginning = true;
began = false;
durationBegun = false;
$("#embed-button").css("display", "none");
if(!Helper.mobilecheck()) {
$('.castButton').tooltip("remove");
$("#viewers").tooltip("remove");
//$('.castButton-unactive').tooltip("remove");
$("#offline-mode").tooltip("remove");
$('#chan_thumbnail').tooltip("remove");
$('#fullscreen').tooltip("remove");
$('#admin-lock').tooltip("remove");
$("#search-btn").tooltip("remove");
$("#shuffle").tooltip("remove");
$("#settings").tooltip("remove");
}
$("#seekToDuration").remove();
$("#settings").sideNav("destroy");
$('.tap-target').tapTarget('close');
clearTimeout(tap_target_timeout);
before_toast();
$.ajax({
url: "/",
success: function(e){
if(Helper.mobilecheck() || user_auth_avoid) {
Helper.log("Removing all listeners");
socket.removeAllListeners();
socket.disconnect();
} else {
socket.removeEventListener("chat.all");
socket.removeEventListener("chat");
socket.removeEventListener("conf");
socket.removeEventListener("pw");
socket.removeEventListener("toast");
//socket.removeEventListener("id");
socket.removeEventListener("channel");
//socket.removeEventListener(id);
}
document.getElementById("volume-button").removeEventListener("click", Playercontrols.mute_video);
document.getElementById("playpause").removeEventListener("click", Playercontrols.play_pause);
document.getElementById("fullscreen").removeEventListener("click", Playercontrols.fullscreen);
Channel.listeners(false);
if(Helper.mobilecheck() || user_auth_avoid) {
video_id = "";
song_title = "";
}
$("meta[name=theme-color]").attr("content", "#2D2D2D");
if(!Helper.mobilecheck() && !user_auth_avoid){
$(".video-container").resizable("destroy");
$("main").append("<a id='closePlayer' title='Close Player'>X</a>");
$("#playbar").remove();
$(".ui-resizable-handle").remove();
$("#main_components").remove();
$("#player").addClass("player_bottom");
$("#main-row").addClass("frontpage_modified_heights");
$("#player").css("opacity", "1");
$("#video-container").removeClass("no-opacity");
$("#main-row").prepend("<div id='player_bottom_overlay' title='To Channel' class='player player_bottom'></div>");
$("#playlist").remove();
} else {
try{
Player.player.destroy();
} catch(error){}
Player.player = "";
document.title = "Zoff";
}
var response = $("<div>" + e + "</div>");
//$(".drag-target").remove();
$("#sidenav-overlay").remove();
$("main").attr("class", "center-align container");
$("#main-container").removeClass("channelpage");
$("#main-container").attr("style", "");
$("header").html($(response.find("header")).html());
$($(response.find(".section.mega"))).insertAfter("header");
$($(response.find(".section.mobile-search"))).insertAfter(".mega");
if(Helper.mobilecheck() || user_auth_avoid) $("main").html($(response.find("main")).html());
else $("main").append($(response.find("#main_section_frontpage")).wrap("<div>").parent().html());
$(".page-footer").removeClass("padding-bottom-extra");
$(".page-footer").removeClass("padding-bottom-novideo");
$("#favicon").attr("href", "/assets/images/favicon-32x32.png");
$(".context-menu-list").remove();
Helper.log(socket);
if($("#alreadyfp").length == 1){
Frontpage.init();
}else {
fromChannel = true;
frontpage = true;
Frontpage.init();
}
changing_to_frontpage = false;
if($("#alreadychannel").length === 0 && !user_auth_avoid){
$("head").append("<div id='alreadychannel'></div");
} else if(user_auth_avoid) {
$("#alreadychannel").remove();
}
$("#channel-load").css("display", "none");
user_auth_avoid = false;
}
});
}
}
}

View File

@@ -351,32 +351,18 @@ var Frontpage = {
$(".page-footer").addClass("padding-bottom-novideo");
from_frontpage = true;
if($("#alreadychannel").length == 1){
init();
Channel.init();
}else{
fromFront = true;
init();
Channel.init();
}
if($("#alreadyfp").length === 0) $("head").append("<div id='alreadyfp'></div>");
}
});
}
};
},
String.prototype.capitalizeFirstLetter = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
};
function share_link_modifier_frontpage() {
$("#facebook-code-link").attr("href", "https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/");
$("#facebook-code-link").attr("onclick", "window.open('https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/', 'Share Zoff','width=600,height=300'); return false;");
$("#twitter-code-link").attr("href", "https://twitter.com/intent/tweet?url=https://zoff.me/&amp;text=Check%20out%20Zoff!&amp;via=zoffmusic");
$("#twitter-code-link").attr("onclick", "window.open('https://twitter.com/intent/tweet?url=https://zoff.me/&amp;text=Check%20out%20Zoff!&amp;via=zoffmusic','Share Playlist','width=600,height=300'); return false;");
//$("#qr-code-link").attr("href", "//chart.googleapis.com/chart?chs=500x500&cht=qr&chl=https://zoff.me/&choe=UTF-8&chld=L%7C1");
//$("#qr-code-image-link").attr("src", "//chart.googleapis.com/chart?chs=150x150&cht=qr&chl=https://zoff.me/&choe=UTF-8&chld=L%7C1");
}
function initfp() {
init: function() {
var date = new Date();
Frontpage.blob_list = [];
@@ -402,7 +388,7 @@ function initfp() {
channel_list = $("#channel-list-container").clone().html();
if(window.location.hostname != "fb.zoff.me") share_link_modifier_frontpage();
if(window.location.hostname != "fb.zoff.me") Frontpage.share_link_modifier();
if(window.location.hostname == "zoff.me" || window.location.hostname == "fb.zoff.me") add = "https://zoff.me";
else add = window.location.hostname;
@@ -485,4 +471,18 @@ function initfp() {
} else {
}
}
},
share_link_modifier: function() {
$("#facebook-code-link").attr("href", "https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/");
$("#facebook-code-link").attr("onclick", "window.open('https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/', 'Share Zoff','width=600,height=300'); return false;");
$("#twitter-code-link").attr("href", "https://twitter.com/intent/tweet?url=https://zoff.me/&amp;text=Check%20out%20Zoff!&amp;via=zoffmusic");
$("#twitter-code-link").attr("onclick", "window.open('https://twitter.com/intent/tweet?url=https://zoff.me/&amp;text=Check%20out%20Zoff!&amp;via=zoffmusic','Share Playlist','width=600,height=300'); return false;");
//$("#qr-code-link").attr("href", "//chart.googleapis.com/chart?chs=500x500&cht=qr&chl=https://zoff.me/&choe=UTF-8&chld=L%7C1");
//$("#qr-code-image-link").attr("src", "//chart.googleapis.com/chart?chs=150x150&cht=qr&chl=https://zoff.me/&choe=UTF-8&chld=L%7C1");
}
};
String.prototype.capitalizeFirstLetter = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
};

View File

@@ -0,0 +1,366 @@
function hide_native(way) {
if(way == 1){
if(!$('.castButton').hasClass('castButton-white-active')) {
$('.castButton').addClass('castButton-white-active');
}
if(!Helper.mobilecheck()) {
$('.castButton').tooltip('remove');
$('.castButton').tooltip({
delay: 5,
position: "top",
tooltip: "Stop casting"
});
}
$("#duration").toggleClass("hide");
$("#fullscreen").toggleClass("hide");
try{
Player.player.stopVideo();
} catch(e){}
Player.stopInterval = true;
$("#player_overlay").removeClass("hide");
$("#player_overlay").css("display", "block");
if(Helper.mobilecheck()){
if($("#pause").hasClass("hide")){
$("#play").toggleClass("hide");
$("#pause").toggleClass("hide");
} else if($("#play").hasClass("hide")){
$("#play").toggleClass("hide");
$("#pause").toggleClass("hide");
}
} else {
$("#volume").slider("value", 100);
}
$("#player_overlay").css("background", "url(https://i.ytimg.com/vi/" + video_id + "/maxresdefault.jpg)");
$("#player_overlay").css("background-position", "center");
$("#player_overlay").css("background-size", "100%");
$("#player_overlay").css("background-color", "black");
$("#player_overlay").css("background-repeat", "no-repeat");
$("#playing_on").css("display", "flex");
$("#chromecast_text").html("Playing on<br>" + castSession.La.friendlyName);
Player.player.setVolume(100);
$("#player_overlay_text").toggleClass("hide");
} else if(way == 0){
if(!Helper.mobilecheck()) {
$('.castButton').tooltip('remove');
$('.castButton').tooltip({
delay: 5,
position: "top",
tooltip: "Cast Zoff to TV"
});
}
$('.castButton').removeClass('castButton-white-active');
$("#duration").toggleClass("hide");
$("#fullscreen").toggleClass("hide");
Player.player.playVideo();
Player.stopInterval = false;
duration = Player.player.getDuration();
Player.durationSetter();
if(!Helper.mobilecheck()){
Player.player.setVolume(Crypt.get_volume());
$("#volume").slider("value", Crypt.get_volume());
}
$("#player_overlay").addClass("hide");
$("#player_overlay_text").toggleClass("hide");
$("#chromecast_text").html("");
$("#playing_on").css("display", "none");
if(!offline){
socket.emit('pos', {channel: chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
} else {
Player.loadVideoById(video_id);
}
}
}
function chromecastListener(evt, data) {
var json_parsed = JSON.parse(data);
switch(json_parsed.type){
case -1:
if(offline){
Player.playNext();
} else {
socket.emit("end", {id: json_parsed.videoId, channel: chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
}
break;
case 0:
if(offline){
Player.playNext();
} else {
socket.emit("skip", {error: json_parsed.data_code, id: json_parsed.videoId, pass: adminpass == "" ? "" : Crypt.crypt_pass(adminpass), channel: chan.toLowerCase(), userpass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
}
break;
}
}
function setup_auth_listener() {
socket.on('auth_required', function() {
user_auth_started = true;
$("#player_overlay").removeClass("hide");
$("#player_overlay").css("display", "block");
$("#user_password").modal("open");
Crypt.remove_userpass(chan.toLowerCase());
before_toast();
Materialize.toast("That is not the correct password, try again..", 4000);
});
socket.on('auth_accepted', function(msg) {
if(msg.hasOwnProperty("value") && msg.value) {
if(temp_user_pass != "") {
userpass = temp_user_pass;
Crypt.set_userpass(chan.toLowerCase(), userpass);
}
}
});
}
function setup_no_connection_listener(){
socket.on('connect_failed', function(){
Helper.log('Connection Failed');
if(!connect_error){
connect_error = true;
Materialize.toast("Error connecting to server, please wait..", 100000000, "red lighten connect_error");
}
});
socket.on("connect_error", function(){
Helper.log("Connection Failed.");
if(!connect_error){
connect_error = true;
Materialize.toast("Error connecting to server, please wait..", 100000000, "red lighten connect_error");
}
});
}
function setup_youtube_listener(){
socket.on("np", Player.youtube_listener);
}
function get_list_listener(){
socket.on("get_list", function(){
var add = "";
if(private_channel) add = Crypt.getCookie("_uI") + "_";
socket.emit("list", { offline: offline, version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
});
}
function setup_suggested_listener(){
socket.on("suggested", function(params){
var single = true;
if(params.id === undefined)
single = false;
Suggestions.catchUserSuggests(params, single);
});
}
function setup_viewers_listener(){
socket.on("viewers", function(view){
viewers = view;
var outPutWord = "<i class='material-icons'>visibility</i>"//v > 1 ? "viewers" : "viewer";
$("#viewers").html(outPutWord + " " + view);
if(song_title !== undefined)
Player.getTitle(song_title, viewers);
});
}
function setup_admin_listener(){
socket.on("toast", Admin.toast);
socket.on("pw", Admin.pw);
socket.on("conf", Admin.conf);
}
function setup_chat_listener(){
socket.on("chat_history", function(msg) {
var data = msg.data;
for(var i = 0; i < data.length; i++) {
if(msg.all) {
Chat.allchat(data[i], data[i].createdAt, true);
document.getElementById("chatall").scrollTop = document.getElementById("chatall").scrollHeight;
} else {
Chat.channelchat(data[i], data[i].createdAt, true);
document.getElementById("chatchannel").scrollTop = document.getElementById("chatchannel").scrollHeight;
}
}
});
socket.on("chat.all", Chat.allchat);
socket.on("chat", Chat.channelchat);
}
function setup_list_listener(){
socket.on("channel", List.channel_function);
}
function setup_playlist_listener(){
Helper.log("Setting up playlist_listener");
socket.on('playlists', Frontpage.frontpage_function);
}
function setup_host_initialization(){
socket.on("id", Hostcontroller.host_listener);
}
function setup_host_listener(id){
socket.on(id, Hostcontroller.host_on_action);
}
function enable_debug(){
localStorage.debug = true;
}
function disable_debug(){
localStorage.debug = false;
}
function embed_code(autoplay, width, height, color){
return '<iframe src="https://zoff.me/_embed#' + chan.toLowerCase() + '&' + color + autoplay + '" width="' + width + 'px" height="' + height + 'px"></iframe>';
}
function change_offline(enabled, already_offline){
Crypt.set_offline(enabled);
offline = enabled;
socket.emit("offline", {status: enabled, channel: chan != undefined ? chan.toLowerCase() : ""});
if(!Helper.mobilecheck()) {
$("#offline-mode").tooltip('remove');
}
if(enabled){
if(list_html){
list_html = $("<div>" + list_html + "</div>");
//list_html.find(".list-remove").removeClass("hide");
list_html = list_html.html();
}
//$(".list-remove").removeClass("hide");
$("#viewers").addClass("hide");
$(".margin-playbar").removeClass("margin-playbar");
$(".prev.playbar").addClass("margin-playbar");
$(".prev.playbar").removeClass("hide");
$("#offline-mode").removeClass("waves-cyan");
$("#offline-mode").addClass("cyan");
if(!Helper.mobilecheck()) {
$("#offline-mode").tooltip({
delay: 5,
position: "bottom",
tooltip: "Disable local mode"
});
}
if(window.location.pathname != "/"){
$("#controls").on("mouseenter", function(e){
if($("#seekToDuration").hasClass("hide")){
$("#seekToDuration").removeClass("hide");
}
});
$("#controls").on("mouseleave", function(e){
dragging = false;
if(!$("#seekToDuration").hasClass("hide")){
$("#seekToDuration").addClass("hide");
}
});
$("#controls").on("mousedown", function(e) {
var acceptable = ["bar", "controls", "duration"];
if(acceptable.indexOf($(e.target).attr("id")) >= 0) {
dragging = true;
}
});
$("#controls").on("mouseup", function(e) {
dragging = false;
});
$("#controls").on("mousemove", Channel.seekToMove);
$("#controls").on("click", Channel.seekToClick);
$("#main_components").append("<div id='seekToDuration' class='hide'>00:00/01:00</div>");
if(!Helper.mobilecheck()) $("#seekToDuration").css("top", $("#controls").position().top - 55);
else if(Helper.mobilecheck()) $("#seekToDuration").css("top", $("#controls").position().top - 20);
if(!$("#controls").hasClass("ewresize")) $("#controls").addClass("ewresize");
} else {
$("#controls").off("mouseenter");
$("#controls").off("mouseleave");
$("#controls").off("mousemove");
$("#controls").off("click");
}
if(full_playlist != undefined && !already_offline){
for(var x = 0; x < full_playlist.length; x++){
full_playlist[x].votes = 0;
}
List.sortList();
List.populate_list(full_playlist);
}
} else {
if(list_html){
list_html = $("<div>" + list_html + "</div>");
list_html = list_html.html();
}
$(".margin-playbar").removeClass("margin-playbar");
$("#playpause").addClass("margin-playbar");
$("#viewers").removeClass("hide");
$(".prev.playbar").addClass("hide");
$("#offline-mode").addClass("waves-cyan");
$("#offline-mode").removeClass("cyan");
if(!Helper.mobilecheck()) {
$("#offline-mode").tooltip({
delay: 5,
position: "bottom",
tooltip: "Enable local mode"
});
}
$("#controls").off("mouseleave");
$("#controls").off("mouseenter");
$("#controls").off("mousedown");
$("#controls").off("mouseup");
$("#controls").off("mousemove", Channel.seekToMove);
$("#controls").off("click", Channel.seekToClick);
$("#seekToDuration").remove();
if(window.location.pathname != "/"){
socket.emit("pos", {channel: chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
var add = "";
if(private_channel) add = Crypt.getCookie("_uI") + "_";
socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
if($("#controls").hasClass("ewresize")) $("#controls").removeClass("ewresize");
}
}
}
function before_toast(){
if($('.toast').length > 0) {
var toastElement = $('.toast').first()[0];
var toastInstance = toastElement.M_Toast;
toastInstance.remove();
}
//Materialize.Toast.removeAll();
}
function scrollChat() {
var current = $(".chat-tab.active").attr("href");
if(current == "#channelchat") {
$('#chatchannel').scrollTop($('#chatchannel')[0].scrollHeight);
} else if(current == "#all_chat") {
$('#chatall').scrollTop($('#chatall')[0].scrollHeight);
}
}
function searchTimeout(event) {
search_input = $(".search_input").val();
code = event.keyCode || event.which;
if (code != 40 && code != 38 && code != 13 && code != 39 && code != 37 && code != 17 && code != 16 && code != 225 && code != 18 && code != 27) {
clearTimeout(timeout_search);
if(search_input.length < 3){
$("#results").html("");
if(search_input.length == 0) {
$("body").attr("style", "overflow-y: auto");
}
}
if(code == 13){
Search.search(search_input);
}else{
timeout_search = setTimeout(function(){
Search.search(search_input);
}, 1000);
}
}
}

View File

@@ -10,6 +10,15 @@ var Helper = {
return arr[Math.floor(Math.random() * arr.length)];
},
randomString: function(length){
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_";
for(var i = 0; i < length; i++) {
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
return text;
},
mobilecheck: function() {
var isMobile = false; //initiate as false
// device detection

File diff suppressed because it is too large Load Diff

View File

@@ -331,7 +331,7 @@ var Search = {
{
if(response.error){
if(response.error.errors[0].reason == "playlistItemsNotAccessible"){
var nonce = randomString(29);
var nonce = Helper.randomString(29);
window.callback = function(data) {
access_token_data_youtube = data;
if(access_token_data_youtube.state == nonce){