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
5
5
6
6
VITE_GITHUB_API_URL = https://api.chucknorris.io/jokes
7
7
8
+ VITE_SPOTIFY_CLIENT_BASIC =
8
9
VITE_SPOTIFY_CLIENT_ID =
9
10
VITE_SPOTIFY_CLIENT_SECRET =
10
11
VITE_SPOTIFY_REFRESH_TOKEN =
Original file line number Diff line number Diff line change @@ -31,6 +31,7 @@ export const environment: ISveltekitStarterEnvironmentConfig<SVELTEKIT_STARTER_E
31
31
SESSION_KEY : import . meta. env . VITE_SESSION_KEY ,
32
32
} ,
33
33
spotifyConfig : {
34
+ SPOTIFY_CLIENT_BASIC : import . meta. env . VITE_SPOTIFY_CLIENT_BASIC ,
34
35
SPOTIFY_CLIENT_ID : import . meta. env . VITE_SPOTIFY_CLIENT_ID ,
35
36
SPOTIFY_CLIENT_SECRET : import . meta. env . VITE_SPOTIFY_CLIENT_SECRET ,
36
37
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
28
28
SESSION_KEY : import . meta. env . VITE_SESSION_KEY ,
29
29
} ,
30
30
spotifyConfig : {
31
+ SPOTIFY_CLIENT_BASIC : import . meta. env . VITE_SPOTIFY_CLIENT_BASIC ,
31
32
SPOTIFY_CLIENT_ID : import . meta. env . VITE_SPOTIFY_CLIENT_ID ,
32
33
SPOTIFY_CLIENT_SECRET : import . meta. env . VITE_SPOTIFY_CLIENT_SECRET ,
33
34
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
28
28
SESSION_KEY : import . meta. env . VITE_SESSION_KEY ,
29
29
} ,
30
30
spotifyConfig : {
31
+ SPOTIFY_CLIENT_BASIC : import . meta. env . VITE_SPOTIFY_CLIENT_BASIC ,
31
32
SPOTIFY_CLIENT_ID : import . meta. env . VITE_SPOTIFY_CLIENT_ID ,
32
33
SPOTIFY_CLIENT_SECRET : import . meta. env . VITE_SPOTIFY_CLIENT_SECRET ,
33
34
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
29
29
SESSION_KEY : import . meta. env . VITE_SESSION_KEY ,
30
30
} ,
31
31
spotifyConfig : {
32
+ SPOTIFY_CLIENT_BASIC : import . meta. env . VITE_SPOTIFY_CLIENT_BASIC ,
32
33
SPOTIFY_CLIENT_ID : import . meta. env . VITE_SPOTIFY_CLIENT_ID ,
33
34
SPOTIFY_CLIENT_SECRET : import . meta. env . VITE_SPOTIFY_CLIENT_SECRET ,
34
35
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
28
28
SESSION_KEY : import . meta. env . VITE_SESSION_KEY ,
29
29
} ,
30
30
spotifyConfig : {
31
+ SPOTIFY_CLIENT_BASIC : import . meta. env . VITE_SPOTIFY_CLIENT_BASIC ,
31
32
SPOTIFY_CLIENT_ID : import . meta. env . VITE_SPOTIFY_CLIENT_ID ,
32
33
SPOTIFY_CLIENT_SECRET : import . meta. env . VITE_SPOTIFY_CLIENT_SECRET ,
33
34
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 {
76
76
VITE_CHUCK_NORRIS_API_URL : string ;
77
77
VITE_CHUCK_NORRIS_API_LANG : string ;
78
78
VITE_GITHUB_API_URL : string ;
79
+ VITE_SPOTIFY_CLIENT_BASIC : string ;
79
80
VITE_SPOTIFY_CLIENT_ID : string ;
80
81
VITE_SPOTIFY_CLIENT_SECRET : string ;
81
82
VITE_SPOTIFY_REFRESH_TOKEN : string ;
Original file line number Diff line number Diff line change 1
1
export interface ISpotifyConfig {
2
+ SPOTIFY_CLIENT_BASIC : string ;
2
3
SPOTIFY_CLIENT_ID : string ;
3
4
SPOTIFY_CLIENT_SECRET : string ;
4
5
SPOTIFY_REFRESH_TOKEN : string ;
Original file line number Diff line number Diff line change 55
55
<script lang =" ts" >
56
56
import { nowPlayingSong } from ' $stores' ;
57
57
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
+ });
58
75
</script >
59
76
60
77
<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