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

Add option to generate long playlists

parent a7a77bb1
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