Explorar el Código

Added official playlists shuffling.

KrisVos130 hace 8 años
padre
commit
266ca6ae40
Se han modificado 2 ficheros con 20 adiciones y 0 borrados
  1. 2 0
      backend/logic/stations.js
  2. 18 0
      backend/logic/utils.js

+ 2 - 0
backend/logic/stations.js

@@ -157,6 +157,8 @@ module.exports = {
 					if (songList.indexOf(songId) !== -1) playlist.push(songId);
 				});
 
+				playlist = utils.shuffle(playlist);
+
 				_this.calculateOfficialPlaylistList(station._id, playlist, () => {
 					next(null, playlist);
 				});

+ 18 - 0
backend/logic/utils.js

@@ -355,5 +355,23 @@ module.exports = {
 
 			cb(song);
 		});
+	},
+	shuffle: (array) => {
+		let currentIndex = array.length, temporaryValue, randomIndex;
+
+		// While there remain elements to shuffle...
+		while (0 !== currentIndex) {
+
+			// Pick a remaining element...
+			randomIndex = Math.floor(Math.random() * currentIndex);
+			currentIndex -= 1;
+
+			// And swap it with the current element.
+			temporaryValue = array[currentIndex];
+			array[currentIndex] = array[randomIndex];
+			array[randomIndex] = temporaryValue;
+		}
+
+		return array;
 	}
 };