var queueList = {} var queue = [] socket.on("addedToQueue", function(queueItem){ queueList[queueItem.uuid] = queueItem queue.push(queueItem.uuid) $("#download_list").append( `
Cover ${queueItem.title}
${queueItem.title} - ${queueItem.artist}
0/${queueItem.size}
remove
`) }) function downloadAction(evt){ let icon = $(evt.currentTarget).text() let uuid = $(evt.currentTarget).data("uuid") switch (icon) { case 'remove': socket.emit('removeFromQueue', uuid) break; default: } } socket.on("removedFromQueue", function(uuid){ let index = queue.indexOf(uuid) if (index > -1){ queue.splice(index, 1) $(`#download_${queueList[uuid].uuid}`).remove() delete queueList[uuid] } }) socket.on("startDownload", function(uuid){ $('#bar_' + uuid).removeClass('indeterminate').addClass('determinate') }) socket.on("finishDownload", function(uuid){ console.log(uuid+" finished downloading") toast(`${queueList[uuid].title} finished downloading.`) $('#bar_' + uuid).css('width', '100%') }) socket.on("updateQueue", function(update){ if (update.uuid && queue.indexOf(update.uuid) > -1){ console.log(update) if (update.downloaded){ queueList[update.uuid].downloaded++ $("#download_"+update.uuid+" .queue_downloaded").text(queueList[update.uuid].downloaded) } if (update.failed){ queueList[update.uuid].failed++ if (queueList[update.uuid].failed == 1){ $("#download_"+update.uuid+" .download_info_status").append(`(1 Failed)`) }else{ $("#download_"+update.uuid+" .queue_failed").text(queueList[update.uuid].failed) } } if (update.progress){ queueList[update.uuid].progress = update.progress $('#bar_' + update.uuid).css('width', update.progress + '%') } } })