aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPinapelz <donaldshan1@outlook.com>2023-04-13 14:27:38 -0700
committerPinapelz <donaldshan1@outlook.com>2023-04-13 14:27:38 -0700
commitb538b67c68fffc64925f757775b54d3aff359821 (patch)
treec46b994b951f3b58d976f961aaf8a9c3e79de81d
parent3c33dc44e507db4bab3ca66446dca4f6b5d3cadc (diff)
Added check for if organization schedule is requested for exists.
-rw-r--r--src/main/java/builders/ScheduleMessageBuilder.java2
-rw-r--r--src/main/java/commands/CommandManager.java4
-rw-r--r--src/main/java/commands/StatusHandler.java12
-rw-r--r--src/main/java/vtuber/ScheduleHandler.java30
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;
+ }
+
}
+
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage