History = new Mongo.Collection("history"); Playlists = new Mongo.Collection("playlists"); if (Meteor.isClient) { Meteor.startup(function() { reCAPTCHA.config({ publickey: '6LcVxg0TAAAAAE18vBiH00UAyaJggsmLm890SjZl' }); }); var hpSound = undefined; var songsArr = []; var _sound = undefined; Template.register.events({ "submit form": function(e){ e.preventDefault(); var username = e.target.registerUsername.value; var email = e.target.registerEmail.value; var password = e.target.registerPassword.value; var captchaData = grecaptcha.getResponse(); Meteor.call("createUserMethod", {username: username, email: email, password: password}, captchaData, function(err, res) { grecaptcha.reset(); if (err) { console.log(err); } else { Meteor.loginWithPassword(username, password); } }); }, "click #facebook-login": function(){ Meteor.loginWithFacebook() }, "click #github-login": function(){ Meteor.loginWithGithub() }, "click #login": function(){ $("#register-view").hide(); $("#login-view").show(); } }); Template.login.events({ "submit form": function(e){ e.preventDefault(); var username = e.target.loginUsername.value; var password = e.target.loginPassword.value; Meteor.loginWithPassword(username, password); Accounts.onLoginFailure(function(){ $("input").css("background-color","indianred").addClass("animated shake"); $("input").on("click",function(){ $("input").css({ "background-color": "transparent", "width": "250px" }); }) }); }, "click #facebook-login": function(){ Meteor.loginWithFacebook() }, "click #github-login": function(){ Meteor.loginWithGithub() }, "click #register": function(){ $("#login-view").hide(); $("#register-view").show(); } }); Template.dashboard.events({ "click .logout": function(e){ e.preventDefault(); Meteor.logout(); if (hpSound !== undefined) { hpSound.stop(); } }, "click .button-tunein": function(){ SC.stream("/tracks/172055891/", function(sound){ sound._player._volume = 0.3; sound.play(); }); }, "click #play": function(){ $("#play").hide(); SC.stream("/tracks/172055891/", function(sound){ hpSound = sound; sound._player._volume = 0.3; sound.play(); $("#stop").on("click", function(){ $("#stop").hide(); $("#play").show(); sound._player.pause(); }) }); $("#stop").show(); } }); Template.room.events({ "click #search-song": function(){ SC.get('/tracks', { q: $("#song-input").val()}, function(tracks) { console.log(tracks); songsArr = []; $("#song-results").empty() for(var i in tracks){ $("#song-results").append("
" + tracks[i].title + "
") songsArr.push({title: tracks[i].title, id: tracks[i].id, duration: tracks[i].duration / 1000}); } $("#song-results p").click(function(){ var title = $(this).text(); for(var i in songsArr){ if(songsArr[i].title === title){ var id = songsArr[i].id; var duration = songsArr[i].duration; var songObj = { title: songsArr[i].title, id: id, duration: duration, type: "soundcloud" } } } console.log(id); Meteor.call("addToPlaylist", songObj, function(err,res){ return true; }); // if (_sound !== undefined)_sound.stop(); // SC.stream("/tracks/" + id, function(sound){ // _sound = sound; // sound._player._volume = 0.3; // sound.play() // }); }) }); } }); Template.room.helpers({ type: function() { var parts = location.href.split('/'); var id = parts.pop(); return id.toUpperCase(); }, title: function(){ return Session.get("title"); }, artist: function(){ return Session.get("artist"); } }); Template.playlist.helpers({ playlist_songs: function() { console.log(Playlists.find({type: "edm"}).fetch()); return Playlists.find({type: "edm"}).fetch()[0].songs; } }); Template.room.onCreated(function () { var tag = document.createElement("script"); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var currentSong = undefined; var _sound = undefined; var yt_player = undefined; var size = 0; var artistStr; var temp = ""; function getTimeElapsed() { if (currentSong !== undefined) { return Date.now() - currentSong.started; } return 0; } function getSongInfo(query, type){ query = query.toLowerCase().split(" ").join("%20"); $.ajax({ type: "GET", url: 'https://api.spotify.com/v1/search?q=' + query + '&type=track', applicationType: "application/json", contentType: "json", success: function(data){ console.log(data); for(var i in data){ Session.set("title", data[i].items[0].name); if(type === "youtube"){ Session.set("duration", data[i].items[0].duration_ms / 1000) } Meteor.call("setDuration", Session.get("duration")) temp = ""; if(data[i].items[0].artists.length >= 2){ for(var j in data[i].items[0].artists){ temp = temp + data[i].items[0].artists[j].name + ", "; } } else{ for(var j in data[i].items[0].artists){ temp = temp + data[i].items[0].artists[j].name; } } if(temp[temp.length-2] === ","){ artistStr = temp.substr(0,temp.length-2); } else{ artistStr = temp; } Session.set("artist", artistStr); $("#albumart").remove(); $(".room-title").before("