mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 18:00:23 +00:00
Reorganized files and added script to convert old lists
This commit is contained in:
2006
js/iscroll.js
Executable file
2006
js/iscroll.js
Executable file
File diff suppressed because it is too large
Load Diff
114
js/list.js
Executable file
114
js/list.js
Executable file
@@ -0,0 +1,114 @@
|
|||||||
|
var list;
|
||||||
|
var toSend = "";
|
||||||
|
var sendURL;
|
||||||
|
var myScroll;
|
||||||
|
var scroller = false;
|
||||||
|
var showToggle =true;
|
||||||
|
var chan = $("#chan").html();
|
||||||
|
|
||||||
|
function updateList()
|
||||||
|
{
|
||||||
|
console.log("updating list");
|
||||||
|
list = $.ajax({ type: "GET",
|
||||||
|
url: "php/change.php",
|
||||||
|
async: false
|
||||||
|
}).responseText;
|
||||||
|
list = $.parseJSON(list);
|
||||||
|
list[0].shift();
|
||||||
|
list[3].shift();
|
||||||
|
list[2].shift();
|
||||||
|
|
||||||
|
setTimeout(function()
|
||||||
|
{
|
||||||
|
|
||||||
|
$("#wrapper").empty();
|
||||||
|
|
||||||
|
$.each(list[0], function(j, listeID){
|
||||||
|
|
||||||
|
var video_title=list[3][j].replace(/\\\'/, "'");
|
||||||
|
var video_id = list[0][j];
|
||||||
|
var video_thumb = "http://i.ytimg.com/vi/"+video_id+"/default.jpg";
|
||||||
|
var odd = ""; if(j%2==0)odd=" oddlist";
|
||||||
|
var finalhtml="<div id='result' class='result lresult"+odd+"'>"+
|
||||||
|
"<img src='"+video_thumb+"' class='thumb lthumb'>"+
|
||||||
|
"<div class='ltitle'>"+video_title+"</div>"+
|
||||||
|
"<div class='votes'>"+list[2][j]+"<a onclick=\"vote('"+video_id+"','pos');\" id='plus'>+</a><a onclick=\"vote('"+video_id+"','neg');\" id='minus'>-</a></div>"+
|
||||||
|
"</div>";
|
||||||
|
$("#wrapper").append(finalhtml);
|
||||||
|
});
|
||||||
|
if($("#playlist").height() > $("#player").height())
|
||||||
|
{
|
||||||
|
if(!window.mobilecheck())
|
||||||
|
{
|
||||||
|
$("#playlist").css({height: $("#player").height() - $("#buttons").height()-4});
|
||||||
|
$("#playlist").css({overflow: "hidden"});
|
||||||
|
if(scroller == false)
|
||||||
|
{
|
||||||
|
myScroll = new IScroll('#playlist', {
|
||||||
|
mouseWheel: true,
|
||||||
|
scrollbars: false,
|
||||||
|
scrollY: true,
|
||||||
|
interactiveScrollbars: false
|
||||||
|
});
|
||||||
|
scroller = true;
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
myScroll.refresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(window.mobilecheck())
|
||||||
|
{
|
||||||
|
document.getElementById("player").style.display="none";
|
||||||
|
ytplayer.pauseVideo();
|
||||||
|
}
|
||||||
|
}, 2500);
|
||||||
|
}
|
||||||
|
|
||||||
|
function vote(id, vote){
|
||||||
|
console.log($.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: "php/change.php",
|
||||||
|
async: false,
|
||||||
|
data: "vote="+vote+"&id="+id,
|
||||||
|
success: function() {
|
||||||
|
console.log("voted "+vote+" on "+id);
|
||||||
|
if(vote=="pos"){ $("#playlist").addClass("success");}
|
||||||
|
else{ $("#playlist").addClass("error");}
|
||||||
|
},
|
||||||
|
}).responseText);
|
||||||
|
setTimeout(function(){
|
||||||
|
$("#playlist").removeClass("success");
|
||||||
|
$("#playlist").removeClass("error");
|
||||||
|
},1500);
|
||||||
|
}
|
||||||
|
|
||||||
|
function skip(){
|
||||||
|
console.log($.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: "php/change.php",
|
||||||
|
async: false,
|
||||||
|
data: "skip",
|
||||||
|
success: function() {
|
||||||
|
console.log("voted to skip song");
|
||||||
|
$("#buttons").addClass("success");
|
||||||
|
},
|
||||||
|
}).responseText);
|
||||||
|
setTimeout(function(){
|
||||||
|
$("#playlist").removeClass("success");
|
||||||
|
},1500);
|
||||||
|
}
|
||||||
|
|
||||||
|
function show(){
|
||||||
|
if(showToggle){
|
||||||
|
showToggle=false;
|
||||||
|
$("#toptitle").empty();
|
||||||
|
$("#chan").addClass("bigChan");
|
||||||
|
$("#chan").html("zoff.no/"+chan);
|
||||||
|
}else{
|
||||||
|
showToggle=true;
|
||||||
|
$("#toptitle").html("Zöff");
|
||||||
|
$("#chan").removeClass("bigChan");
|
||||||
|
$("#chan").html(chan);
|
||||||
|
}
|
||||||
|
}
|
||||||
95
js/search.js
Executable file
95
js/search.js
Executable file
@@ -0,0 +1,95 @@
|
|||||||
|
$(document).ready(function()
|
||||||
|
{
|
||||||
|
|
||||||
|
$("#search").focus();
|
||||||
|
|
||||||
|
$('#base').bind("keyup keypress", function(e) {
|
||||||
|
var code = e.keyCode || e.which;
|
||||||
|
if (code == 13) {
|
||||||
|
e.preventDefault();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var old_input="";
|
||||||
|
$(".search_input").focus();
|
||||||
|
setTimeout(function(){
|
||||||
|
$(".search_input").keyup(function()
|
||||||
|
{
|
||||||
|
var search_input = $(this).val();
|
||||||
|
if(search_input != old_input){
|
||||||
|
old_input=search_input;
|
||||||
|
$("#results").html('');
|
||||||
|
if(search_input != ""){
|
||||||
|
var keyword= encodeURIComponent(search_input);
|
||||||
|
|
||||||
|
var yt_url='http://gdata.youtube.com/feeds/api/videos?q='+keyword+'&format=5&max-results=25&v=2&alt=jsonc';
|
||||||
|
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: yt_url,
|
||||||
|
dataType:"jsonp",
|
||||||
|
success: function(response)
|
||||||
|
{
|
||||||
|
if(response.data.items)
|
||||||
|
{
|
||||||
|
$.each(response.data.items, function(i,data)
|
||||||
|
{
|
||||||
|
if(data.duration > 720){return;}
|
||||||
|
var video_title=encodeURIComponent(data.title).replace(/'/g, "\\\'");
|
||||||
|
var views=data.viewCount;
|
||||||
|
var video_thumb = "http://i.ytimg.com/vi/"+data.id+"/default.jpg";
|
||||||
|
var length = Math.floor(data.duration/60)+":"+(data.duration-Math.floor(data.duration / 60)*60);
|
||||||
|
var finalhtml="<div id='result' class='result' onclick=\"submit('"+data.id+"','"+video_title+"');\">"+
|
||||||
|
"<img src='"+video_thumb+"' class='thumb'>"+
|
||||||
|
"<div id='title'>"+data.title+""+
|
||||||
|
"<span class='result_info'>"+data.uploader+" • "+views+" views • "+length+"</span></div></div>";
|
||||||
|
|
||||||
|
$("#results").append(finalhtml);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#video").html("<div id='no'>No Video</div>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, 300);
|
||||||
|
});
|
||||||
|
|
||||||
|
function submit(id,title){
|
||||||
|
console.log($.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: "php/change.php",
|
||||||
|
async: false,
|
||||||
|
data: "v="+id+"&n="+title,
|
||||||
|
success: function() {
|
||||||
|
console.log("added "+id);
|
||||||
|
document.getElementById("search").value = "";
|
||||||
|
$("#search").addClass("success");
|
||||||
|
$("#results").html('');
|
||||||
|
},
|
||||||
|
error: function(){
|
||||||
|
console.log("error in adding");
|
||||||
|
document.getElementById("search").value = "";
|
||||||
|
$("#search").addClass("error");
|
||||||
|
$("#results").html('');
|
||||||
|
}
|
||||||
|
}).responseText);
|
||||||
|
|
||||||
|
$("#search").focus();
|
||||||
|
|
||||||
|
setTimeout(function(){
|
||||||
|
$("#search").removeClass("success");
|
||||||
|
$("#search").removeClass("error");
|
||||||
|
},1500);
|
||||||
|
}
|
||||||
|
|
||||||
|
// if(reply=="added"){$("#search").removeClass('success'); $("#search").addClass('success');}
|
||||||
5
js/visualize.js
Executable file
5
js/visualize.js
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
/*$(document).ready(function()
|
||||||
|
{
|
||||||
|
context = new AudioContext();
|
||||||
|
src = context.createMediaElementSource($('#player video'));
|
||||||
|
}*/
|
||||||
292
js/youtube.js
Executable file
292
js/youtube.js
Executable file
@@ -0,0 +1,292 @@
|
|||||||
|
/*
|
||||||
|
This is the youtube player sync and control file.
|
||||||
|
|
||||||
|
Fetcher sangen som spilles fra JSON filen
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
var timeDifference;
|
||||||
|
var wasPaused;
|
||||||
|
var beginning;
|
||||||
|
var diffVideo;
|
||||||
|
var serverTime;
|
||||||
|
var url;
|
||||||
|
var response;
|
||||||
|
var url
|
||||||
|
var tag
|
||||||
|
var firstScriptTag;
|
||||||
|
var ytplayer;
|
||||||
|
var syncInterval;
|
||||||
|
var title;
|
||||||
|
var interval;
|
||||||
|
var viewers;
|
||||||
|
var changed = false;
|
||||||
|
|
||||||
|
$(document).ready(function()
|
||||||
|
{
|
||||||
|
window.mobilecheck = function() {
|
||||||
|
var check = false;
|
||||||
|
(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera);
|
||||||
|
return check; }
|
||||||
|
|
||||||
|
updateList();
|
||||||
|
timeDifference;
|
||||||
|
wasPaused = false;
|
||||||
|
beginning = true;
|
||||||
|
diffVideo = false;
|
||||||
|
interval = false;
|
||||||
|
response = $.ajax({ type: "GET",
|
||||||
|
url: "php/change.php",
|
||||||
|
async: false
|
||||||
|
}).responseText;
|
||||||
|
|
||||||
|
url = $.parseJSON(response);
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: 'get',
|
||||||
|
url: 'php/timedifference.php',
|
||||||
|
data: "abcde",
|
||||||
|
async: false,
|
||||||
|
success: function(data) {
|
||||||
|
timeDifference = $.parseJSON(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
console.log("timediff:"+timeDifference[0]);
|
||||||
|
|
||||||
|
response = url[0][0];
|
||||||
|
|
||||||
|
tag = document.createElement('script');
|
||||||
|
tag.src = "https://www.youtube.com/iframe_api";
|
||||||
|
firstScriptTag = document.getElementsByTagName('script')[0];
|
||||||
|
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
|
||||||
|
if(window.mobilecheck()){
|
||||||
|
syncInterval = setInterval(getTime, 50000);
|
||||||
|
listInterval = setInterval(updateList, 50000);
|
||||||
|
document.getElementById("search").blur();
|
||||||
|
}else{
|
||||||
|
syncInterval = setInterval(getTime, 5000);
|
||||||
|
listInterval = setInterval(updateList, 10000);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function onYouTubeIframeAPIReady() {
|
||||||
|
ytplayer = new YT.Player('player', {
|
||||||
|
height: window.height*0.75,
|
||||||
|
width: window.width*0.6,
|
||||||
|
videoId: response,
|
||||||
|
playerVars: { controls: "1" , iv_load_policy: "3", theme:"light", rel:"0", color:"white" },
|
||||||
|
events: {
|
||||||
|
'onReady': onPlayerReady,
|
||||||
|
'onStateChange': onPlayerStateChange,
|
||||||
|
'onError': errorHandler
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
|
||||||
|
Legger sangen inn i <div>en, via swfobject
|
||||||
|
|
||||||
|
|
||||||
|
var params = { allowScriptAccess: "always"};
|
||||||
|
var atts = { id: "myytplayer" };
|
||||||
|
swfobject.embedSWF("http://www.youtube.com/v/"+response+"?enablejsapi=1&playerapiid=ytplayer&version=3&controls=1&iv_load_policy=3",
|
||||||
|
"ytapiplayer", "825", "462", "8", null, null, params, atts);
|
||||||
|
|
||||||
|
|
||||||
|
eventlistener for når playeren endres
|
||||||
|
*/
|
||||||
|
function onPlayerStateChange(newState) {
|
||||||
|
console.log("new state: "+newState.data);
|
||||||
|
console.log("beginning: "+beginning);
|
||||||
|
//ytplayer.seekTo(15);
|
||||||
|
if((newState.data == 0 && checkEnd()) || (newState.data == 1 && checkEnd()))
|
||||||
|
{
|
||||||
|
console.log("nummer 1");
|
||||||
|
startNextSong();
|
||||||
|
ytplayer.pauseVideo();
|
||||||
|
wasPaused = false;
|
||||||
|
}else if(newState.data == 1 && (wasPaused && !beginning))
|
||||||
|
{
|
||||||
|
console.log("unpaused");
|
||||||
|
beginning = false;
|
||||||
|
wasPaused = false;
|
||||||
|
syncInterval = setInterval(getTime, 5000);
|
||||||
|
getTime();
|
||||||
|
}else if(newState.data == 2)
|
||||||
|
{
|
||||||
|
clearInterval(syncInterval);
|
||||||
|
interval = true;
|
||||||
|
wasPaused = true;
|
||||||
|
beginning = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkEnd()
|
||||||
|
{
|
||||||
|
console.log("sjekker om brukeren spolte");
|
||||||
|
$.ajax({
|
||||||
|
type: 'get',
|
||||||
|
url: 'php/timedifference.php',
|
||||||
|
data: "abcde",
|
||||||
|
async: false,
|
||||||
|
success: function(data) {
|
||||||
|
timeDifference = $.parseJSON(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(parseInt(timeDifference[0]) > ytplayer.getDuration())
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function startNextSong()
|
||||||
|
{
|
||||||
|
|
||||||
|
//console.log(getTime());
|
||||||
|
if(checkEnd() && !changed)
|
||||||
|
{
|
||||||
|
setTimeout(function(){
|
||||||
|
response = $.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "php/change.php",
|
||||||
|
async: false,
|
||||||
|
data: "thisUrl="+response+"&act=save",
|
||||||
|
|
||||||
|
success: function() {
|
||||||
|
console.log("saved song-switch - "+response);
|
||||||
|
}
|
||||||
|
}).responseText;
|
||||||
|
|
||||||
|
console.log("next video: "+response);
|
||||||
|
getTitle(response);
|
||||||
|
ytplayer.loadVideoById(response);
|
||||||
|
beginning = true;
|
||||||
|
|
||||||
|
},2500);
|
||||||
|
updateList();
|
||||||
|
changed = true
|
||||||
|
setTimeout(function() {
|
||||||
|
changed = false;
|
||||||
|
syncInterval = setInterval(getTime, 5000);
|
||||||
|
interval = true;
|
||||||
|
console.log("starter intervallen. Interval: " + interval);
|
||||||
|
}, 2500);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getTime()
|
||||||
|
{
|
||||||
|
console.log("utenfor if test" + wasPaused);
|
||||||
|
if(!wasPaused)
|
||||||
|
{
|
||||||
|
console.log("sjekker om brukeren spolte");
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: 'get',
|
||||||
|
url: 'php/timedifference.php',
|
||||||
|
data: "abcde",
|
||||||
|
async: false,
|
||||||
|
success: function(data) {
|
||||||
|
timeDifference = $.parseJSON(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
console.log("current song: "+response);
|
||||||
|
console.log("song in database: "+timeDifference[1]);
|
||||||
|
if(parseInt(timeDifference[2]) + 1> ytplayer.getCurrentTime() + parseInt(timeDifference[3]) && ytplayer.getPlayerState() == 0)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}else if(ytplayer.getCurrentTime() + parseInt(timeDifference[3]) > parseInt(timeDifference[2]) + 5 || (ytplayer.getCurrentTime() + parseInt(timeDifference[3]) < parseInt(timeDifference[2]) - 5 && ytplayer.getPlayerState() != 0 && ytplayer.getPlayerState() != 3))
|
||||||
|
{
|
||||||
|
if(parseInt(timeDifference[0]) > ytplayer.getDuration())
|
||||||
|
{
|
||||||
|
console.log("burde ikke søke, men hoppe til neste sang");
|
||||||
|
}
|
||||||
|
ytplayer.seekTo(timeDifference[0]);
|
||||||
|
ytplayer.pauseVideo();
|
||||||
|
ytplayer.playVideo();
|
||||||
|
getTitle();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
//if(interval){syncInterval = setInterval(getTime, 5000);interval = false;}
|
||||||
|
|
||||||
|
if(response != timeDifference[1])
|
||||||
|
{
|
||||||
|
clearInterval(syncInterval);
|
||||||
|
console.log("forskjellige videoer!!");
|
||||||
|
ytplayer.pauseVideo();
|
||||||
|
ytplayer.loadVideoById(timeDifference[1]);
|
||||||
|
setTimeout(function(){
|
||||||
|
//console.log(response);
|
||||||
|
diffVideo = true;
|
||||||
|
beginning = true;
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "php/change.php",
|
||||||
|
async: false,
|
||||||
|
data: "thisUrl=123abcprompeprompe&act=save",
|
||||||
|
success: function(data)
|
||||||
|
{
|
||||||
|
response = timeDifference[1];
|
||||||
|
getTitle();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
syncInterval = setInterval(getTime, 5000);
|
||||||
|
},2500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getTitle()
|
||||||
|
{
|
||||||
|
$.ajax({ type: "GET",
|
||||||
|
url: "php/timedifference.php",
|
||||||
|
async: false,
|
||||||
|
success: function(data) {
|
||||||
|
viewers = $.parseJSON(data);
|
||||||
|
var outPutWord = viewers[5] > 1 ? "viewers" : "viewer";
|
||||||
|
var title= viewers[4].replace(/\\\'/, "'");
|
||||||
|
document.title = viewers[4] + " • Zöff";
|
||||||
|
document.getElementsByName('v')[0].placeholder = viewers[4] + " • " + viewers[5] + " " + outPutWord;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function errorHandler(newState)
|
||||||
|
{
|
||||||
|
setTimeout(function(){
|
||||||
|
response = $.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "php/change.php",
|
||||||
|
async: false,
|
||||||
|
data: "thisUrl="+response+"&act=delete",
|
||||||
|
|
||||||
|
success: function() {
|
||||||
|
console.log("error! deleted video");
|
||||||
|
}
|
||||||
|
}).responseText;
|
||||||
|
ytplayer.loadVideoById(response);
|
||||||
|
},2500);
|
||||||
|
/*
|
||||||
|
setTimeout(function(){
|
||||||
|
response = $.ajax({ type: "GET",
|
||||||
|
url: "change.php",
|
||||||
|
async: false
|
||||||
|
}).responseText;
|
||||||
|
var url = $.parseJSON(response);
|
||||||
|
response = url[0][0];
|
||||||
|
|
||||||
|
ytplayer.loadVideoById(response);
|
||||||
|
},2500);*/
|
||||||
|
}
|
||||||
|
function onPlayerReady(event) {
|
||||||
|
//ytplayer = document.getElementById("myytplayer");
|
||||||
|
// ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
|
||||||
|
//ytplayer.addEventListener("onError", "errorHandler");
|
||||||
|
getTime();
|
||||||
|
ytplayer.playVideo();
|
||||||
|
getTitle();
|
||||||
|
}
|
||||||
@@ -1 +1 @@
|
|||||||
[["GMoud3dub6U","tenz01ic1D8","byp94CCWKSI","87JabMupbB8","iMP4BwvJSwo","_ovdm2yX4MA","2CGF_Z3yZAo","fIMz0nTp2sA","kHue-HaXXzg","cN-ZjkDBaX8","J_DV9b0x7v4","nI_MVldpxDQ","-N6O0xI3A2o","MXXRHpVed3M","Eo-KmOd3i7s","w15oWDh02K4","aZg2pEokcFw","bLLMPnPK0fU","afOH2SGDiK0","bESGLojNYSo","kTHNpusq654","LOZuxwVk7TU","CduA0TULnow","4fndeDfaWCg","ZyhrYis509A","ZKuOB1HGWMY","O1OTWCd40bc","cNvjKkXFBvU","Z7YrFLIyYIw","smwj7ISnwXM","cjEwjDvh_2c","7x3CCKaOlfU","qQ31INpjXX0","EpbjEttizy8","JjgU4EypX0w","Id7e-9WaxMc","5LILChvqUo4","TssyfiAWOrA","a_426RiwST8","si81bIoZRJQ","yzC4hFK5P3g","QzEwx4BoYI0","jRx5PrAlUdY","N6xoFhkthls","51Bpx63wkbA","rVeMiVU77wo","2A85xBaLYWc","mllXxyHTzfg","aHjpOzsQ9YI","4kjpZ_sPxzc","Qc9c12q3mrc","YlUKcNNmywk","6Cp6mKbRTQY","6_TtYYiKi_0","Pmv8aQKO6k0","ETfiUYij5UE","mpaPBCBjSVc","3O1_3zBUKM8","6l7J1i1OkKs","_t2TzJOyops","S8jhXmfdRFY","ChzbYiYHOUU","NRWUoDpo2fo","41WtJps5XqQ","lrsNeqANI3k","s8Qa2t71aFE","pt3PcA4UvPA","rQu6_Iv_-H0","HVVUXv1WaGE","-1jPUB7gRyg","llyiQ4I-mcQ"],[1412934952],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],["\u00c5ge Aleksandersen - Levva Livet","Avicii - Levels","Jason Derulo - \\"The Other Side\\" (Official HD Music Video)","Bodybangers Inc. - Kompani Linge 2012","LMFAO - Sexy And I Know It (Mord Fustang Remix)","Avicii - Levels","Jason Derulo - Don\\'t Wanna Go Home (Official Video)","E-Type ft. Na Na - Life","Demi Lovato - Let It Go (from \\"Frozen\\") [Official]","\u00c5ge Aleksandersen - Fire Pils og en Pizza - Rockefeller, 03.2009. HQ.","CaramellDansen (Full Version + Lyrics)","Daddy DJ","Guy Sebastian - Like a Drum","Vengaboys - We\\'re Going to Ibiza!","\\'N Sync - Bye Bye Bye","Gigi D\\'Agostino - L\\'Amour Toujours ( Official Video )","H\u00f8vlerivisa","D.D.E. - Bondekn\u00f8l","dde vi ska f\u00e6st","Lady Gaga - Poker Face","Katy Perry - Hot N Cold","Britney Spears - Toxic","Britney Spears - Oops!...I Did It Again","Backstreet Boys - I Want It That Way","Aqua - Barbie Girl","Robert er du neger?","The Weeknd - Wicked Games (Explicit)","WEKEED - Wild Child","Tuuli - Do It Like A Dru [[WoW Parody]]","tribalistas ja sei namorar","Pelle Politibil Intro Sang","Peaches - Rosa Helikopter","Albatraoz - Albatraoz","David Guetta - Lovers On The Sun (Official Audio) ft Sam Martin","Ludacris - Move Bitch [Dirty]","Ellie Goulding - High For This (The Weeknd Cover)","Porter Robinson - Language (Official Video)","Maroon 5 - It Was Always You (Audio) SPEEDED UP VERSION","The Black Keys - Lonely Boy [Official Music Video]","Porter Robinson - Divinity ft. Amy Millan","\u304d\u3083\u308a\u30fc\u3071\u307f\u3085\u3071\u307f\u3085 - PONPONPON , Kyary Pamyu Pamyu - PONPONPON","Kyla La Grange - Cut Your Teeth (Kygo Remix)","O-Zone - Dragostea Din Tei (Ultra Music)","Datarock - Fa Fa Fa [Official Music Video]","R\u00f6yksopp - Happy Up Here [Official Music Video]","alt-J (\u2206) Breezeblocks","The Weeknd - Wicked Games (LYRICS)","The Hobbit: The Desolation of Smaug - Ed Sheeran \\"I See Fire\\" [HD]","Crystallize - Lindsey Stirling (Dubstep Violin Original Song)","Lemaitre - Cut to Black (Official)","Avicii - Addicted To You","Red Hot Chili Peppers - Californication [Official Music Video]","Avicii - Hey Brother","Lemaitre - Fiction (Official Video)","twenty one pilots: Guns For Hands [OFFICIAL VIDEO]","Biggie Smalls feat. Thomas the Tank Engine","The Black Keys - Tighten Up [Official Music Video]","Naughty Boy - La La La ft. Sam Smith","YG - My Nigga (Remix) (Explicit) ft. Lil Wayne, Rich Homie Quan, Meek Mill, Nicki Minaj","Skrillex - Ruffneck - FULL Flex [Music Video]","Otto Knows - Million Voices","Tim Berg - Bromance (Aviciis Arena Mix) (Official Video HD)","alt-J - Left Hand Free (Official Video) 1","Ms Mr - Hurricane (CHVRCHES Remix)","Hermione Mix | Pogo & Jeesh","Zedd - Shave It (Original Mix)","GTA 5 Official Trailer Song\/Music - \\"Sleepwalking\\" by The Chain Gang of 1974 (Full GTA V Song)","Zedd - Dovregubben (Original Mix)","Hedegaard - Happy Home (Matoma Official Remix)","Aqua - Doctor Jones","Vengaboys - Boom, Boom, Boom, Boom!!"],[1],[]]
|
[["87JabMupbB8","iMP4BwvJSwo","_ovdm2yX4MA","2CGF_Z3yZAo","fIMz0nTp2sA","kHue-HaXXzg","cN-ZjkDBaX8","J_DV9b0x7v4","nI_MVldpxDQ","-N6O0xI3A2o","MXXRHpVed3M","Eo-KmOd3i7s","w15oWDh02K4","aZg2pEokcFw","bLLMPnPK0fU","afOH2SGDiK0","bESGLojNYSo","kTHNpusq654","LOZuxwVk7TU","CduA0TULnow","4fndeDfaWCg","ZyhrYis509A","ZKuOB1HGWMY","O1OTWCd40bc","cNvjKkXFBvU","Z7YrFLIyYIw","smwj7ISnwXM","cjEwjDvh_2c","7x3CCKaOlfU","qQ31INpjXX0","EpbjEttizy8","JjgU4EypX0w","Id7e-9WaxMc","5LILChvqUo4","TssyfiAWOrA","a_426RiwST8","si81bIoZRJQ","yzC4hFK5P3g","QzEwx4BoYI0","jRx5PrAlUdY","N6xoFhkthls","51Bpx63wkbA","rVeMiVU77wo","2A85xBaLYWc","mllXxyHTzfg","aHjpOzsQ9YI","4kjpZ_sPxzc","Qc9c12q3mrc","YlUKcNNmywk","6Cp6mKbRTQY","6_TtYYiKi_0","Pmv8aQKO6k0","ETfiUYij5UE","mpaPBCBjSVc","3O1_3zBUKM8","6l7J1i1OkKs","_t2TzJOyops","S8jhXmfdRFY","ChzbYiYHOUU","NRWUoDpo2fo","41WtJps5XqQ","lrsNeqANI3k","s8Qa2t71aFE","pt3PcA4UvPA","rQu6_Iv_-H0","HVVUXv1WaGE","-1jPUB7gRyg","llyiQ4I-mcQ","GMoud3dub6U","tenz01ic1D8","byp94CCWKSI"],[1412936400],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],["Bodybangers Inc. - Kompani Linge 2012","LMFAO - Sexy And I Know It (Mord Fustang Remix)","Avicii - Levels","Jason Derulo - Don\\'t Wanna Go Home (Official Video)","E-Type ft. Na Na - Life","Demi Lovato - Let It Go (from \\"Frozen\\") [Official]","\u00c5ge Aleksandersen - Fire Pils og en Pizza - Rockefeller, 03.2009. HQ.","CaramellDansen (Full Version + Lyrics)","Daddy DJ","Guy Sebastian - Like a Drum","Vengaboys - We\\'re Going to Ibiza!","\\'N Sync - Bye Bye Bye","Gigi D\\'Agostino - L\\'Amour Toujours ( Official Video )","H\u00f8vlerivisa","D.D.E. - Bondekn\u00f8l","dde vi ska f\u00e6st","Lady Gaga - Poker Face","Katy Perry - Hot N Cold","Britney Spears - Toxic","Britney Spears - Oops!...I Did It Again","Backstreet Boys - I Want It That Way","Aqua - Barbie Girl","Robert er du neger?","The Weeknd - Wicked Games (Explicit)","WEKEED - Wild Child","Tuuli - Do It Like A Dru [[WoW Parody]]","tribalistas ja sei namorar","Pelle Politibil Intro Sang","Peaches - Rosa Helikopter","Albatraoz - Albatraoz","David Guetta - Lovers On The Sun (Official Audio) ft Sam Martin","Ludacris - Move Bitch [Dirty]","Ellie Goulding - High For This (The Weeknd Cover)","Porter Robinson - Language (Official Video)","Maroon 5 - It Was Always You (Audio) SPEEDED UP VERSION","The Black Keys - Lonely Boy [Official Music Video]","Porter Robinson - Divinity ft. Amy Millan","\u304d\u3083\u308a\u30fc\u3071\u307f\u3085\u3071\u307f\u3085 - PONPONPON , Kyary Pamyu Pamyu - PONPONPON","Kyla La Grange - Cut Your Teeth (Kygo Remix)","O-Zone - Dragostea Din Tei (Ultra Music)","Datarock - Fa Fa Fa [Official Music Video]","R\u00f6yksopp - Happy Up Here [Official Music Video]","alt-J (\u2206) Breezeblocks","The Weeknd - Wicked Games (LYRICS)","The Hobbit: The Desolation of Smaug - Ed Sheeran \\"I See Fire\\" [HD]","Crystallize - Lindsey Stirling (Dubstep Violin Original Song)","Lemaitre - Cut to Black (Official)","Avicii - Addicted To You","Red Hot Chili Peppers - Californication [Official Music Video]","Avicii - Hey Brother","Lemaitre - Fiction (Official Video)","twenty one pilots: Guns For Hands [OFFICIAL VIDEO]","Biggie Smalls feat. Thomas the Tank Engine","The Black Keys - Tighten Up [Official Music Video]","Naughty Boy - La La La ft. Sam Smith","YG - My Nigga (Remix) (Explicit) ft. Lil Wayne, Rich Homie Quan, Meek Mill, Nicki Minaj","Skrillex - Ruffneck - FULL Flex [Music Video]","Otto Knows - Million Voices","Tim Berg - Bromance (Aviciis Arena Mix) (Official Video HD)","alt-J - Left Hand Free (Official Video) 1","Ms Mr - Hurricane (CHVRCHES Remix)","Hermione Mix | Pogo & Jeesh","Zedd - Shave It (Original Mix)","GTA 5 Official Trailer Song\/Music - \\"Sleepwalking\\" by The Chain Gang of 1974 (Full GTA V Song)","Zedd - Dovregubben (Original Mix)","Hedegaard - Happy Home (Matoma Official Remix)","Aqua - Doctor Jones","Vengaboys - Boom, Boom, Boom, Boom!!","\u00c5ge Aleksandersen - Levva Livet","Avicii - Levels","Jason Derulo - \\"The Other Side\\" (Official HD Music Video)"],[2],[]]
|
||||||
42
php/admin.php
Normal file
42
php/admin.php
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<?php include("header.php"); ?>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="top vcent centered">
|
||||||
|
<div id="change" class="small">
|
||||||
|
|
||||||
|
<div class="main"></div>
|
||||||
|
|
||||||
|
<h1>Admin Settingspanel</h1>
|
||||||
|
|
||||||
|
<form name="ufo" action="" class="daform nomargin" id="base" method="get" onsubmit="null;" >
|
||||||
|
<label>Anyone can vote:
|
||||||
|
<label> <input type="radio" name="vote" value="yes">yes</input></label>
|
||||||
|
<label> <input type="radio" name="vote" value="no">no</input></label>
|
||||||
|
</label><br>
|
||||||
|
<label>Anyone can add songs:
|
||||||
|
<label><input type="radio" name="addSongs" value="yes">yes</input></label>
|
||||||
|
<label><input type="radio" name="addSongs" value="no">no</input></label>
|
||||||
|
</label><br>
|
||||||
|
<label>Allow long songs:
|
||||||
|
<label><input type="radio" name="longSongs" value="yes">yes</input></label>
|
||||||
|
<label><input type="radio" name="longSongs" value="no">no</input></label>
|
||||||
|
</label><br>
|
||||||
|
<label>Allow only music:
|
||||||
|
<label><input type="radio" name="onlyMusic" value="yes">yes</input></label>
|
||||||
|
<label><input type="radio" name="onlyMusic" value="no">no</input></label>
|
||||||
|
</label><br>
|
||||||
|
<label>Paste playlist here: <input type="text" name="playlist"></label><br>
|
||||||
|
<input type="button" value="Save Settings">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer small centered top anim bottom">© 2014 <a class="anim" href="//nixo.no">Nixo</a> & <a class="anim" href="//kasperrt.no">KasperRT</a> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
124
php/change.php
Executable file
124
php/change.php
Executable file
@@ -0,0 +1,124 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$guid=substr(base64_encode(crc32($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_ACCEPT_LANGUAGE'])), 0, 8);
|
||||||
|
|
||||||
|
if(isset($_REQUEST['test'])){
|
||||||
|
echo($guid);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
//save or del
|
||||||
|
$list = explode("/", htmlspecialchars(strtolower($_SERVER["REQUEST_URI"])));
|
||||||
|
if($list[1]==""||!isset($list[1])||count($list)<=1)$list="videos";
|
||||||
|
else $list=$list[1];
|
||||||
|
$list="../lists/".$list.".json";
|
||||||
|
|
||||||
|
$f = @fopen($list,"x");
|
||||||
|
if($f){ fwrite($f,"[[],[".time()."],[],[],[],[]]"); fclose($f); }
|
||||||
|
$file = file_get_contents($list);
|
||||||
|
$data = json_decode($file);
|
||||||
|
$save = false;
|
||||||
|
|
||||||
|
if(isset($_REQUEST['thisUrl'])){
|
||||||
|
$string = $_REQUEST['thisUrl'];
|
||||||
|
$action = isset($_REQUEST['act']);
|
||||||
|
|
||||||
|
if($data[0][0] == $string)
|
||||||
|
{
|
||||||
|
if($action=="save"){ //next song
|
||||||
|
$save = true;
|
||||||
|
nextSong();
|
||||||
|
}
|
||||||
|
else if($action=="delete"){
|
||||||
|
array_shift($data[0]);
|
||||||
|
array_shift($data[3]);
|
||||||
|
array_shift($data[2]);
|
||||||
|
}
|
||||||
|
file_put_contents($list, json_encode($data));
|
||||||
|
}
|
||||||
|
if($action == "save" && !$save) //count views
|
||||||
|
{
|
||||||
|
$data[4][0] = $data[4][0] + 1;
|
||||||
|
file_put_contents($list, json_encode($data));
|
||||||
|
}
|
||||||
|
echo $data[0][0];
|
||||||
|
}
|
||||||
|
else if(isset($_GET['v'])){ //add
|
||||||
|
$video = htmlspecialchars($_GET['v']);
|
||||||
|
$name = htmlspecialchars($_GET['n']);
|
||||||
|
if(!in_array($video, $data[0]))
|
||||||
|
{
|
||||||
|
//array_push($data[0], $video);
|
||||||
|
$i = array_search(0, $data[2]);
|
||||||
|
if($i == 0)$i=1;
|
||||||
|
else if($i == false)$i=count($data[2]);
|
||||||
|
array_splice($data[3], $i, 0, array($name));
|
||||||
|
array_splice($data[2], $i, 0, array(1));
|
||||||
|
array_splice($data[0], $i, 0, array($video));
|
||||||
|
file_put_contents($list, json_encode($data));
|
||||||
|
print("added");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if(isset($_GET['vote'])){ //add vote
|
||||||
|
$vote=$_GET['vote'];
|
||||||
|
$id=$_GET['id'];
|
||||||
|
$i = array_search($id, $data[0]);
|
||||||
|
if($vote == 'neg'){$voteAdd = -1;}
|
||||||
|
else if($vote == 'pos'){$voteAdd = 1;}
|
||||||
|
$name = $data[3][$i];
|
||||||
|
$votes = $data[2][$i] + $voteAdd;
|
||||||
|
if($i == true && $votes >= 0){
|
||||||
|
|
||||||
|
//print_r($i);
|
||||||
|
// echo "IIII: ",$i;
|
||||||
|
unset($data[3][$i]);
|
||||||
|
unset($data[0][$i]);
|
||||||
|
unset($data[2][$i]);
|
||||||
|
$underVote = array_search($votes-1, $data[2]); #nenennenenen feiiiiiiiiiiiiiiiiil
|
||||||
|
|
||||||
|
if($underVote == 0)$underVote=1;
|
||||||
|
else if($underVote == false)$underVote=count($data[2]);
|
||||||
|
array_splice($data[3], $underVote, 0, array($name));
|
||||||
|
array_splice($data[2], $underVote, 0, array($votes));
|
||||||
|
array_splice($data[0], $underVote, 0, array($id));
|
||||||
|
file_put_contents($list, json_encode($data));
|
||||||
|
echo "Vote registrated. I hope";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(isset($_GET['skip'])){ //skip song request
|
||||||
|
$viewers=$data[4][0];
|
||||||
|
$skips=count($data[5]);
|
||||||
|
if(!in_array($guid, $data[5])){
|
||||||
|
array_push($data[5], $guid);
|
||||||
|
$skips+=1;
|
||||||
|
$data[5][0]=$skips;
|
||||||
|
if($skips>=$viewers/2){
|
||||||
|
nextSong();
|
||||||
|
echo("skipped!");
|
||||||
|
}
|
||||||
|
file_put_contents($list, json_encode($data));
|
||||||
|
}
|
||||||
|
echo($skips."/".$viewers);
|
||||||
|
|
||||||
|
}
|
||||||
|
else{ print($file); }
|
||||||
|
|
||||||
|
function nextSong(){
|
||||||
|
global $data;
|
||||||
|
array_push($data[0], $data[0][0]);
|
||||||
|
array_shift($data[0]);
|
||||||
|
|
||||||
|
array_push($data[2], 0); //reset votes
|
||||||
|
array_shift($data[2]);
|
||||||
|
|
||||||
|
array_push($data[3], $data[3][0]);
|
||||||
|
array_shift($data[3]);
|
||||||
|
|
||||||
|
array_shift($data[4]);
|
||||||
|
array_push($data[4], 1);
|
||||||
|
|
||||||
|
$data[5]=array();
|
||||||
|
$data[1][0] = time();
|
||||||
|
}
|
||||||
|
?>
|
||||||
30
php/convert_lists.php
Normal file
30
php/convert_lists.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if(isset($_GET["pass"]) && $_GET["pass"]=="bæsj"){
|
||||||
|
|
||||||
|
include("change.php");
|
||||||
|
|
||||||
|
$dir = scandir('../lists');
|
||||||
|
$channels = array();
|
||||||
|
foreach($dir as $file){
|
||||||
|
if(strpos($file, '.json') !== FALSE){
|
||||||
|
$name='./lists/'.$file;
|
||||||
|
$data = json_decode(file_get_contents($name));
|
||||||
|
unlink($name);
|
||||||
|
checkFile($name); //should create a new file with correct stuff, in change
|
||||||
|
processList($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
echo("kek");
|
||||||
|
}
|
||||||
|
|
||||||
|
function processList($list, $name){
|
||||||
|
foreach($list as $item){
|
||||||
|
//get id and title
|
||||||
|
addSong($name, $id, $title); //in change
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
6
php/header.php
Normal file
6
php/header.php
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<title>Zöff</title>
|
||||||
|
<meta name="author" content="Nicolas 'Nixo' Almagro Tonne & Kasper 'KasperRT' Rynning-Tønnesen">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/static/style.css" title="Default" />
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<link rel="icon" type="image/png" href="/static/favicon.png"/>
|
||||||
|
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300' rel='stylesheet' type='text/css'>
|
||||||
0
php/index.html
Normal file
0
php/index.html
Normal file
38
php/nochan.php
Executable file
38
php/nochan.php
Executable file
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if(isset($_GET['chan'])){
|
||||||
|
header('Location: '.$_GET['chan']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$dir = scandir('./lists');
|
||||||
|
$channels = array();
|
||||||
|
$time = 60*60*24*7*1; //1 uke
|
||||||
|
foreach($dir as $files){
|
||||||
|
if(strpos($files, '.json') !== FALSE){
|
||||||
|
if(time() - filemtime('./lists/'.$files) < $time){
|
||||||
|
array_push($channels, ucfirst(str_replace(".json", "", $files)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="bigchan nomargin">Zöff</div>
|
||||||
|
<form name="ufo" action="" class="daform nomargin" id="base" method="get" onsubmit="null;" >
|
||||||
|
<input list="searches" id="search" name="chan" type="text" class="search_input innbox" spellcheck="false" placeholder="Type Channel Name" autofocus/>
|
||||||
|
<datalist id="searches">
|
||||||
|
<?php foreach($channels as $channel){echo "<option value='".urldecode($channel)."'> ";} ?>
|
||||||
|
</datalist>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<center>
|
||||||
|
<div class="channels" id="channels">Active Channels<br>
|
||||||
|
<?php foreach($channels as $channel){echo "<a class='channel' href='/".$channel."'>".urldecode($channel)."</a>";} ?>
|
||||||
|
</div>
|
||||||
|
</center>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer small centered top anim bottom">© 2014 <a class="anim" href="//nixo.no">Nixo</a> & <a class="anim" href="//kasperrt.no">KasperRT</a> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
13
php/timedifference.php
Executable file
13
php/timedifference.php
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
$list = explode("/", htmlspecialchars(strtolower($_SERVER["REQUEST_URI"])));
|
||||||
|
if($list[1]==""||!isset($list[1])||count($list)<=1)$list="videos";
|
||||||
|
else $list=$list[1];
|
||||||
|
$list="../lists/".$list.".json";
|
||||||
|
$data = json_decode(file_get_contents($list));
|
||||||
|
$diff = (time() - $data[1][0]);
|
||||||
|
|
||||||
|
$returnArray = array($diff, $data[0][0], time(), $data[1][0], $data[3][0], $data[4][0]);
|
||||||
|
$returnArray = json_encode($returnArray);
|
||||||
|
|
||||||
|
echo $returnArray;
|
||||||
|
?>
|
||||||
8
php/videos.php
Executable file
8
php/videos.php
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
$list = htmlspecialchars($_REQUEST['list']);
|
||||||
|
if(!isset($_REQUEST['list']))$list="videos";
|
||||||
|
$filename = "../lists/".$list.'.json';
|
||||||
|
if(!file_exists($filename)){ $f=fopen($filename, "a+"); fwrite($f,"[]"); fclose($f);}
|
||||||
|
$file = file_get_contents($filename);
|
||||||
|
print($file);
|
||||||
|
?>
|
||||||
BIN
static/favicon.ico
Executable file
BIN
static/favicon.ico
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
84
static/style.css
Executable file
84
static/style.css
Executable file
@@ -0,0 +1,84 @@
|
|||||||
|
body{background:#FFF; margin:0;}
|
||||||
|
.top{
|
||||||
|
font-family: 'Open Sans', sans-serif; font-weight: 300; text-align: center;
|
||||||
|
animation: fadein .5s; -moz-animation: fadein .5s; -webkit-animation: fadein .5s; -o-animation: fadein .5s;
|
||||||
|
}
|
||||||
|
.top, .top a{color:#ed207f; text-decoration: none;}
|
||||||
|
.vcent{position: relative; top: 50%; -webkit-transform: translateY(-50%);}
|
||||||
|
|
||||||
|
|
||||||
|
.innbox, .innbox a{
|
||||||
|
width:90%; height: 50px; border-radius:7px; border:none; font-family: 'Open Sans', sans-serif; font-size: 25px; margin-bottom: 20px;
|
||||||
|
color:#f15; text-align: center;-webkit-transition:background 1s;-moz-transition:background 1s;-o-transition:background 1s; transition:background 1s;
|
||||||
|
}
|
||||||
|
.success{animation: fadecol 1.5s; -moz-animation: fadecol 1.5s; -webkit-animation: fadecol 1.5s; -o-animation: fadecol 1.5s;}
|
||||||
|
.error{animation: fadewrong 1.5s; -moz-animation: fadewrong 1.5s; -webkit-animation: fadewrong 1.5s; -o-animation: fadewrong 1.5s;}
|
||||||
|
.small{font-size: 5vw; color:#E2E2E2; display:block !important; text-decoration: none; }
|
||||||
|
/*.small:hover{color: #CCC;}*/
|
||||||
|
.big{font-size:180vh; position:absolute; top:-50%; color:#330A00 !important; z-index:-1; width: 100%; overflow: hidden; display: none;}
|
||||||
|
.footer a{color:#696969; text-decoration: none;}.footer a:hover {color:#ed207f;}
|
||||||
|
.footer{font-size: 15px; position:absolute; width:99%;color:#c0c0c0 !important; margin-top: 0; word-spacing: 2px;}
|
||||||
|
.bottom{bottom:10px;}
|
||||||
|
#channels{width:40%; min-width: 300px; padding-top: 4%; font-size: 25px;}
|
||||||
|
.channel{padding: 7px; display: inline-block; font-weight: bold; color: #646464 !important;font-size: 18px;}
|
||||||
|
.channel:hover{color:#ed207f !important;}
|
||||||
|
|
||||||
|
|
||||||
|
.anim{transition: all .20s ease-in-out; -moz-transition: all .20s ease-in-out; -webkit-transition: all .20s ease-in-out;}
|
||||||
|
.chan{color:#CCC; cursor:pointer; display: inline;}
|
||||||
|
.bigchan{color: #ed207f; font-size: 10vw; padding-top: 25%;}
|
||||||
|
|
||||||
|
#buttons{cursor: default; text-align: right;}
|
||||||
|
.skip{cursor: pointer; height: 25px; padding:8px 21px 0 0;}
|
||||||
|
|
||||||
|
#results{position:absolute; background-color: white; font-size: 14px; width:90%; margin-left: 5%; margin-top:-5px; z-index: 1; font-family: sans-serif;}
|
||||||
|
.result{border-bottom:none; padding: 3px 0 3px 10%; text-align: left; height: 55px; cursor: pointer;}
|
||||||
|
.result:hover{background-color: #DDD;}
|
||||||
|
#title{ padding-left: 20%; padding-top:10px; max-width: 76%; color:#ed207f; height: 36px;}
|
||||||
|
.result_info{color:#888; font-size: 12px; float:right;}
|
||||||
|
.thumb{height: 40px; width:80px; float: left;}
|
||||||
|
|
||||||
|
|
||||||
|
.main{width:90%; margin: 0 auto 0 auto;}
|
||||||
|
.playlist{background-color: #DADADA; width:20%; margin-left: 0px; display: inline-block; font-size: 14px; border-radius: 3px; vertical-align: top; /*overflow: hidden;*/ height: calc(87% - 183px); border-bottom:solid #c9c9c9 4px;}
|
||||||
|
.lresult{padding:0; height: 60px; border-top: none; cursor: default; background-color: #DADADA;}
|
||||||
|
.lthumb{height: 60px; margin-right: 10px; display: inline;}
|
||||||
|
.ltitle{ color:#ed207f; overflow: hidden; height: 60px; }
|
||||||
|
.oddlist{background-color: #EEE;}
|
||||||
|
|
||||||
|
.votes{float: right; position: relative; margin-top: -1.4em; padding:0 3 0 4; background-color: rgba(50,50,50,0.45); color:#000; border-radius: 1px;}
|
||||||
|
#plus, #minus {text-decoration: none; color:white; margin-left: 2px; padding-left: 3px; padding-right: 3px; }
|
||||||
|
#plus:hover,#minus:hover{background-color: #111;}
|
||||||
|
|
||||||
|
#player{height: 68%; height: calc(87% - 183px); width: 78%; border-radius: 3px; border-bottom:solid #c9c9c9 4px;}
|
||||||
|
#playlist{}
|
||||||
|
.nomargin{padding: 0;margin:0;}
|
||||||
|
|
||||||
|
@media (max-width: 1000px) {
|
||||||
|
#player{width: 100%; height:45%; margin-bottom: 20px;}
|
||||||
|
.playlist{width: 100%;}
|
||||||
|
.lresult{font-size: 40px; height: 90px; font-size: 50px;}
|
||||||
|
.votes{font-size: 42px; padding-right: 8px; height: 89px; line-height: 89px; padding-left: 20px; border-radius: 1px;}
|
||||||
|
.lthumb{height: 90px;}
|
||||||
|
#plus,#minus{padding-left: 24px; margin-left: 0; padding-right: 24px;}
|
||||||
|
#plus{border-right:solid 3px rgb(172, 172, 172);}
|
||||||
|
#search{text-align: left; height: 100px; font-size: 40px; border: solid 2px #ccc;}
|
||||||
|
#buttons{text-align: center; height: 80px;}
|
||||||
|
.skip{height: 50px;}
|
||||||
|
.vcent{
|
||||||
|
top: inherit;
|
||||||
|
-webkit-transform: translateY(0%);
|
||||||
|
}
|
||||||
|
#title{
|
||||||
|
font-size: 30px;
|
||||||
|
font-weight: bold;
|
||||||
|
overflow: hidden;
|
||||||
|
padding-left: 2%;
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
.footer{font-size: 40px; margin-top: 150px;}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes fadein{from {opacity:0;}to{opacity:1;}}@keyframes fadein{from{opacity:0;}to{opacity:1;}}@-moz-keyframes fadein{from{opacity:0;}to{opacity:1;}}@-o-keyframes fadein{from{opacity:0;}to{opacity:1;}}
|
||||||
|
@-webkit-keyframes fadecol{from {background-color:#00FF00;}to{background-color: #FFF;}}@keyframes fadecol{background-color: #00FF00;}to{background-color: #FFF;}}@-moz-keyframes fadecol{from{background-color: #00FF00;}to{background-color: #FFF;}}@-o-keyframes fadecol{background-color: #00FF00;}to{background-color: #FFF;}}
|
||||||
|
@-webkit-keyframes fadewrong{from {background-color:#FF0000;}to{background-color: #FFF;}}@keyframes fadewrong{background-color: #FF0000;}to{background-color: #FFF;}}@-moz-keyframes fadewrong{from{background-color: #FF0000;}to{background-color: #FFF;}}@-o-keyframes fadewrong{background-color: #FF0000;}to{background-color: #FFF;}}
|
||||||
Reference in New Issue
Block a user