From c078b559f9225b7ae7fb83f534c9247bd6902e60 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Thu, 13 Sep 2018 23:28:42 +0530 Subject: [PATCH] added shuffle queue option --- background.js | 32 ++++++++++++++++++++++++++------ content.js | 17 +++++++++++++---- images/shuffle.png | Bin 0 -> 877 bytes manifest.json | 2 +- popup.html | 3 +++ 5 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 images/shuffle.png 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 0000000000000000000000000000000000000000..0c520ef5934d64d8ae705755f849fb6348633a85 GIT binary patch literal 877 zcmV-z1CsoSP)41u?%K9(BhK1(yf$k_b)&Uy+qP{ZsEx(7aq=eh`6fM+^osr5KW8Q)v4|DpPlWB%owSwcc!~F-cZ){M-g~ryVgX{^*RB@%$ z!Pg+WQO8Oy_09p=4P~BHT;`}~mK9Av_N0y_9=2SDpLL2R8I0@)%a(XrGyrg6vtR!y zvYECj@wjU^fN_?Ors#!ia4eujoDXM4Q~W6VL$_$0fwDKF8Foc>Srp(>WE)2ljFe5W zTohm_6J&#<3BHhB6@?ff`yg6pbs0NHA@-8}YpH0J6J%qf7#;j2+c#QeknDjd$X$*9 zxp0r{vM5Lo+1=49AIT1if*d4!F?8Xt3Nl`He6-3^{*~<(h1fyH>d`tM%7#WEu9AIG=1pjVrJ?}K znIan%O|Y?yi%VVV3;nQqyZj@$Zhn{jSn6SSc!^Jq8Z4uCG{p+WE!un*_#QA@HpQ~h z92WrwEZlrz0a(@#G6qMJbn!DTTiE#v5}>1}WK6JPG|RCIKYsxOZjiw_u{asXf(7X4 zRvCP)Lz~Pe=D{+al)-e{w#|Izd3pK9oE+Ik^NBgKs$r&?lm2Zmf8GJsG0Jpv_Gp{U zClcGb*=%$3p{3eneh$#xo-T5yAI!`1mRs!eTX2g`_0FHnBdI6hb3LpSNgW9@yrRF&B5Uh}8GiS%r;K)neRPeaf`llq^iiVngow%$A}UXa zs5~K}@`Q-W6Cx^4h^RavYGxo&v;Rl?Lm5WFC>R9*ByjY3nea7B00000NkvXXu0mjf D&@r74 literal 0 HcmV?d00001 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 @@
+
+ +