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

Merge branch '29-add-a-generate-long-playlist-option' into 'master'

Resolve "Add a "generate long playlist" option"

Closes #29

See merge request !25
parents a7a77bb1 25745181
No related branches found
No related tags found
1 merge request!25Resolve "Add a "generate long playlist" option"
......@@ -65,6 +65,10 @@ if ($generatePlaylistFromPlaylist) {
$shouldFilterByArtists = isset($_GET['check-playlist-filter-artists']);
error_log('Filter by artists in source playlists: '.($shouldFilterByArtists ? 'yes' : 'no'));
$generateLongPlaylist = isset($_GET['check-playlist-long-playlist']);
error_log('Generate long playlist: '.($generateLongPlaylist ? 'yes' : 'no'));
$artistsInSourcePlaylists = [];
foreach ($selectedPlaylists as $selectedPlaylistId) {
......@@ -82,7 +86,7 @@ if ($generatePlaylistFromPlaylist) {
$recommendations = $api->getRecommendations([
'seed_tracks' => [$track->track->id],
'limit' => 40
'limit' => ($generateLongPlaylist ? 50 : 30)
]);
error_log(' -> Got '.count($recommendations->tracks).' recommendatations.');
foreach ($recommendations->tracks as $recommendedTrack) {
......@@ -107,7 +111,7 @@ if ($generatePlaylistFromPlaylist) {
$recommendedTrackIds = $filteredTrackIds;
}
$newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds);
$newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds, ($generateLongPlaylist ? 100 : 50));
$templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist);
$templateData['playlist'] = createDisplayablePlaylist($newPlaylist);
......@@ -120,11 +124,14 @@ if ($generatePlaylistFromPlaylist) {
$shouldFilterByArtists = isset($_GET['check-top-artist-filter-artists']);
error_log('Filter by artists in selection: '.($shouldFilterByArtists ? 'yes' : 'no'));
$generateLongPlaylist = isset($_GET['check-top-artist-long-playlist']);
error_log('Generate long playlist: '.($generateLongPlaylist ? 'yes' : 'no'));
foreach ($selectedArtists as $selectedArtist) {
error_log('Get recommendations for artist '.$selectedArtist.'');
$recommendations = $api->getRecommendations([
'seed_artists' => $selectedArtist,
'limit' => 100
'limit' => ($generateLongPlaylist ? 150 : 100)
]);
error_log(' -> Got '.count($recommendations->tracks).' recommendatations.');
......@@ -143,7 +150,7 @@ if ($generatePlaylistFromPlaylist) {
}
}
$newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds);
$newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds, ($generateLongPlaylist ? 100 : 50));
$templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist);
$templateData['playlist'] = createDisplayablePlaylist($newPlaylist);
......@@ -159,11 +166,14 @@ if ($generatePlaylistFromPlaylist) {
$shouldFilterByArtists = isset($_GET['check-top-artist-filter-artists']);
error_log('Filter by artists in selection: '.($shouldFilterByArtists ? 'yes' : 'no'));
$generateLongPlaylist = isset($_GET['check-top-artist-long-playlist']);
error_log('Generate long playlist: '.($generateLongPlaylist ? 'yes' : 'no'));
foreach ($selectedArtists as $selectedArtist) {
error_log('Get recommendations for artist '.$selectedArtist.'');
$recommendations = $api->getRecommendations([
'seed_artists' => $selectedArtist,
'limit' => 100
'limit' => ($generateLongPlaylist ? 150 : 100)
]);
error_log(' -> Got '.count($recommendations->tracks).' recommendatations.');
......@@ -182,7 +192,7 @@ if ($generatePlaylistFromPlaylist) {
}
}
$newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds);
$newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds, ($generateLongPlaylist ? 100 : 50));
$templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist);
$templateData['playlist'] = createDisplayablePlaylist($newPlaylist);
} else {
......
......@@ -87,17 +87,32 @@
</ul>
<div class="row">
<div class="col-md-8 col-sm-12">
<input
type="checkbox"
class="custom-control-input"
id="check-top-artist-filter-artists"
name="check-top-artist-filter-artists"
value="filter-artists"
checked
>
<label class="custom-control-label" for="check-top-artist-filter-artists">
Allow only selected artists in recommendations
</label>
<div>
<input
type="checkbox"
class="custom-control-input"
id="check-top-artist-filter-artists"
name="check-top-artist-filter-artists"
value="filter-artists"
checked
>
<label class="custom-control-label" for="check-top-artist-filter-artists">
Allow only selected artists in recommendations
</label>
</div>
<div>
<input
type="checkbox"
class="custom-control-input"
id="check-top-artist-long-playlist"
name="check-top-artist-long-playlist"
value="long-playlist"
checked
>
<label class="custom-control-label" for="check-top-artist-long-playlist">
Generate a long playlist (x2)
</label>
</div>
</div>
<div class="col-md-4 col-sm-12">
<div class="btn-group float-end" role="group" aria-label="Action buttons">
......@@ -135,17 +150,32 @@
</ul>
<div class="row">
<div class="col-md-8 col-sm-12">
<input
type="checkbox"
class="custom-control-input"
id="check-playlist-filter-artists"
name="check-playlist-filter-artists"
value="filter-artists"
checked
>
<label class="custom-control-label" for="check-playlist-filter-artists">
Allow only artists in selected playlists in recommendations
</label>
<div>
<input
type="checkbox"
class="custom-control-input"
id="check-playlist-filter-artists"
name="check-playlist-filter-artists"
value="filter-artists"
checked
>
<label class="custom-control-label" for="check-playlist-filter-artists">
Allow only artists in selected playlists in recommendations
</label>
</div>
<div>
<input
type="checkbox"
class="custom-control-input"
id="check-playlist-long-playlist"
name="check-playlist-long-playlist"
value="long-playlist"
checked
>
<label class="custom-control-label" for="check-playlist-long-playlist">
Generate a long playlist (x2)
</label>
</div>
</div>
<div class="col-md-4 col-sm-12">
<button name="generate-playlist-from-playlist" type="submit" class="btn btn-secondary float-end">🎶 Generate!</button>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment