diff --git a/pom.xml b/pom.xml index 2c4fee9..2e46412 100644 --- a/pom.xml +++ b/pom.xml @@ -19,11 +19,11 @@ - 6.0.6 - 2.5.0 + 6.0.7 + 2.5.1 5.4.6.Final 5.2.0.RELEASE - 2.1.9.RELEASE + 2.2.0.RELEASE 2.2.0.RELEASE 2.12.1 1.7.28 @@ -154,7 +154,7 @@ net.dv8tion JDA - 4.0.0_52 + 4.0.0_54 com.fasterxml.jackson.core @@ -194,7 +194,7 @@ mysql mysql-connector-java - 8.0.17 + 8.0.18 diff --git a/src/main/java/net/locusworks/discord/eighttrack/audio/Mp3UploadHandler.java b/src/main/java/net/locusworks/discord/eighttrack/audio/Mp3UploadHandler.java index 8d59d88..e4ca354 100644 --- a/src/main/java/net/locusworks/discord/eighttrack/audio/Mp3UploadHandler.java +++ b/src/main/java/net/locusworks/discord/eighttrack/audio/Mp3UploadHandler.java @@ -33,7 +33,6 @@ import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.Arrays; import java.util.UUID; import org.springframework.stereotype.Component; import org.xml.sax.SAXException; diff --git a/src/main/java/net/locusworks/discord/eighttrack/database/repos/GuildPlaylistRepository.java b/src/main/java/net/locusworks/discord/eighttrack/database/repos/GuildPlaylistRepository.java index bf02e1b..8a93dff 100644 --- a/src/main/java/net/locusworks/discord/eighttrack/database/repos/GuildPlaylistRepository.java +++ b/src/main/java/net/locusworks/discord/eighttrack/database/repos/GuildPlaylistRepository.java @@ -42,6 +42,11 @@ public interface GuildPlaylistRepository extends CrudRepository findByGuild(DiscordGuild guild); + + @Query("SELECT DISTINCT gpl FROM GuildPlaylist gpl LEFT JOIN FETCH gpl.guildPlaylistSongList WHERE gpl.guild.guildId = ?1") + List findByGuildFetchSongs(Long guild); + List findByGuildAndUserId(DiscordGuild guild, Long userId); @Query("SELECT gpl FROM GuildPlaylist gpl WHERE gpl.guild.guildId = ?1 AND gpl.userId = ?2") diff --git a/src/main/java/net/locusworks/discord/eighttrack/handlers/GuildMusicHandler.java b/src/main/java/net/locusworks/discord/eighttrack/handlers/GuildMusicHandler.java index 238745d..d60cd99 100644 --- a/src/main/java/net/locusworks/discord/eighttrack/handlers/GuildMusicHandler.java +++ b/src/main/java/net/locusworks/discord/eighttrack/handlers/GuildMusicHandler.java @@ -356,7 +356,7 @@ public class GuildMusicHandler { event.getChannel().sendMessage(sb.toString()).queue(); } - public void adminPlaylist(GuildMessageReceivedEvent event, List commands) { + public void adminPlaylist(GuildMessageReceivedEvent event, List commands) throws IOException { if(!isAdmin(event)) return; if (!checkCommands(event, commands, event.getMember().getAsMention() + ", valid commands are +playst list, play, delete")) return; @@ -527,7 +527,7 @@ public class GuildMusicHandler { return; } - int longestPlaylist = 0; + int longestPlaylist = 10; for(GuildPlaylist gpl : userPlaylist) { if (gpl.getPlaylist().length() > longestPlaylist) longestPlaylist = gpl.getPlaylist().length(); } @@ -544,8 +544,7 @@ public class GuildMusicHandler { } sb.append("```"); event.getChannel().sendMessage("**" + "Currently available playlists for " + event.getMember().getAsMention() + "**").queue((succcess)-> - event.getChannel().sendMessage(sb.toString()).queue() - ); + event.getChannel().sendMessage(sb.toString()).queue()); return; } @@ -622,9 +621,30 @@ public class GuildMusicHandler { } - private void listAllPlaylists(GuildMessageReceivedEvent event) { - // TODO Auto-generated method stub - + private void listAllPlaylists(GuildMessageReceivedEvent event) throws IOException { + List userPlaylist = guildSongRepoService.getGuildPlaylistRepo().findByGuildFetchSongs(event.getGuild().getIdLong()); + if (userPlaylist == null || userPlaylist.isEmpty()) { + event.getChannel().sendMessage(event.getAuthor().getAsMention() + ", there are no playlists for this guild").queue(); + return; + } + int longestPlaylist = 10; + for(GuildPlaylist gpl : userPlaylist) { + if (gpl.getPlaylist().length() > longestPlaylist) longestPlaylist = gpl.getPlaylist().length(); + } + + String fmt = "%6s | %-" + longestPlaylist +"s | %s%n"; + + StringBuilder sb = new StringBuilder("```"); + sb.append(String.format(fmt, "", "Playlist", "Song Count")); + sb.append(StringUtils.repeat("-", 24 + longestPlaylist)).append("\n"); + + int count = 0; + for(GuildPlaylist gpl : userPlaylist) { + sb.append(String.format(fmt, ++count, gpl.getPlaylist(), gpl.getGuildPlaylistSongList().size())); + } + sb.append("```"); + event.getChannel().sendMessage("**Playlists for " + event.getGuild().getName() + "**").queue((succcess)-> + event.getChannel().sendMessage(sb.toString()).queue()); } private void deleteUserPlayList(GuildMessageReceivedEvent event, List commands) {