From 870d0a5ed397f3e9b28406b03a5aa71e93adcc0a Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Sun, 18 Aug 2013 09:49:57 +0200 Subject: [PATCH] bumped some dependencies --- package.json | 10 +++++----- public/js/app.min.js | 2 +- public/js/home.min.js | 2 +- public/js/leaderboards.min.js | 2 +- views/layout.jade | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index d417e90..14e4fd5 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,9 @@ "async": "0.2.x", "canvas": "1.0.x", "connect-redis": "1.4.x", - "express": "3.2.x", - "jade": "0.30.x", - "nodemailer": "0.4.x", + "express": "3.3.x", + "jade": "0.34.x", + "nodemailer": "0.5.x", "redis": "0.7.x", "socket.io": "0.9.x" }, @@ -17,7 +17,7 @@ "JSONStream": "0.6.x" }, "engines": { - "node": "0.8.x" + "node": "0.10.x" }, "name": "binb", "scripts": { @@ -25,5 +25,5 @@ "start": "node app.js" }, "subdomain": "binb", - "version": "0.3.6-5" + "version": "0.3.6-7" } diff --git a/public/js/app.min.js b/public/js/app.min.js index f87cc04..f09e4f7 100644 --- a/public/js/app.min.js +++ b/public/js/app.min.js @@ -1 +1 @@ -(function(){var elapsedtime=0,DOM={},historycursor=0,historyvalues=[],ignoredplayers={},isplaying,jplayer,nickname,pvtmsgto,subscriber=false,roundpoints=0,roomname=window.location.pathname.replace("/",""),socket,stopanimation=false,touchplay,urlregex=/(https?:\/\/[\-A-Za-z0-9+&@#\/%?=~_()|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_()|])/,uri=window.location.protocol+"//"+window.location.host;var amstrings=["Yes, that's the artist. What about the title?","Exactly, now tell me the title!","Do you also know the title?"];var bmstrings=["Yeah true! do you like this track?","Good job!","Great!","Very well done!","Exactly!","Excellent!","Woohoo!"];var nmstrings=["Nope, sorry!","No way!","Fail","Nope","No","That's wrong","What?!","Wrong","Haha, what?!","You kidding?","Don't make me laugh","You mad?","Try again"];var states=["A song is already playing, please wait for the next one...","Game is about to start...","Game is over","New game will start soon..."];var tmstrings=["Yes, you guessed the title. Who is the artist?","Now tell me the artist!","Correct, do you also know the artist?"];String.prototype.encodeEntities=function(){return this.replace(/&/g,"&").replace(//g,">")};var addChatEntry=function(childNode){var li=$('
  • ');li.append(childNode);DOM.chat.append(li);DOM.chat[0].scrollTop=DOM.chat[0].scrollHeight};var addFeedback=function(txt,style){if(typeof style==="string"){var fbspan=$('');fbspan.text(txt);DOM.feedback.html(fbspan);DOM.guessbox.addClass(style);setTimeout(function(){DOM.guessbox.removeClass(style)},350);return}DOM.feedback.text(txt)};var addPrivate=function(usrname){if(pvtmsgto){clearPrivate()}if(nickname===usrname){return}DOM.recipient.css("margin-right","4px");DOM.recipient.text("To "+usrname+":");var width=DOM.recipient.outerWidth(true)+1;DOM.recipient.hide();DOM.messagebox.animate({width:"-="+width+"px"},"fast",function(){DOM.recipient.show()});var el=$(".name").filter(function(index){return $(this).text()===usrname});el.prevAll(".private").show();el.unbind("click");el.click(clearPrivate);pvtmsgto=usrname;DOM.messagebox.focus()};var addTrackInfo=function(data){if(touchplay){touchplay.removeClass("btn-success").addClass("btn-danger disabled");touchplay.html(' Wait')}isplaying=false;cassetteAnimation(Date.now()+5e3,false);var artistName=data.artistName.replace(/"/g,"""),trackName=data.trackName.replace(/"/g,"""),attrs="",rp="";var html='
  • ';html+='
    '+artistName+"
    ";html+='
    '+trackName+"
    ";if(roundpoints>0){rp="+"+roundpoints;if(roundpoints>3){var stand=7-roundpoints;attrs+='class="icons round-rank stand'+stand+'"'}}html+="
    '+rp+"
    ";html+='
  • ';DOM.tracks.prepend($(html))};var addVolumeControl=function(){var volumebutton=$('
    '+'
    '+'
    '+'
    '+'
    '+'
    '+"
    ").appendTo("#volume");var clicked=false,icon=volumebutton.find("#icon"),mouseisdown=false,mouseisover=false,oldvalue=1,volumecurrent=volumebutton.find("#volume-current"),volumehandle=volumebutton.find("#volume-handle"),volumeslider=volumebutton.find("#volume-slider"),volumetotal=volumebutton.find("#volume-total");var handleIcon=function(volume){if(volume===0){icon.removeClass().addClass("icons volume-none")}else if(volume<=.33){icon.removeClass().addClass("icons volume-low")}else if(volume<=.66){icon.removeClass().addClass("icons volume-medium")}else{icon.removeClass().addClass("icons volume-high")}};var handleVolumeMove=function(e){var railheight=volumetotal.height(),totaloffset=volumetotal.offset(),totalTop=parseInt(volumetotal.css("top").replace(/px/,""),10),newy=e.pageY-totaloffset.top,volume=(railheight-newy)/railheight;clicked=false;if(newy<0){newy=0}else if(newy>railheight){newy=railheight}volumecurrent.height(railheight-newy);volumecurrent.css("top",newy+totalTop);volumehandle.css("top",totalTop+newy-volumehandle.height()/2);volume=Math.max(0,volume);volume=Math.min(volume,1);setVolume(volume)};var loadFromCookie=function(){if(/volume\s*\=/.test(document.cookie)){var value=document.cookie.replace(/.*volume\s*\=\s*([^;]*);?.*/,"$1");value=parseFloat(value);positionVolumeHandle(value);setVolume(value);return}positionVolumeHandle(1)};var positionVolumeHandle=function(volume){if(!volumeslider.is(":visible")){volumeslider.show();positionVolumeHandle(volume);volumeslider.hide();return}var totalheight=volumetotal.height();var totalposition=volumetotal.position();var newtop=totalheight-totalheight*volume;volumecurrent.height(totalheight-newtop);volumecurrent.css("top",totalposition.top+newtop);volumehandle.css("top",totalposition.top+newtop-volumehandle.height()/2)};var setCookie=function(volume){var d=new Date;d.setTime(d.getTime()+31536e6);document.cookie="volume="+volume+";path=/;expires="+d.toGMTString()+";"};var setVolume=function(volume){handleIcon(volume);jplayer.jPlayer("volume",volume);oldvalue=volume;setCookie(volume)};volumebutton.find(".button").click(function(){if(!clicked){clicked=true;if(oldvalue!==0){handleIcon(0);jplayer.jPlayer("volume",0);positionVolumeHandle(0)}}else{clicked=false;if(oldvalue!==0){handleIcon(oldvalue);jplayer.jPlayer("volume",oldvalue);positionVolumeHandle(oldvalue)}}});volumebutton.hover(function(){mouseisover=true;volumeslider.show()},function(){mouseisover=false;if(!mouseisdown){volumeslider.hide()}});volumeslider.on("mouseover",function(){mouseisover=true}).on("mousedown",function(e){handleVolumeMove(e);mouseisdown=true;return false});$(document).on("mouseup",function(e){mouseisdown=false;if(!mouseisover){volumeslider.hide()}}).on("mousemove",function(e){if(mouseisdown){handleVolumeMove(e)}});loadFromCookie()};var alreadyInARoom=function(){var html='';html+='";$(html).appendTo(DOM.modal);DOM.modal.modal("show")};var cassetteAnimation=function(endtime,forward){var deg,factor,millisleft=endtime-Date.now(),offsetleft,offsetright,secleft=millisleft/1e3,width;if(stopanimation||millisleft<50){return}if(forward){if(touchplay){elapsedtime=30-Math.round(secleft)}DOM.countdown.text(secleft.toFixed(1));factor=secleft/30;width=148-148*factor;deg=360-360*factor;offsetleft=44-24*factor;offsetright=130-24*factor}else{DOM.countdown.text(Math.round(secleft));factor=secleft/5;width=148*factor;deg=360*factor;offsetleft=20+24*factor;offsetright=106+24*factor}DOM.progress.width(width);DOM.cassettewheels.css("transform","rotate("+deg+"deg)");DOM.tapeleft.css("left",offsetleft+"px");DOM.taperight.css("left",offsetright+"px");setTimeout(function(){cassetteAnimation(endtime,forward)},50)};var clearPrivate=function(){var width=DOM.recipient.outerWidth(true)+1;DOM.recipient.css("margin-right","0");DOM.recipient.text("");DOM.messagebox.animate({width:"+="+width+"px"},"fast");var el=$(".name").filter(function(index){return $(this).text()===pvtmsgto});el.prevAll(".private").hide();el.unbind("click");el.click(function(){addPrivate($(this).text())});pvtmsgto=null;DOM.messagebox.focus()};var countDown=function(endtime){var millisleft=endtime-Date.now();var secleft=millisleft/1e3;$(".modal-footer span").text(Math.round(secleft));if(millisleft<200){return}setTimeout(function(){countDown(endtime)},200)};var disconnect=function(){stopanimation=true;jplayer.jPlayer("stop");var errorspan=$('ERROR: You have disconnected.');addChatEntry(errorspan);addFeedback("Something wrong happened");DOM.users.empty()};var gameOver=function(podium){var html='';html+='";html+='";DOM.modal.append($(html));DOM.modal.modal("show");countDown(Date.now()+1e4)};var getChatMessage=function(chatmsg,from,to){if(ignoredplayers[from]){return}var prefix=from;var msgspan=$('');if(to){prefix=nickname===from?"(To "+to+")":"(From "+prefix+")";msgspan.addClass("private")}var msg=prefix+": "+chatmsg.replace(/<3/g,"♥");msgspan.html(urlize(msg));addChatEntry(msgspan)};var hideChat=function(){DOM.togglechat.text("Show chat").unbind("click");DOM.chatwrapper.toggle(300);DOM.tracks.animate({maxHeight:"434px"},300);DOM.togglechat.click(showChat)};var ignorePlayer=function(args,outcome){if(ignoredplayers[args[0]]){outcome.text("(From binb): "+args[0]+" is already ignored.");return addChatEntry(outcome)}socket.emit("ignore",args[0],function(player){if(player){ignoredplayers[player]=true;outcome.text("(From binb): "+player+" is now ignored.");return addChatEntry(outcome)}outcome.append("player not found.");addChatEntry(outcome)})};var invalidNickName=function(feedback){joinAnonymously(feedback+"
    Try with another one:")};var joinAnonymously=function(msg){if(/nickname\s*\=/.test(document.cookie)&&!msg){nickname=document.cookie.replace(/.*nickname\s*\=\s*([^;]*);?.*/,"$1");return socket.emit("joinanonymously",nickname,roomname)}if(DOM.modal.hasClass("in")){$(".modal-body p").html(msg);return $("#login").focus()}var html='";html+='";html+='';$(html).appendTo(DOM.modal);var login=$("#login");var button=$("#join");button.click(function(){if($.trim(login.val())!==""){nickname=login.val();socket.emit("joinanonymously",nickname,roomname)}else{var txt="Nickname can't be empty.";invalidNickName(''+txt+"")}login.val("")});login.keyup(function(event){if(event.keyCode===13){button.click()}});DOM.modal.modal("show");DOM.modal.on("shown",function(){login.focus()})};var jplayerReady=function(){socket.emit("loggedin",function(data){if(data){nickname=data;subscriber=true;return socket.emit("joinroom",roomname)}joinAnonymously()});if(!$.jPlayer.platform.mobile&&!$.jPlayer.platform.tablet){return addVolumeControl()}var touchbackdrop=$('
    '+'
    ").appendTo("#cassette");touchplay=$("#touch-play");touchplay.click(function(){if(!$(this).hasClass("btn-danger")){touchplay=null;jplayer.jPlayer("play",elapsedtime);touchbackdrop.remove()}})};var kickPlayer=function(args,outcome){outcome.append("you are not allowed to kick a player.");if(!subscriber){return addChatEntry(outcome)}var why=args[1]||"";socket.emit("kick",args[0],why,function(){addChatEntry(outcome)})};var loadTrack=function(previewUrl){jplayer.jPlayer("mute");jplayer.jPlayer("setMedia",{m4a:previewUrl})};var parseCommand=function(input){var inquotes=false,token="",tokens=[];for(var i=0;i Play')}jplayer.jPlayer("unmute");jplayer.jPlayer("play");DOM.guessbox.val("");isplaying=true;updateUsers(data.users);cassetteAnimation(Date.now()+3e4,true);if(data.counter===1){DOM.modal.modal("hide").empty();DOM.tracks.empty()}DOM.track.text(data.counter+"/"+data.tot);addFeedback("What is this song?")};var ready=function(usersData,trackscount,loggedin){if(!loggedin&&!/nickname\s*\=/.test(document.cookie)){document.cookie="nickname="+nickname+";path=/;"}DOM.modal.modal("hide").empty();$("#total-tracks span").text(trackscount);var msg=nickname+" joined the game";var joinspan=$('');joinspan.text(msg);addChatEntry(joinspan);updateUsers(usersData);DOM.messagebox.keydown(function(event){if(event.keyCode===13){var val=$.trim(DOM.messagebox.val());if(val!==""){if(pvtmsgto){socket.emit("sendchatmsg",val,pvtmsgto)}else if(/^\/[^ ]/.test(val)){slashCommandHandler(val)}else{socket.emit("sendchatmsg",val)}}DOM.messagebox.val("")}});DOM.guessbox.keydown(function(event){switch(event.keyCode){case 13:var guess=$.trim(DOM.guessbox.val());if(guess!==""){if(isplaying){socket.emit("guess",guess.toLowerCase())}else{addFeedback("You have to wait the next song...")}historyvalues.push(guess);if(historyvalues.length>20){historyvalues.splice(0,1)}historycursor=historyvalues.length}DOM.guessbox.val("");break;case 38:if(historycursor>0){DOM.guessbox.val(historyvalues[--historycursor])}break;case 40:if(historycursor(From binb): ');try{args=parseCommand(line)}catch(err){outcome.append(err.message);return addChatEntry(outcome)}var cmdname=args.shift();var command=slashcommands[cmdname.substr(1)];if(command){if(args.length"),pvt=$('P'),username=$('').text(user.nickname),points=$('('+user.points+")"),roundrank=$(""),roundpointsel=$(''),guesstime=$('');li.append(pvt,username,points,roundrank,roundpointsel,guesstime);if(user.registered){var href='href="/user/'+user.nickname+'"';pvt.after('")}DOM.users.append(li);if(pvtmsgto===user.nickname){pvt.show();username.click(clearPrivate);found=true}else{username.click(function(){addPrivate($(this).text())})}if(nickname===user.nickname){username.addClass("you");roundpoints=user.roundpoints;DOM.rank.text(i+1);DOM.points.text(user.points)}if(user.roundpoints>0){roundpointsel.text("+"+user.roundpoints);if(user.roundpoints===1){username.addClass("matched")}else{if(user.roundpoints>3){var stand=7-user.roundpoints;roundrank.addClass("icons round-rank stand"+stand);var gtime=(user.guesstime/1e3).toFixed(1);guesstime.text(gtime+" s")}username.addClass("correct")}}}if(!found&&pvtmsgto){var width=DOM.recipient.outerWidth(true)+1;DOM.recipient.css("margin-right","0");DOM.recipient.text("");DOM.messagebox.animate({width:"+="+width+"px"},"fast");pvtmsgto=null;DOM.messagebox.focus()}};var updateRoomsOverview=function(room,players){if(room!==roomname){DOM.userscounters[room].text(players)}};var urlize=function(text){if(urlregex.test(text)){var html="";var splits=text.split(urlregex);for(var i=0;i'+escapedsplit+"";continue}html+=escapedsplit}return html}return text.encodeEntities()};var userJoin=function(username,usersData){var joinmsg=username+" joined the game";var joinspan=$('');joinspan.text(joinmsg);addChatEntry(joinspan);updateUsers(usersData)};var userLeft=function(username,usersData){var leftmsg=username+" left the game";var leftspan=$('');leftspan.text(leftmsg);addChatEntry(leftspan);updateUsers(usersData)};var slashcommands={ignore:{checkrecipient:true,fn:ignorePlayer,minargs:1,usage:"usage: /ignore <player name>"},kick:{checkrecipient:true,fn:kickPlayer,minargs:1,usage:"usage: /kick <player name> [message]"},unignore:{checkrecipient:true,fn:unignorePlayer,minargs:1,usage:"usage: /unignore <player name>"}};setVariables();DOM.modal.modal({keyboard:false,show:false,backdrop:"static"});DOM.togglechat.click(hideChat);$(document).keydown(function(e){if(e.keyCode===27){e.preventDefault()}});socket=io.connect(uri,{"force new connection":true,reconnect:false});socket.on("connect",function(){jplayer=$("#player").jPlayer({ready:jplayerReady,swfPath:"/static/swf/",supplied:"m4a",preload:"auto",volume:1});socket.on("alreadyinaroom",alreadyInARoom);socket.on("disconnect",disconnect);socket.on("invalidnickname",invalidNickName);socket.on("ready",ready);socket.on("updateoverview",updateRoomsOverview);socket.emit("getoverview",roomsOverview)})})(); \ No newline at end of file +!function(){var elapsedtime=0,DOM={},historycursor=0,historyvalues=[],ignoredplayers={},isplaying,jplayer,nickname,pvtmsgto,subscriber=false,roundpoints=0,roomname=window.location.pathname.replace("/",""),socket,stopanimation=false,touchplay,urlregex=/(https?:\/\/[\-A-Za-z0-9+&@#\/%?=~_()|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_()|])/,uri=window.location.protocol+"//"+window.location.host;var amstrings=["Yes, that's the artist. What about the title?","Exactly, now tell me the title!","Do you also know the title?"];var bmstrings=["Yeah true! do you like this track?","Good job!","Great!","Very well done!","Exactly!","Excellent!","Woohoo!"];var nmstrings=["Nope, sorry!","No way!","Fail","Nope","No","That's wrong","What?!","Wrong","Haha, what?!","You kidding?","Don't make me laugh","You mad?","Try again"];var states=["A song is already playing, please wait for the next one...","Game is about to start...","Game is over","New game will start soon..."];var tmstrings=["Yes, you guessed the title. Who is the artist?","Now tell me the artist!","Correct, do you also know the artist?"];String.prototype.encodeEntities=function(){return this.replace(/&/g,"&").replace(//g,">")};var addChatEntry=function(childNode){var li=$('
  • ');li.append(childNode);DOM.chat.append(li);DOM.chat[0].scrollTop=DOM.chat[0].scrollHeight};var addFeedback=function(txt,style){if(typeof style==="string"){var fbspan=$('');fbspan.text(txt);DOM.feedback.html(fbspan);DOM.guessbox.addClass(style);setTimeout(function(){DOM.guessbox.removeClass(style)},350);return}DOM.feedback.text(txt)};var addPrivate=function(usrname){if(pvtmsgto){clearPrivate()}if(nickname===usrname){return}DOM.recipient.css("margin-right","4px");DOM.recipient.text("To "+usrname+":");var width=DOM.recipient.outerWidth(true)+1;DOM.recipient.hide();DOM.messagebox.animate({width:"-="+width+"px"},"fast",function(){DOM.recipient.show()});var el=$(".name").filter(function(index){return $(this).text()===usrname});el.prevAll(".private").show();el.unbind("click");el.click(clearPrivate);pvtmsgto=usrname;DOM.messagebox.focus()};var addTrackInfo=function(data){if(touchplay){touchplay.removeClass("btn-success").addClass("btn-danger disabled");touchplay.html(' Wait')}isplaying=false;cassetteAnimation(Date.now()+5e3,false);var artistName=data.artistName.replace(/"/g,"""),trackName=data.trackName.replace(/"/g,"""),attrs="",rp="";var html='
  • ';html+='
    '+artistName+"
    ";html+='
    '+trackName+"
    ";if(roundpoints>0){rp="+"+roundpoints;if(roundpoints>3){var stand=7-roundpoints;attrs+='class="icons round-rank stand'+stand+'"'}}html+="
    '+rp+"
    ";html+='
  • ';DOM.tracks.prepend($(html))};var addVolumeControl=function(){var volumebutton=$('
    '+'
    '+'
    '+'
    '+'
    '+'
    '+"
    ").appendTo("#volume");var clicked=false,icon=volumebutton.find("#icon"),mouseisdown=false,mouseisover=false,oldvalue=1,volumecurrent=volumebutton.find("#volume-current"),volumehandle=volumebutton.find("#volume-handle"),volumeslider=volumebutton.find("#volume-slider"),volumetotal=volumebutton.find("#volume-total");var handleIcon=function(volume){if(volume===0){icon.removeClass().addClass("icons volume-none")}else if(volume<=.33){icon.removeClass().addClass("icons volume-low")}else if(volume<=.66){icon.removeClass().addClass("icons volume-medium")}else{icon.removeClass().addClass("icons volume-high")}};var handleVolumeMove=function(e){var railheight=volumetotal.height(),totaloffset=volumetotal.offset(),totalTop=parseInt(volumetotal.css("top").replace(/px/,""),10),newy=e.pageY-totaloffset.top,volume=(railheight-newy)/railheight;clicked=false;if(newy<0){newy=0}else if(newy>railheight){newy=railheight}volumecurrent.height(railheight-newy);volumecurrent.css("top",newy+totalTop);volumehandle.css("top",totalTop+newy-volumehandle.height()/2);volume=Math.max(0,volume);volume=Math.min(volume,1);setVolume(volume)};var loadFromCookie=function(){if(/volume\s*\=/.test(document.cookie)){var value=document.cookie.replace(/.*volume\s*\=\s*([^;]*);?.*/,"$1");value=parseFloat(value);positionVolumeHandle(value);setVolume(value);return}positionVolumeHandle(1)};var positionVolumeHandle=function(volume){if(!volumeslider.is(":visible")){volumeslider.show();positionVolumeHandle(volume);volumeslider.hide();return}var totalheight=volumetotal.height();var totalposition=volumetotal.position();var newtop=totalheight-totalheight*volume;volumecurrent.height(totalheight-newtop);volumecurrent.css("top",totalposition.top+newtop);volumehandle.css("top",totalposition.top+newtop-volumehandle.height()/2)};var setCookie=function(volume){var d=new Date;d.setTime(d.getTime()+31536e6);document.cookie="volume="+volume+";path=/;expires="+d.toGMTString()+";"};var setVolume=function(volume){handleIcon(volume);jplayer.jPlayer("volume",volume);oldvalue=volume;setCookie(volume)};volumebutton.find(".button").click(function(){if(!clicked){clicked=true;if(oldvalue!==0){handleIcon(0);jplayer.jPlayer("volume",0);positionVolumeHandle(0)}}else{clicked=false;if(oldvalue!==0){handleIcon(oldvalue);jplayer.jPlayer("volume",oldvalue);positionVolumeHandle(oldvalue)}}});volumebutton.hover(function(){mouseisover=true;volumeslider.show()},function(){mouseisover=false;if(!mouseisdown){volumeslider.hide()}});volumeslider.on("mouseover",function(){mouseisover=true}).on("mousedown",function(e){handleVolumeMove(e);mouseisdown=true;return false});$(document).on("mouseup",function(e){mouseisdown=false;if(!mouseisover){volumeslider.hide()}}).on("mousemove",function(e){if(mouseisdown){handleVolumeMove(e)}});loadFromCookie()};var alreadyInARoom=function(){var html='';html+='";$(html).appendTo(DOM.modal);DOM.modal.modal("show")};var cassetteAnimation=function(endtime,forward){var deg,factor,millisleft=endtime-Date.now(),offsetleft,offsetright,secleft=millisleft/1e3,width;if(stopanimation||millisleft<50){return}if(forward){if(touchplay){elapsedtime=30-Math.round(secleft)}DOM.countdown.text(secleft.toFixed(1));factor=secleft/30;width=148-148*factor;deg=360-360*factor;offsetleft=44-24*factor;offsetright=130-24*factor}else{DOM.countdown.text(Math.round(secleft));factor=secleft/5;width=148*factor;deg=360*factor;offsetleft=20+24*factor;offsetright=106+24*factor}DOM.progress.width(width);DOM.cassettewheels.css("transform","rotate("+deg+"deg)");DOM.tapeleft.css("left",offsetleft+"px");DOM.taperight.css("left",offsetright+"px");setTimeout(function(){cassetteAnimation(endtime,forward)},50)};var clearPrivate=function(){var width=DOM.recipient.outerWidth(true)+1;DOM.recipient.css("margin-right","0");DOM.recipient.text("");DOM.messagebox.animate({width:"+="+width+"px"},"fast");var el=$(".name").filter(function(index){return $(this).text()===pvtmsgto});el.prevAll(".private").hide();el.unbind("click");el.click(function(){addPrivate($(this).text())});pvtmsgto=null;DOM.messagebox.focus()};var countDown=function(endtime){var millisleft=endtime-Date.now();var secleft=millisleft/1e3;$(".modal-footer span").text(Math.round(secleft));if(millisleft<200){return}setTimeout(function(){countDown(endtime)},200)};var disconnect=function(){stopanimation=true;jplayer.jPlayer("stop");var errorspan=$('ERROR: You have disconnected.');addChatEntry(errorspan);addFeedback("Something wrong happened");DOM.users.empty()};var gameOver=function(podium){var html='';html+='";html+='";DOM.modal.append($(html));DOM.modal.modal("show");countDown(Date.now()+1e4)};var getChatMessage=function(chatmsg,from,to){if(ignoredplayers[from]){return}var prefix=from;var msgspan=$('');if(to){prefix=nickname===from?"(To "+to+")":"(From "+prefix+")";msgspan.addClass("private")}var msg=prefix+": "+chatmsg.replace(/<3/g,"♥");msgspan.html(urlize(msg));addChatEntry(msgspan)};var hideChat=function(){DOM.togglechat.text("Show chat").unbind("click");DOM.chatwrapper.toggle(300);DOM.tracks.animate({maxHeight:"434px"},300);DOM.togglechat.click(showChat)};var ignorePlayer=function(args,outcome){if(ignoredplayers[args[0]]){outcome.text("(From binb): "+args[0]+" is already ignored.");return addChatEntry(outcome)}socket.emit("ignore",args[0],function(player){if(player){ignoredplayers[player]=true;outcome.text("(From binb): "+player+" is now ignored.");return addChatEntry(outcome)}outcome.append("player not found.");addChatEntry(outcome)})};var invalidNickName=function(feedback){joinAnonymously(feedback+"
    Try with another one:")};var joinAnonymously=function(msg){if(/nickname\s*\=/.test(document.cookie)&&!msg){nickname=document.cookie.replace(/.*nickname\s*\=\s*([^;]*);?.*/,"$1");return socket.emit("joinanonymously",nickname,roomname)}if(DOM.modal.hasClass("in")){$(".modal-body p").html(msg);return $("#login").focus()}var html='";html+='";html+='';$(html).appendTo(DOM.modal);var login=$("#login");var button=$("#join");button.click(function(){if($.trim(login.val())!==""){nickname=login.val();socket.emit("joinanonymously",nickname,roomname)}else{var txt="Nickname can't be empty.";invalidNickName(''+txt+"")}login.val("")});login.keyup(function(event){if(event.keyCode===13){button.click()}});DOM.modal.modal("show");DOM.modal.on("shown",function(){login.focus()})};var jplayerReady=function(){socket.emit("loggedin",function(data){if(data){nickname=data;subscriber=true;return socket.emit("joinroom",roomname)}joinAnonymously()});if(!$.jPlayer.platform.mobile&&!$.jPlayer.platform.tablet){return addVolumeControl()}var touchbackdrop=$('
    '+'
    ").appendTo("#cassette");touchplay=$("#touch-play");touchplay.click(function(){if(!$(this).hasClass("btn-danger")){touchplay=null;jplayer.jPlayer("play",elapsedtime);touchbackdrop.remove()}})};var kickPlayer=function(args,outcome){outcome.append("you are not allowed to kick a player.");if(!subscriber){return addChatEntry(outcome)}var why=args[1]||"";socket.emit("kick",args[0],why,function(){addChatEntry(outcome)})};var loadTrack=function(previewUrl){jplayer.jPlayer("mute");jplayer.jPlayer("setMedia",{m4a:previewUrl})};var parseCommand=function(input){var inquotes=false,token="",tokens=[];for(var i=0;i Play')}jplayer.jPlayer("unmute");jplayer.jPlayer("play");DOM.guessbox.val("");isplaying=true;updateUsers(data.users);cassetteAnimation(Date.now()+3e4,true);if(data.counter===1){DOM.modal.modal("hide").empty();DOM.tracks.empty()}DOM.track.text(data.counter+"/"+data.tot);addFeedback("What is this song?")};var ready=function(usersData,trackscount,loggedin){if(!loggedin&&!/nickname\s*\=/.test(document.cookie)){document.cookie="nickname="+nickname+";path=/;"}DOM.modal.modal("hide").empty();$("#total-tracks span").text(trackscount);var msg=nickname+" joined the game";var joinspan=$('');joinspan.text(msg);addChatEntry(joinspan);updateUsers(usersData);DOM.messagebox.keydown(function(event){if(event.keyCode===13){var val=$.trim(DOM.messagebox.val());if(val!==""){if(pvtmsgto){socket.emit("sendchatmsg",val,pvtmsgto)}else if(/^\/[^ ]/.test(val)){slashCommandHandler(val)}else{socket.emit("sendchatmsg",val)}}DOM.messagebox.val("")}});DOM.guessbox.keydown(function(event){switch(event.keyCode){case 13:var guess=$.trim(DOM.guessbox.val());if(guess!==""){if(isplaying){socket.emit("guess",guess.toLowerCase())}else{addFeedback("You have to wait the next song...")}historyvalues.push(guess);if(historyvalues.length>20){historyvalues.splice(0,1)}historycursor=historyvalues.length}DOM.guessbox.val("");break;case 38:if(historycursor>0){DOM.guessbox.val(historyvalues[--historycursor])}break;case 40:if(historycursor(From binb): ');try{args=parseCommand(line)}catch(err){outcome.append(err.message);return addChatEntry(outcome)}var cmdname=args.shift();var command=slashcommands[cmdname.substr(1)];if(command){if(args.length"),pvt=$('P'),username=$('').text(user.nickname),points=$('('+user.points+")"),roundrank=$(""),roundpointsel=$(''),guesstime=$('');li.append(pvt,username,points,roundrank,roundpointsel,guesstime);if(user.registered){var href='href="/user/'+user.nickname+'"';pvt.after('")}DOM.users.append(li);if(pvtmsgto===user.nickname){pvt.show();username.click(clearPrivate);found=true}else{username.click(function(){addPrivate($(this).text())})}if(nickname===user.nickname){username.addClass("you");roundpoints=user.roundpoints;DOM.rank.text(i+1);DOM.points.text(user.points)}if(user.roundpoints>0){roundpointsel.text("+"+user.roundpoints);if(user.roundpoints===1){username.addClass("matched")}else{if(user.roundpoints>3){var stand=7-user.roundpoints;roundrank.addClass("icons round-rank stand"+stand);var gtime=(user.guesstime/1e3).toFixed(1);guesstime.text(gtime+" s")}username.addClass("correct")}}}if(!found&&pvtmsgto){var width=DOM.recipient.outerWidth(true)+1;DOM.recipient.css("margin-right","0");DOM.recipient.text("");DOM.messagebox.animate({width:"+="+width+"px"},"fast");pvtmsgto=null;DOM.messagebox.focus()}};var updateRoomsOverview=function(room,players){if(room!==roomname){DOM.userscounters[room].text(players)}};var urlize=function(text){if(urlregex.test(text)){var html="";var splits=text.split(urlregex);for(var i=0;i'+escapedsplit+"";continue}html+=escapedsplit}return html}return text.encodeEntities()};var userJoin=function(username,usersData){var joinmsg=username+" joined the game";var joinspan=$('');joinspan.text(joinmsg);addChatEntry(joinspan);updateUsers(usersData)};var userLeft=function(username,usersData){var leftmsg=username+" left the game";var leftspan=$('');leftspan.text(leftmsg);addChatEntry(leftspan);updateUsers(usersData)};var slashcommands={ignore:{checkrecipient:true,fn:ignorePlayer,minargs:1,usage:"usage: /ignore <player name>"},kick:{checkrecipient:true,fn:kickPlayer,minargs:1,usage:"usage: /kick <player name> [message]"},unignore:{checkrecipient:true,fn:unignorePlayer,minargs:1,usage:"usage: /unignore <player name>"}};setVariables();DOM.modal.modal({keyboard:false,show:false,backdrop:"static"});DOM.togglechat.click(hideChat);$(document).keydown(function(e){if(e.keyCode===27){e.preventDefault()}});socket=io.connect(uri,{"force new connection":true,reconnect:false});socket.on("connect",function(){jplayer=$("#player").jPlayer({ready:jplayerReady,swfPath:"/static/swf/",supplied:"m4a",preload:"auto",volume:1});socket.on("alreadyinaroom",alreadyInARoom);socket.on("disconnect",disconnect);socket.on("invalidnickname",invalidNickName);socket.on("ready",ready);socket.on("updateoverview",updateRoomsOverview);socket.emit("getoverview",roomsOverview)})}(); \ No newline at end of file diff --git a/public/js/home.min.js b/public/js/home.min.js index 9675075..53775ca 100644 --- a/public/js/home.min.js +++ b/public/js/home.min.js @@ -1 +1 @@ -(function(){$(document).keydown(function(e){if(e.keyCode===27){e.preventDefault()}});$.get("/artworks",function(data){$(".thumbnail").each(function(){var urls=data[$(this).attr("href")];for(var i=0;i').appendTo($(this))}})});var uri=window.location.protocol+"//"+window.location.host;var socket=io.connect(uri,{reconnect:false});socket.on("connect",function(){socket.emit("getoverview",function(data){for(var prop in data){$("#"+prop).text(data[prop])}});socket.on("updateoverview",function(room,players){$("#"+room).text(players)})})})(); \ No newline at end of file +!function(){$(document).keydown(function(e){if(e.keyCode===27){e.preventDefault()}});$.get("/artworks",function(data){$(".thumbnail").each(function(){var urls=data[$(this).attr("href")];for(var i=0;i').appendTo($(this))}})});var uri=window.location.protocol+"//"+window.location.host;var socket=io.connect(uri,{reconnect:false});socket.on("connect",function(){socket.emit("getoverview",function(data){for(var prop in data){$("#"+prop).text(data[prop])}});socket.on("updateoverview",function(room,players){$("#"+room).text(players)})})}(); \ No newline at end of file diff --git a/public/js/leaderboards.min.js b/public/js/leaderboards.min.js index 701bb31..a66a590 100644 --- a/public/js/leaderboards.min.js +++ b/public/js/leaderboards.min.js @@ -1 +1 @@ -(function(){var appendResults=function(data,leaderboard,offset,type){for(var i=0;i').text(data[i]),col1=""+ ++offset+"",col2=$("").append(link),col3=type==="points"?""+data[i+1]+"":' '+(data[i+1]/1e3).toFixed(2)+" sec";var row=$("").append(col1,col2,col3);leaderboard.append(row)}};$(".leaderboard-wrapper").each(function(index){var leaderboard=$(this).find("tbody"),loading=$(this).find(".loading"),offset=0,type=index===0?"points":"times";$(this).scroll(function(){var diff=$(this).prop("scrollHeight")-$(this).scrollTop();if(diff===$(this).height()&&offset<180){offset+=30;loading.show();$.get("/sliceleaderboard",{begin:offset,by:type},function(data){loading.hide();appendResults(data,leaderboard,offset,type)})}})})})(); \ No newline at end of file +!function(){var appendResults=function(data,leaderboard,offset,type){for(var i=0;i').text(data[i]),col1=""+ ++offset+"",col2=$("").append(link),col3=type==="points"?""+data[i+1]+"":' '+(data[i+1]/1e3).toFixed(2)+" sec";var row=$("").append(col1,col2,col3);leaderboard.append(row)}};$(".leaderboard-wrapper").each(function(index){var leaderboard=$(this).find("tbody"),loading=$(this).find(".loading"),offset=0,type=index===0?"points":"times";$(this).scroll(function(){var diff=$(this).prop("scrollHeight")-$(this).scrollTop();if(diff===$(this).height()&&offset<180){offset+=30;loading.show();$.get("/sliceleaderboard",{begin:offset,by:type},function(data){loading.hide();appendResults(data,leaderboard,offset,type)})}})})}(); \ No newline at end of file diff --git a/views/layout.jade b/views/layout.jade index 6cfc4e1..9b49025 100644 --- a/views/layout.jade +++ b/views/layout.jade @@ -12,7 +12,7 @@ html meta(property="og:url", content="http://binb.nodejitsu.com/") link(href="/static/css/bootstrap.min.css", rel="stylesheet") link(href="/static/css/style.css", rel="stylesheet") - script + script. var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-29865853-1']); _gaq.push(['_trackPageview']); @@ -50,7 +50,7 @@ html block scripts script(src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js") script(src="/static/js/bootstrap.min.js") - script + script. var uvOptions = {}; (function() { var uv = document.createElement('script'); -- 2.54.0