add currently playing cache to spotify
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 1m28s
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 1m28s
This commit is contained in:
parent
9395ae73b9
commit
de1da2391d
@ -36,6 +36,13 @@ public class SpotifyService {
|
|||||||
.expiration(30, TimeUnit.MINUTES)
|
.expiration(30, TimeUnit.MINUTES)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A cache of the currently playing track for each user.
|
||||||
|
*/
|
||||||
|
private final Map<BatUser, CurrentlyPlaying> currentlyPlayingCache = ExpiringMap.builder()
|
||||||
|
.expiration(30, TimeUnit.SECONDS)
|
||||||
|
.build();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The client ID.
|
* The client ID.
|
||||||
*/
|
*/
|
||||||
@ -98,7 +105,12 @@ public class SpotifyService {
|
|||||||
*/
|
*/
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public CurrentlyPlaying getCurrentlyPlayingTrack(BatUser user) {
|
public CurrentlyPlaying getCurrentlyPlayingTrack(BatUser user) {
|
||||||
return getSpotifyApi(user).getUsersCurrentlyPlayingTrack().build().execute();
|
if (currentlyPlayingCache.containsKey(user)) {
|
||||||
|
return currentlyPlayingCache.get(user);
|
||||||
|
}
|
||||||
|
CurrentlyPlaying currentlyPlaying = getSpotifyApi(user).getUsersCurrentlyPlayingTrack().build().execute();
|
||||||
|
currentlyPlayingCache.put(user, currentlyPlaying);
|
||||||
|
return currentlyPlaying;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -191,7 +203,7 @@ public class SpotifyService {
|
|||||||
AuthorizationCodeCredentials credentials = api.authorizationCodeRefresh().build().execute();
|
AuthorizationCodeCredentials credentials = api.authorizationCodeRefresh().build().execute();
|
||||||
profile.setAccessToken(credentials.getAccessToken());
|
profile.setAccessToken(credentials.getAccessToken());
|
||||||
profile.setExpiresAt(System.currentTimeMillis() + (credentials.getExpiresIn() * 1000));
|
profile.setExpiresAt(System.currentTimeMillis() + (credentials.getExpiresIn() * 1000));
|
||||||
log.info("Refreshed Spotify token for user {}", user.getName());
|
log.info("Refreshed Spotify token for user \"{}\"", user.getName());
|
||||||
} catch (SpotifyWebApiException ex) {
|
} catch (SpotifyWebApiException ex) {
|
||||||
log.error("Failed to refresh Spotify token", ex);
|
log.error("Failed to refresh Spotify token", ex);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user