diff options
| author | Pinapelz <donaldshan1@outlook.com> | 2023-04-07 21:45:53 -0700 |
|---|---|---|
| committer | Pinapelz <donaldshan1@outlook.com> | 2023-04-07 21:45:53 -0700 |
| commit | 50dbab5fe4feaf5356132ff463a71c76e4cc1a3a (patch) | |
| tree | 11d39001b1b99aa706f05973c5b5642946edc71d /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.java | 69 |
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; + + } +} |
