From 71f1826435efad18ea7f3de6f9f8634e7d85f120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 12:33:27 +0200 Subject: [PATCH 01/21] Exporting to soundcloud tests --- server/public/assets/js/callback.js | 4 +- server/public/assets/js/list.js | 63 +++++++++++++++++++ server/public/assets/js/listeners.js | 10 ++- server/public/assets/js/player.js | 18 ++++-- .../public/partials/channel/panel.handlebars | 6 +- 5 files changed, 89 insertions(+), 12 deletions(-) diff --git a/server/public/assets/js/callback.js b/server/public/assets/js/callback.js index ec09f7e0..c3b6017c 100755 --- a/server/public/assets/js/callback.js +++ b/server/public/assets/js/callback.js @@ -54,7 +54,9 @@ window.addEventListener("load", function() { } try { window.opener.callback(query_parameters); - } catch(e) {} + } catch(e) { + window.setTimeout(window.opener.SC.connectCallback, 1); + } } }); diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 9db5ac3a..80023d14 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -7,6 +7,7 @@ var List = { uris: [], not_found: [], num_songs: 0, + found: [], channel_function: function(msg) { if(user_auth_started) { @@ -605,6 +606,68 @@ var List = { return true; }, + exportToSoundCloud: function(thisSong, i) { + if(thisSong == undefined) { + if(full_playlist.length > 0) { + List.exportToSoundCloud(full_playlist[0], 1); + } + } else if(i != undefined && i == full_playlist.length) { + SC_player.post('/playlists', { + playlist: { + title: decodeURIComponent(channel.toLowerCase()) + ' - Zoff', + tracks: List.found, + sharing: "public" + } + }).then(function(result) { + console.log(result, List.found, List.not_found); + List.found = []; + List.not_found = []; + }); + } else if(thisSong != undefined && i != undefined) { + var isFound = false; + if(thisSong.source == "soundcloud") { + List.found.push({id: thisSong.id}); + List.exportToSoundCloud(full_playlist[i+1], i+1); + } else { + thisSong.title = Helper.replaceForFind(thisSong.title); + SC_player.get('/tracks', { + q: thisSong.title + }).then(function(tracks) { + //$("#results").append(result_html); + //Helper.css(document.querySelector(".search_results .col.s12"), "display", "block"); + for(var y = 0; y < tracks.length; y++) { + var song = tracks[y]; + if(!song.streamable) continue; + var duration=Math.floor(song.duration / 1000); + //var secs=Search.durationToSeconds(duration); + var secs = duration; + if(longsongs == undefined) longsongs = true; + if((longsongs != undefined && !longsongs) || secs<720){ + var title=song.title; + if(title.indexOf(song.user.username) == -1) { + title = song.user.username + " - " + title; + } + var id=song.id; + if(similarity(title, thisSong.track) > 0.60) { + List.found.push({id: song.id}); + isFound = true; + break; + } + } + } + if(!isFound) { + List.not_found.push(full_playlist[i].title); + } + List.exportToSoundCloud(full_playlist[i+1], i+1); + }).catch(function(e) { + List.not_found.push(full_playlist[i].title); + List.exportToSoundCloud(full_playlist[i+1], i+1); + }); + } + } + + }, + exportToSpotify: function() { ga('send', 'event', "export", "spotify"); diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index 19752ccd..199a55ca 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -954,7 +954,7 @@ function addDynamicListeners() { addListener("click", ".export-soundcloud", function(event) { this.preventDefault(); - var nonce = Helper.randomString(29); + /*var nonce = Helper.randomString(29); Helper.removeClass("#playlist_loader_export", "hide"); Helper.addClass(".soundcloud_export_button", "hide"); window.callback = function(data) { @@ -972,8 +972,12 @@ function addDynamicListeners() { soundcloud_window.close(); window.callback = ""; }; - soundcloud_window = window.open("/api/oauth#soundcloud=true&nonce=" + nonce, "", "width=600, height=600"); - }) + soundcloud_window = window.open("/api/oauth#soundcloud=true&nonce=" + nonce, "", "width=600, height=600");*/ + + SC_player.connect({"display":"page"}).then(function() { + List.exportToSoundCloud(); + }); + }); addListener("click", ".export-spotify-auth", function(event){ this.preventDefault(); diff --git a/server/public/assets/js/player.js b/server/public/assets/js/player.js index 022a628c..944cc2f0 100755 --- a/server/public/assets/js/player.js +++ b/server/public/assets/js/player.js @@ -1148,7 +1148,8 @@ var Player = { try { if(SC_player != null && SC_player != undefined && SC_widget != null && SC_widget != undefined && !sc_initialized) { SC_player.initialize({ - client_id: api_key.soundcloud + client_id: api_key.soundcloud, + redirect_uri: "https://zoff.me/api/oauth", }); sc_initialized = true; Player.soundcloudReady(); @@ -1170,7 +1171,8 @@ var Player = { SC_player = SC; if(SC_player != null && SC_player != undefined && SC_widget != null && SC_widget != undefined && !sc_initialized) { SC_player.initialize({ - client_id: api_key.soundcloud + client_id: api_key.soundcloud, + redirect_uri: "https://zoff.me/api/oauth", }); sc_initialized = true; Player.soundcloudReady(); @@ -1183,7 +1185,8 @@ var Player = { SC_player = SC; if(SC_player != null && SC_player != undefined && SC_widget != null && SC_widget != undefined && !sc_initialized) { SC_player.initialize({ - client_id: api_key.soundcloud + client_id: api_key.soundcloud, + redirect_uri: "https://zoff.me/api/oauth", }); sc_initialized = true; Player.soundcloudReady(); @@ -1202,7 +1205,8 @@ var Player = { try { if(SC_player != null && SC_player != undefined && SC_widget != null && SC_widget != undefined && !sc_initialized) { SC_player.initialize({ - client_id: api_key.soundcloud + client_id: api_key.soundcloud, + redirect_uri: "https://zoff.me/api/oauth", }); sc_initialized = true; Player.soundcloudReady(); @@ -1222,7 +1226,8 @@ var Player = { SC_widget = SC; if(SC_player != null && SC_player != undefined && SC_widget != null && SC_widget != undefined && !sc_initialized) { SC_player.initialize({ - client_id: api_key.soundcloud + client_id: api_key.soundcloud, + redirect_uri: "https://zoff.me/api/oauth", }); sc_initialized = true; Player.soundcloudReady(); @@ -1234,7 +1239,8 @@ var Player = { SC_widget = SC; if(SC_player != null && SC_player != undefined && SC_widget != null && SC_widget != undefined && !sc_initialized) { SC_player.initialize({ - client_id: api_key.soundcloud + client_id: api_key.soundcloud, + redirect_uri: "https://zoff.me/api/oauth", }); sc_initialized = true; Player.soundcloudReady(); diff --git a/server/public/partials/channel/panel.handlebars b/server/public/partials/channel/panel.handlebars index b25330d2..8e493051 100755 --- a/server/public/partials/channel/panel.handlebars +++ b/server/public/partials/channel/panel.handlebars @@ -267,8 +267,10 @@
  • -
    -

    Exporting to SoundCloud is in the works.

    +
  • From 8f985d5da0e8f41e436413c6b04c154151ab9494 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 12:35:58 +0200 Subject: [PATCH 02/21] Enabled importing again --- server/public/assets/js/listeners.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index 199a55ca..66c6f24f 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -1046,7 +1046,7 @@ function addDynamicListeners() { document.querySelector("#import_soundcloud").focus(); }); - /*addListener("submit", "#listImportSoundCloud", function(event) { + addListener("submit", "#listImportSoundCloud", function(event) { this.preventDefault(); Helper.removeClass(".playlist_loader_soundcloud", "hide"); Helper.addClass("#listImportSoundCloud", "hide"); @@ -1115,7 +1115,7 @@ function addDynamicListeners() { toast("If the list is private, you have to add the secret code at the end"); } }); - });*/ + }); addListener("submit", "#listImportSpotify", function(event){ this.preventDefault(); From 74d5f958e577785bf1efa6c6241269bc0af97a00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 12:38:23 +0200 Subject: [PATCH 03/21] Correct soundcloud-player reference --- server/public/assets/js/callback.js | 2 +- server/public/assets/js/list.js | 1 + server/public/assets/js/listeners.js | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/server/public/assets/js/callback.js b/server/public/assets/js/callback.js index c3b6017c..1533065d 100755 --- a/server/public/assets/js/callback.js +++ b/server/public/assets/js/callback.js @@ -55,7 +55,7 @@ window.addEventListener("load", function() { try { window.opener.callback(query_parameters); } catch(e) { - window.setTimeout(window.opener.SC.connectCallback, 1); + window.setTimeout(window.opener.SC_player.connectCallback, 1); } } }); diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 80023d14..a45ec0c3 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -607,6 +607,7 @@ var List = { }, exportToSoundCloud: function(thisSong, i) { + console.log(thisSong, i); if(thisSong == undefined) { if(full_playlist.length > 0) { List.exportToSoundCloud(full_playlist[0], 1); diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index 66c6f24f..49f339ae 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -975,6 +975,7 @@ function addDynamicListeners() { soundcloud_window = window.open("/api/oauth#soundcloud=true&nonce=" + nonce, "", "width=600, height=600");*/ SC_player.connect({"display":"page"}).then(function() { + console.log("We export now"); List.exportToSoundCloud(); }); }); From e41b98fbdb8b762e0010b25cbe7f9ef3a968ef1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 12:43:22 +0200 Subject: [PATCH 04/21] Stopping at full loop for exporting --- server/public/assets/css/style.css | 2 +- server/public/assets/js/list.js | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/server/public/assets/css/style.css b/server/public/assets/css/style.css index ab77793e..47353dd0 100755 --- a/server/public/assets/css/style.css +++ b/server/public/assets/css/style.css @@ -394,7 +394,7 @@ li.disabled span { width: 76%; } -.import-soundcloud, .import-soundcloud:active, .import-soundcloud:visited, .export-soundcloud:visited { +.import-soundcloud, .import-soundcloud:active, .import-soundcloud:visited, .export-soundcloud, .export-soundcloud:visited { background: #f96200; } diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index a45ec0c3..23b0dec0 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -608,11 +608,7 @@ var List = { exportToSoundCloud: function(thisSong, i) { console.log(thisSong, i); - if(thisSong == undefined) { - if(full_playlist.length > 0) { - List.exportToSoundCloud(full_playlist[0], 1); - } - } else if(i != undefined && i == full_playlist.length) { + if(i >= full_playlist.length) { SC_player.post('/playlists', { playlist: { title: decodeURIComponent(channel.toLowerCase()) + ' - Zoff', @@ -624,6 +620,10 @@ var List = { List.found = []; List.not_found = []; }); + } else if(thisSong == undefined) { + if(full_playlist.length > 0) { + List.exportToSoundCloud(full_playlist[0], 1); + } } else if(thisSong != undefined && i != undefined) { var isFound = false; if(thisSong.source == "soundcloud") { From 351daf74c565beb8404b528d7f021c95d320b266 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 12:45:44 +0200 Subject: [PATCH 05/21] Logging more data --- server/public/assets/js/list.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 23b0dec0..47839341 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -609,6 +609,9 @@ var List = { exportToSoundCloud: function(thisSong, i) { console.log(thisSong, i); if(i >= full_playlist.length) { + console.log(result, List.found, List.not_found); + List.found = []; + List.not_found = []; SC_player.post('/playlists', { playlist: { title: decodeURIComponent(channel.toLowerCase()) + ' - Zoff', @@ -619,6 +622,8 @@ var List = { console.log(result, List.found, List.not_found); List.found = []; List.not_found = []; + }).catch(function(error) { + console.log(error); }); } else if(thisSong == undefined) { if(full_playlist.length > 0) { From 2f62b40ce4390479fdf122daf3aac8205cc83a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 12:47:10 +0200 Subject: [PATCH 06/21] Parsing to int --- server/public/assets/js/list.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 47839341..299c8e0e 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -632,7 +632,7 @@ var List = { } else if(thisSong != undefined && i != undefined) { var isFound = false; if(thisSong.source == "soundcloud") { - List.found.push({id: thisSong.id}); + List.found.push({id: parseInt(thisSong.id)}); List.exportToSoundCloud(full_playlist[i+1], i+1); } else { thisSong.title = Helper.replaceForFind(thisSong.title); @@ -655,7 +655,7 @@ var List = { } var id=song.id; if(similarity(title, thisSong.track) > 0.60) { - List.found.push({id: song.id}); + List.found.push({id: parseInt(song.id)}); isFound = true; break; } From 2b020ad4c2026f5676c6a8c76400b4a8105ce54a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 12:48:01 +0200 Subject: [PATCH 07/21] Looping through whole list --- server/public/assets/js/list.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 299c8e0e..df6d637d 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -608,7 +608,7 @@ var List = { exportToSoundCloud: function(thisSong, i) { console.log(thisSong, i); - if(i >= full_playlist.length) { + if(i > full_playlist.length) { console.log(result, List.found, List.not_found); List.found = []; List.not_found = []; From 00a2740406455c9e71acce105a1cff5c646ae855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 12:49:27 +0200 Subject: [PATCH 08/21] Not looping higher than list --- server/public/assets/js/list.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index df6d637d..2e801fdf 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -608,7 +608,7 @@ var List = { exportToSoundCloud: function(thisSong, i) { console.log(thisSong, i); - if(i > full_playlist.length) { + if(i >= full_playlist.length) { console.log(result, List.found, List.not_found); List.found = []; List.not_found = []; @@ -616,7 +616,6 @@ var List = { playlist: { title: decodeURIComponent(channel.toLowerCase()) + ' - Zoff', tracks: List.found, - sharing: "public" } }).then(function(result) { console.log(result, List.found, List.not_found); From 57674c17e7321119e098287f91694bc633b0855d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 12:52:12 +0200 Subject: [PATCH 09/21] Trying to create new list for test purposes --- server/public/assets/js/listeners.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index 49f339ae..196aa34e 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -976,6 +976,14 @@ function addDynamicListeners() { SC_player.connect({"display":"page"}).then(function() { console.log("We export now"); + var tracks = [{id: 290}, {id: 291}, {id: 292}]; + + SC_player.post('/playlists', { + playlist: { title: 'My Playlist', tracks: tracks } + }).then(function(res) { + console.log("this", res); + }); + List.exportToSoundCloud(); }); }); From a6e49995e690e62d2e1cab9dde9f01bf1bc7a1e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 12:53:52 +0200 Subject: [PATCH 10/21] Trying with another name for the list --- server/public/assets/js/list.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 2e801fdf..52ee53fe 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -610,11 +610,11 @@ var List = { console.log(thisSong, i); if(i >= full_playlist.length) { console.log(result, List.found, List.not_found); - List.found = []; - List.not_found = []; + //List.found = []; + //List.not_found = []; SC_player.post('/playlists', { playlist: { - title: decodeURIComponent(channel.toLowerCase()) + ' - Zoff', + title: "zoff_list", tracks: List.found, } }).then(function(result) { From d74a6694a8f907f2a6c6e426e37ae32ce315d171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 13:02:16 +0200 Subject: [PATCH 11/21] Visual loop and not exported elements --- server/public/assets/js/list.js | 18 +++++++++++++++--- server/public/assets/js/listeners.js | 12 +++--------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 52ee53fe..4ee9d626 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -610,15 +610,25 @@ var List = { console.log(thisSong, i); if(i >= full_playlist.length) { console.log(result, List.found, List.not_found); - //List.found = []; - //List.not_found = []; SC_player.post('/playlists', { playlist: { - title: "zoff_list", + title: chan.toLowerCase() + " - Zoff", tracks: List.found, } }).then(function(result) { console.log(result, List.found, List.not_found); + for(var x = 0; x < List.not_found.length; x++) { + var data = List.not_found[x]; + var not_added_song = document.createElement("div"); + not_added_song.innerHTML = not_export_html; + not_added_song.querySelector(".extra-add-text").setAttribute("value", data); + not_added_song.querySelector(".extra-add-text").setAttribute("title", data); + document.querySelector(".not-exported-container").insertAdjacentHTML("beforeend", not_added_song.innerHTML); + } + Helper.addClass(".current_number", "hide"); + Helper.addClass("#playlist_loader_export", "hide"); + Helper.addClass(".exported-list-container", "hide"); + document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + result.title + ""); List.found = []; List.not_found = []; }).catch(function(error) { @@ -630,6 +640,8 @@ var List = { } } else if(thisSong != undefined && i != undefined) { var isFound = false; + Helper.removeClass(".current_number", "hide"); + document.querySelector(".current_number").innerText = (i) + " of " + (full_playlist.length); if(thisSong.source == "soundcloud") { List.found.push({id: parseInt(thisSong.id)}); List.exportToSoundCloud(full_playlist[i+1], i+1); diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index 196aa34e..6e619390 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -975,15 +975,9 @@ function addDynamicListeners() { soundcloud_window = window.open("/api/oauth#soundcloud=true&nonce=" + nonce, "", "width=600, height=600");*/ SC_player.connect({"display":"page"}).then(function() { - console.log("We export now"); - var tracks = [{id: 290}, {id: 291}, {id: 292}]; - - SC_player.post('/playlists', { - playlist: { title: 'My Playlist', tracks: tracks } - }).then(function(res) { - console.log("this", res); - }); - + Helper.removeClass("#playlist_loader_export", "hide"); + Helper.addClass(".soundcloud-export-button", "hide"); + Helper.removeClass(".exported-list-container", "hide"); List.exportToSoundCloud(); }); }); From 8f09eb8d664adb6ff79758aa482cff9c8e6ac8cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 13:02:56 +0200 Subject: [PATCH 12/21] Typo --- server/public/assets/js/list.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 4ee9d626..5fcdc49e 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -628,7 +628,7 @@ var List = { Helper.addClass(".current_number", "hide"); Helper.addClass("#playlist_loader_export", "hide"); Helper.addClass(".exported-list-container", "hide"); - document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + result.title + ""); + document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + result.title + ""); List.found = []; List.not_found = []; }).catch(function(error) { From ceb70a0996a82c82eeb2dd2533febd05cbedd34f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 13:06:24 +0200 Subject: [PATCH 13/21] Testing issues where SC_player not initialized correctly --- server/public/assets/js/list.js | 2 +- server/public/assets/js/listeners.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 5fcdc49e..a1cba5f6 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -636,7 +636,7 @@ var List = { }); } else if(thisSong == undefined) { if(full_playlist.length > 0) { - List.exportToSoundCloud(full_playlist[0], 1); + List.exportToSoundCloud(full_playlist[0], 0); } } else if(thisSong != undefined && i != undefined) { var isFound = false; diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index 6e619390..5c1dfa0f 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -973,12 +973,13 @@ function addDynamicListeners() { window.callback = ""; }; soundcloud_window = window.open("/api/oauth#soundcloud=true&nonce=" + nonce, "", "width=600, height=600");*/ - + window.SC_player = SC_player; SC_player.connect({"display":"page"}).then(function() { Helper.removeClass("#playlist_loader_export", "hide"); Helper.addClass(".soundcloud-export-button", "hide"); Helper.removeClass(".exported-list-container", "hide"); List.exportToSoundCloud(); + delete window.SC_player; }); }); From f0e1e26cc3ff1bd1f9500fcbcade14d2fe1c8710 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 13:10:11 +0200 Subject: [PATCH 14/21] Added not found and logging --- server/public/assets/js/list.js | 42 +++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index a1cba5f6..af67317b 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -610,13 +610,7 @@ var List = { console.log(thisSong, i); if(i >= full_playlist.length) { console.log(result, List.found, List.not_found); - SC_player.post('/playlists', { - playlist: { - title: chan.toLowerCase() + " - Zoff", - tracks: List.found, - } - }).then(function(result) { - console.log(result, List.found, List.not_found); + if(List.found.length == 0) { for(var x = 0; x < List.not_found.length; x++) { var data = List.not_found[x]; var not_added_song = document.createElement("div"); @@ -628,12 +622,34 @@ var List = { Helper.addClass(".current_number", "hide"); Helper.addClass("#playlist_loader_export", "hide"); Helper.addClass(".exported-list-container", "hide"); - document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + result.title + ""); List.found = []; List.not_found = []; - }).catch(function(error) { - console.log(error); - }); + } else { + SC_player.post('/playlists', { + playlist: { + title: chan.toLowerCase() + " - Zoff", + tracks: List.found, + } + }).then(function(result) { + console.log(result, List.found, List.not_found); + for(var x = 0; x < List.not_found.length; x++) { + var data = List.not_found[x]; + var not_added_song = document.createElement("div"); + not_added_song.innerHTML = not_export_html; + not_added_song.querySelector(".extra-add-text").setAttribute("value", data); + not_added_song.querySelector(".extra-add-text").setAttribute("title", data); + document.querySelector(".not-exported-container").insertAdjacentHTML("beforeend", not_added_song.innerHTML); + } + Helper.addClass(".current_number", "hide"); + Helper.addClass("#playlist_loader_export", "hide"); + Helper.addClass(".exported-list-container", "hide"); + document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + result.title + ""); + List.found = []; + List.not_found = []; + }).catch(function(error) { + console.log(error); + }); + } } else if(thisSong == undefined) { if(full_playlist.length > 0) { List.exportToSoundCloud(full_playlist[0], 0); @@ -664,8 +680,10 @@ var List = { if(title.indexOf(song.user.username) == -1) { title = song.user.username + " - " + title; } + title = title.toLowerCase(); var id=song.id; - if(similarity(title, thisSong.track) > 0.60) { + console.log(title, thisSong.title, similarity(title, thisSong.title)); + if(similarity(title, thisSong.title) > 0.60) { List.found.push({id: parseInt(song.id)}); isFound = true; break; From 10cca1641540c3099dde2d9e4a7f84dabe27c17e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 13:14:45 +0200 Subject: [PATCH 15/21] Avoid changing local variables used in list --- server/public/assets/js/list.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index af67317b..c661ddd4 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -607,9 +607,7 @@ var List = { }, exportToSoundCloud: function(thisSong, i) { - console.log(thisSong, i); if(i >= full_playlist.length) { - console.log(result, List.found, List.not_found); if(List.found.length == 0) { for(var x = 0; x < List.not_found.length; x++) { var data = List.not_found[x]; @@ -619,6 +617,7 @@ var List = { not_added_song.querySelector(".extra-add-text").setAttribute("title", data); document.querySelector(".not-exported-container").insertAdjacentHTML("beforeend", not_added_song.innerHTML); } + Helper.removeClass(".not-exported", "hide"); Helper.addClass(".current_number", "hide"); Helper.addClass("#playlist_loader_export", "hide"); Helper.addClass(".exported-list-container", "hide"); @@ -631,7 +630,6 @@ var List = { tracks: List.found, } }).then(function(result) { - console.log(result, List.found, List.not_found); for(var x = 0; x < List.not_found.length; x++) { var data = List.not_found[x]; var not_added_song = document.createElement("div"); @@ -644,6 +642,7 @@ var List = { Helper.addClass("#playlist_loader_export", "hide"); Helper.addClass(".exported-list-container", "hide"); document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + result.title + ""); + Helper.removeClass(".not-exported", "hide"); List.found = []; List.not_found = []; }).catch(function(error) { @@ -662,9 +661,10 @@ var List = { List.found.push({id: parseInt(thisSong.id)}); List.exportToSoundCloud(full_playlist[i+1], i+1); } else { - thisSong.title = Helper.replaceForFind(thisSong.title); + var _title = thisSong.title; + _title = Helper.replaceForFind(_title); SC_player.get('/tracks', { - q: thisSong.title + q: _title }).then(function(tracks) { //$("#results").append(result_html); //Helper.css(document.querySelector(".search_results .col.s12"), "display", "block"); @@ -682,8 +682,7 @@ var List = { } title = title.toLowerCase(); var id=song.id; - console.log(title, thisSong.title, similarity(title, thisSong.title)); - if(similarity(title, thisSong.title) > 0.60) { + if(similarity(title, _title) > 0.60) { List.found.push({id: parseInt(song.id)}); isFound = true; break; From d7b4cbcbd104192468c5a2cd896d0227b6a43763 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 13:17:04 +0200 Subject: [PATCH 16/21] Logging if debug enabled --- server/public/assets/js/list.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index c661ddd4..cce311da 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -643,6 +643,7 @@ var List = { Helper.addClass(".exported-list-container", "hide"); document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + result.title + ""); Helper.removeClass(".not-exported", "hide"); + toast("List exported!"); List.found = []; List.not_found = []; }).catch(function(error) { @@ -682,6 +683,7 @@ var List = { } title = title.toLowerCase(); var id=song.id; + Helper.log(title + " " + _title + " " + similarity(title, _title)); if(similarity(title, _title) > 0.60) { List.found.push({id: parseInt(song.id)}); isFound = true; From e2de81e412ef5695bdefb02c67cc229be79e4fb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 13:19:18 +0200 Subject: [PATCH 17/21] logging correctly --- server/public/assets/js/list.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index cce311da..04bb3465 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -683,7 +683,7 @@ var List = { } title = title.toLowerCase(); var id=song.id; - Helper.log(title + " " + _title + " " + similarity(title, _title)); + Helper.log([title + " " + _title + " " + similarity(title, _title)]); if(similarity(title, _title) > 0.60) { List.found.push({id: parseInt(song.id)}); isFound = true; From fcea76fd01a6e2a21660e7349d35eada9ceb54c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 13:21:35 +0200 Subject: [PATCH 18/21] Logging number of tracks found --- server/public/assets/js/list.js | 1 + 1 file changed, 1 insertion(+) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 04bb3465..a7ed9919 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -669,6 +669,7 @@ var List = { }).then(function(tracks) { //$("#results").append(result_html); //Helper.css(document.querySelector(".search_results .col.s12"), "display", "block"); + console.log(tracks.length); for(var y = 0; y < tracks.length; y++) { var song = tracks[y]; if(!song.streamable) continue; From 4f26163cdf70e89ba2ed1f9b1cac38266beb44e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 13:26:03 +0200 Subject: [PATCH 19/21] Better colors for export-buttons --- server/public/assets/css/style.css | 2 +- server/public/assets/js/list.js | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/server/public/assets/css/style.css b/server/public/assets/css/style.css index 47353dd0..463e9fd1 100755 --- a/server/public/assets/css/style.css +++ b/server/public/assets/css/style.css @@ -394,7 +394,7 @@ li.disabled span { width: 76%; } -.import-soundcloud, .import-soundcloud:active, .import-soundcloud:visited, .export-soundcloud, .export-soundcloud:visited { +.import-soundcloud, .import-soundcloud:active, .import-soundcloud:visited, .export-soundcloud, .export-soundcloud:visited, .exported-soundcloud-list { background: #f96200; } diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index a7ed9919..24c8edcf 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -641,7 +641,7 @@ var List = { Helper.addClass(".current_number", "hide"); Helper.addClass("#playlist_loader_export", "hide"); Helper.addClass(".exported-list-container", "hide"); - document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + result.title + ""); + document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + result.title + ""); Helper.removeClass(".not-exported", "hide"); toast("List exported!"); List.found = []; @@ -669,7 +669,6 @@ var List = { }).then(function(tracks) { //$("#results").append(result_html); //Helper.css(document.querySelector(".search_results .col.s12"), "display", "block"); - console.log(tracks.length); for(var y = 0; y < tracks.length; y++) { var song = tracks[y]; if(!song.streamable) continue; @@ -684,7 +683,6 @@ var List = { } title = title.toLowerCase(); var id=song.id; - Helper.log([title + " " + _title + " " + similarity(title, _title)]); if(similarity(title, _title) > 0.60) { List.found.push({id: parseInt(song.id)}); isFound = true; @@ -868,7 +866,7 @@ var List = { Helper.addClass("#playlist_loader_export", "hide"); } if(document.querySelectorAll(".exported-spotify-list").length == 0) { - document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + chan + ""); + document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + chan + ""); } for(var i = 0; i < List.not_found.length; i++) { var data = List.not_found[i]; @@ -978,7 +976,7 @@ var List = { if(num == full_playlist.length - 1){ Helper.log(["All videoes added!"]); Helper.log(["url: https://www.youtube.com/playlist?list=" + playlist_id]); - document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + chan + ""); + document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "" + chan + ""); Helper.addClass("#playlist_loader_export", "hide"); Helper.addClass(".current_number", "hide"); //$(".youtube_export_button").removeClass("hide"); From 20e7dbb4fcdae5ed038c9e5a2cb2b5e60035189f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 13:28:45 +0200 Subject: [PATCH 20/21] Adding decription on export --- server/public/assets/js/list.js | 1 + 1 file changed, 1 insertion(+) diff --git a/server/public/assets/js/list.js b/server/public/assets/js/list.js index 24c8edcf..0c6fe0db 100755 --- a/server/public/assets/js/list.js +++ b/server/public/assets/js/list.js @@ -628,6 +628,7 @@ var List = { playlist: { title: chan.toLowerCase() + " - Zoff", tracks: List.found, + description: "Playlist exported from https://zoff.me/" + Helper.encodeChannelName(chan.toLowerCase()), } }).then(function(result) { for(var x = 0; x < List.not_found.length; x++) { From 8d7ce5b7c144ad36b6f094bb5fde31cc2271b2dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Tue, 23 Oct 2018 13:31:04 +0200 Subject: [PATCH 21/21] Removed unused code --- server/public/assets/js/listeners.js | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index 5c1dfa0f..ca9bce5e 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -954,25 +954,6 @@ function addDynamicListeners() { addListener("click", ".export-soundcloud", function(event) { this.preventDefault(); - /*var nonce = Helper.randomString(29); - Helper.removeClass("#playlist_loader_export", "hide"); - Helper.addClass(".soundcloud_export_button", "hide"); - window.callback = function(data) { - access_token_data_soundcloud = data; - if(access_token_data_soundcloud.state == nonce){ - soundcloud_authenticated = true; - Helper.removeClass("#playlist_loader_export", "hide"); - Helper.addClass(".soundcloud_export_button", "hide"); - } else { - access_token_data_soundcloud = {}; - console.error("States doesn't match"); - Helper.addClass("#playlist_loader_export", "hide"); - Helper.removeClass(".soundcloud_export_button", "hide"); - } - soundcloud_window.close(); - window.callback = ""; - }; - soundcloud_window = window.open("/api/oauth#soundcloud=true&nonce=" + nonce, "", "width=600, height=600");*/ window.SC_player = SC_player; SC_player.connect({"display":"page"}).then(function() { Helper.removeClass("#playlist_loader_export", "hide"); @@ -1105,15 +1086,12 @@ function addDynamicListeners() { } Helper.addClass(".playlist_loader_soundcloud", "hide"); Helper.removeClass("#listImportSoundCloud", "hide"); - //{id: song.id, title: enc_title, duration: duration, source: "youtube", thumbnail: "https://img.youtube.com/vi/" + song.id + "/mqdefault.jpg"} } catch(e) { - console.error(e); Helper.addClass(".playlist_loader_soundcloud", "hide"); Helper.removeClass("#listImportSoundCloud", "hide"); } }, error: function(data) { - console.log(data); Helper.addClass(".playlist_loader_soundcloud", "hide"); Helper.removeClass("#listImportSoundCloud", "hide"); toast("If the list is private, you have to add the secret code at the end");