Skip to content
Snippets Groups Projects
Commit ecaed674 authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Merge branch '53-fix-create-tambouille-long-playlist' into 'master'

Resolve "Fix create tambouille long playlist"

Closes #53

See merge request !47
parents c5f44807 13c5c2f3
No related branches found
No related tags found
1 merge request!47Resolve "Fix create tambouille long playlist"
......@@ -3,6 +3,7 @@
namespace App\Service;
use DateTime;
use SpotifyWebAPI\SpotifyWebAPIException;
class SpotifyPlaylistService
{
......@@ -163,8 +164,9 @@ class SpotifyPlaylistService
$tracksCount = \count($selectedPlaylistTracks);
// Split playlist in two tracks lists
$tracksList1 = $this->pickRandomTracksFromArray($selectedPlaylistTracks, max(intval($count / 5), intval($tracksCount / 5)));
$tracksList2 = $this->pickRandomTracksFromArray($selectedPlaylistTracks, max(intval($count / 5), intval($tracksCount / 5)));
$splittedTracksListLength = max(intval($count / 5), intval($tracksCount / 5));
$tracksList1 = $this->pickRandomTracksFromArray($selectedPlaylistTracks, $splittedTracksListLength);
$tracksList2 = $this->pickRandomTracksFromArray($selectedPlaylistTracks, $splittedTracksListLength);
// Directly pick first part of this playlist
foreach ($tracksList1 as $trackId) {
......@@ -172,14 +174,21 @@ class SpotifyPlaylistService
}
// Get recommandations for other part
$chunks = array_chunk($tracksList2, 5);
$chunks = \array_chunk($tracksList2, 5);
foreach ($chunks as $chunk) {
$recommendations = $api->getRecommendations([
'seed_tracks' => $chunk,
'limit' => \count($chunk)
]);
foreach ($recommendations->tracks as $recommendedTrack) {
$trackIds[$recommendedTrack->id] = $recommendedTrack;
try {
$recommendations = $api->getRecommendations([
'seed_tracks' => $chunk,
'limit' => \count($chunk)
]);
foreach ($recommendations->tracks as $recommendedTrack) {
$trackIds[$recommendedTrack->id] = $recommendedTrack->id;
}
} catch (SpotifyWebAPIException $e) {
// Failed on retrieve recommendations => add seed tracks instead
foreach ($chunk as $fallbackTrackId) {
$trackIds[$fallbackTrackId] = $fallbackTrackId;
}
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment