diff --git a/config.php b/config.php deleted file mode 100644 index af0c491fc337738a58fd66e94294844e35909d87..0000000000000000000000000000000000000000 --- 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 504c46d88b893ab5d0bea0a3f2f0bfb6cfe040d1..d6145c505e86661aa9392ddec5d0c92025e25a1c 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 6fa9e946d80a3d228344a681dca2a456a456e3fc..bc7f0f3a1c12880e33535b944d416a73bf304f56 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 51e136a2071825fa679d8dcba2f25fc8ca7ed9fc..6cd85fc0baa0e229c939e04a837b1a58aa638c0e 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 0000000000000000000000000000000000000000..7a17d8371b922472e7abdf41315e9276473eb961 --- /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 b6b603c2e168c2a78e9f5c7e9c42f3d233468712..1cfb76051fe66e3ce4bb2c22dc2d3cbab1d06731 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>