diff --git a/background.js b/background.js index c12c108..725340c 100644 --- a/background.js +++ b/background.js @@ -5,6 +5,22 @@ var main = { var showIconsToggle = "yes"; +function shuffle(array) { + var currentIndex = array.length, temporaryValue, randomIndex; + + while (0 !== currentIndex) { + + randomIndex = Math.floor(Math.random() * currentIndex); + currentIndex -= 1; + + temporaryValue = array[currentIndex]; + array[currentIndex] = array[randomIndex]; + array[randomIndex] = temporaryValue; + } + + return array; +} + function updateShowIconsVariable(){ chrome.storage.sync.get( "youtube_queue_extension_show_icons", function(data){ if( data["youtube_queue_extension_show_icons"] != undefined) @@ -26,19 +42,19 @@ chrome.storage.sync.get('youtube_queue_extension_queue', function(data){ //New Feature Popup Starts //add new feature -chrome.storage.sync.get('youtube_queue_extension_v140', function(data){ - if(data['youtube_queue_extension_new_v140'] == undefined) +chrome.storage.sync.get('youtube_queue_extension_v142', function(data){ + if(data['youtube_queue_extension_new_v142'] == undefined) { - chrome.storage.sync.set({'youtube_queue_extension_v140': '5*Now Drag-Drop the videos in Queue to reorder.'}, function(){ + chrome.storage.sync.set({'youtube_queue_extension_v142': '5*Shuffle Queue option added.'}, function(){ }); } }); //remove old feature -chrome.storage.sync.get('youtube_queue_extension_v139', function(data){ - if(!(data['youtube_queue_extension_v139'] == undefined)){ - chrome.storage.sync.remove('youtube_queue_extension_v139', function(){ +chrome.storage.sync.get('youtube_queue_extension_v140', function(data){ + if(!(data['youtube_queue_extension_v140'] == undefined)){ + chrome.storage.sync.remove('youtube_queue_extension_v140', function(){ }); } @@ -335,6 +351,7 @@ chrome.runtime.onMessage.addListener( } else if(request.greeting == "empty_queue"){ empty_queue(); + // main.songs = shuffle(main.songs); sendResponse({res: "Queue is now empty."}); } else if(request.greeting == "playFeatured"){ @@ -361,6 +378,9 @@ chrome.runtime.onMessage.addListener( else if(request.greeting == "updatedShowIcons"){ updateShowIconsVariable(); } + else if(request.greeting == "shuffle"){ + main.songs = shuffle(main.songs); + } // else if(request.greeting == "new_feature"){ // chrome.storage.sync.get('youtube_queue_extension_v140', function(data){ // sendResponse({feature: data['youtube_queue_extension_v140']}); diff --git a/content.js b/content.js index db4b3f7..0c3b820 100644 --- a/content.js +++ b/content.js @@ -6,8 +6,11 @@ var songToAdd = -1; document.getElementById("play_next").addEventListener('click', play_next, false); document.getElementById("pause_play").addEventListener('click', play_pause, false); document.getElementById("play_previous").addEventListener('click', play_previous, false); + +//player options document.getElementById("settings").addEventListener('click', open_settings, false); document.getElementById("empty").addEventListener('click', empty_queue, false); +document.getElementById("shuffle").addEventListener('click', shuffle, false); // settings listeners document.getElementById("repeatAll").addEventListener('click', toggle_loop, false); @@ -49,6 +52,12 @@ function empty_queue(){ }) } +function shuffle(){ + chrome.runtime.sendMessage({greeting : "shuffle"}, function(response){ + refresh(); + }) +} + //in video controls end @@ -942,13 +951,13 @@ var onSortingStop = function( event, ui ) { }; //New feature starts -chrome.storage.sync.get('youtube_queue_extension_v140', function(data){ - if(data['youtube_queue_extension_v140'] != undefined){ - var msg = data['youtube_queue_extension_v140'].split("*"); +chrome.storage.sync.get('youtube_queue_extension_v142', function(data){ + if(data['youtube_queue_extension_v142'] != undefined){ + var msg = data['youtube_queue_extension_v142'].split("*"); if(Number(msg[0]) > 0){ notif( msg[1]); var newMsg = Number(msg[0]-1).toString() + "*" + msg[1]; - chrome.storage.sync.set({'youtube_queue_extension_v140': newMsg}, function(){ + chrome.storage.sync.set({'youtube_queue_extension_v142': newMsg}, function(){ }); } diff --git a/images/shuffle.png b/images/shuffle.png new file mode 100644 index 0000000..0c520ef Binary files /dev/null and b/images/shuffle.png differ diff --git a/manifest.json b/manifest.json index 188e5f0..54ccf41 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "name": "Youtube Queue", "description": "Allows you to queue youtube videos and plays them for you.", - "version": "1.41", + "version": "1.42", "permissions": ["contextMenus", "tabs", "", "storage"], "browser_action" : { "default_icon" : "icon48.png", diff --git a/popup.html b/popup.html index 769449f..91197fc 100644 --- a/popup.html +++ b/popup.html @@ -31,6 +31,9 @@
+
+ +