Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
spotify
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
web
spotify
Compare revisions
c5f4480731941a7f831da172c2c9e4519c76c571 to ecaed674aa4be8be861dd76d27e2a3438f81a5c6
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
web/spotify
Select target project
No results found
ecaed674aa4be8be861dd76d27e2a3438f81a5c6
Select Git revision
Branches
11-improve-new-playlist-name-and-description
15-add-a-play-now-button-on-created-playlist-message
20-rename-playlist-with-artists-names
30-save-spotify-personal-token-for-external-use
37-batch-update-recently-played-tracks
40-add-more-default-playlists-in-quick-create-feature
58-create-api-for-main-routes
60-display-last-tracks-and-some-dump-metadata
master
9 results
Swap
Target
web/spotify
Select target project
web/spotify
1 result
c5f4480731941a7f831da172c2c9e4519c76c571
Select Git revision
Branches
11-improve-new-playlist-name-and-description
15-add-a-play-now-button-on-created-playlist-message
20-rename-playlist-with-artists-names
30-save-spotify-personal-token-for-external-use
37-batch-update-recently-played-tracks
40-add-more-default-playlists-in-quick-create-feature
58-create-api-for-main-routes
60-display-last-tracks-and-some-dump-metadata
master
9 results
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Commits on Source (2)
Fix generate tambouille mix (fallback if error in recommendations)
· 13c5c2f3
Benoît Harrault
authored
2 years ago
13c5c2f3
Merge branch '53-fix-create-tambouille-long-playlist' into 'master'
· ecaed674
Benoît Harrault
authored
2 years ago
Resolve "Fix create tambouille long playlist" Closes
#53
See merge request
!47
ecaed674
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/Service/SpotifyPlaylistService.php
+18
-9
18 additions, 9 deletions
src/Service/SpotifyPlaylistService.php
with
18 additions
and
9 deletions
src/Service/SpotifyPlaylistService.php
View file @
ecaed674
...
@@ -3,6 +3,7 @@
...
@@ -3,6 +3,7 @@
namespace
App\Service
;
namespace
App\Service
;
use
DateTime
;
use
DateTime
;
use
SpotifyWebAPI\SpotifyWebAPIException
;
class
SpotifyPlaylistService
class
SpotifyPlaylistService
{
{
...
@@ -163,8 +164,9 @@ class SpotifyPlaylistService
...
@@ -163,8 +164,9 @@ class SpotifyPlaylistService
$tracksCount
=
\count
(
$selectedPlaylistTracks
);
$tracksCount
=
\count
(
$selectedPlaylistTracks
);
// Split playlist in two tracks lists
// Split playlist in two tracks lists
$tracksList1
=
$this
->
pickRandomTracksFromArray
(
$selectedPlaylistTracks
,
max
(
intval
(
$count
/
5
),
intval
(
$tracksCount
/
5
)));
$splittedTracksListLength
=
max
(
intval
(
$count
/
5
),
intval
(
$tracksCount
/
5
));
$tracksList2
=
$this
->
pickRandomTracksFromArray
(
$selectedPlaylistTracks
,
max
(
intval
(
$count
/
5
),
intval
(
$tracksCount
/
5
)));
$tracksList1
=
$this
->
pickRandomTracksFromArray
(
$selectedPlaylistTracks
,
$splittedTracksListLength
);
$tracksList2
=
$this
->
pickRandomTracksFromArray
(
$selectedPlaylistTracks
,
$splittedTracksListLength
);
// Directly pick first part of this playlist
// Directly pick first part of this playlist
foreach
(
$tracksList1
as
$trackId
)
{
foreach
(
$tracksList1
as
$trackId
)
{
...
@@ -172,14 +174,21 @@ class SpotifyPlaylistService
...
@@ -172,14 +174,21 @@ class SpotifyPlaylistService
}
}
// Get recommandations for other part
// Get recommandations for other part
$chunks
=
array_chunk
(
$tracksList2
,
5
);
$chunks
=
\
array_chunk
(
$tracksList2
,
5
);
foreach
(
$chunks
as
$chunk
)
{
foreach
(
$chunks
as
$chunk
)
{
$recommendations
=
$api
->
getRecommendations
([
try
{
'seed_tracks'
=>
$chunk
,
$recommendations
=
$api
->
getRecommendations
([
'limit'
=>
\count
(
$chunk
)
'seed_tracks'
=>
$chunk
,
]);
'limit'
=>
\count
(
$chunk
)
foreach
(
$recommendations
->
tracks
as
$recommendedTrack
)
{
]);
$trackIds
[
$recommendedTrack
->
id
]
=
$recommendedTrack
;
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
;
}
}
}
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.