Skip to content

Instantly share code, notes, and snippets.

@gate5th
Created September 12, 2018 19:00
Show Gist options
  • Save gate5th/205b176b6580e135f3e092fc2e430ee9 to your computer and use it in GitHub Desktop.
Save gate5th/205b176b6580e135f3e092fc2e430ee9 to your computer and use it in GitHub Desktop.
oldschoolshuffle
export async function byAlbumWithDiscography(state){
//receives this.state from playlistChooser and extract what you need
const {chosenPlaylistId: playlistId, chosenPlaylistName:playlistName} = state;
try {
let tracks = await getSimplePlaylistTracks(playlistId);
const albumIds = identifyAlbumsInPlaylist(tracks, false);
const shuffledAlbums = shuffleArray(albumIds);
//forget the playlist now that we know the albums - start fresh
const promiseArrayOfTracksFromAlbum = shuffledAlbums.map(async (albumObject) => {
const response = await getSimpleAlbumTracks(albumObject.albumId, albumObject.albumName, albumObject.albumUri)
return response
})
const tracksByAlbum = await Promise.all(promiseArrayOfTracksFromAlbum);
const sortedByAlbumAndTrack = flatten(tracksByAlbum);
await createPlaylist(sortedByAlbumAndTrack, playlistName, true);
}
catch(err) {
console.error('Error: in byAlbumWithDiscography in spotifyFunctions', err);
console.error(err.stack);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment