0&&Fe[He]!=Ke.length-1){$(".highlight").removeClass("highlight");var a=Math.floor(Fe[He]/G.can_fit);$($("#wrapper").children()[Fe[He]]).addClass("highlight"),G.dynamicContentPageJumpTo(a)}else Y.log("none found")});var pt={id:"",get_input:function(e){""===pt.id?pt.set_id(e.toLowerCase()):pt.set_channel(e.toLowerCase())},set_id:function(e){pt.id=e,$("#pausebutton_remote").attr("disabled",!1),$("#skipbutton_remote").attr("disabled",!1),$("#playbutton_remote").attr("disabled",!1),$("#skipbutton_remote").attr("disabled",!1),$("#remote_channel").val(""),$("#remote_channel").attr("placeholder","Change channel"),$("#remote_header").html("Controlling "+e),$("#volume-control-remote").css("display","inline-block"),$(".slider-vol-mobile").attr("style","display: inline-block !important")},set_channel:function(e){V.emit("id",{id:pt.id,type:"channel",value:e})},play_remote:function(){V.emit("id",{id:pt.id,type:"play",value:"mock"})},pause_remote:function(){V.emit("id",{id:pt.id,type:"pause",value:"mock"})},skip_remote:function(){V.emit("id",{id:pt.id,type:"skip",value:"mock"})},initiate_volume:function(){$("#volume-control-remote").slider({min:0,max:100,value:100,range:"min",animate:!0,stop:function(e,t){V.emit("id",{id:pt.id,type:"volume",value:t.value}),Y.log("volume")}})}},ut={loaded:!0,before_load:"",after_load:"",player:"",stopInterval:!1,fireplace:"",youtube_listener:function(e){var t;try{t=ut.player.getPlayerState()}catch(e){t=null}if(!(!De&&(null!=t||ke)||De&&(null==t||ke)||!De&&(null==t||ke)||De&&t==-1)||De&&qe==J)$e||ut.durationSetter(),duration=ut.player.getDuration();else{qe=J,ke=!1,ut.loaded=!1,Y.log("--------youtube_listener--------"),Y.log("Received: "),Y.log(e),Y.log("paused variable: "+ce),Y.log("mobile_beginning variable: "+Ze);try{Y.log("getVideoUrl(): "+ut.player.getVideoUrl().split("v=")[1])}catch(e){}if(Y.log("video_id variable: "+nt),Y.log("---------------------------------"),e.np){if(ce)ut.getTitle(e.np[0].title,re),Y.mobilecheck()||ut.notifyUser(e.np[0].id,e.np[0].title),Ae||ut.stopVideo(),nt=e.np[0].id,ne=e.conf[0],time=e.time,ot=time-ne.startTime,st=e.np[0].title,duration=e.np[0].duration,ut.setBGimage(nt);else if(!ce){void 0===lt?lt=e.np[0].id:lt!=nt&&(lt=nt),nt=e.np[0].id,ne=e.conf[0],time=e.time,ot=time-ne.startTime,st=e.np[0].title,duration=e.np[0].duration,Ze&&Y.mobilecheck()&&0===ot&&!Ae&&(ot=1);try{Ke[0].id!=nt||Ze||G.song_change(Ke[0].added),mt.fetchYoutubeSuggests(nt)}catch(e){}if(ut.getTitle(st,re),ut.setBGimage(nt),le&&!window.MSStream)try{(ut.player.getVideoUrl().split("v=")[1]!=nt||Ae)&&(ut.loadVideoById(nt),Y.mobilecheck()||ut.notifyUser(nt,st),ut.seekTo(ot),ce&&!Ae&&ut.pauseVideo()),ce||(Ze&&!Ae||ut.playVideo(),$e||ut.durationSetter()),(ut.player.getDuration()>ot||0===ut.player.getDuration()||Ae||ut.player.getCurrentTime()!=ot)&&ut.seekTo(ot),ut.after_load=nt,ut.loaded||setTimeout(function(){ut.loaded=!0},500)}catch(e){Ae&&(ut.loadVideoById(nt),ut.seekTo(ot)),$e||Ae||ut.durationSetter()}else ut.getTitle(st,re)}}else{document.getElementById("song-title").innerHTML="Empty channel. Add some songs!",$("#player_overlay").height($("#player").height()),window.MSStream||Ae||$("#player_overlay").toggleClass("hide");try{Ae||ut.stopVideo()}catch(e){}}}},onPlayerStateChange:function(e){Y.log("-------onPlayerStateChange------"),Y.log("New state\nState: "),Y.log(e);try{Y.log("Duration: "+ut.player.getDuration(),"Current time: "+ut.player.getCurrentTime()),Y.log("getVideoUrl(): "+ut.player.getVideoUrl().split("v=")[1])}catch(e){}switch(Y.log("video_id variable: "+nt),Y.log("---------------------------------"),e.data){case-1:break;case 0:de=!1,ce=!1,De?ut.playNext():V.emit("end",{id:nt,channel:J.toLowerCase()});break;case 1:de=!0,beginning&&Y.mobilecheck()&&!Ae&&(ut.pauseVideo(),beginning=!1,Ze=!1,setTimeout(function(){Y.mobilecheck()&&($("#playpause").css("visibility","visible"),$("#playpause").css("pointer-events","all"),$("#channel-load").css("display","none"))},100)),ye||"/"==window.location.pathname||Ae||Y.addClass("#player_overlay","hide"),"/"!=window.location.pathname&&(1==document.getElementById("play").className.split(" ").length&&$("#play").toggleClass("hide"),2==document.getElementById("pause").className.split(" ").length&&$("#pause").toggleClass("hide")),ce&&!De&&(V.emit("pos",{channel:J.toLowerCase()}),ce=!1);break;case 2:Ae||(ce=!0,"/"!=window.location.pathname&>.play_pause_show(),Ze=!0);break;case 3:}},playVideo:function(){Ae?(F.sendMessage("urn:x-cast:zoff.me",{type:"playVideo"}),chrome.cast.media.GenericMediaMetadata({metadataType:"GENERIC",title:st,image:"https://img.youtube.com/vi/"+nt+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+nt+"/mqdefault.jpg"),$("#pause").hasClass("hide")&&($("#play").toggleClass("hide"),$("#pause").toggleClass("hide"))):ut.player.playVideo()},pauseVideo:function(){Ae?(F.sendMessage("urn:x-cast:zoff.me",{type:"pauseVideo"}),$("#play").hasClass("hide")&&($("#play").toggleClass("hide"),$("#pause").toggleClass("hide"))):ut.player.pauseVideo()},seekTo:function(e){Ae?F.sendMessage("urn:x-cast:zoff.me",{type:"seekTo",seekTo:e}):De?ut.player.seekTo(0):ut.player.seekTo(e)},loadVideoById:function(e){Ae?(F.sendMessage("urn:x-cast:zoff.me",{type:"loadVideo",videoId:e}),chrome.cast.media.GenericMediaMetadata({metadataType:"GENERIC",title:st,image:"https://img.youtube.com/vi/"+e+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+e+"/mqdefault.jpg")):ut.player.loadVideoById(e)},stopVideo:function(){if(Ae)F.sendMessage("urn:x-cast:zoff.me",{type:"stopVideo"});else try{ut.player.stopVideo()}catch(e){}},setVolume:function(e){Ae?F.setVolume(e/100):ut.player.setVolume(e)},playNext:function(){var e=Ke[0];nt=e.id,time=(new Date).getTime(),st=e.title,duration=e.duration,ut.getTitle(st,re),ut.setBGimage(nt),Ae?(F.sendMessage("urn:x-cast:zoff.me",{type:"loadVideo",videoId:nt}),chrome.cast.media.GenericMediaMetadata({metadataType:"GENERIC",title:st,image:"https://img.youtube.com/vi/"+nt+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+nt+"/mqdefault.jpg")):ut.loadVideoById(nt),G.channel_function({type:"song_change",time:time})},sendNext:function(e){Ae&&F.sendMessage("urn:x-cast:zoff.me",{type:"nextVideo",title:e.title,videoId:e.videoId})},getTitle:function(e,t){var a="visibility",n=decodeURIComponent(e);if("/"!=window.location.pathname){var i=document.getElementById("song-title"),o=document.getElementById("viewers");i.innerHTML=n,o.innerHTML=a+" "+t,i.title=n,Ae&&($("#player_overlay").css("background","url(https://img.youtube.com/vi/"+nt+"/hqdefault.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"),$("#player_overlay").css("height","calc(100% - 32px)"))}document.title=n+" • Zoff / "+J},errorHandler:function(e){5==e.data||100==e.data||101==e.data||150==e.data?(curr_playing=ut.player.getVideoUrl().replace("https://www.youtube.com/watch?v=",""),V.emit("skip",{error:e.data,id:nt,pass:oe,channel:J.toLowerCase})):void 0!==nt&&ut.loadVideoById(nt)},onPlayerReady:function(e){try{beginning=!0,le=!0,window.MSStream||(Y.mobilecheck()?($("#playpause").css("visibility","hidden"),$("#playpause").css("pointer-events","none")):$("#channel-load").css("display","none"),$("#player").css("opacity","1"),$("#controls").css("opacity","1"),$(".playlist").css("opacity","1"),ut.loadVideoById(nt),!ve||Y.mobilecheck()&&!Ae||ut.playVideo(),$e||ut.durationSetter(),ye?setTimeout(function(){ut.player.seekTo(ot),ve||(ut.player.pauseVideo(),gt.play_pause_show())},1e3):ut.seekTo(ot)),ut.readyLooks(),gt.initYoutubeControls(ut.player),gt.initSlider(),ut.player.setVolume(O.get_volume()),$(".video-container").removeClass("no-opacity")}catch(e){}},readyLooks:function(){ut.setBGimage(nt)},setBGimage:function(e){if(void 0!==e&&!ye){var t=new Image;t.onload=function(){var e=new ColorThief,a=e.getColor(t);"/"!=window.location.pathname&&(document.getElementsByTagName("body")[0].style.backgroundColor=Y.rgbToHsl(a,!0),$("meta[name=theme-color]").attr("content",Y.rgbToHex(a[0],a[1],a[2])))},t.crossOrigin="Anonymous",t.src="https://zoff.me:8081/https://img.youtube.com/vi/"+e+"/mqdefault.jpg"}},set_width:function(e){if($(".video-container").width(e),!Y.mobilecheck())if($(window).width()>769){var t=$(window).width()-$(".control-list").width()-$(".zbrand").outerWidth()-$(".brand-logo-navigate").outerWidth()-66;title_width=t,$(".title-container").width(title_width)}else $(".title-container").width("100%")},notifyUser:function(e,t){if(t=t.replace(/\\\'/g,"'").replace(/"/g,"'").replace(/&/g,"&"),"granted"===Notification.permission&&document.hidden){
+var a=new Notification("Now Playing",{body:t,icon:"https://i.ytimg.com/vi/"+e+"/mqdefault.jpg",iconUrl:"http://i.ytimg.com/vi/"+e+"/mqdefault.jpg"});a.onclick=function(e){window.focus(),this.cancel()},setTimeout(function(){a.close()},5e3)}},setup_all_listeners:function(){l(),s(),p(),u(),h()},onYouTubeIframeAPIReady:function(){ut.player=new YT.Player("player",{videoId:nt,playerVars:{rel:"0",wmode:"transparent",controls:"0",fs:"0",iv_load_policy:"3",theme:"light",color:"white",showinfo:0},events:{onReady:ut.onPlayerReady,onStateChange:ut.onPlayerStateChange,onError:ut.errorHandler}})},createFireplacePlayer:function(){ut.fireplace=new YT.Player("fireplace_player",{videoId:"L_LUpnjgPso",playerVars:{rel:"0",wmode:"transparent",controls:"0",fs:"0",iv_load_policy:"3",theme:"light",color:"white",showinfo:0},events:{onReady:ut.onFireplaceReady,onStateChange:ut.onFireplaceChange}})},onFireplaceReady:function(){ut.fireplace.playVideo()},onFireplaceChange:function(e){switch(e.data){case 0:ut.fireplace.seekTo(0),ut.fireplace.playVideo();break;case 2:ut.fireplace.playVideo()}},durationSetter:function(){if(void 0!==duration)try{ut.stopInterval||($e=!0),dMinutes=Math.floor(duration/60),dSeconds=duration-60*dMinutes,currDurr=void 0!==ut.player.getCurrentTime()?Math.floor(ut.player.getCurrentTime()):ot,currDurr>duration&&(currDurr=duration),minutes=Math.floor(currDurr/60),seconds=currDurr-60*minutes,document.getElementById("duration").innerHTML=Y.pad(minutes)+":"+Y.pad(seconds)+" / "+Y.pad(dMinutes)+":"+Y.pad(dSeconds),per=100/duration*currDurr,per>=100?per=100:0===duration&&(per=0),$("#bar").width(per+"%")}catch(e){}ut.stopInterval||setTimeout(ut.durationSetter,1e3)},loadPlayer:function(){if(1==$("script[src='https://www.youtube.com/iframe_api']").length)try{ut.onYouTubeIframeAPIReady()}catch(e){console.error("Seems YouTube iFrame script isn't correctly loaded. Please reload the page.")}else et=document.createElement("script"),et.src="https://www.youtube.com/iframe_api",tt=document.getElementsByTagName("script")[0],tt.parentNode.insertBefore(et,tt)}},gt={stopInterval:!1,initYoutubeControls:function(){Y.mobilecheck()&&!window.MSStream&&$("#controls").appendTo("#playbar"),gt.initControls()},initControls:function(){document.getElementById("volume-button").addEventListener("click",gt.mute_video),document.getElementById("playpause").addEventListener("click",gt.play_pause),document.getElementById("volume-button-overlay").addEventListener("click",gt.mute_video),document.getElementById("playpause-overlay").addEventListener("click",gt.play_pause),document.getElementById("fullscreen").addEventListener("click",gt.fullscreen)},initSlider:function(){try{vol=O.get_volume()}catch(e){}$("#volume").slider({min:0,max:100,value:vol,range:"min",animate:!0,slide:function(e,t){gt.setVolume(t.value);try{O.set_volume(t.value)}catch(e){}}}),gt.choose_button(vol,!1)},fullscreen:function(){var e=document.getElementById("player"),t=e.requestFullScreen||e.mozRequestFullScreen||e.webkitRequestFullScreen;t&&t.bind(e)()},play_pause:function(){Ae?gt.play_pause_show():1==ut.player.getPlayerState()?(ut.pauseVideo(),Y.mobilecheck()&&!window.MSStream&&(document.getElementById("player").style.display="none",$(".video-container").toggleClass("click-through"),$(".page-footer").toggleClass("padding-bottom-extra"))):(2==ut.player.getPlayerState()||0===ut.player.getPlayerState()||5===ut.player.getPlayerState()&&Y.mobilecheck())&&(ut.playVideo(),Y.mobilecheck()&&!window.MSStream&&(document.getElementById("player").style.display="block",$(".video-container").toggleClass("click-through"),$(".page-footer").toggleClass("padding-bottom-extra")))},play_pause_show:function(){Ae?$("#play").hasClass("hide")?ut.pauseVideo():$("#pause").hasClass("hide")&&ut.playVideo():(1==document.getElementById("pause").className.split(" ").length&&($("#pause").toggleClass("hide"),$("#pause-overlay").toggleClass("hide")),2==document.getElementById("play").className.split(" ").length&&($("#play").toggleClass("hide"),$("#play-overlay").toggleClass("hide")))},settings:function(){$("#qS").toggleClass("hide")},changeQuality:function(e){ut.player.getPlaybackQuality!=e&&(ut.player.setPlaybackQuality(e),ut.player.getPlaybackQuality()),$("#qS").toggleClass("hide")},mute_video:function(){ut.player.isMuted()?(Ae&&F.sendMessage("urn:x-cast:zoff.me",{type:"unMute"}),ut.player.unMute(),gt.choose_button(ut.player.getVolume(),!1)):(Ae&&F.sendMessage("urn:x-cast:zoff.me",{type:"mute"}),gt.choose_button(0,!0),ut.player.mute())},setVolume:function(e){ut.setVolume(e),gt.choose_button(e,!1),ut.player.isMuted()&&ut.player.unMute()},choose_button:function(e,t){t?(1==document.getElementById("v-full").className.split(" ").length&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),1==document.getElementById("v-medium").className.split(" ").length&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),1==document.getElementById("v-low").className.split(" ").length&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),2==document.getElementById("v-mute").className.split(" ").length&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=0&&e<=33?(1==document.getElementById("v-full").className.split(" ").length&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),1==document.getElementById("v-medium").className.split(" ").length&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),2==document.getElementById("v-low").className.split(" ").length&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),1==document.getElementById("v-mute").className.split(" ").length&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=34&&e<=66?(1==document.getElementById("v-full").className.split(" ").length&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),2==document.getElementById("v-medium").className.split(" ").length&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),1==document.getElementById("v-low").className.split(" ").length&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),1==document.getElementById("v-mute").className.split(" ").length&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=67&&e<=100&&(2==document.getElementById("v-full").className.split(" ").length&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),1==document.getElementById("v-medium").className.split(" ").length&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),1==document.getElementById("v-low").className.split(" ").length&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),1==document.getElementById("v-mute").className.split(" ").length&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide")))},playPause:function(){state=ut.player.getPlayerState(),button=document.getElementById("playpause"),1==state?ut.pauseVideo():2==state&&ut.playVideo()},volumeOptions:function(){Ae||(ut.player.isMuted()?(ut.player.unMute(),vol=ut.player.getVolume(),$("#volume").slider("value",ut.player.getVolume())):(ut.player.mute(),$("#volume").slider("value",0)))},hoverMute:function(e){vol=ut.player.getVolume()}},ht={submitArray:[],submitArrayExpected:null,showSearch:function(){$("#search-wrapper").toggleClass("hide"),Y.mobilecheck()&&$(".search_input").focus(),$("#song-title").toggleClass("hide"),$("#results").empty(),"close"==$("#search-btn i").html()?$("#search-btn i").html("search"):$("#search-btn i").html("close"),$("#search").focus()},search:function(e){if(void 0!==Je&&void 0!==We||(Je=$("#temp-results-container"),We=$("#empty-results-container").html()),$(".search_results").html(""),""!==e){te=!0;var t=encodeURIComponent(e),a="https://www.googleapis.com/youtube/v3/search?key="+ee+"&videoEmbeddable=true&part=id&fields=items(id)&type=video&order=viewCount&safeSearch=none&maxResults=25";a+="&q="+t,ie&&(a+="&videoCategoryId=10");var n="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+ee+"&id=";Y.contains($(".search_loader_spinner").attr("class").split(" "),"active")||$(".search_loader_spinner").addClass("active"),Y.contains($("#results").attr("class").split(" "),"hide")&&$("#results").removeClass("hide"),$.ajax({type:"GET",url:a,dataType:"jsonp",success:function(e){0===e.items.length?($(""+We+"
").appendTo($("#results")).show("blind",83.33),Y.contains($(".search_loader_spinner").attr("class").split(" "),"active")&&$(".search_loader_spinner").removeClass("active")):e.items&&($.each(e.items,function(e,t){n+=t.id.videoId+","}),$.ajax({type:"GET",url:n,dataType:"jsonp",success:function(e){var t="",a=$(Je);$.each(e.items,function(e,n){var i=n.contentDetails.duration;if(secs=ht.durationToSeconds(i),!longsongs||secs<720){at=n.snippet.title,enc_title=at,Qe=n.id,i=i.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s"),thumb=n.snippet.thumbnails.medium.url;var o=a;o.find(".search-title").text(at),o.find(".result_info").text(i),o.find(".thumb").attr("src",thumb),o.find("#add-many").attr("data-video-id",Qe),o.find("#add-many").attr("data-video-title",enc_title),o.find("#add-many").attr("data-video-length",secs),o.find("#temp-results").attr("data-video-id",Qe),o.find("#temp-results").attr("data-video-title",enc_title),o.find("#temp-results").attr("data-video-length",secs),t+=o.html()}}),$(""+t+"
").appendTo($("#results")).show("blind",83.33*(e.items.length-1)),Y.contains($(".search_loader_spinner").attr("class").split(" "),"active")&&$(".search_loader_spinner").removeClass("active"),$(".add-many").click(function(e){return e.preventDefault(),e.stopPropagation(),!1})}}))}})}else $(".main").removeClass("blurT"),$("#controls").removeClass("blurT"),$(".main").removeClass("clickthrough")},backgroundSearch:function(e,t,a,n,i){var o=encodeURIComponent(e+" "+t),s="https://www.googleapis.com/youtube/v3/search?key="+ee+"&videoEmbeddable=true&part=id,snippet&fields=items(id,snippet)&type=video&order=relevance&safeSearch=none&maxResults=10&videoCategoryId=10";s+="&q="+o;var l="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+ee+"&id=";t=t.split(" ");var r=e.split("-");r=r.join(" ").split(" "),$.ajax({type:"GET",url:s,dataType:"jsonp",success:function(i){if(0===i.items.length){ht.readySubmit(!1,{totalLength:n-1}),Y.log("------------------------------"),Y.log("NO MATCH FOR:"),Y.log("Spotify title: "+e+" "+t.join(" ")),Y.log("Spotify length: "+a),Y.log("------------------------------");var o=$(""+Te+"
");o.find(".extra-add-text").text(e+" - "+t.join(" ")),o.find(".extra-add-text").attr("title",e+" - "+t.join(" ")),o.find(".extra-button-search").attr("data-text",e+" - "+t.join(" ")),$(".not-imported-container").append(o.html()),$(".not-imported").removeClass("hide")}else i.items.length>0&&($.each(i.items,function(e,t){l+=t.id.videoId+","}),$.ajax({type:"GET",url:l,dataType:"jsonp",success:function(i){if(i.items.length>0){var o=!1;if($.each(i.items,function(a,i){var s=ht.durationToSeconds(i.contentDetails.duration),l=!1;if($.each(r,function(a,n){return i.snippet.title.toLowerCase().indexOf(n.toLowerCase())!=-1&&i.snippet.title.toLowerCase().indexOf("cover")==-1&&e.toLowerCase().indexOf("cover")==-1&&(i.snippet.title.toLowerCase().indexOf("remix")==-1&&e.toLowerCase().indexOf("remix")==-1||i.snippet.title.toLowerCase().indexOf("remix")!=-1&&e.toLowerCase().indexOf("remix")!=-1||i.snippet.title.toLowerCase().indexOf(t[0].toLowerCase())!=-1||i.snippet.channelTitle.toLowerCase().indexOf(t[0].toLowerCase())!=-1||i.snippet.channelTitle.toLowerCase().indexOf("vevo")!=-1)||(l=!0),!1}),!l)return o=!0,ht.readySubmit(!0,{id:i.id,title:i.snippet.title,duration:s,totalLength:n-1}),!1}),!o){ht.readySubmit(!1,{totalLength:n-1}),Y.log("------------------------------"),Y.log("NO MATCH FOR:"),Y.log("Spotify title: "+e+" "+t.join(" ")),Y.log("Spotify length: "+a),Y.log("------------------------------");var s=$(""+Te+"
");s.find(".extra-add-text").text(e+" - "+t.join(" ")),s.find(".extra-add-text").attr("title",e+" - "+t.join(" ")),s.find(".extra-button-search").attr("data-text",e+" - "+t.join(" ")),$(".not-imported-container").append(s.html()),$(".not-imported").removeClass("hide")}}}}))}})},readySubmit:function(e,t){null===ht.submitArrayExpected&&(ht.submitArrayExpected=t.totalLength),e?ht.submitArray.push(t):ht.submitArrayExpected-=1,ht.submitArray.length-1==ht.submitArrayExpected&&($.each(ht.submitArray,function(e,t){ht.submit(t.id,t.title,t.duration,!0,e,ht.submitArray.length-1)}),document.getElementById("import_spotify").disabled=!1,$("#import_spotify").removeClass("hide"),$("#playlist_loader_spotify").addClass("hide"),ht.submitArray=[],ht.submitArrayExpected=null)},submitAndClose:function(e,t,a){ht.submit(e,t,a,!1,0,1),$("#results").html(""),ht.showSearch(),document.getElementById("search").value="",$("#results").html="",$(".main").removeClass("blurT"),$("#controls").removeClass("blurT"),$(".main").removeClass("clickthrough")},importPlaylist:function(e,t){token="";var a,n;void 0!==t&&(token="&pageToken="+t),playlist_url="https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=49&key="+ee+"&playlistId="+e+token,Ne?(n="html",a={"Content-Type":"application/json",Authorization:"Bearer "+Me.access_token}):(a={},n="jsonp"),$.ajax({type:"GET",url:playlist_url,dataType:n,headers:a,success:function(a){if(a.error)if("playlistItemsNotAccessible"==a.error.errors[0].reason){var n=C(29);window.callback=function(a){Me=a,Me.state==n?(Ne=!0,setTimeout(function(){Ne=!1,Me={}},1e3*Me.expires_in),ht.importPlaylist(e,t)):(Me="",console.error("Nonce doesn't match")),youtube_window.close(),window.callback=""},youtube_window=window.open("/o_callback#youtube=true&nonce="+n,"","width=600, height=600")}else Y.log(a.error),document.getElementById("import").disabled=!1,$("#playlist_loader").addClass("hide"),$("#import").removeClass("hide"),M(),Materialize.toast("It seems you've entered a invalid url.",4e3);else{var i="";"string"==typeof a&&(a=$.parseJSON(a)),$.each(a.items,function(e,t){i+=t.contentDetails.videoId+","}),ht.addVideos(i,!0),a.nextPageToken&&ht.importPlaylist(e,a.nextPageToken),document.getElementById("import").value=""}}})},importSpotifyPlaylist:function(e){$.ajax({url:e,headers:{Authorization:"Bearer "+Ce.access_token},success:function(e){$.each(e.items,function(t,a){ht.backgroundSearch(a.track.name,a.track.artists.map(function(e){return e.name}).join(" "),Math.floor(a.track.duration_ms/1e3),e.total,t+e.offset)}),e.next&&ht.importSpotifyPlaylist(e.next)},error:function(){document.getElementById("import_spotify").disabled=!1,$("#import_spotify").removeClass("hide"),$("#playlist_loader_spotify").addClass("hide"),M(),Materialize.toast("It seems you've entered a invalid url.",4e3)}})},addVideos:function(e,t){var a="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key=***REMOVED***&id=";a+=e,$.ajax({type:"POST",url:a,dataType:"jsonp",success:function(e){var a=0,n=[];$.each(e.items,function(e,i){var o=ht.durationToSeconds(i.contentDetails.duration);(!longsongs||o<720)&&(enc_title=i.snippet.title,a+=1,n.push({id:i.id,enc_title:enc_title,duration:o,playlist:t}))}),$.each(n,function(e,t){ht.submit(t.id,t.enc_title,t.duration,t.playlist,e,a)})}})},submit:function(e,t,a,n,i,o){if(De&&document.getElementsByName("addsongs")[0].checked&&document.getElementsByName("addsongs")[0].disabled){var s=[];s=$.map(Ke,function(t,a){if(t.id==e)return a}),0==s.length?G.channel_function({type:"added",value:{added:(new Date).getTime()/1e3,guids:[1],id:e,title:t,duration:a,playlist:!1,now_playing:!1,votes:1}}):G.vote(e,"pos")}else V.emit("add",{id:e,title:decodeURIComponent(t),adminpass:oe,list:J.toLowerCase(),duration:a,playlist:n,num:i,total:o})},durationToSeconds:function(e){var t=e.match(ae);return hours=parseInt(t[12])||0,minutes=parseInt(t[14])||0,seconds=parseInt(t[16])||0,60*hours*60+60*minutes+seconds}},mt={catchUserSuggests:function(e,t){Oe+=t?1:e.length;var a=Oe>9?"9+":Oe;if($(".suggested-link span.badge.new.white").hasClass("hide")&&Oe>0&&$(".suggested-link span.badge.new.white").removeClass("hide"),$(".suggested-link span.badge.new.white").text(a),t)mt.createSuggested(e);else for(var n in e)mt.createSuggested(e[n]);mt.checkUserEmpty()},createSuggested:function(e){var t=Y.secondsToOther(e.duration),a=e.id,n=e.title,i=G.generateSong({id:a,title:n,length:e.duration,duration:t},!1,!1,!1,!0);$("#user-suggest-html").append(i)},fetchYoutubeSuggests:function(e){var t="https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+e+"&type=video&key="+ee,a="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+ee+"&id=";$.ajax({type:"GET",url:t,dataType:"jsonp",success:function(e){$.each(e.items.slice(0,5),function(e,t){a+=t.id.videoId+","}),$.ajax({type:"GET",url:a,dataType:"jsonp",success:function(e){$("#suggest-song-html").empty(),$.each(e.items,function(e,t){var a=t.contentDetails.duration,n=ht.durationToSeconds(a);a=Y.secondsToOther(ht.durationToSeconds(a));var i=t.id,o=t.snippet.title;$("#suggest-song-html").append(G.generateSong({id:i,title:o,length:n,duration:a},!1,!1,!1))})}})}})},checkUserEmpty:function(){var e=$("#user-suggest-html").children().length;0===e?Y.contains($("#user_suggests").attr("class").split(" "),"hide")||$("#user_suggests").addClass("hide"):$("#user_suggests").removeClass("hide")}}}();
\ No newline at end of file
diff --git a/public/js/listeners.js b/public/js/listeners.js
index ed242fd7..26e33142 100755
--- a/public/js/listeners.js
+++ b/public/js/listeners.js
@@ -85,17 +85,19 @@ var connection_options = {
var fromFront = false;
var fromChannel = false;
-if (navigator.serviceWorker) {
- navigator.serviceWorker.register('/service-worker.js', {scope: '/'})
- .then(function (registration) {
- Helper.log(registration);
- })
- .catch(function (e) {
- console.error(e);
- });
-} else {
- Helper.log('Service Worker is not supported in this browser.');
-}
+try{
+ if (navigator.serviceWorker && window.location.host != "zoff.dev") {
+ navigator.serviceWorker.register('/service-worker.js', {scope: '/'})
+ .then(function (registration) {
+ Helper.log(registration);
+ })
+ .catch(function (e) {
+ console.error(e);
+ });
+ } else {
+ Helper.log('Service Worker is not supported in this browser.');
+ }
+} catch(e) {}
$().ready(function(){
if(!fromFront && window.location.pathname != "/") init();
diff --git a/public/php/channel.php b/public/php/channel.php
index 2db5b6b7..8f57203c 100755
--- a/public/php/channel.php
+++ b/public/php/channel.php
@@ -100,11 +100,11 @@
Help
When listening on a channel, there are some different buttons you can click.
If you click the menu, you'll open the settings panel. Here you can change channel settings, decide if you want the computer you're on can be remote-controlled, enable or disable private mode, and import playlists from YouTube.
- The search-icon, opens up a search inputfield. If you start typing here, the site will automagically search for your input!
- If you click the button next to the search icon, you'll skip on a song. The one next to that one, is shuffling of the list.
+ The search, opens up a search inputfield. If you start typing here, the site will automagically search for your input!
+ If you click the button next to the search icon skip_next, you'll skip on a song. The one next to that one shuffle, is shuffling of the list.
Clicking a song in the playlist, gives it a vote. If you're logged in, you'll have a delete button at your disposal.
Also, whenever you're logged in, you'll have three tabs in the top of the playlist thats called "Playlist", "Suggested" and "Chat". The playlist obviously shows the playlist. But the suggested tab, shows 5 songs that YouTube recommends based on the current song. There might also be user recommended songs. To add any of these, just click them as you'd click a song to vote.
- If you want to listen to the channel without any "hickups", or being affected by other peoples votes, there is an private mode. By opening up the settings, and checking the private checkbox, you will be free of synced listening! This will also enable seeking in the current playing video, perfect for those songs you only like a part of!
+ If you want to listen to the channel without any "hickups", or being affected by other peoples votes, there is an private mode. By opening up the settings menu, and checking the privaten checkbox, you will be free of synced listening! This will also enable seeking in the current playing video, perfect for those songs you only like a part of!