diff --git a/server/public/assets/js/callback.js b/server/public/assets/js/callback.js
index 432a17ba..53b47925 100755
--- a/server/public/assets/js/callback.js
+++ b/server/public/assets/js/callback.js
@@ -1,6 +1,6 @@
window.addEventListener("load", function() {
var query = getQueryHash(window.location.hash);
- var redirect = window.location.protocol + "//" + window.location.hostname + "/o_callback";
+ var redirect = window.location.protocol + "//" + window.location.hostname + "/api/oauth";
var client_id;
var response;
var scope;
diff --git a/server/public/assets/js/embed.js b/server/public/assets/js/embed.js
index b473a776..eb4a7f20 100755
--- a/server/public/assets/js/embed.js
+++ b/server/public/assets/js/embed.js
@@ -52,10 +52,12 @@ var began = false;
var seekTo;
var socket;
var video_id;
-var hash = window.location.hash.substring(1).split("&");
-var chan = Helper.decodeChannelName(hash[0]);
-var autoplay = false;
-var color = "#808080";
+var embedOptions = getSearch(window.location.search);
+var chan = Helper.decodeChannelName(embedOptions["channel"]);
+var autoplay = embedOptions["autoplay"];
+var videoonly = embedOptions["videoonly"];
+var color = "#" + embedOptions["color"];
+var localmode = embedOptions["localmode"];
var dragging = false;
var user_auth_started = false;
var user_auth_avoid = false;
@@ -98,14 +100,26 @@ window.addEventListener("message", receiveMessage, false);
window.addEventListener("DOMContentLoaded", function() {
});
-window.addEventListener("load", function() {
- if(hash.length >= 2 && hash.indexOf("autoplay") > 0){
- autoplay = true;
- Helper.css("#player", "visibility", "hidden");
- } else {
- //paused = true;
+
+function getSearch(elem) {
+ var result = {};
+ var search = window.location.search.split("&");
+ for(var i = 0; i < search.length; i++) {
+ var currElement = search[i].split("=");
+ var key = currElement[0].replace("?", "");
+ var value = currElement[1];
+ if(value == "true") value = true;
+ else if(value == "false") value = false;
+ result[key] = value;
}
- if(hash.indexOf("videoonly") > -1) {
+ return result;
+}
+
+window.addEventListener("load", function() {
+ if(autoplay){
+ Helper.css("#player", "visibility", "hidden");
+ }
+ if(videoonly) {
Helper.addClass("#wrapper", "hide");
Helper.addClass("#controls", "hide");
Helper.addClass("#player", "video_only");
@@ -116,13 +130,13 @@ window.addEventListener("load", function() {
M.Modal.init(document.getElementById("locked_channel"), {
dismissible: false
});
- color = "#" + hash[1];
+
add = "https://zoff.me";
//if(window.location.hostname == "localhost") add = "localhost";
//add = "localhost";
socket = io.connect(''+add+':8080', connection_options);
- if(hash.indexOf("localmode") > 1) {
+ if(localmode) {
change_offline(true, false);
}
@@ -170,7 +184,7 @@ window.addEventListener("load", function() {
//Helper.css("#controls", "background-color", color);
document.querySelector("body").style.backgroundColor = color;
- if(hash.indexOf("controll") > -1) {
+ if(embedOptions.hasOwnProperty("control") && embedOptions.control) {
Hostcontroller.change_enabled(true);
} else {
Hostcontroller.change_enabled(false);
diff --git a/server/public/assets/js/functions.js b/server/public/assets/js/functions.js
index d627f160..111434a7 100644
--- a/server/public/assets/js/functions.js
+++ b/server/public/assets/js/functions.js
@@ -797,7 +797,7 @@ function disable_debug(){
function embed_code(autoplay, width, height, color, embed_videoonly, embed_localmode){
var autoplay_add = "";
if(autoplay == "&autoplay") autoplay_add = 'allow="autoplay"';
- return '';
+ return '';
}
function change_offline(enabled, already_offline){
diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js
index b10fb128..0259e71b 100755
--- a/server/public/assets/js/listeners.js
+++ b/server/public/assets/js/listeners.js
@@ -88,14 +88,14 @@ var not_import_html = "";
var not_export_html = "";
var embed_height = 300;
var embed_width = 600;
-var embed_videoonly = "";
-var embed_localmode = "";
-var embed_autoplay = "&autoplay";
+var embed_videoonly = "&videoonly=false";
+var embed_localmode = "&localmode=false";
+var embed_autoplay = "&autoplay=true";
var connect_error = false;
var access_token_data_youtube = {};
var youtube_authenticated = false;
var chromecastAvailable = false;
-var color = "2d2d2d";
+var color = "&color=2d2d2d";
var find_start = false;
var durationTimeout;
var find_started = false;
@@ -859,7 +859,7 @@ function addDynamicListeners() {
addListener("input", '#color_embed', function(e){
var that = e;
- color = that.value.substring(1);
+ color = "&color=" + that.value.substring(1);
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode);
});
@@ -944,7 +944,7 @@ function addDynamicListeners() {
youtube_window.close();
window.callback = "";
};
- youtube_window = window.open("/o_callback#youtube=true&nonce=" + nonce, "", "width=600, height=600");
+ youtube_window = window.open("/api/oauth#youtube=true&nonce=" + nonce, "", "width=600, height=600");
} else {
List.exportToYoutube();
}
@@ -972,7 +972,7 @@ function addDynamicListeners() {
spotify_window.close();
window.callback = "";
};
- spotify_window = window.open("/o_callback#spotify=true&nonce=" + nonce, "", "width=600, height=600");
+ spotify_window = window.open("/api/oauth#spotify=true&nonce=" + nonce, "", "width=600, height=600");
});
addListener("submit", "#listImport", function(event){
@@ -1103,28 +1103,45 @@ function addDynamicListeners() {
Search.importSpotifyPlaylist('https://api.spotify.com/v1/users/' + user + '/playlists/' + playlist_id + '/tracks');
} else {
- before_toast();
- M.toast({html: "It seems you've entered a invalid url.", displayLength: 4000});
+ var url = document.getElementById("import_spotify").value.split("https://open.spotify.com/playlist/");
+
+ if(url.length == 2) {
+ /*url = url[1].split("/");
+ var user = url[0];*/
+ var playlist_id = url[1];
+ playlist_id = playlist_id.replace("?", "");
+
+ document.getElementById("import_spotify").disabled = true;
+ Helper.addClass("#import_spotify", "hide");
+ Helper.removeClass("#playlist_loader_spotify", "hide");
+
+ ga('send', 'event', "import", "spotify");
+
+ Search.importSpotifyPlaylist('https://api.spotify.com/v1/playlists/' + playlist_id + '/tracks');
+ } else {
+ before_toast();
+ M.toast({html: "It seems you've entered a invalid url.", displayLength: 4000});
+ }
}
}
document.getElementById("import_spotify").value = "";
});
addListener("change", "#autoplay", function(e) {
- if(e.checked) embed_autoplay = "&autoplay";
- else embed_autoplay = "";
+ if(e.checked) embed_autoplay = "&autoplay=true";
+ else embed_autoplay = "&autoplay=false";
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode);
});
addListener("change", "#videoonly", function(e) {
- if(e.checked) embed_videoonly = "&videoonly";
- else embed_videoonly = "";
+ if(e.checked) embed_videoonly = "&videoonly=true";
+ else embed_videoonly = "&videoonly=false";
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode);
});
addListener("change", "#localmode", function(e) {
- if(e.checked) embed_localmode = "&localmode";
- else embed_localmode = "";
+ if(e.checked) embed_localmode = "&localmode=true";
+ else embed_localmode = "&localmode=false";
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode);
});
@@ -1262,7 +1279,7 @@ function addDynamicListeners() {
spotify_window.close();
window.callback = "";
};
- spotify_window = window.open("/o_callback#spotify=true&nonce=" + nonce, "", "width=600, height=600");
+ spotify_window = window.open("/api/oauth#spotify=true&nonce=" + nonce, "", "width=600, height=600");
});
addListener("click", ".import-youtube", function(event){
diff --git a/server/public/assets/js/search.js b/server/public/assets/js/search.js
index 652f945a..465c0cc2 100755
--- a/server/public/assets/js/search.js
+++ b/server/public/assets/js/search.js
@@ -498,7 +498,7 @@ importPlaylist: function(pId,pageToken){
youtube_window.close();
window.callback = "";
};
- youtube_window = window.open("/o_callback#youtube=true&nonce=" + nonce, "", "width=600, height=600");
+ youtube_window = window.open("/api/oauth#youtube=true&nonce=" + nonce, "", "width=600, height=600");
} else {
Helper.log([
"import list error: ",
@@ -555,7 +555,7 @@ importPlaylist: function(pId,pageToken){
youtube_window.close();
window.callback = "";
};
- youtube_window = window.open("/o_callback#youtube=true&nonce=" + nonce, "", "width=600, height=600");
+ youtube_window = window.open("/api/oauth#youtube=true&nonce=" + nonce, "", "width=600, height=600");
} else {
Helper.log([
"import list error: ",
diff --git a/server/routing/client/router.js b/server/routing/client/router.js
index 6db27d49..dcce3345 100644
--- a/server/routing/client/router.js
+++ b/server/routing/client/router.js
@@ -57,6 +57,23 @@ router.route('/').post(function(req, res, next){
root(req, res, next);
});
+router.route('/api/embed').get(function(req, res, next) {
+ var data = {
+ year: year,
+ javascript_file: "embed.min.js",
+ captcha: res.recaptcha,
+ analytics: analytics,
+ stylesheet: "embed.css",
+ embed: true,
+ og_image: "https://zoff.me/assets/images/small-square.jpg",
+ }
+ res.render('layouts/client/embed', data);
+});
+
+router.route('/api/oauth').get(function(req, res, next) {
+ res.sendFile(path.join(pathThumbnails, '/public/assets/html/callback.html'));
+});
+
router.route('/api/apply').get(function(req, res, next) {
var data = {
year: year,
@@ -196,20 +213,9 @@ function channel(req, res, next) {
} else if(subdomain.length >= 2 && subdomain[0] == "www") {
res.redirect("https://zoff.me");
} else {
- if(req.params.channel_name == "_embed") {
- //res.sendFile(path.join(pathThumbnails, '/public/assets/html/embed.html'));
- var data = {
- year: year,
- javascript_file: "embed.min.js",
- captcha: res.recaptcha,
- analytics: analytics,
- stylesheet: "embed.css",
- embed: true,
- og_image: "https://zoff.me/assets/images/small-square.jpg",
- }
- res.render('layouts/client/embed', data);
- } else if(req.params.channel_name == "o_callback") {
- res.sendFile(path.join(pathThumbnails, '/public/assets/html/callback.html'));
+ if(req.params.channel_name == "o_callback") {
+ res.redirect("/api/oauth");
+ //res.sendFile(path.join(pathThumbnails, '/public/assets/html/callback.html'));
} else {
/*db.collection("frontpage_lists").find({"_id": Functions.encodeChannelName(req.params.channel_name)}, function(err, docs) {
console.log(docs);