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

Display created playlist minimal report

parent b99909aa
No related branches found
No related tags found
1 merge request!15Resolve "Display new playlist report"
...@@ -48,6 +48,7 @@ $templateData = [ ...@@ -48,6 +48,7 @@ $templateData = [
'user' => $user, 'user' => $user,
'playlists' => [], 'playlists' => [],
'topArtists' => [], 'topArtists' => [],
'playlist' => null,
'infos' => [], 'infos' => [],
'errors' => [], 'errors' => [],
...@@ -106,7 +107,8 @@ if ($generatePlaylistFromPlaylist) { ...@@ -106,7 +107,8 @@ if ($generatePlaylistFromPlaylist) {
} }
$newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds); $newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds);
$templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist->id); $templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist);
$templateData['playlist'] = createDisplayablePlaylist($newPlaylist);
} elseif ($generatePlaylistFromArtists) { } elseif ($generatePlaylistFromArtists) {
$selectedArtists = $_GET['selected-artist']; $selectedArtists = $_GET['selected-artist'];
error_log('Will create new playlist with filterted recommendations from artists: '.join(', ', $selectedArtists).'".'); error_log('Will create new playlist with filterted recommendations from artists: '.join(', ', $selectedArtists).'".');
...@@ -139,7 +141,8 @@ if ($generatePlaylistFromPlaylist) { ...@@ -139,7 +141,8 @@ if ($generatePlaylistFromPlaylist) {
} }
$newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds); $newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds);
$templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist->id); $templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist);
$templateData['playlist'] = createDisplayablePlaylist($newPlaylist);
} else { } else {
$templateData['topArtists'] = $api->getMyTop('artists', ['limit' => $topArtistsCount, 'time_range' => 'short_term'])->items; $templateData['topArtists'] = $api->getMyTop('artists', ['limit' => $topArtistsCount, 'time_range' => 'short_term'])->items;
$templateData['playlists'] = $api->getUserPlaylists($user->id, ['limit' => $playlistsCount])->items; $templateData['playlists'] = $api->getUserPlaylists($user->id, ['limit' => $playlistsCount])->items;
......
...@@ -32,13 +32,45 @@ function createPlaylistWithRandomTracks($api, $trackIds, $count = 50) { ...@@ -32,13 +32,45 @@ function createPlaylistWithRandomTracks($api, $trackIds, $count = 50) {
$pickedTrackIds = pickRandomTrackFromArray($trackIds); $pickedTrackIds = pickRandomTrackFromArray($trackIds);
$api->replacePlaylistTracks($playlist->id, $pickedTrackIds); $api->replacePlaylistTracks($playlist->id, $pickedTrackIds);
return $playlist; return $api->getPlaylist($playlist->id);
} }
function getCreatedPlaylistInformationMessage($api, $playlistId) { function getCreatedPlaylistInformationMessage($api, $playlist) {
$playlist = $api->getPlaylist($playlistId);
$link = '<a href="'.$playlist->external_urls->spotify.'">'.$playlist->name.'</a>'; $link = '<a href="'.$playlist->external_urls->spotify.'">'.$playlist->name.'</a>';
$message = 'Ok created new playlist with '.count($playlist->tracks->items).' tracks: '.$link; $message = 'Ok created new playlist with '.count($playlist->tracks->items).' tracks: '.$link;
return $message; return $message;
} }
function createDisplayablePlaylist($playlist) {
$output = [
'id' => $playlist->id,
'name' => $playlist->name,
'tracks' => [],
'artists' => [],
];
$artists = [];
foreach($playlist->tracks->items as $item) {
$track = [
'id' => $item->track->id,
'name' => $item->track->name,
'artists' => [],
];
foreach($item->track->artists as $artist) {
$track['artists'][] = [
'id' => $artist->id,
'name' => $artist->name,
];
$artists[$artist->id] = $artist->name;
}
$output['tracks'][] = $track;
}
$output['artists'] = array_values($artists);
return $output;
}
...@@ -145,6 +145,16 @@ ...@@ -145,6 +145,16 @@
</form> </form>
<?php } ?> <?php } ?>
<?php if ($templateData['playlist'] && count($templateData['playlist'])) { ?>
<div class="alert alert-info">
<ul>
<?php foreach ($templateData['playlist']['artists'] as $artist) { ?>
<li><?php echo $artist; ?></li>
<?php } ?>
</ul>
</div>
<?php } ?>
</div> </div>
<script src="js/bootstrap.min.js"></script> <script src="js/bootstrap.min.js"></script>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment