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