Browse Source

Use ImmutableList, add guava dependency

main
Stephanie Gredell 2 years ago
parent
commit
d072625499
  1. 1
      app/build.gradle
  2. 7
      app/src/main/java/musicbot/SpotifyClient.java
  3. 5
      app/src/main/java/musicbot/buttonInteractions/MoreRecommendation.java
  4. 5
      app/src/main/java/musicbot/commands/Recommend.java

1
app/build.gradle

@ -25,6 +25,7 @@ dependencies {
// This dependency is used by the application. // This dependency is used by the application.
implementation("net.dv8tion:JDA:5.0.0-alpha.19") implementation("net.dv8tion:JDA:5.0.0-alpha.19")
implementation 'se.michaelthelin.spotify:spotify-web-api-java:8.3.4' implementation 'se.michaelthelin.spotify:spotify-web-api-java:8.3.4'
implementation("com.google.guava:guava:33.0.0-jre")
} }
task fatJar(type: Jar) { task fatJar(type: Jar) {

7
app/src/main/java/musicbot/SpotifyClient.java

@ -20,6 +20,7 @@ import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collector;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class SpotifyClient { public class SpotifyClient {
@ -56,7 +57,7 @@ public class SpotifyClient {
final Paging<Track> tracks = searchTracksRequest.execute(); final Paging<Track> tracks = searchTracksRequest.execute();
return Arrays.stream(tracks.getItems()).collect(Collectors.toList()); return Arrays.stream(tracks.getItems()).collect(ImmutableList.toImmutableList());
} catch (SpotifyWebApiException | ParseException | IOException exception) { } catch (SpotifyWebApiException | ParseException | IOException exception) {
return List.of(); return List.of();
} }
@ -80,7 +81,7 @@ public class SpotifyClient {
try { try {
final Recommendations recommendations = recommendationsRequest.execute(); final Recommendations recommendations = recommendationsRequest.execute();
return Arrays.stream(recommendations.getTracks()).collect(Collectors.toList()); return Arrays.stream(recommendations.getTracks()).collect(ImmutableList.toImmutableList());
} catch (IOException | SpotifyWebApiException | ParseException e) { } catch (IOException | SpotifyWebApiException | ParseException e) {
System.out.println("Error: " + e.getMessage()); System.out.println("Error: " + e.getMessage());
return ImmutableList.of(); return ImmutableList.of();
@ -92,7 +93,7 @@ public class SpotifyClient {
try { try {
final String[] genres = request.execute(); final String[] genres = request.execute();
return Arrays.stream(genres).collect(Collectors.toList()); return Arrays.stream(genres).collect(ImmutableList.toImmutableList());
} catch (IOException | SpotifyWebApiException | ParseException e) { } catch (IOException | SpotifyWebApiException | ParseException e) {
System.out.println("Error: " + e.getMessage()); System.out.println("Error: " + e.getMessage());
return ImmutableList.of(); return ImmutableList.of();

5
app/src/main/java/musicbot/buttonInteractions/MoreRecommendation.java

@ -1,5 +1,6 @@
package musicbot.buttonInteractions; package musicbot.buttonInteractions;
import com.google.common.collect.ImmutableList;
import musicbot.ButtonInteraction; import musicbot.ButtonInteraction;
import musicbot.Paginator; import musicbot.Paginator;
import musicbot.RecommendationService; import musicbot.RecommendationService;
@ -54,7 +55,7 @@ public class MoreRecommendation implements ButtonInteraction {
trackList.forEach(track -> { trackList.forEach(track -> {
final List<String> trackArtists = Arrays.stream(track.getArtists()) final List<String> trackArtists = Arrays.stream(track.getArtists())
.map(ArtistSimplified::getName) .map(ArtistSimplified::getName)
.collect(Collectors.toList()); .collect(ImmutableList.toImmutableList());
final String artists = String.join(", ", trackArtists); final String artists = String.join(", ", trackArtists);
eb.addField(track.getName(), artists, false); eb.addField(track.getName(), artists, false);
@ -67,7 +68,7 @@ public class MoreRecommendation implements ButtonInteraction {
.collect(Collectors.joining(", ")); .collect(Collectors.joining(", "));
return Button.primary("recommend_" + artists, track.getName()); return Button.primary("recommend_" + artists, track.getName());
}).collect(Collectors.toList()); }).collect(ImmutableList.toImmutableList());
if (!paginatedTracks.isIsLastPage()) { if (!paginatedTracks.isIsLastPage()) {
final String buttonId = "more-recommend_" + artist + "--" + genre + "_" + paginatedTracks.getNextPageNum(); final String buttonId = "more-recommend_" + artist + "--" + genre + "_" + paginatedTracks.getNextPageNum();

5
app/src/main/java/musicbot/commands/Recommend.java

@ -1,5 +1,6 @@
package musicbot.commands; package musicbot.commands;
import com.google.common.collect.ImmutableList;
import musicbot.MCommand; import musicbot.MCommand;
import musicbot.Paginator; import musicbot.Paginator;
import musicbot.RecommendationService; import musicbot.RecommendationService;
@ -65,7 +66,7 @@ public class Recommend implements MCommand {
trackList.forEach(track -> { trackList.forEach(track -> {
final List<String> trackArtists = Arrays.stream(track.getArtists()) final List<String> trackArtists = Arrays.stream(track.getArtists())
.map(ArtistSimplified::getName) .map(ArtistSimplified::getName)
.collect(Collectors.toList()); .collect(ImmutableList.toImmutableList());
final String artists = String.join(", ", trackArtists); final String artists = String.join(", ", trackArtists);
eb.addField(track.getName(), artists, false); eb.addField(track.getName(), artists, false);
@ -77,7 +78,7 @@ public class Recommend implements MCommand {
.collect(Collectors.joining(", ")); .collect(Collectors.joining(", "));
return Button.primary("recommend_" + artists, track.getName()); return Button.primary("recommend_" + artists, track.getName());
}).collect(Collectors.toList()); }).collect(ImmutableList.toImmutableList());
final String buttonId = "more-recommend_" + artistInput + "--" + genreInput + "_" + paginatedTracks.getNextPageNum(); final String buttonId = "more-recommend_" + artistInput + "--" + genreInput + "_" + paginatedTracks.getNextPageNum();

Loading…
Cancel
Save