").parent().html()),$("#main-row").append("
"),$("#player").removeClass("player_bottom"),$("#main-row").removeClass("frontpage_modified_heights"),$("#main_section_frontpage").remove(),$("#closePlayer").remove(),$("#player_bottom_overlay").remove()}$("#search").attr("placeholder","Find song on YouTube..."),$(".page-footer").addClass("padding-bottom-novideo"),1==$("#alreadychannel").length?e():(ze=!0,e()),0===$("#alreadyfp").length&&$("head").append("
")}})}};String.prototype.capitalizeFirstLetter=function(){return this.charAt(0).toUpperCase()+this.slice(1)};var Ue={loaded:!0,before_load:"",after_load:"",player:"",stopInterval:!1,youtube_listener:function(e){Ue.loaded=!1,B.log("--------youtube_listener--------"),B.log("Received: "),B.log(e),B.log("paused variable: "+Z),B.log("mobile_beginning variable: "+be);try{B.log("getVideoUrl(): "+Ue.player.getVideoUrl().split("v=")[1])}catch(e){}if(B.log("video_id variable: "+Ee),B.log("---------------------------------"),e.np){if(Z)Ue.getTitle(e.np[0].title,W),Ue.notifyUser(e.np[0].id,e.np[0].title),Ue.player.stopVideo();else if(!Z){void 0===Ae?Ae=e.np[0].id:Ae!=Ee&&(Ae=Ee),Ee=e.np[0].id,U=e.conf[0],time=e.time,Le=time-U.startTime,Pe=e.np[0].title,duration=e.np[0].duration,be&&B.mobilecheck()&&0===Le&&(Le=1);try{Ce[0].id==Ee&&P.song_change(Ce[0].added),Fe.fetchYoutubeSuggests(Ee)}catch(e){}if(Ue.getTitle(Pe,W),Ue.setBGimage(Ee),G&&!window.MSStream)try{Ue.player.getVideoUrl().split("v=")[1]!=Ee&&(Ue.player.loadVideoById(Ee),Ue.notifyUser(Ee,Pe),Ue.player.seekTo(Le),Z&&Ue.player.pauseVideo()),Z||(be||Ue.player.playVideo(),ie||Ue.durationSetter()),(Ue.player.getDuration()>Le||0===Ue.player.getDuration())&&Ue.player.seekTo(Le),Ue.after_load=Ee,Ue.loaded||setTimeout(function(){Ue.loaded=!0},500)}catch(e){ie||Ue.durationSetter()}else Ue.getTitle(Pe,W)}}else{document.getElementById("song-title").innerHTML="Empty channel. Add some songs!",$("#player_overlay").height($("#player").height()),window.MSStream||$("#player_overlay").toggleClass("hide");try{Ue.player.stopVideo()}catch(e){}}},onPlayerStateChange:function(e){B.log("-------onPlayerStateChange------"),B.log("New state\nState: "),B.log(e);try{B.log("Duration: "+Ue.player.getDuration(),"Current time: "+Ue.player.getCurrentTime()),B.log("getVideoUrl(): "+Ue.player.getVideoUrl().split("v=")[1])}catch(e){}switch(B.log("video_id variable: "+Ee),B.log("---------------------------------"),e.data){case-1:break;case 0:Q=!1,Z=!1,Me.emit("end",{id:Ee,channel:A.toLowerCase()});break;case 1:Q=!0,beginning&&B.mobilecheck()&&(Ue.player.pauseVideo(),beginning=!1,be=!1),ae||"/"==window.location.pathname||B.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")),Z&&(Me.emit("pos",{channel:A.toLowerCase()}),Z=!1);break;case 2:Z=!0,"/"!=window.location.pathname&&qe.play_pause_show(),be=!0;break;case 3:}},getTitle:function(e,t){var o=t>1?"viewers":"viewer",a=decodeURIComponent(e);if("/"!=window.location.pathname){var n=document.getElementById("song-title"),i=document.getElementById("viewers");n.innerHTML=a,i.innerHTML=t+" "+o,n.title=a}document.title=a+" • Zöff / "+A},errorHandler:function(e){5==e.data||100==e.data||101==e.data||150==e.data?(curr_playing=Ue.player.getVideoUrl().replace("https://www.youtube.com/watch?v=",""),Me.emit("skip",{error:e.data,id:Ee,pass:F,channel:A.toLowerCase})):void 0!==Ee&&Ue.player.loadVideoById(Ee)},onPlayerReady:function(e){$("#channel-load").css("display","none");try{beginning=!0,G=!0,window.MSStream||($("#player").css("opacity","1"),$("#controls").css("opacity","1"),$(".playlist").css("opacity","1"),Ue.player.loadVideoById(Ee),ne&&!B.mobilecheck()&&Ue.player.playVideo(),ie||Ue.durationSetter(),ae?setTimeout(function(){Ue.player.seekTo(Le),ne||(Ue.player.pauseVideo(),qe.play_pause_show())},1e3):Ue.player.seekTo(Le)),Ue.readyLooks(),qe.initYoutubeControls(Ue.player),qe.initSlider(),Ue.player.setVolume(E.get_volume()),$(".video-container").removeClass("no-opacity")}catch(e){}},readyLooks:function(){Ue.setBGimage(Ee)},setBGimage:function(e){if(void 0!==e&&!ae){var t=new Image;t.onload=function(){var e=new ColorThief,o=e.getColor(t);"/"!=window.location.pathname&&(document.getElementsByTagName("body")[0].style.backgroundColor=B.rgbToHsl(o,!0),$("meta[name=theme-color]").attr("content",B.rgbToHex(o[0],o[1],o[2])))},t.crossOrigin="Anonymous",t.src="https://zoff.no:8080/https://img.youtube.com/vi/"+e+"/mqdefault.jpg"}},set_width:function(e){$(".video-container").width(e)},notifyUser:function(e,t){if(t=t.replace(/\\\'/g,"'").replace(/"/g,"'").replace(/&/g,"&"),"granted"===Notification.permission&&document.hidden){var o=new Notification("Now Playing",{body:t,icon:"https://i.ytimg.com/vi/"+e+"/mqdefault.jpg",iconUrl:"http://i.ytimg.com/vi/"+e+"/mqdefault.jpg"});o.onclick=function(e){window.focus(),this.cancel()},setTimeout(function(){o.close()},5e3)}},setup_all_listeners:function(){a(),o(),s(),l(),c()},onYouTubeIframeAPIReady:function(){Ue.player=new YT.Player("player",{videoId:Ee,playerVars:{rel:"0",wmode:"transparent",controls:"0",iv_load_policy:"3",theme:"light",color:"white",showinfo:0},events:{onReady:Ue.onPlayerReady,onStateChange:Ue.onPlayerStateChange,onError:Ue.errorHandler}})},durationSetter:function(){if(void 0!==duration)try{Ue.stopInterval||(ie=!0),dMinutes=Math.floor(duration/60),dSeconds=duration-60*dMinutes,currDurr=void 0!==Ue.player.getCurrentTime()?Math.floor(Ue.player.getCurrentTime()):Le,currDurr>duration&&(currDurr=duration),minutes=Math.floor(currDurr/60),seconds=currDurr-60*minutes,document.getElementById("duration").innerHTML=B.pad(minutes)+":"+B.pad(seconds)+"
/ "+B.pad(dMinutes)+":"+B.pad(dSeconds),per=100/duration*currDurr,per>=100?per=100:0===duration&&(per=0),$("#bar").width(per+"%")}catch(e){}Ue.stopInterval||setTimeout(Ue.durationSetter,1e3)},loadPlayer:function(){if(1==$("script[src='https://www.youtube.com/iframe_api']").length)try{Ue.onYouTubeIframeAPIReady()}catch(e){console.error("Seems YouTube iFrame script isn't correctly loaded. Please reload the page.")}else Se=document.createElement("script"),Se.src="https://www.youtube.com/iframe_api",Te=document.getElementsByTagName("script")[0],Te.parentNode.insertBefore(Se,Te)}},qe={stopInterval:!1,initYoutubeControls:function(){!B.mobilecheck()||/iPad|iPhone|iPod/.test(navigator.userAgent)||window.MSStream||$("#controls").appendTo("#playbar"),qe.initControls()},initControls:function(){document.getElementById("volume-button").addEventListener("click",qe.mute_video),document.getElementById("playpause").addEventListener("click",qe.play_pause),document.getElementById("fullscreen").addEventListener("click",qe.fullscreen)},initSlider:function(){try{vol=E.get_volume()}catch(e){}$("#volume").slider({min:0,max:100,value:vol,range:"min",animate:!0,slide:function(e,t){qe.setVolume(t.value);try{E.set_volume(t.value)}catch(e){}}}),qe.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(){1==Ue.player.getPlayerState()?(Ue.player.pauseVideo(),!B.mobilecheck()||/iPad|iPhone|iPod/.test(navigator.userAgent)||window.MSStream||(document.getElementById("player").style.display="none",$(".video-container").toggleClass("click-through"),$(".page-footer").toggleClass("padding-bottom-extra"))):2!=Ue.player.getPlayerState()&&0!==Ue.player.getPlayerState()||(Ue.player.playVideo(),!B.mobilecheck()||/iPad|iPhone|iPod/.test(navigator.userAgent)||window.MSStream||(document.getElementById("player").style.display="block",$(".video-container").toggleClass("click-through"),$(".page-footer").toggleClass("padding-bottom-extra")))},play_pause_show:function(){1==document.getElementById("pause").className.split(" ").length&&$("#pause").toggleClass("hide"),2==document.getElementById("play").className.split(" ").length&&$("#play").toggleClass("hide");
+},settings:function(){$("#qS").toggleClass("hide")},changeQuality:function(e){Ue.player.getPlaybackQuality!=e&&(Ue.player.setPlaybackQuality(e),Ue.player.getPlaybackQuality()),$("#qS").toggleClass("hide")},mute_video:function(){Ue.player.isMuted()?(Ue.player.unMute(),qe.choose_button(Ue.player.getVolume(),!1)):(qe.choose_button(0,!0),Ue.player.mute())},setVolume:function(e){Ue.player.setVolume(e),qe.choose_button(e,!1),Ue.player.isMuted()&&Ue.player.unMute()},choose_button:function(e,t){t?(1==document.getElementById("v-full").className.split(" ").length&&$("#v-full").toggleClass("hide"),1==document.getElementById("v-medium").className.split(" ").length&&$("#v-medium").toggleClass("hide"),1==document.getElementById("v-low").className.split(" ").length&&$("#v-low").toggleClass("hide"),2==document.getElementById("v-mute").className.split(" ").length&&$("#v-mute").toggleClass("hide")):e>=0&&e<=33?(1==document.getElementById("v-full").className.split(" ").length&&$("#v-full").toggleClass("hide"),1==document.getElementById("v-medium").className.split(" ").length&&$("#v-medium").toggleClass("hide"),2==document.getElementById("v-low").className.split(" ").length&&$("#v-low").toggleClass("hide"),1==document.getElementById("v-mute").className.split(" ").length&&$("#v-mute").toggleClass("hide")):e>=34&&e<=66?(1==document.getElementById("v-full").className.split(" ").length&&$("#v-full").toggleClass("hide"),2==document.getElementById("v-medium").className.split(" ").length&&$("#v-medium").toggleClass("hide"),1==document.getElementById("v-low").className.split(" ").length&&$("#v-low").toggleClass("hide"),1==document.getElementById("v-mute").className.split(" ").length&&$("#v-mute").toggleClass("hide")):e>=67&&e<=100&&(2==document.getElementById("v-full").className.split(" ").length&&$("#v-full").toggleClass("hide"),1==document.getElementById("v-medium").className.split(" ").length&&$("#v-medium").toggleClass("hide"),1==document.getElementById("v-low").className.split(" ").length&&$("#v-low").toggleClass("hide"),1==document.getElementById("v-mute").className.split(" ").length&&$("#v-mute").toggleClass("hide"))},playPause:function(){state=Ue.player.getPlayerState(),button=document.getElementById("playpause"),1==state?Ue.player.pauseVideo():2==state&&Ue.player.playVideo()},volumeOptions:function(){Ue.player.isMuted()?(Ue.player.unMute(),vol=Ue.player.getVolume(),$("#volume").slider("value",Ue.player.getVolume())):(Ue.player.mute(),$("#volume").slider("value",0))},hoverMute:function(e){vol=Ue.player.getVolume()}},He={submitArray:[],submitArrayExpected:null,showSearch:function(){$("#search-wrapper").toggleClass("hide"),B.mobilecheck()&&$(".search_input").focus(),$("#song-title").toggleClass("hide"),$("#results").toggleClass("hide"),$("#results").empty(),$("#search-btn i").toggleClass("mdi-navigation-close"),$("#search-btn i").toggleClass("mdi-action-search"),$("#search").focus()},search:function(e){if(void 0!==$e&&void 0!==we||($e=$("#temp-results-container"),we=$("#empty-results-container").html()),$(".search_results").html(""),""!==e){Y=!0;var t=encodeURIComponent(e),o="https://www.googleapis.com/youtube/v3/search?key="+V+"&videoEmbeddable=true&part=id&fields=items(id)&type=video&order=viewCount&safeSearch=none&maxResults=25";o+="&q="+t,q&&(o+="&videoCategoryId=10");var a="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+V+"&id=";B.contains($("#search_loader").attr("class").split(" "),"hide")&&$("#search_loader").removeClass("hide"),B.contains($("#results").attr("class").split(" "),"hide")&&$("#results").removeClass("hide"),$.ajax({type:"GET",url:o,dataType:"jsonp",success:function(e){0===e.items.length?($("
"+we+"
").appendTo($("#results")).show("blind",83.33),B.contains($("#search_loader").attr("class").split(" "),"hide")||$("#search_loader").addClass("hide")):e.items&&($.each(e.items,function(e,t){a+=t.id.videoId+","}),$.ajax({type:"GET",url:a,dataType:"jsonp",success:function(e){var t="",o=$($e);$.each(e.items,function(e,a){var n=a.contentDetails.duration;if(secs=He.durationToSeconds(n),!longsongs||secs<720){Ie=a.snippet.title,enc_title=Ie,ke=a.id,n=n.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s"),thumb=a.snippet.thumbnails.medium.url;var i=o;i.find(".search-title").text(Ie),i.find(".result_info").text(n),i.find(".thumb").attr("data-original",thumb),i.find("#add-many").attr("data-video-id",ke),i.find("#add-many").attr("data-video-title",enc_title),i.find("#add-many").attr("data-video-length",secs),i.find("#temp-results").attr("data-video-id",ke),i.find("#temp-results").attr("data-video-title",enc_title),i.find("#temp-results").attr("data-video-length",secs),t+=i.html()}}),$("
"+t+"
").appendTo($("#results")).show("blind",83.33*(e.items.length-1)),setTimeout(function(){$(".thumb").lazyload({container:$("#results")})},250),B.contains($("#search_loader").attr("class").split(" "),"hide")||$("#search_loader").addClass("hide"),$(".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,o,a,n){var i=encodeURIComponent(e+" "+t),s="https://www.googleapis.com/youtube/v3/search?key="+V+"&videoEmbeddable=true&part=id,snippet&fields=items(id,snippet)&type=video&order=relevance&safeSearch=none&maxResults=10";s+="&q="+i;var l="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+V+"&id=";t=t.split(" ");var r=e.split("-");r=r.join(" ").split(" "),$.ajax({type:"GET",url:s,dataType:"jsonp",success:function(n){if(0===n.items.length){He.readySubmit(!1,{totalLength:a-1}),B.log("------------------------------"),B.log("NO MATCH FOR:"),B.log("Spotify title: "+e+" "+t.join(" ")),B.log("Spotify length: "+o),B.log("------------------------------");var i=$("
"+pe+"
");i.find(".extra-add-text").text(e+" - "+t.join(" ")),i.find(".extra-add-text").attr("title",e+" - "+t.join(" ")),i.find(".extra-button-search").attr("data-text",e+" - "+t.join(" ")),$(".not-imported-container").append(i.html()),$(".not-imported").removeClass("hide")}else n.items.length>0&&($.each(n.items,function(e,t){l+=t.id.videoId+","}),$.ajax({type:"GET",url:l,dataType:"jsonp",success:function(n){if(n.items.length>0){var i=!1;if($.each(n.items,function(o,n){var s=He.durationToSeconds(n.contentDetails.duration),l=!1;if($.each(r,function(o,a){return n.snippet.title.toLowerCase().indexOf(a.toLowerCase())!=-1&&n.snippet.title.toLowerCase().indexOf("cover")==-1&&e.toLowerCase().indexOf("cover")==-1&&(n.snippet.title.toLowerCase().indexOf("remix")==-1&&e.toLowerCase().indexOf("remix")==-1||n.snippet.title.toLowerCase().indexOf("remix")!=-1&&e.toLowerCase().indexOf("remix")!=-1||n.snippet.title.toLowerCase().indexOf(t[0].toLowerCase())!=-1||n.snippet.channelTitle.toLowerCase().indexOf(t[0].toLowerCase())!=-1||n.snippet.channelTitle.toLowerCase().indexOf("vevo")!=-1)||(l=!0),!1}),!l)return i=!0,He.readySubmit(!0,{id:n.id,title:n.snippet.title,duration:s,totalLength:a-1}),!1}),!i){He.readySubmit(!1,{totalLength:a-1}),B.log("------------------------------"),B.log("NO MATCH FOR:"),B.log("Spotify title: "+e+" "+t.join(" ")),B.log("Spotify length: "+o),B.log("------------------------------");var s=$("
"+pe+"
");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===He.submitArrayExpected&&(He.submitArrayExpected=t.totalLength),e?He.submitArray.push(t):He.submitArrayExpected-=1,He.submitArray.length-1==He.submitArrayExpected&&($.each(He.submitArray,function(e,t){He.submit(t.id,t.title,t.duration,!0,e,He.submitArray.length-1)}),document.getElementById("import_spotify").disabled=!1,$("#import_spotify").removeClass("hide"),$("#playlist_loader_spotify").addClass("hide"),He.submitArray=[],He.submitArrayExpected=null)},submitAndClose:function(e,t,o){He.submit(e,t,o,!1,0,1),$("#results").html(""),He.showSearch(),document.getElementById("search").value="",$("#results").html="",$(".main").removeClass("blurT"),$("#controls").removeClass("blurT"),$(".main").removeClass("clickthrough")},importPlaylist:function(e,t){token="";var o,a;void 0!==t&&(token="&pageToken="+t),playlist_url="https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=49&key="+V+"&playlistId="+e+token,ye?(a="html",o={"Content-Type":"application/json",Authorization:"Bearer "+fe.access_token}):(o={},a="jsonp"),$.ajax({type:"GET",url:playlist_url,dataType:a,headers:o,success:function(o){if(o.error)if("playlistItemsNotAccessible"==o.error.errors[0].reason){var a=y(29);window.callback=function(o){fe=o,fe.state==a?(ye=!0,setTimeout(function(){ye=!1,fe={}},1e3*fe.expires_in),He.importPlaylist(e,t)):(fe="",console.error("Nonce doesn't match")),youtube_window.close(),window.callback=""},youtube_window=window.open("/o_callback#youtube=true&nonce="+a,"","width=600, height=600")}else B.log(o.error),document.getElementById("import").disabled=!1,$("#playlist_loader").addClass("hide"),$("#import").removeClass("hide"),Materialize.toast("It seems you've entered a invalid url.",4e3);else{var n="";"string"==typeof o&&(o=$.parseJSON(o)),$.each(o.items,function(e,t){n+=t.contentDetails.videoId+","}),He.addVideos(n,!0),o.nextPageToken&&He.importPlaylist(e,o.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,o){He.backgroundSearch(o.track.name,o.track.artists.map(function(e){return e.name}).join(" "),Math.floor(o.track.duration_ms/1e3),e.total,t+e.offset)}),e.next&&He.importSpotifyPlaylist(e.next)},error:function(){document.getElementById("import_spotify").disabled=!1,$("#import_spotify").removeClass("hide"),$("#playlist_loader_spotify").addClass("hide"),Materialize.toast("It seems you've entered a invalid url.",4e3)}})},addVideos:function(e,t){var o="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key=***REMOVED***&id=";o+=e,$.ajax({type:"POST",url:o,dataType:"jsonp",success:function(e){var o=0,a=[];$.each(e.items,function(e,n){var i=He.durationToSeconds(n.contentDetails.duration);(!longsongs||i<720)&&(enc_title=n.snippet.title,o+=1,a.push({id:n.id,enc_title:enc_title,duration:i,playlist:t}))}),$.each(a,function(e,t){He.submit(t.id,t.enc_title,t.duration,t.playlist,e,o)})}})},submit:function(e,t,o,a,n,i){Me.emit("add",{id:e,title:decodeURIComponent(t),adminpass:F,list:A.toLowerCase(),duration:o,playlist:a,num:n,total:i})},durationToSeconds:function(e){var t=e.match(R);return hours=parseInt(t[12])||0,minutes=parseInt(t[14])||0,seconds=parseInt(t[16])||0,60*hours*60+60*minutes+seconds}},Fe={catchUserSuggests:function(e,t){if(t)Fe.createSuggested(e);else for(var o in e)Fe.createSuggested(e[o]);Fe.checkUserEmpty()},createSuggested:function(e){var t=e.duration,o=e.id,a=e.title,n=Math.floor(t/60),i=t-60*n;duration=n+"m "+i+"s";var s=P.generateSong({id:o,title:a,length:t,duration:duration},!1,!1,!1,!0);$("#user-suggest-html").append(s)},fetchYoutubeSuggests:function(e){var t="https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+e+"&type=video&key="+V,o="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+V+"&id=";$.ajax({type:"GET",url:t,dataType:"jsonp",success:function(e){$.each(e.items.slice(0,5),function(e,t){o+=t.id.videoId+","}),$.ajax({type:"GET",url:o,dataType:"jsonp",success:function(e){$("#suggest-song-html").empty(),$.each(e.items,function(e,t){var o=t.contentDetails.duration,a=He.durationToSeconds(o),n=t.id,i=t.snippet.title;o=o.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s"),$("#suggest-song-html").append(P.generateSong({id:n,title:i,length:a,duration:o},!1,!1,!1))})}})}})},checkUserEmpty:function(){var e=$("#user-suggest-html").children().length;0===e?B.contains($("#user_suggests").attr("class").split(" "),"hide")||$("#user_suggests").addClass("hide"):$("#user_suggests").removeClass("hide")}}}();
\ No newline at end of file
diff --git a/static/js/list.js b/static/js/list.js
index bac331b3..a1e85065 100755
--- a/static/js/list.js
+++ b/static/js/list.js
@@ -1,6 +1,7 @@
var List = {
empty: false,
+ page: 0,
channel_function: function(msg)
{
@@ -25,28 +26,36 @@ var List = {
},
insertAtBeginning: function(song_info, transition) {
- var add = List.generateSong(song_info, transition, false, true, false);
+ var display = List.page == 0 ? "" : "none";
+ var add = List.generateSong(song_info, transition, false, true, false, display, false);
$("#wrapper").append(add);
},
insertAtIndex: function(song_info, transition) {
var i = List.getIndexOfSong(song_info.id);
+ var display = "none";
if(!song_info.now_playing){
-
- var add = List.generateSong(song_info, transition, false, true, false);
+ if(i >= List.page && i < List.page + 19) display = "block"
+ var add = List.generateSong(song_info, transition, false, true, false, display, false);
if(i === 0) {
$("#wrapper").prepend(add);
} else {
$("#wrapper > div:nth-child(" + (i) + ")").after(add);
}
- }
- var added = $("#wrapper").children()[i];
-
- if(transition)
- {
- setTimeout(function(){
- $(added).css("height", 66);
- },5);
+ var added = $("#wrapper").children()[i];
+ $(added).css("display", display);
+ if(display == "block" && $("#wrapper").children().length >= List.page + 21){
+ $($("#wrapper").children()[List.page + 20]).css("display", "none");
+ } else if(i < List.page && $("#wrapper").children().length - (List.page + 1) >= 0){
+ $($("#wrapper").children()[List.page - 1]).css("display", "block");
+ } else if($("#wrapper").children().length > List.page + 20){
+ $($("#wrapper").children()[List.page + 20]).css("display", "block");
+ }
+ if(transition){
+ setTimeout(function(){
+ $(added).css("height", 66);
+ },5);
+ }
}
},
@@ -54,9 +63,10 @@ var List = {
{
if(list_html === undefined) list_html = $("#list-song-html").html();
full_playlist = msg;
+ List.can_fit = (($("main").height()) / 66);
List.sortList();
- $("#wrapper").empty();
+ $("#wrapper").empty();
Helper.log("---------------------------");
Helper.log("---------FULL PLAYLIST-----");
@@ -66,10 +76,20 @@ var List = {
if(full_playlist.length > 1){
$.each(full_playlist, function(j, current_song){
if(!current_song.now_playing){ //check that the song isnt playing
- $("#wrapper").append(List.generateSong(current_song, false, lazy_load, true));
+ $("#wrapper").append(List.generateSong(current_song, false, lazy_load, true, false, "", true));
}
});
-
+ if($("#wrapper").children().length > 20 && !$("#pageButtons").length){
+ $('
').insertAfter("#wrapper");
+ $(".prev_page").toggleClass("hide");
+ $(".next_page_hide").css("display","none");
+ } else if(!$("#pageButtons").length){
+ $('
').insertAfter("#wrapper");
+ $(".prev_page").toggleClass("hide");
+ $(".next_page").toggleClass("hide");
+ $(".next_page_hide").css("display","inline-block");
+ $(".prev_page_hide").css("display","inline-block");
+ }
if(lazy_load){
if(Helper.mobilecheck()) $(".list-image").lazyload({});
@@ -83,12 +103,56 @@ var List = {
}else{
List.empty = true;
$("#wrapper").append("
The playlist is empty.");
+ if(!$("#pageButtons").length){
+ $('
').insertAfter("#wrapper");
+ $(".prev_page").toggleClass("hide");
+ $(".next_page").toggleClass("hide");
+ $(".next_page_hide").css("display","inline-block");
+ $(".prev_page_hide").css("display","inline-block");
+ }
}
$("#settings").css("visibility", "visible");
$("#settings").css("opacity", "1");
$("#wrapper").css("opacity", "1");
},
+ dynamicContentPage: function(way){
+ if(way == 1){
+ $("#wrapper").children().slice(List.page, List.page + 20).hide();
+ List.page = List.page + 20;
+ $("#wrapper").children().slice(List.page, List.page + 20).show();
+ if(List.page > 0 && $(".prev_page").hasClass("hide")){
+ $(".prev_page").toggleClass("hide");
+ $(".prev_page_hide").css("display", "none");
+ }
+
+ if(List.page + 20 >= $("#wrapper").children().length){
+ $(".next_page_hide").css("display", "inline-block");
+ $(".next_page").css("display", "none");
+ }
+ //$("#wrapper").scrollTop(0);
+ } else {
+ $("#wrapper").children().slice(List.page - 20, List.page).show();
+ $("#wrapper").children().slice(List.page, List.page + 20).hide();
+ List.page = List.page - 20;
+ //$("#wrapper").scrollTop(0);
+ if(List.page == 0 && !$(".prev_page").hasClass("hide")){
+ $(".prev_page").toggleClass("hide");
+ $(".prev_page_hide").css("display", "inline-block");
+ } else if($(".prev_page").hasClass("hide")){
+ $(".prev_page_hide").css("display", "inline-block");
+ } else {
+ $(".prev_page_hide").css("display", "none");
+ }
+
+ if(List.page + 20 < $("#wrapper").children().length){
+ $(".next_page_hide").css("display", "none");
+ $(".next_page").css("display", "inline-block");
+ }
+ }
+ $("#pageNumber").html((List.page / 20) + 1);
+ },
+
added_song: function(added){
var now_playing;
@@ -106,7 +170,14 @@ var List = {
}
$("#empty-channel-message").remove();
List.insertAtIndex(added, true);
-
+ if($("#wrapper").children().length > List.page + 20){
+ $(".next_page_hide").css("display", "none");
+ $(".next_page").removeClass("hide");
+ $(".next_page").css("display", "inline-block");
+ } else {
+ $(".next_page_hide").css("display", "inline-block");
+ $(".next_page").css("display", "none");
+ }
},
deleted_song: function(deleted){
@@ -120,20 +191,43 @@ var List = {
{
$("#"+deleted).remove();
full_playlist.splice(List.getIndexOfSong(deleted), 1);
+ if(index < List.page && $("#wrapper").children().length - (List.page + 1) >= 0){
+ $($("#wrapper").children()[List.page - 1]).css("display", "block");
+ } else if($("#wrapper").children().length > List.page + 19){
+ $($("#wrapper").children()[List.page + 19]).css("display", "block");
+ }
+ if(List.page >= $("#wrapper").children().length){
+ List.dynamicContentPage(-1);
+ } else if(List.page + 20 >= $("#wrapper").children().length){
+ $(".next_page_hide").css("display", "inline-block");
+ $(".next_page").css("display", "none");
+ }
}, 305);
- document.getElementById('wrapper').scrollTop += 1;
- document.getElementById('wrapper').scrollTop += -1;
}catch(err){
full_playlist.splice(List.getIndexOfSong(deleted), 1);
- if(!List.empty)
+ if(!List.empty){
$("#wrapper").children()[$("#wrapper").children().length-1].remove();
+ if(index < List.page && $("#wrapper").children().length - (List.page + 1) >= 0){
+ $($("#wrapper").children()[List.page - 1]).css("display", "block");
+ } else if($("#wrapper").children().length > List.page + 20){
+ $($("#wrapper").children()[List.page + 19]).css("display", "block");
+ }
+ }
}
+
if(full_playlist.length <= 2){
List.empty = true;
$("#wrapper").append("
The playlist is empty.");
}
$("#suggested-"+deleted).remove();
+ if(List.page + 20 < $("#wrapper").children().length){
+ $(".next_page_hide").css("display", "none");
+ $(".next_page").css("display", "inline-block");
+ }
+ if(List.page >= $("#wrapper").children().length){
+ List.dynamicContentPage(-1);
+ }
Suggestions.checkUserEmpty();
},
@@ -170,6 +264,9 @@ var List = {
$("#wrapper").append("
The playlist is empty.");
}
List.insertAtIndex(full_playlist[length-1], false);
+ if($("#wrapper").children().length >= List.page + 20){
+ $($("#wrapper").children()[List.page + 20]).css("display", "block");
+ }
document.getElementById('wrapper').scrollTop += 1;
document.getElementById('wrapper').scrollTop += -1;
}catch(e){}
@@ -304,7 +401,7 @@ var List = {
}
},
- generateSong: function(song_info, transition, lazy, list, user)
+ generateSong: function(song_info, transition, lazy, list, user, display, initial)
{
if(list_html === undefined) list_html = $("#list-song-html").html();
var video_id = song_info.id;
@@ -329,7 +426,9 @@ var List = {
song.find(".list-votes").text(video_votes);
song.find("#list-song").attr("id", video_id);
song.find(".vote-container").attr("title", video_title);
-
+ if((($("#wrapper").children().length >= 20) && initial) || display == "none"){
+ song.find(".card").css("display", "none");
+ }
attr = ".vote-container";
del_attr = "del";
}else if(!list){
diff --git a/static/js/listeners.js b/static/js/listeners.js
index 761147a0..6f7db6c1 100755
--- a/static/js/listeners.js
+++ b/static/js/listeners.js
@@ -21,7 +21,7 @@ var SAMPLE_RATE = 6000; // 6 seconds
var lastSample = Date.now();
var began = false;
var i = -1;
-var lazy_load = true;
+var lazy_load = false;
var embed = false;
var autoplay = true;
var durationBegun = false;
@@ -408,6 +408,14 @@ $(document).on("click", "#closePlayer", function(e){
$("#closePlayer").remove();
});
+$(document).on("click", ".prev_page", function(){
+ List.dynamicContentPage(-1);
+});
+
+$(document).on("click", ".next_page", function(){
+ List.dynamicContentPage(1);
+});
+
$(document).on('click', '#toast-container', function(){
$(".toast").fadeOut(function(){
$(".toast").remove();
@@ -643,6 +651,7 @@ $(document).on("click", ".chat-link", function(e){
$("#wrapper").css("display", "none");
$("#suggestions").css("display", "none");
$("#text-chat-input").focus();
+ $("#pageButtons").css("display", "none");
});
$(document).on("click", ".playlist-link", function(e){
@@ -650,6 +659,7 @@ $(document).on("click", ".playlist-link", function(e){
$("#chatPlaylist").css("display", "none");
$("#wrapper").css("display", "block");
$("#suggestions").css("display", "none");
+ $("#pageButtons").css("display", "block");
});
$(document).on("click", ".suggested-link", function(e){
@@ -657,6 +667,7 @@ $(document).on("click", ".suggested-link", function(e){
$("#chatPlaylist").css("display", "none");
$("#wrapper").css("display", "none");
$("#suggestions").css("display", "block");
+ $("#pageButtons").css("display", "none");
});
$(document).on("click", ".import-spotify-auth", function(e){
@@ -804,7 +815,7 @@ $(document).on("mousemove", "#playlist", function(e)
if(((y <= 80 && y >= 48)) && $("#wrapper").scrollTop() > 0){
$("#top-button").removeClass("hide");
Helper.addClass("#bottom-button", "hide");
- }else if(y >= $("#playlist").height() - 18 && $("#wrapper").scrollTop() < $("#wrapper")[0].scrollHeight - $("#wrapper").height() - 1){
+ }else if(y >= $("#playlist").height() - 45 && y <= $("#playlist").height() - 18 && $("#wrapper").scrollTop() < $("#wrapper")[0].scrollHeight - $("#wrapper").height() - 1){
$("#bottom-button").removeClass("hide");
Helper.addClass("#top-button", "hide");
}else{