From bac28a1c4de0efe6c495f2141b02d57d0891c4a6 Mon Sep 17 00:00:00 2001 From: "Yukai (Donald) Shan" Date: Sat, 10 Dec 2022 17:01:00 -0800 Subject: Add files via upload --- src/main/java/utility/EmbedMaker.java | 21 +++++++++++++++++++++ src/main/java/utility/SpotifyAPI.java | 19 +++++++++++++------ src/main/java/utility/YouTubeAPI.java | 28 ++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 src/main/java/utility/EmbedMaker.java create mode 100644 src/main/java/utility/YouTubeAPI.java (limited to 'src/main/java/utility') diff --git a/src/main/java/utility/EmbedMaker.java b/src/main/java/utility/EmbedMaker.java new file mode 100644 index 0000000..23df4ab --- /dev/null +++ b/src/main/java/utility/EmbedMaker.java @@ -0,0 +1,21 @@ +package utility; + +import com.sedmelluq.discord.lavaplayer.track.AudioTrack; +import net.dv8tion.jda.api.EmbedBuilder; + +import java.awt.*; + +public class EmbedMaker { + public EmbedBuilder makeNowPlayingEmbed(AudioTrack currentTrack, String position, String duration, + String thumbnailUrl, String url,Color color) { + EmbedBuilder embed = new EmbedBuilder() + .setColor(color) + .setTitle("Now Playing: " + currentTrack.getInfo().title) + .setDescription(currentTrack.getInfo().author) + .setImage(thumbnailUrl); + embed.addField("Timestamp: ", "**[" + position + "/" + duration + "]**", false); + embed.addField("", url, false); + return embed; + } + +} diff --git a/src/main/java/utility/SpotifyAPI.java b/src/main/java/utility/SpotifyAPI.java index 74b792e..b4bcac1 100644 --- a/src/main/java/utility/SpotifyAPI.java +++ b/src/main/java/utility/SpotifyAPI.java @@ -13,9 +13,6 @@ 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"); @@ -38,7 +35,6 @@ public class SpotifyAPI { String searchQuery = ""; try { GetTrackRequest getTrackRequest = spotifyApi.getTrack(trackid) -// .market(CountryCode.SE) .build(); final Track track = getTrackRequest.execute(); searchQuery = track.getName(); @@ -53,13 +49,12 @@ public class SpotifyAPI { return searchQuery; } - public static String getPlaylist_Sync(String playlistId) { + 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(); @@ -68,6 +63,18 @@ public class SpotifyAPI { } 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(); diff --git a/src/main/java/utility/YouTubeAPI.java b/src/main/java/utility/YouTubeAPI.java new file mode 100644 index 0000000..ea3896b --- /dev/null +++ b/src/main/java/utility/YouTubeAPI.java @@ -0,0 +1,28 @@ +package utility; + +import org.json.JSONArray; +import org.json.JSONObject; +import org.jsoup.Jsoup; + +import java.io.IOException; + +public class YouTubeAPI { + private String ytapiKey = ""; + public YouTubeAPI(String ytapiKey){ + this.ytapiKey = ytapiKey; + } + public String returnTopVideoURL(String keyword )throws IOException { + String url = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=1&q="+keyword+"&type=video&key="+ytapiKey; + url = url.replaceAll(" ", "%20"); + String data = Jsoup.connect(url).ignoreContentType(true).execute().body(); + JSONObject obj = new JSONObject(data); + JSONArray arr = obj.getJSONArray("items"); + String videoID = ""; + for (int i = 0; i < arr.length(); i++) + { + videoID = arr.getJSONObject(i).getJSONObject("id").getString("videoId"); + System.out.println("Parsed ID "+ videoID); + } + return "https://www.youtube.com/watch?v="+videoID; + } +} -- cgit v1.2.3