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) { ...@@ -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 to comment