aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/builders/ScheduleMessageBuilder.java6
-rw-r--r--src/main/java/commands/CommandManager.java13
-rw-r--r--src/main/java/vtuber/ScheduleHandler.java18
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;
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage