Skip to content

Commit c078b55

Browse files
committed
added shuffle queue option
1 parent 94bfe5c commit c078b55

File tree

5 files changed

+43
-11
lines changed

5 files changed

+43
-11
lines changed

background.js

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@ var main = {
55

66
var showIconsToggle = "yes";
77

8+
function shuffle(array) {
9+
var currentIndex = array.length, temporaryValue, randomIndex;
10+
11+
while (0 !== currentIndex) {
12+
13+
randomIndex = Math.floor(Math.random() * currentIndex);
14+
currentIndex -= 1;
15+
16+
temporaryValue = array[currentIndex];
17+
array[currentIndex] = array[randomIndex];
18+
array[randomIndex] = temporaryValue;
19+
}
20+
21+
return array;
22+
}
23+
824
function updateShowIconsVariable(){
925
chrome.storage.sync.get( "youtube_queue_extension_show_icons", function(data){
1026
if( data["youtube_queue_extension_show_icons"] != undefined)
@@ -26,19 +42,19 @@ chrome.storage.sync.get('youtube_queue_extension_queue', function(data){
2642

2743
//New Feature Popup Starts
2844
//add new feature
29-
chrome.storage.sync.get('youtube_queue_extension_v140', function(data){
30-
if(data['youtube_queue_extension_new_v140'] == undefined)
45+
chrome.storage.sync.get('youtube_queue_extension_v142', function(data){
46+
if(data['youtube_queue_extension_new_v142'] == undefined)
3147
{
32-
chrome.storage.sync.set({'youtube_queue_extension_v140': '5*Now Drag-Drop the videos in Queue to reorder.'}, function(){
48+
chrome.storage.sync.set({'youtube_queue_extension_v142': '5*Shuffle Queue option added.'}, function(){
3349

3450
});
3551
}
3652
});
3753

3854
//remove old feature
39-
chrome.storage.sync.get('youtube_queue_extension_v139', function(data){
40-
if(!(data['youtube_queue_extension_v139'] == undefined)){
41-
chrome.storage.sync.remove('youtube_queue_extension_v139', function(){
55+
chrome.storage.sync.get('youtube_queue_extension_v140', function(data){
56+
if(!(data['youtube_queue_extension_v140'] == undefined)){
57+
chrome.storage.sync.remove('youtube_queue_extension_v140', function(){
4258

4359
});
4460
}
@@ -335,6 +351,7 @@ chrome.runtime.onMessage.addListener(
335351
}
336352
else if(request.greeting == "empty_queue"){
337353
empty_queue();
354+
// main.songs = shuffle(main.songs);
338355
sendResponse({res: "Queue is now empty."});
339356
}
340357
else if(request.greeting == "playFeatured"){
@@ -361,6 +378,9 @@ chrome.runtime.onMessage.addListener(
361378
else if(request.greeting == "updatedShowIcons"){
362379
updateShowIconsVariable();
363380
}
381+
else if(request.greeting == "shuffle"){
382+
main.songs = shuffle(main.songs);
383+
}
364384
// else if(request.greeting == "new_feature"){
365385
// chrome.storage.sync.get('youtube_queue_extension_v140', function(data){
366386
// sendResponse({feature: data['youtube_queue_extension_v140']});

content.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ var songToAdd = -1;
66
document.getElementById("play_next").addEventListener('click', play_next, false);
77
document.getElementById("pause_play").addEventListener('click', play_pause, false);
88
document.getElementById("play_previous").addEventListener('click', play_previous, false);
9+
10+
//player options
911
document.getElementById("settings").addEventListener('click', open_settings, false);
1012
document.getElementById("empty").addEventListener('click', empty_queue, false);
13+
document.getElementById("shuffle").addEventListener('click', shuffle, false);
1114

1215
// settings listeners
1316
document.getElementById("repeatAll").addEventListener('click', toggle_loop, false);
@@ -49,6 +52,12 @@ function empty_queue(){
4952
})
5053
}
5154

55+
function shuffle(){
56+
chrome.runtime.sendMessage({greeting : "shuffle"}, function(response){
57+
refresh();
58+
})
59+
}
60+
5261
//in video controls end
5362

5463

@@ -942,13 +951,13 @@ var onSortingStop = function( event, ui ) {
942951
};
943952

944953
//New feature starts
945-
chrome.storage.sync.get('youtube_queue_extension_v140', function(data){
946-
if(data['youtube_queue_extension_v140'] != undefined){
947-
var msg = data['youtube_queue_extension_v140'].split("*");
954+
chrome.storage.sync.get('youtube_queue_extension_v142', function(data){
955+
if(data['youtube_queue_extension_v142'] != undefined){
956+
var msg = data['youtube_queue_extension_v142'].split("*");
948957
if(Number(msg[0]) > 0){
949958
notif( msg[1]);
950959
var newMsg = Number(msg[0]-1).toString() + "*" + msg[1];
951-
chrome.storage.sync.set({'youtube_queue_extension_v140': newMsg}, function(){
960+
chrome.storage.sync.set({'youtube_queue_extension_v142': newMsg}, function(){
952961

953962
});
954963
}

images/shuffle.png

877 Bytes
Loading

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "Youtube Queue",
33
"description": "Allows you to queue youtube videos and plays them for you.",
4-
"version": "1.41",
4+
"version": "1.42",
55
"permissions": ["contextMenus", "tabs", "<all_urls>", "storage"],
66
"browser_action" : {
77
"default_icon" : "icon48.png",

popup.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@
3131
<div class="control-icon tooltipped" data-position="bottom" data-delay="50" data-tooltip="Settings" id="settings">
3232
<img src="images/settings.png">
3333
</div>
34+
<div class="control-icon tooltipped" data-position="bottom" data-delay="50" data-tooltip="Shuffle Queue" id="shuffle">
35+
<img src="images/shuffle.png">
36+
</div>
3437
<div class="control-icon tooltipped" data-position="bottom" data-delay="50" data-tooltip="Empty Queue" id="empty">
3538
<img src="images/empty.png">
3639
</div>

0 commit comments

Comments
 (0)