diff options
| author | Pinapelz <donaldshan1@outlook.com> | 2023-04-13 14:27:38 -0700 |
|---|---|---|
| committer | Pinapelz <donaldshan1@outlook.com> | 2023-04-13 14:27:38 -0700 |
| commit | b538b67c68fffc64925f757775b54d3aff359821 (patch) | |
| tree | c46b994b951f3b58d976f961aaf8a9c3e79de81d | |
| parent | 3c33dc44e507db4bab3ca66446dca4f6b5d3cadc (diff) | |
Added check for if organization schedule is requested for exists.
| -rw-r--r-- | src/main/java/builders/ScheduleMessageBuilder.java | 2 | ||||
| -rw-r--r-- | src/main/java/commands/CommandManager.java | 4 | ||||
| -rw-r--r-- | src/main/java/commands/StatusHandler.java | 12 | ||||
| -rw-r--r-- | src/main/java/vtuber/ScheduleHandler.java | 30 |
4 files changed, 47 insertions, 1 deletions
diff --git a/src/main/java/builders/ScheduleMessageBuilder.java b/src/main/java/builders/ScheduleMessageBuilder.java index 4f5f78c..2b468d2 100644 --- a/src/main/java/builders/ScheduleMessageBuilder.java +++ b/src/main/java/builders/ScheduleMessageBuilder.java @@ -42,7 +42,7 @@ public class ScheduleMessageBuilder { titleText = video.channel.name + " - " + unixTimeStr; } String videoURL = "https://www.youtube.com/watch?v=" + video.id; - messageBuilder.addField(titleText, "["+video.title+"]"+"("+videoURL+")", true); + messageBuilder.addField(titleText, "["+video.title+"]"+"("+videoURL+")", false); } return messageBuilder.build(); diff --git a/src/main/java/commands/CommandManager.java b/src/main/java/commands/CommandManager.java index e374b21..d56b39a 100644 --- a/src/main/java/commands/CommandManager.java +++ b/src/main/java/commands/CommandManager.java @@ -23,6 +23,10 @@ public class CommandManager extends ListenerAdapter { case "schedule": String organization = e.getOption("organization").getAsString(); organization = organization.replaceAll(" ", "%20"); + if (scheduleHandler.organizationExists(organization) == false) { + 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)); e.deferReply().queue(); e.getHook().sendMessageEmbeds(scheduleMessage).queue(); diff --git a/src/main/java/commands/StatusHandler.java b/src/main/java/commands/StatusHandler.java index ff48632..090af40 100644 --- a/src/main/java/commands/StatusHandler.java +++ b/src/main/java/commands/StatusHandler.java @@ -15,6 +15,18 @@ public class StatusHandler { "Holodex Organization Name (e.g Hololive, Nijisanji, Phase Connect, PRISM, Production Kawaii)", true)) .queue(); + jda.upsertCommand(new CommandData("schedule-channel", "Shows upcoming streams and events for a given channel ID") + .addOption(OptionType.STRING, "channel-id", + "YouTube Channel ID (e.g UCp6993wxpyDPHUpavwDFqgg)", + true)) + .queue(); + jda.upsertCommand(new CommandData("configure-stream-channel", "Sets channel to be updated with live and upcoming streams for the channel ID provided") + .addOption(OptionType.STRING,"channel-id", "YouTube Channel ID (e.g UCp6993wxpyDPHUpavwDFqgg)", true)) + .queue(); + jda.upsertCommand(new CommandData("configure-org-channel", "Sets channel to be updated with live and upcoming streams for the organization provided") + .addOption(OptionType.STRING,"organization", "Holodex Organization Name (e.g Hololive, Nijisanji, Phase Connect, PRISM, Production Kawaii)", true)) + .queue(); + } diff --git a/src/main/java/vtuber/ScheduleHandler.java b/src/main/java/vtuber/ScheduleHandler.java index 094309b..2990bbf 100644 --- a/src/main/java/vtuber/ScheduleHandler.java +++ b/src/main/java/vtuber/ScheduleHandler.java @@ -2,7 +2,10 @@ package vtuber; import com.pina.Holodex; import com.pina.HolodexException; +import com.pina.datatypes.Channel; +import com.pina.datatypes.SimpleChannel; import com.pina.datatypes.SimpleVideo; +import com.pina.query.ChannelQueryBuilder; import com.pina.query.VideoQueryBuilder; import java.util.ArrayList; @@ -62,4 +65,31 @@ public class ScheduleHandler { return upcomingAndLiveVideos; } + + public boolean organizationExists(String org) { + List<Channel> channels = new ArrayList<>(); + try { + channels = holodex.getChannels(new ChannelQueryBuilder().setOrg(org)); + } catch (HolodexException e) { + System.out.println("Couldn't find organization with name " + org); + return false; + } + return channels.size() > 0; + } + + public boolean channelExists(String channelId) { + Channel channel = new Channel(); + try{ + channel = holodex.getChannel(channelId); + if (channel.name == null) { + throw new HolodexException("Searching channel successful but no results found"); + } + } catch (HolodexException e) { + System.out.println("Couldn't find channel with id " + channelId); + return false; + } + return true; + } + } + |
