diff --git a/api/src/Api/OIDC.hs b/api/src/Api/OIDC.hs index c9da523..6b11a72 100644 --- a/api/src/Api/OIDC.hs +++ b/api/src/Api/OIDC.hs @@ -62,7 +62,8 @@ urlHandler Spotify (Just r) = do clientId <- liftIO $ envAsString "SPOTIFY_CLIENT_ID" "" backRedirect <- liftIO $ envAsString "BACK_URL" "" throwError $ err302 { errHeaders = - [("Location", B8.pack $ "https://accounts.spotify.com/authorize?response_type=code&scope=user-library-read user-library-write&client_id=" ++ clientId ++ "&redirect_uri=" ++ backRedirect ++ "auth/redirect" ++ "&state=" ++ r)] } + [("Location", B8.pack $ "https://accounts.spotify.com/authorize?response_type=code&scope=user-library-read user-library-modify streaming playlist-modify-private playlist-read-collaborative playlist-read-private playlist-modify-public user-modify-playback-state user-read-private&client_id=" ++ clientId ++ "&redirect_uri=" ++ backRedirect ++ "auth/redirect" ++ "&state=" ++ r)] } + urlHandler Github (Just r) = do clientId <- liftIO $ envAsString "GITHUB_CLIENT_ID" "" backRedirect <- liftIO $ envAsString "BACK_URL" "" diff --git a/worker/src/services/spotify.ts b/worker/src/services/spotify.ts index 8be3082..c2d3820 100644 --- a/worker/src/services/spotify.ts +++ b/worker/src/services/spotify.ts @@ -73,7 +73,11 @@ export class Spotify extends BaseService { async playTrack(params: any): Promise { await this._refreshIfNeeded(); let track = await this._searchTrack(params['artist'], params['track']); - await this._spotify.play({uris: [track.uri]}); + try { + await this._spotify.play({uris: [track.uri]}); + } catch (e) { + throw new Error("Spotify premium is required."); + } return { URL: track.uri, ARTIST: track.artists?.[0].name,