From 46a35ce08da16fcfaacb1c29b723a5eb5b6310ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Thu, 23 Sep 2021 12:25:41 +0200 Subject: [PATCH] Improve/clean some code --- config.php | 8 ------- public/auth.php | 18 +++------------ public/callback.php | 11 ++------- public/index.php | 54 ++++++++++++++------------------------------- spotify/spotify.php | 18 +++++++++++++++ template.php | 4 +++- 6 files changed, 42 insertions(+), 71 deletions(-) delete mode 100644 config.php create mode 100644 spotify/spotify.php diff --git a/config.php b/config.php deleted file mode 100644 index af0c491..0000000 --- a/config.php +++ /dev/null @@ -1,8 +0,0 @@ -<?php - -$parametersFile = __DIR__.'/parameters.php'; -if (!is_file($parametersFile)) { - die('Missing parameters file: '.$parametersFile); -} - -require $parametersFile; diff --git a/public/auth.php b/public/auth.php index 504c46d..d6145c5 100644 --- a/public/auth.php +++ b/public/auth.php @@ -1,26 +1,14 @@ <?php -session_start(); +require '../spotify/spotify.php'; -require '../vendor/autoload.php'; -require '../config.php'; - -$session = new SpotifyWebAPI\Session( - $CLIENT_ID, - $CLIENT_SECRET, - $REDIRECT_URI -); +$session = new SpotifyWebAPI\Session($CLIENT_ID, $CLIENT_SECRET, $REDIRECT_URI); $state = $session->generateState(); $_SESSION['state'] = $state; $options = [ - 'scope' => [ - 'playlist-read-private', - 'playlist-modify-private', - 'playlist-modify-public', - 'user-read-private', - ], + 'scope' => $SPOTIFY_REQUIRED_SCOPES, 'state' => $state, ]; diff --git a/public/callback.php b/public/callback.php index 6fa9e94..bc7f0f3 100644 --- a/public/callback.php +++ b/public/callback.php @@ -1,14 +1,7 @@ <?php -session_start(); +require '../spotify/spotify.php'; -require '../vendor/autoload.php'; -require '../config.php'; - -$session = new SpotifyWebAPI\Session( - $CLIENT_ID, - $CLIENT_SECRET, - $REDIRECT_URI -); +$session = new SpotifyWebAPI\Session($CLIENT_ID, $CLIENT_SECRET, $REDIRECT_URI); $storedState = $_SESSION['state']; $state = $_GET['state']; diff --git a/public/index.php b/public/index.php index 51e136a..6cd85fc 100644 --- a/public/index.php +++ b/public/index.php @@ -1,50 +1,32 @@ <?php -session_start(); - -require '../vendor/autoload.php'; -require '../config.php'; +require '../spotify/spotify.php'; if (isset($_GET['logout'])) { $_SESSION['accessToken'] = ''; $_SESSION['refreshToken'] = ''; } -$accessToken = ''; -if (isset($_SESSION['accessToken'])) { - $accessToken = $_SESSION['accessToken']; -} -$refreshToken = ''; -if (isset($_SESSION['refreshToken'])) { - $refreshToken = $_SESSION['refreshToken']; -} +$_SESSION['accessToken'] = isset($_SESSION['accessToken']) ? $_SESSION['accessToken'] : ''; +$_SESSION['refreshToken'] = isset($_SESSION['refreshToken']) ? $_SESSION['refreshToken'] : ''; -if (!$accessToken) { +if (!$_SESSION['accessToken']) { header('Location: auth.php'); die(); } -$session = new SpotifyWebAPI\Session( - $CLIENT_ID, - $CLIENT_SECRET, - $REDIRECT_URI -); +$session = new SpotifyWebAPI\Session($CLIENT_ID, $CLIENT_SECRET, $REDIRECT_URI); // Use previously requested tokens fetched from session -if ($accessToken) { - $session->setAccessToken($accessToken); - $session->setRefreshToken($refreshToken); +if ($_SESSION['accessToken']) { + $session->setAccessToken($_SESSION['accessToken']); + $session->setRefreshToken($_SESSION['refreshToken']); } else { // Or request a new access token - $session->refreshAccessToken($refreshToken); + $session->refreshAccessToken($_SESSION['refreshToken']); } $options = [ - 'scope' => [ - 'playlist-read-private', - 'playlist-modify-private', - 'playlist-modify-public', - 'user-read-private', - ], + 'scope' => $SPOTIFY_REQUIRED_SCOPES, 'auto_refresh' => true, ]; @@ -58,23 +40,19 @@ $_SESSION['refreshToken'] = $session->getRefreshToken(); $user = $api->me(); -$templateData = []; -$templateData['user'] = $user; -$templateData['userImageUrl'] = ''; -if ($user->images[0]) { - $templateData['userImageUrl'] = $user->images[0]->url; -} +$templateData = [ + 'user' => $user, + 'playlists' => [], -$templateData['infos'] = []; -$templateData['errors'] = []; + 'infos' => [], + 'errors' => [], +]; $selectedPlaylistId = ''; if (isset($_GET['playlist'])) { $selectedPlaylistId = $_GET['playlist']; } -$templateData['playlists'] = []; - if ($selectedPlaylistId) { $playlist = $api->getPlaylist($selectedPlaylistId); error_log('Will create new playlist from tracks in playlist '.$selectedPlaylistId.' "'.$playlist->name.'".'); diff --git a/spotify/spotify.php b/spotify/spotify.php new file mode 100644 index 0000000..7a17d83 --- /dev/null +++ b/spotify/spotify.php @@ -0,0 +1,18 @@ +<?php +session_start(); + +require '../vendor/autoload.php'; + +$parametersFile = realpath(__DIR__.'/../parameters.php'); +if (!is_file($parametersFile)) { + die('Missing parameters file: '.$parametersFile); +} + +require $parametersFile; + +$SPOTIFY_REQUIRED_SCOPES = [ + 'playlist-read-private', + 'playlist-modify-private', + 'playlist-modify-public', + 'user-read-private', +]; diff --git a/template.php b/template.php index b6b603c..1cfb760 100644 --- a/template.php +++ b/template.php @@ -16,7 +16,9 @@ <div class="col-md-2"> <div class="card"> - <img src="<?php echo $templateData['userImageUrl']; ?>" class="card-img-top" alt="<?php echo $templateData['user']->display_name; ?>"> + <?php if (count($templateData['user']->images)) { ?> + <img src="<?php echo $templateData['user']->images[0]->url; ?>" class="card-img-top" alt="<?php echo $templateData['user']->display_name; ?>"> + <?php } ?> <div class="card-body"> <h5 class="card-title"><?php echo $templateData['user']->display_name; ?></h5> <a href="<?php echo $templateData['user']->external_urls->spotify; ?>" class="btn btn-primary">View profile</a> -- GitLab