diff options
| author | Pinapelz <donaldshan1@outlook.com> | 2023-04-13 10:51:13 -0700 |
|---|---|---|
| committer | Pinapelz <donaldshan1@outlook.com> | 2023-04-13 10:51:13 -0700 |
| commit | b6c75734ecb7915708f57579d00d7024e336815b (patch) | |
| tree | 82a48e86fc3628881bd8f48de39fe3fbd6970dc4 | |
| parent | 380e2077f55b78fa12cd7ae6e38c4770787a144e (diff) | |
Implemented /schedule-channel command (schedule for individual channels)
| -rw-r--r-- | src/main/java/builders/ScheduleMessageBuilder.java | 6 | ||||
| -rw-r--r-- | src/main/java/commands/CommandManager.java | 13 | ||||
| -rw-r--r-- | src/main/java/vtuber/ScheduleHandler.java | 18 |
3 files changed, 35 insertions, 2 deletions
diff --git a/src/main/java/builders/ScheduleMessageBuilder.java b/src/main/java/builders/ScheduleMessageBuilder.java index 2b468d2..28c69a0 100644 --- a/src/main/java/builders/ScheduleMessageBuilder.java +++ b/src/main/java/builders/ScheduleMessageBuilder.java @@ -38,7 +38,11 @@ public class ScheduleMessageBuilder { unixTimeStr = "LIVE \uD83D\uDD34"; } String titleText = video.channel.english_name + " - " + unixTimeStr; - if (video.channel.english_name.equals(null)){ + try { + if (video.channel.english_name.equals(null)) { + titleText = video.channel.name + " - " + unixTimeStr; + } + } catch (NullPointerException e){ titleText = video.channel.name + " - " + unixTimeStr; } String videoURL = "https://www.youtube.com/watch?v=" + video.id; diff --git a/src/main/java/commands/CommandManager.java b/src/main/java/commands/CommandManager.java index d56b39a..03de1f5 100644 --- a/src/main/java/commands/CommandManager.java +++ b/src/main/java/commands/CommandManager.java @@ -19,7 +19,18 @@ public class CommandManager extends ListenerAdapter { @Override public void onSlashCommand(SlashCommandEvent e) { String command = e.getName(); + MessageEmbed scheduleMessage; switch (command) { + case "schedule-channel": + String channelId = e.getOption("channel-id").getAsString(); + if (scheduleHandler.channelExists(channelId) == false) { + e.reply("Sorry, I couldn't find any information on that channel. Please ensure it matches Holodex's spelling").queue(); + return; + } + scheduleMessage = scb.buildLiveAndUpcomingMessage(scheduleHandler.getScheduleChannelId(channelId, 10)); + e.deferReply().queue(); + e.getHook().sendMessageEmbeds(scheduleMessage).queue(); + break; case "schedule": String organization = e.getOption("organization").getAsString(); organization = organization.replaceAll(" ", "%20"); @@ -27,7 +38,7 @@ public class CommandManager extends ListenerAdapter { e.reply("Sorry, I couldn't find any information on that organization. Please ensure it matches Holodex's spelling").queue(); return; } - MessageEmbed scheduleMessage = scb.buildLiveAndUpcomingMessage(scheduleHandler.getSchedule(organization, 10)); + scheduleMessage = scb.buildLiveAndUpcomingMessage(scheduleHandler.getSchedule(organization, 10)); e.deferReply().queue(); e.getHook().sendMessageEmbeds(scheduleMessage).queue(); break; diff --git a/src/main/java/vtuber/ScheduleHandler.java b/src/main/java/vtuber/ScheduleHandler.java index d921237..990b285 100644 --- a/src/main/java/vtuber/ScheduleHandler.java +++ b/src/main/java/vtuber/ScheduleHandler.java @@ -64,6 +64,24 @@ public class ScheduleHandler { return upcomingAndLiveVideos; } + public List<SimpleVideo> getScheduleChannelId(String channelId, int limit) { + System.out.println("Getting schedule for " + channelId); + List<SimpleVideo> upcomingAndLiveVideos = new ArrayList<>(); + try { + List<SimpleVideo> upcomingVideos = holodex.getLiveAndUpcomingVideos(new VideoQueryBuilder().setChannelId(channelId).setStatus("upcoming")); + List<SimpleVideo> liveVideos = holodex.getLiveAndUpcomingVideos(new VideoQueryBuilder().setStatus("live").setChannelId(channelId)); + upcomingAndLiveVideos.addAll(liveVideos); + upcomingAndLiveVideos.addAll(upcomingVideos); + if (upcomingAndLiveVideos.size() > limit) { + upcomingAndLiveVideos = upcomingAndLiveVideos.subList(0, limit); + } + } catch (HolodexException e) { + System.out.println("Error getting schedule for " + channelId); + System.out.println(e.getMessage()); + } + return upcomingAndLiveVideos; + + } public boolean organizationExists(String org) { List<Channel> channels; |
