|
@@ -867,7 +867,10 @@ Template.room.events({
|
|
|
$("#youtube-playlist-input").addClass("disabled");
|
|
|
$("#playlist-import-queue").empty();
|
|
|
$("#playlist-import-queue").hide();
|
|
|
-
|
|
|
+ $("#add-youtube-playlist").addClass("hidden-2");
|
|
|
+ $("#import-progress").attr("aria-valuenow", 0);
|
|
|
+ $("#import-progress").css({width: "0%"});
|
|
|
+ $("#import-progress").text("0%");
|
|
|
|
|
|
function makeAPICall(playlist_id, nextPageToken){
|
|
|
if (nextPageToken !== undefined) {
|
|
@@ -877,31 +880,40 @@ Template.room.events({
|
|
|
}
|
|
|
$.ajax({
|
|
|
type: "GET",
|
|
|
- url: "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=10&playlistId=" + playlist_id + nextPageToken + "&key=AIzaSyAgBdacEWrHCHVPPM4k-AFM7uXg-Q__YXY",
|
|
|
+ url: "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=" + playlist_id + nextPageToken + "&key=AIzaSyAgBdacEWrHCHVPPM4k-AFM7uXg-Q__YXY",
|
|
|
applicationType: "application/json",
|
|
|
contentType: "json",
|
|
|
success: function(data){
|
|
|
if (!ranOnce) {
|
|
|
ranOnce = true;
|
|
|
- console.log(data);
|
|
|
totalVideos = data.pageInfo.totalResults;
|
|
|
}
|
|
|
var nextToken = data.nextPageToken;
|
|
|
for(var i in data.items){
|
|
|
var item = data.items[i];
|
|
|
- console.log(item);
|
|
|
if (item.snippet.thumbnails !== undefined) {
|
|
|
- $("#playlist-import-queue").append(
|
|
|
- "<div class='youtube-import-queue-item'>" +
|
|
|
- "<img src='" + item.snippet.thumbnails.medium.url + "' class='song-result-thumbnail'/>" +
|
|
|
- "<div>" +
|
|
|
- "<span class='song-result-title'>" + item.snippet.title + "</span>" +
|
|
|
- "<span class='song-result-channel'>" + item.snippet.channelTitle + "</span>" +
|
|
|
- "</div>" +
|
|
|
- "<i class='fa fa-times remove-import-song'></i>" +
|
|
|
- "</div>"
|
|
|
- );
|
|
|
- ytImportQueue.push({title: item.snippet.title, id: item.id.videoId});
|
|
|
+ var genre = Session.get("type");
|
|
|
+ if (Playlists.find({type: genre, "songs.id": item.snippet.resourceId.videoId}, {songs: {$elemMatch: {id: item.snippet.resourceId.videoId}}}).count() !== 0) {
|
|
|
+ videosInPlaylist++;
|
|
|
+ } else if (Queues.find({type: genre, "songs.id": item.snippet.resourceId.videoId}, {songs: {$elemMatch: {id: item.snippet.resourceId.videoId}}}).count() !== 0) {
|
|
|
+ videosInQueue++;
|
|
|
+ } else {
|
|
|
+ $("#playlist-import-queue").append(
|
|
|
+ "<div class='youtube-import-queue-item'>" +
|
|
|
+ "<img src='" + item.snippet.thumbnails.medium.url + "' class='song-result-thumbnail'/>" +
|
|
|
+ "<div>" +
|
|
|
+ "<span class='song-result-title'>" + item.snippet.title + "</span>" +
|
|
|
+ "<span class='song-result-channel'>" + item.snippet.channelTitle + "</span>" +
|
|
|
+ "</div>" +
|
|
|
+ "<i class='fa fa-times remove-import-song'></i>" +
|
|
|
+ "</div>"
|
|
|
+ );
|
|
|
+ var percentage = ytImportQueue.length / (totalVideos - videosInvalid) * 100;
|
|
|
+ $("#import-progress").attr("aria-valuenow", percentage.toFixed(2));
|
|
|
+ $("#import-progress").css({width: percentage + "%"});
|
|
|
+ $("#import-progress").text(percentage.toFixed(1) + "%");
|
|
|
+ ytImportQueue.push({title: item.snippet.title, id: item.snippet.resourceId.videoId});
|
|
|
+ }
|
|
|
} else {
|
|
|
videosInvalid++;
|
|
|
}
|
|
@@ -910,11 +922,7 @@ Template.room.events({
|
|
|
makeAPICall(playlist_id, nextToken);
|
|
|
} else {
|
|
|
$("#playlist-import-queue > div > i").click(function(){
|
|
|
- console.log("I clicked!");
|
|
|
var title = $(this).parent().find("div > .song-result-title").text();
|
|
|
- console.log(title);
|
|
|
- console.log($(this));
|
|
|
- console.log($(this).parent());
|
|
|
for(var i in ytImportQueue){
|
|
|
if(ytImportQueue[i].title === title){
|
|
|
ytImportQueue.splice(i, 1);
|
|
@@ -923,11 +931,16 @@ Template.room.events({
|
|
|
$(this).parent().remove();
|
|
|
});
|
|
|
Session.set("importingPlaylist", false);
|
|
|
+ $("#import-progress").attr("aria-valuenow", 100);
|
|
|
+ $("#import-progress").css({width: "100%"});
|
|
|
+ $("#import-progress").text("100%");
|
|
|
$("#youtube-playlist-button").removeAttr("disabled");
|
|
|
$("#youtube-playlist-button").removeClass("disabled");
|
|
|
$("#youtube-playlist-input").removeAttr("disabled");
|
|
|
$("#youtube-playlist-input").removeClass("disabled");
|
|
|
$("#playlist-import-queue").show();
|
|
|
+ $("#add-youtube-playlist").removeClass("hidden-2");
|
|
|
+ Session.set("YTImportQueue", ytImportQueue);
|
|
|
}
|
|
|
}
|
|
|
})
|
|
@@ -935,6 +948,35 @@ Template.room.events({
|
|
|
makeAPICall(playlist_id);
|
|
|
}
|
|
|
},
|
|
|
+ "click #add-youtube-playlist": function() {
|
|
|
+ var YTImportQueue = Session.get("YTImportQueue");
|
|
|
+ $("#youtube-playlist-button").attr("disabled", "");
|
|
|
+ $("#youtube-playlist-button").addClass("disabled");
|
|
|
+ $("#youtube-playlist-input").attr("disabled", "");
|
|
|
+ $("#youtube-playlist-input").addClass("disabled");
|
|
|
+ $("#import-progress").attr("aria-valuenow", 0);
|
|
|
+ $("#import-progress").css({width: "0%"});
|
|
|
+ $("#import-progress").text("0%");
|
|
|
+ var failed = 0;
|
|
|
+ var success = 0;
|
|
|
+ var processed = 0;
|
|
|
+ var total = YTImportQueue.length;
|
|
|
+ YTImportQueue.forEach(function(song) {
|
|
|
+ var songData = {type: type, id: song.id, title: song.title, artist: "", img: ""};
|
|
|
+ Meteor.call("addSongToQueue", Session.get("type"), songData, function(err, res) {
|
|
|
+ if (err) {
|
|
|
+ failed++;
|
|
|
+ } else {
|
|
|
+ success++;
|
|
|
+ }
|
|
|
+ processed++;
|
|
|
+ var percentage = processed / total * 100;
|
|
|
+ $("#import-progress").attr("aria-valuenow", percentage.toFixed(2));
|
|
|
+ $("#import-progress").css({width: percentage + "%"});
|
|
|
+ $("#import-progress").text(percentage.toFixed(1) + "%");
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
"click #chat-tab": function() {
|
|
|
$("#chat-tab").removeClass("unread-messages");
|
|
|
},
|
|
@@ -1229,11 +1271,11 @@ Template.room.events({
|
|
|
"change #si_or_pl": function(){
|
|
|
if($("#select_playlist").is(':selected')){
|
|
|
$("#search-info").hide();
|
|
|
- $("#playlist-buttons").show();
|
|
|
+ $("#playlist-import").show();
|
|
|
}
|
|
|
if($("#select_single").is(':selected')){
|
|
|
$("#search-info").show();
|
|
|
- $("#playlist-buttons").hide();
|
|
|
+ $("#playlist-import").hide();
|
|
|
}
|
|
|
},
|
|
|
"click #close-modal-a": function(){
|