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
Branches
No related tags found
1 merge request!15Resolve "Display new playlist report"
......@@ -48,6 +48,7 @@ $templateData = [
'user' => $user,
'playlists' => [],
'topArtists' => [],
'playlist' => null,
'infos' => [],
'errors' => [],
......@@ -106,7 +107,8 @@ if ($generatePlaylistFromPlaylist) {
}
$newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds);
$templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist->id);
$templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist);
$templateData['playlist'] = createDisplayablePlaylist($newPlaylist);
} elseif ($generatePlaylistFromArtists) {
$selectedArtists = $_GET['selected-artist'];
error_log('Will create new playlist with filterted recommendations from artists: '.join(', ', $selectedArtists).'".');
......@@ -139,7 +141,8 @@ if ($generatePlaylistFromPlaylist) {
}
$newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds);
$templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist->id);
$templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist);
$templateData['playlist'] = createDisplayablePlaylist($newPlaylist);
} else {
$templateData['topArtists'] = $api->getMyTop('artists', ['limit' => $topArtistsCount, 'time_range' => 'short_term'])->items;
$templateData['playlists'] = $api->getUserPlaylists($user->id, ['limit' => $playlistsCount])->items;
......
......@@ -32,13 +32,45 @@ function createPlaylistWithRandomTracks($api, $trackIds, $count = 50) {
$pickedTrackIds = pickRandomTrackFromArray($trackIds);
$api->replacePlaylistTracks($playlist->id, $pickedTrackIds);
return $playlist;
return $api->getPlaylist($playlist->id);
}
function getCreatedPlaylistInformationMessage($api, $playlistId) {
$playlist = $api->getPlaylist($playlistId);
function getCreatedPlaylistInformationMessage($api, $playlist) {
$link = '<a href="'.$playlist->external_urls->spotify.'">'.$playlist->name.'</a>';
$message = 'Ok created new playlist with '.count($playlist->tracks->items).' tracks: '.$link;
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 @@
</form>
<?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>
<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