Fixed issue with not all songs being added on export to YouTube

This commit is contained in:
Kasper Rynning-Tønnesen
2017-02-16 23:07:13 +01:00
parent 96070e2591
commit 4d6dffc35d
7 changed files with 118 additions and 100 deletions

View File

@@ -12,6 +12,10 @@
margin-top:100px; margin-top:100px;
} }
.current_number{
color: black;
}
#descriptions_cont, #thumbnails_cont{ #descriptions_cont, #thumbnails_cont{
display: flex; display: flex;
flex-direction: column; flex-direction: column;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -703,48 +703,17 @@ var List = {
success: function(response){ success: function(response){
var number_added = 0; var number_added = 0;
var playlist_id = response.id; var playlist_id = response.id;
$.each(full_playlist, function(i, data){ var request_url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet";
var request_url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet"; List.addToYoutubePlaylist(playlist_id, full_playlist, number_added, request_url)
$.ajax({ /*$.each(full_playlist, function(i, data){
type: "POST", //console.log(data.id);
url: request_url, //var id = data.id;
headers: { setTimeout(function(){
'Authorization': 'Bearer ' + access_token_data_youtube.access_token, console.log(id);
'Content-Type': 'application/json' List.addToYoutubePlaylist(playlist_id, id, number_added, request_url)
}, number_added = number_added + 1;
data: JSON.stringify({ }, 500);
'snippet': { });*/
'playlistId': playlist_id,
'resourceId': {
'kind': 'youtube#video',
'videoId': data.id
}
}
}),
error: function(code){
if(number_added == full_playlist.length - 1){
Helper.log("All videoes added!");
Helper.log("url: https://www.youtube.com/playlist?list=" + playlist_id);
$(".exported-list").append("<h5>Exported list</h5>");
$(".exported-list").append("<a target='_blank' class='btn light exported-playlist' href='https://www.youtube.com/playlist?list=" + playlist_id + "'>" + chan + "</a>");
$("#playlist_loader_export").addClass("hide");
}
number_added += 1;
},
success: function(response){
Helper.log("Added video: " + data.id + " to playlist id " + playlist_id);
if(number_added == full_playlist.length - 1){
Helper.log("All videoes added!");
Helper.log("url: https://www.youtube.com/playlist?list=" + playlist_id);
$(".exported-list").append("<a target='_blank' class='btn light exported-playlist' href='https://www.youtube.com/playlist?list=" + playlist_id + "'>" + chan + "</a>");
$("#playlist_loader_export").addClass("hide");
//$(".youtube_export_button").removeClass("hide");
}
number_added += 1;
}
});
});
}, },
error: function(response){ error: function(response){
Helper.log(response); Helper.log(response);
@@ -752,6 +721,46 @@ var List = {
}); });
}, },
addToYoutubePlaylist: function(playlist_id, full_playlist, num, request_url){
var _data = JSON.stringify({
'snippet': {
'playlistId': playlist_id,
'resourceId': {
'kind': 'youtube#video',
'videoId': full_playlist[num].id
}
}
});
$.ajax({
type: "POST",
url: request_url,
headers: {
'Authorization': 'Bearer ' + access_token_data_youtube.access_token,
'Content-Type': 'application/json'
},
data: _data,
success: function(response){
//console.log(response);
Helper.log("Added video: " + full_playlist[num].id + " to playlist id " + playlist_id);
if(num == full_playlist.length - 1){
Helper.log("All videoes added!");
Helper.log("url: https://www.youtube.com/playlist?list=" + playlist_id);
$(".exported-list").append("<a target='_blank' class='btn light exported-playlist' href='https://www.youtube.com/playlist?list=" + playlist_id + "'>" + chan + "</a>");
$("#playlist_loader_export").addClass("hide");
$(".current_number").addClass("hide");
//$(".youtube_export_button").removeClass("hide");
} else {
//setTimeout(function(){
$(".current_number").removeClass("hide");
$(".current_number").text((num + 1) + " of " + (full_playlist.length));
List.addToYoutubePlaylist(playlist_id, full_playlist, num + 1, request_url)
//}, 50);
}
}
});
},
importOldList: function(chan){ importOldList: function(chan){
var ids=""; var ids="";
var num=0; var num=0;
@@ -849,7 +858,7 @@ var List = {
}else if(!list){ }else if(!list){
//song.find(".card-duration").remove(); //song.find(".card-duration").remove();
song.find(".vote-text").text(""); song.find(".vote-text").text("");
song.find(".card-duration").text(_song_info.duration); song.find(".card-duration").text(Helper.pad(_song_info.duration[0]) + ":" + Helper.pad(_song_info.duration[1]));
attr = ".add-suggested"; attr = ".add-suggested";
if(user) if(user)

View File

@@ -1079,14 +1079,14 @@ $("#clickme").click(function(){
$(document).on("click", "#listExport", function(e){ $(document).on("click", "#listExport", function(e){
e.preventDefault(); e.preventDefault();
Helper.log(full_playlist); Helper.log(full_playlist);
$("#playlist_loader_export").removeClass("hide");
$(".youtube_export_button").addClass("hide");
if(!youtube_authenticated){ if(!youtube_authenticated){
var nonce = randomString(29); var nonce = randomString(29);
window.callback = function(data) { window.callback = function(data) {
access_token_data_youtube = data; access_token_data_youtube = data;
if(access_token_data_youtube.state == nonce){ if(access_token_data_youtube.state == nonce){
youtube_authenticated = true; youtube_authenticated = true;
$("#playlist_loader_export").removeClass("hide");
$(".youtube_export_button").addClass("hide");
setTimeout(function(){ setTimeout(function(){
youtube_authenticated = false; youtube_authenticated = false;
access_token_data_youtube = {}; access_token_data_youtube = {};

View File

@@ -12,13 +12,13 @@ var Suggestions = {
}, },
createSuggested: function(params){ createSuggested: function(params){
var secs = params.duration; var duration = Helper.secondsToOther(params.duration);
var video_id = params.id; var video_id = params.id;
var video_title = params.title; var video_title = params.title;
var minutes = Math.floor(secs / 60); /*var minutes = Math.floor(secs / 60);
var seconds = secs - minutes * 60; var seconds = secs - minutes * 60;
duration = Helper.pad(minutes) + ":" + Helper.pad(seconds); duration = Helper.pad(minutes) + ":" + Helper.pad(seconds);*/
var song = List.generateSong({id: video_id, title: video_title, length: secs, duration: duration}, false, false, false, true); var song = List.generateSong({id: video_id, title: video_title, length: secs, duration: duration}, false, false, false, true);
$("#user-suggest-html").append(song); $("#user-suggest-html").append(song);
@@ -50,13 +50,13 @@ var Suggestions = {
$.each(response.items, function(i,song) $.each(response.items, function(i,song)
{ {
var duration = song.contentDetails.duration; var duration = song.contentDetails.duration;
var secs = Search.durationToSeconds(duration); duration = Helper.secondsToOther(Search.durationToSeconds(duration));
var video_id = song.id; var video_id = song.id;
var video_title = song.snippet.title; var video_title = song.snippet.title;
duration = duration.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s"); //duration = duration.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s");
$("#suggest-song-html").append(List.generateSong({id: video_id, title: video_title, length: secs, duration: duration}, false, false, false)); $("#suggest-song-html").append(List.generateSong({id: video_id, title: video_title, duration: duration}, false, false, false));
}); });
} }
}); });

View File

@@ -412,54 +412,59 @@
</li> </li>
<li class="exported-list-container white-bg hide"> <li class="exported-list-container white-bg hide">
<div class="valign playlist_loader_padding"> <div class="valign playlist_loader_padding">
<div id="playlist_loader_export" class="preloader-wrapper small active hide"> <div class="row">
<div class="spinner-layer spinner-blue"> <div class="col s2">
<div class="circle-clipper left"> <div id="playlist_loader_export" class="preloader-wrapper small active hide">
<div class="circle"></div> <div class="spinner-layer spinner-blue">
</div> <div class="circle-clipper left">
<div class="gap-patch"> <div class="circle"></div>
<div class="circle"></div> </div>
</div> <div class="gap-patch">
<div class="circle-clipper right"> <div class="circle"></div>
<div class="circle"></div> </div>
</div> <div class="circle-clipper right">
</div> <div class="circle"></div>
</div>
</div>
<div class="spinner-layer spinner-red"> <div class="spinner-layer spinner-red">
<div class="circle-clipper left"> <div class="circle-clipper left">
<div class="circle"></div> <div class="circle"></div>
</div> </div>
<div class="gap-patch"> <div class="gap-patch">
<div class="circle"></div> <div class="circle"></div>
</div> </div>
<div class="circle-clipper right"> <div class="circle-clipper right">
<div class="circle"></div> <div class="circle"></div>
</div> </div>
</div> </div>
<div class="spinner-layer spinner-yellow"> <div class="spinner-layer spinner-yellow">
<div class="circle-clipper left"> <div class="circle-clipper left">
<div class="circle"></div> <div class="circle"></div>
</div> </div>
<div class="gap-patch"> <div class="gap-patch">
<div class="circle"></div> <div class="circle"></div>
</div> </div>
<div class="circle-clipper right"> <div class="circle-clipper right">
<div class="circle"></div> <div class="circle"></div>
</div> </div>
</div> </div>
<div class="spinner-layer spinner-green"> <div class="spinner-layer spinner-green">
<div class="circle-clipper left"> <div class="circle-clipper left">
<div class="circle"></div> <div class="circle"></div>
</div> </div>
<div class="gap-patch"> <div class="gap-patch">
<div class="circle"></div> <div class="circle"></div>
</div> </div>
<div class="circle-clipper right"> <div class="circle-clipper right">
<div class="circle"></div> <div class="circle"></div>
</div>
</div>
</div> </div>
</div> </div>
<div class="current_number hide col s8 offset-s2">0/0</div>
</div> </div>
</div> </div>
</li> </li>