File tree Expand file tree Collapse file tree 13 files changed +62
-23
lines changed
shared/components/now-playing Expand file tree Collapse file tree 13 files changed +62
-23
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ VITE_CHUCK_NORRIS_API_LANG=en-US
55
66VITE_GITHUB_API_URL = https://api.chucknorris.io/jokes
77
8+ VITE_SPOTIFY_CLIENT_BASIC =
89VITE_SPOTIFY_CLIENT_ID =
910VITE_SPOTIFY_CLIENT_SECRET =
1011VITE_SPOTIFY_REFRESH_TOKEN =
Original file line number Diff line number Diff line change @@ -31,6 +31,7 @@ export const environment: ISveltekitStarterEnvironmentConfig<SVELTEKIT_STARTER_E
3131 SESSION_KEY : import . meta. env . VITE_SESSION_KEY ,
3232 } ,
3333 spotifyConfig : {
34+ SPOTIFY_CLIENT_BASIC : import . meta. env . VITE_SPOTIFY_CLIENT_BASIC ,
3435 SPOTIFY_CLIENT_ID : import . meta. env . VITE_SPOTIFY_CLIENT_ID ,
3536 SPOTIFY_CLIENT_SECRET : import . meta. env . VITE_SPOTIFY_CLIENT_SECRET ,
3637 SPOTIFY_REFRESH_TOKEN : import . meta. env . VITE_SPOTIFY_REFRESH_TOKEN ,
Original file line number Diff line number Diff line change @@ -28,6 +28,7 @@ export const environment: ISveltekitStarterEnvironmentConfig<SVELTEKIT_STARTER_E
2828 SESSION_KEY : import . meta. env . VITE_SESSION_KEY ,
2929 } ,
3030 spotifyConfig : {
31+ SPOTIFY_CLIENT_BASIC : import . meta. env . VITE_SPOTIFY_CLIENT_BASIC ,
3132 SPOTIFY_CLIENT_ID : import . meta. env . VITE_SPOTIFY_CLIENT_ID ,
3233 SPOTIFY_CLIENT_SECRET : import . meta. env . VITE_SPOTIFY_CLIENT_SECRET ,
3334 SPOTIFY_REFRESH_TOKEN : import . meta. env . VITE_SPOTIFY_REFRESH_TOKEN ,
Original file line number Diff line number Diff line change @@ -28,6 +28,7 @@ export const environment: ISveltekitStarterEnvironmentConfig<SVELTEKIT_STARTER_E
2828 SESSION_KEY : import . meta. env . VITE_SESSION_KEY ,
2929 } ,
3030 spotifyConfig : {
31+ SPOTIFY_CLIENT_BASIC : import . meta. env . VITE_SPOTIFY_CLIENT_BASIC ,
3132 SPOTIFY_CLIENT_ID : import . meta. env . VITE_SPOTIFY_CLIENT_ID ,
3233 SPOTIFY_CLIENT_SECRET : import . meta. env . VITE_SPOTIFY_CLIENT_SECRET ,
3334 SPOTIFY_REFRESH_TOKEN : import . meta. env . VITE_SPOTIFY_REFRESH_TOKEN ,
Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ export const environment: ISveltekitStarterEnvironmentConfig<SVELTEKIT_STARTER_E
2929 SESSION_KEY : import . meta. env . VITE_SESSION_KEY ,
3030 } ,
3131 spotifyConfig : {
32+ SPOTIFY_CLIENT_BASIC : import . meta. env . VITE_SPOTIFY_CLIENT_BASIC ,
3233 SPOTIFY_CLIENT_ID : import . meta. env . VITE_SPOTIFY_CLIENT_ID ,
3334 SPOTIFY_CLIENT_SECRET : import . meta. env . VITE_SPOTIFY_CLIENT_SECRET ,
3435 SPOTIFY_REFRESH_TOKEN : import . meta. env . VITE_SPOTIFY_REFRESH_TOKEN ,
Original file line number Diff line number Diff line change @@ -28,6 +28,7 @@ export const environment: ISveltekitStarterEnvironmentConfig<SVELTEKIT_STARTER_E
2828 SESSION_KEY : import . meta. env . VITE_SESSION_KEY ,
2929 } ,
3030 spotifyConfig : {
31+ SPOTIFY_CLIENT_BASIC : import . meta. env . VITE_SPOTIFY_CLIENT_BASIC ,
3132 SPOTIFY_CLIENT_ID : import . meta. env . VITE_SPOTIFY_CLIENT_ID ,
3233 SPOTIFY_CLIENT_SECRET : import . meta. env . VITE_SPOTIFY_CLIENT_SECRET ,
3334 SPOTIFY_REFRESH_TOKEN : import . meta. env . VITE_SPOTIFY_REFRESH_TOKEN ,
Original file line number Diff line number Diff line change @@ -76,6 +76,7 @@ interface ImportMetaEnv {
7676 VITE_CHUCK_NORRIS_API_URL : string ;
7777 VITE_CHUCK_NORRIS_API_LANG : string ;
7878 VITE_GITHUB_API_URL : string ;
79+ VITE_SPOTIFY_CLIENT_BASIC : string ;
7980 VITE_SPOTIFY_CLIENT_ID : string ;
8081 VITE_SPOTIFY_CLIENT_SECRET : string ;
8182 VITE_SPOTIFY_REFRESH_TOKEN : string ;
Original file line number Diff line number Diff line change 11export interface ISpotifyConfig {
2+ SPOTIFY_CLIENT_BASIC : string ;
23 SPOTIFY_CLIENT_ID : string ;
34 SPOTIFY_CLIENT_SECRET : string ;
45 SPOTIFY_REFRESH_TOKEN : string ;
Original file line number Diff line number Diff line change 5555<script lang =" ts" >
5656 import { nowPlayingSong } from ' $stores' ;
5757 import ExternalLink from ' $ui/components/external-link/ExternalLink.svelte' ;
58+ import { onDestroy , onMount } from ' svelte' ;
59+ import { getNowPlayingSong } from ' ./_now-playing' ;
60+
61+ let clearSetTimeout: any ;
62+
63+ const getCurrentlyPlayingSong = (): void => {
64+ getNowPlayingSong ().then ((response ) => nowPlayingSong .set (response ));
65+
66+ clearSetTimeout = setTimeout (getCurrentlyPlayingSong , 120000 );
67+ };
68+ onMount (async () => {
69+ getCurrentlyPlayingSong ();
70+ });
71+
72+ onDestroy (() => {
73+ clearTimeout (clearSetTimeout );
74+ });
5875 </script >
5976
6077<div class =" flex flex-row-reverse sm:flex-row mb-8 space-x-0 sm:space-x-2 w-full" >
Original file line number Diff line number Diff line change 1+ import { getNowPlaying } from '$utils/spotify' ;
2+
3+ export const getNowPlayingSong = async ( ) => {
4+ const response = await getNowPlaying ( ) ;
5+
6+ if ( response . status === 204 || response . status > 400 ) {
7+ return {
8+ isPlaying : false ,
9+ } ;
10+ }
11+
12+ const song = await response . json ( ) ;
13+
14+ if ( song . item === null ) {
15+ return {
16+ isPlaying : false ,
17+ } ;
18+ }
19+
20+ const isPlaying = song . is_playing ;
21+ const title = song . item . name ;
22+ const artist = song . item . artists . map ( ( _artist ) => _artist . name ) . join ( ', ' ) ;
23+ const album = song . item . album . name ;
24+ const albumImageUrl = song . item . album . images [ 0 ] . url ;
25+ const songUrl = song . item . external_urls . spotify ;
26+
27+ return {
28+ album,
29+ albumImageUrl,
30+ artist,
31+ isPlaying,
32+ songUrl,
33+ title,
34+ } ;
35+ } ;
You can’t perform that action at this time.
0 commit comments