From 17793af2f1dfd56f596d348fb5677f655baf8892 Mon Sep 17 00:00:00 2001 From: Donald Shan Date: Sat, 10 Dec 2022 17:04:38 -0800 Subject: Initial Commit --- utility/SpotifyAPI.java | 111 ------------------------------------------------ 1 file changed, 111 deletions(-) delete mode 100644 utility/SpotifyAPI.java (limited to 'utility/SpotifyAPI.java') diff --git a/utility/SpotifyAPI.java b/utility/SpotifyAPI.java deleted file mode 100644 index 78738d8..0000000 --- a/utility/SpotifyAPI.java +++ /dev/null @@ -1,111 +0,0 @@ -package utility; - -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; -import se.michaelthelin.spotify.SpotifyApi; -import se.michaelthelin.spotify.model_objects.credentials.ClientCredentials; -import se.michaelthelin.spotify.model_objects.specification.ArtistSimplified; -import se.michaelthelin.spotify.model_objects.specification.Playlist; -import se.michaelthelin.spotify.model_objects.specification.PlaylistTrack; -import se.michaelthelin.spotify.model_objects.specification.Track; -import se.michaelthelin.spotify.requests.authorization.client_credentials.ClientCredentialsRequest; -import se.michaelthelin.spotify.requests.data.playlists.GetPlaylistRequest; -import se.michaelthelin.spotify.requests.data.tracks.GetTrackRequest; -import java.io.FileReader; -import java.time.Instant; -import java.util.concurrent.CancellationException; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -public class SpotifyAPI { - private static final String clientId = readSetting("spotifyClientID"); - private static final String clientSecret = readSetting("spotifyClientSecret"); - - public static String spotifyapiKey = ""; - public static long lastRefresh = 0; - private static final SpotifyApi spotifyApi = new SpotifyApi.Builder() - .setClientId(clientId) - .setClientSecret(clientSecret) - .build(); - private static final ClientCredentialsRequest clientCredentialsRequest = spotifyApi.clientCredentials() - .build(); - - - public SpotifyAPI(){ - this.spotifyapiKey = readSetting("spotifyApi"); - } - public static String getSearchTerm_sync(String trackid) { - checkRefreshToken(); - String searchQuery = ""; - try { - GetTrackRequest getTrackRequest = spotifyApi.getTrack(trackid) -// .market(CountryCode.SE) - .build(); - final Track track = getTrackRequest.execute(); - searchQuery = track.getName(); - ArtistSimplified[] artists = track.getArtists(); - for (int i = 0;i< artists.length;i++){ - searchQuery = searchQuery + " "+artists[i].getName(); - } - System.out.println(searchQuery); - } catch (Exception e) { - System.out.println("Error: " + e.getMessage()); - } - return searchQuery; - - } - public static String getRandomPlaylistTrack_Sync(String playlistId) { - checkRefreshToken(); - GetPlaylistRequest getPlaylistRequest = spotifyApi.getPlaylist(playlistId).build(); - try { - Playlist playlist = getPlaylistRequest.execute(); - PlaylistTrack[] tracks = playlist.getTracks().getItems(); - //pick a random track and return it - int randomTrack = (int) (Math.random() * tracks.length); - System.out.println(tracks[randomTrack].getTrack().getId()); - return tracks[randomTrack].getTrack().getId(); - } catch (Exception e) { - System.out.println("Error: " + e.getMessage()); - } - return ""; - } - public static PlaylistTrack[] getPlaylist_Sync(String playlistId) { - checkRefreshToken(); - GetPlaylistRequest getPlaylistRequest = spotifyApi.getPlaylist(playlistId).build(); - try { - Playlist playlist = getPlaylistRequest.execute(); - PlaylistTrack[] tracks = playlist.getTracks().getItems(); - return tracks; - } catch (Exception e) { - System.out.println("Error: " + e.getMessage()); - } - return null; - } - public static void clientCredentials_Sync() { - try { - final ClientCredentials clientCredentials = clientCredentialsRequest.execute(); - spotifyApi.setAccessToken(clientCredentials.getAccessToken()); - System.out.println("Expires in: " + clientCredentials.getExpiresIn()); - } catch (Exception e) { - System.out.println("Error: " + e.getMessage()); - } - } - public static String readSetting(String parameter){ - Object obj = null; - try { - obj = new JSONParser().parse(new FileReader("settings//config.json")); - } catch (Exception e) { - e.printStackTrace(); - } - JSONObject jo = (JSONObject) obj; - return (String) jo.get(parameter); - } - public static void checkRefreshToken(){ - long unixTime = Instant.now().getEpochSecond(); - if(lastRefresh + 3600 <= unixTime){ - System.out.println("Spotify Token is expired, refreshing"); - clientCredentials_Sync(); - lastRefresh = Instant.now().getEpochSecond(); - } - } - -} -- cgit v1.2.3