aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/builders/ScheduleMessageBuilder.java
diff options
context:
space:
mode:
authorPinapelz <donaldshan1@outlook.com>2023-04-07 21:45:53 -0700
committerPinapelz <donaldshan1@outlook.com>2023-04-07 21:45:53 -0700
commit50dbab5fe4feaf5356132ff463a71c76e4cc1a3a (patch)
tree11d39001b1b99aa706f05973c5b5642946edc71d /src/main/java/builders/ScheduleMessageBuilder.java
Initial Commit
Diffstat (limited to 'src/main/java/builders/ScheduleMessageBuilder.java')
-rw-r--r--src/main/java/builders/ScheduleMessageBuilder.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/main/java/builders/ScheduleMessageBuilder.java b/src/main/java/builders/ScheduleMessageBuilder.java
new file mode 100644
index 0000000..9dd77bf
--- /dev/null
+++ b/src/main/java/builders/ScheduleMessageBuilder.java
@@ -0,0 +1,69 @@
+package builders;
+
+import com.pina.datatypes.SimpleVideo;
+import net.dv8tion.jda.api.EmbedBuilder;
+import net.dv8tion.jda.api.entities.MessageEmbed;
+
+import java.awt.*;
+import java.time.OffsetDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ScheduleMessageBuilder {
+ private int COLOR = 8805674;
+ public MessageEmbed buildLiveAndUpcomingMessage(List<SimpleVideo> videos){
+ if (videos.size() == 0){
+ return new EmbedBuilder()
+ .setTitle("No streams upcoming or live. Check back later!")
+ .setDescription("If you think this is a mistake, please check that you've spelled the organization as listed on Holodex")
+ .setColor(new Color(COLOR))
+ .setTimestamp(OffsetDateTime.now())
+ .build();
+ }
+ String pfp = videos.get(0).channel.photo;
+ EmbedBuilder messageBuilder = new EmbedBuilder()
+ .setThumbnail(pfp)
+ .setTitle("Upcoming and Live Streams for " + videos.get(0).channel.org)
+ .setDescription("The schedule you asked for")
+ .setColor(new Color(COLOR))
+ .setTimestamp(OffsetDateTime.now());
+
+ for (SimpleVideo video : videos){
+ String gmtStartTime = video.start_scheduled;
+ long unixTime = OffsetDateTime.parse(gmtStartTime).toEpochSecond();
+ String unixTimeStr = "<t:" + Long.toString(unixTime) + ":R> ⏰";
+ if (video.status.equals("live")){
+ unixTimeStr = "LIVE \uD83D\uDD34";
+ }
+ String titleText = video.channel.english_name + " - " + unixTimeStr;
+ String videoURL = "https://www.youtube.com/watch?v=" + video.id;
+ messageBuilder.addField(titleText, "["+video.title+"]"+"("+videoURL+")", false);
+ }
+ return messageBuilder.build();
+
+ }
+
+ public ArrayList<MessageEmbed> getUpcomingLiveListMessages(List<SimpleVideo> simpleVideos){
+ ArrayList<MessageEmbed> messageEmbeds = new ArrayList<>();
+ for (SimpleVideo video : simpleVideos){
+ String title = video.channel.english_name + " is streaming soon! ⏰";
+ String fieldTitle = "Scheduled Start Time";
+ if (video.status.equals("live")){
+ title = video.channel.english_name + " is live! \uD83D\uDD34";
+ fieldTitle = "Live Since";
+ }
+ String gmtStartTime = video.start_scheduled;
+ long unixTime = OffsetDateTime.parse(gmtStartTime).toEpochSecond();
+ EmbedBuilder embedBuilder = new EmbedBuilder()
+ .setTitle(title)
+ .setDescription("["+video.title+"]"+"(https://www.youtube.com/watch?v="+video.id+")")
+ .addField(fieldTitle, "<t:" + unixTime + ":R>", false)
+ .setThumbnail(video.channel.photo)
+ .setImage("https://img.youtube.com/vi/"+video.id+"/maxresdefault.jpg")
+ .setTimestamp(OffsetDateTime.now());
+ messageEmbeds.add(embedBuilder.build());
+ }
+ return messageEmbeds;
+
+ }
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage