From 26c3c91a6bd1ca50fe329c43f3893af9d6d734d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Wed, 11 May 2022 14:40:04 +0200 Subject: [PATCH] Add route to show playlist content / abstract --- public/.htaccess | 1 + public/index.php | 14 +++++++++++--- spotify/lib.php | 14 +++++++++++++- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/public/.htaccess b/public/.htaccess index e36df87..75af33b 100644 --- a/public/.htaccess +++ b/public/.htaccess @@ -1,2 +1,3 @@ RewriteEngine On RewriteRule ^playlist-generator index.php [L,QSA] +RewriteRule ^view-playlist-([^./]+)$ index.php?show-playlist=1&id=$1 [L,QSA] diff --git a/public/index.php b/public/index.php index 59740b1..4516bdd 100644 --- a/public/index.php +++ b/public/index.php @@ -74,6 +74,8 @@ $templateData = [ $generatePlaylistFromPlaylist = isset($_GET['generate-playlist-from-playlist']); $generatePlaylistFromSelectedTopArtists = isset($_GET['generate-playlist-top-artists']); $generatePlaylistFromRandomTopArtists = isset($_GET['generate-playlist-random-top-artists']); +$showPlaylistContent = isset($_GET['show-playlist']); + if ($generatePlaylistFromPlaylist) { $selectedPlaylists = $_GET['selected-playlist']; @@ -130,7 +132,6 @@ if ($generatePlaylistFromPlaylist) { $newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds, $generateLongPlaylist ? 100 : 50); $templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist); - $templateData['playlist'] = createDisplayablePlaylist($newPlaylist); } elseif ($generatePlaylistFromSelectedTopArtists) { @@ -169,7 +170,6 @@ if ($generatePlaylistFromPlaylist) { $newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds, $generateLongPlaylist ? 100 : 50); $templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist); - $templateData['playlist'] = createDisplayablePlaylist($newPlaylist); } elseif ($generatePlaylistFromRandomTopArtists) { @@ -211,7 +211,15 @@ if ($generatePlaylistFromPlaylist) { $newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds, $generateLongPlaylist ? 100 : 50); $templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist); - $templateData['playlist'] = createDisplayablePlaylist($newPlaylist); + +} elseif ($showPlaylistContent) { + printLog('Get content of playlist: '.($generateLongPlaylist ? 'yes' : 'no')); + + $playlistId = $_GET['id']; + $playlist = $api->getPlaylist($playlistId); + $templateData['infos'][] = getPlaylistInformationMessage($api, $playlist); + $templateData['playlist'] = createDisplayablePlaylist($playlist); + } else { $templateData['topArtists'] = $api->getMyTop('artists', ['limit' => $topArtistsCount, 'time_range' => 'short_term'])->items; $templateData['playlists'] = $api->getUserPlaylists($user['id'], ['limit' => $playlistsCount])->items; diff --git a/spotify/lib.php b/spotify/lib.php index 2df556e..f45bcca 100644 --- a/spotify/lib.php +++ b/spotify/lib.php @@ -7,6 +7,10 @@ function printLog($message = '') } } +function generateShowPlaylistUrl($playlistId) { + return '/view-playlist-'.$playlistId; +} + function generatePlaylistName() { $now = new DateTime(); @@ -82,12 +86,20 @@ function createPlaylistWithRandomTracks($api, $trackIds, $count = 50) function getCreatedPlaylistInformationMessage($api, $playlist) { - $link = '<a href="'.$playlist->external_urls->spotify.'">'.$playlist->name.'</a>'; + $link = '<a href="'.generateShowPlaylistUrl($playlist->id).'">'.$playlist->name.'</a>'; $message = 'Ok created new playlist with '.count($playlist->tracks->items).' tracks: '.$link; return $message; } +function getPlaylistInformationMessage($api, $playlist) +{ + $link = '<a href="'.$playlist->external_urls->spotify.'">'.$playlist->name.'</a>'; + $message = 'Playlist with '.count($playlist->tracks->items).' tracks: '.$link; + + return $message; +} + function createDisplayablePlaylist($playlist) { $output = [ -- GitLab