aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPinapelz <donaldshan1@outlook.com>2023-04-06 11:08:29 -0700
committerPinapelz <donaldshan1@outlook.com>2023-04-06 11:08:29 -0700
commit070887400d5164ee623796240ad29da385a12a44 (patch)
tree4bb5c5003e269c95947fabff34de51fdd7a7508b /src
parentcaed3a3e490ea5fa98dfdd767b0fb26018e28348 (diff)
Refactored return objects, distinguished according to API
Video and Channels have been split into simple variations for cases when Holodex returns an object with less values
Diffstat (limited to 'src')
-rw-r--r--src/main/java/App.java22
-rw-r--r--src/main/java/com/pina/Holodex.java5
-rw-r--r--src/main/java/com/pina/HolodexService.java3
-rw-r--r--src/main/java/com/pina/datatypes/Channel.java7
-rw-r--r--src/main/java/com/pina/datatypes/SimpleChannel.java13
-rw-r--r--src/main/java/com/pina/datatypes/SimpleVideo.java23
-rw-r--r--src/main/java/com/pina/datatypes/Video.java22
7 files changed, 57 insertions, 38 deletions
diff --git a/src/main/java/App.java b/src/main/java/App.java
index 1a21620..de0d268 100644
--- a/src/main/java/App.java
+++ b/src/main/java/App.java
@@ -1,6 +1,7 @@
import com.pina.Holodex;
import com.pina.HolodexException;
import com.pina.datatypes.Channel;
+import com.pina.datatypes.SimpleVideo;
import com.pina.datatypes.Video;
import com.pina.query.ChannelQueryBuilder;
import com.pina.query.VideoMetadataQueryBuilder;
@@ -13,14 +14,15 @@ public class App
public static void main( String[] args )
{
try {
- Holodex holodex = new Holodex("API_KEY"); //API key here is not active
+ Holodex holodex = new Holodex("5c9f2643-1762-40e8-85ab-b8e7d3e433a1");
Channel channel = holodex.getChannel("UC4WvIIAo89_AzGUh1AZ6Dkg");
System.out.println(channel.name + " is a member of " + channel.org + " and has " + channel.suborg + " as a suborg");
VideoQueryBuilder liveVideoQuery = new VideoQueryBuilder().setStatus("live").setOrg("Hololive");
- List<Video> currentlyLiveVideos = holodex.getLiveVideos(liveVideoQuery);
+ List<SimpleVideo> currentlyLiveVideos = holodex.getLiveAndUpcomingVideos(liveVideoQuery);
System.out.println("Currently there are " + currentlyLiveVideos.size() + " livestreams on going in Hololive");
- for (Video video : currentlyLiveVideos) {
+
+ for (SimpleVideo video : currentlyLiveVideos) {
System.out.println(video.channel.name + " is currently live with " + video.live_viewers + " views");
}
@@ -28,16 +30,14 @@ public class App
channelQuery.setOrg("Nijisanji");
channelQuery.setLimit(75);
List<Channel> nijisanjiMembers = holodex.getChannels(channelQuery);
- // Gets the first 75 members of Nijisanji
- VideoMetadataQueryBuilder vidoeQuery = new VideoMetadataQueryBuilder();
- vidoeQuery.setVideoId("9-O_IWM3184");
Video anotherVideo = holodex.getVideo(new VideoMetadataQueryBuilder().setVideoId("9-O_IWM3184").setLang("en"));
- System.out.println(anotherVideo.channel.name + " uploaded a video titled " + anotherVideo.title + " on " + anotherVideo.published_at);
-
- }
- catch (HolodexException e) {
- e.printStackTrace();
+ System.out.println(anotherVideo.channel.name + " uploaded a video titled " + anotherVideo.title +
+ " on " + anotherVideo.published_at);
+ } catch (HolodexException ex) {
+ throw new RuntimeException(ex);
}
+
}
+
}
diff --git a/src/main/java/com/pina/Holodex.java b/src/main/java/com/pina/Holodex.java
index fa100f5..e436e39 100644
--- a/src/main/java/com/pina/Holodex.java
+++ b/src/main/java/com/pina/Holodex.java
@@ -1,6 +1,7 @@
package com.pina;
import com.pina.datatypes.Channel;
+import com.pina.datatypes.SimpleVideo;
import com.pina.datatypes.Video;
import com.pina.query.ChannelQueryBuilder;
import com.pina.query.VideoMetadataQueryBuilder;
@@ -46,8 +47,8 @@ public class Holodex {
service = retrofit.create(HolodexService.class);
}
- public List<Video> getLiveVideos(VideoQueryBuilder queryBuilder) throws HolodexException {
- Call<List<Video>> call = service.getLiveVideos(queryBuilder.getChannelId(), queryBuilder.getId(),
+ public List<SimpleVideo> getLiveAndUpcomingVideos(VideoQueryBuilder queryBuilder) throws HolodexException {
+ Call<List<SimpleVideo>> call = service.getLiveVideos(queryBuilder.getChannelId(), queryBuilder.getId(),
queryBuilder.getInclude(), queryBuilder.getLang(),
queryBuilder.getLimit(), queryBuilder.getMaxUpcomingHours(),
queryBuilder.getMentionedChannelId(), queryBuilder.getOffset(),
diff --git a/src/main/java/com/pina/HolodexService.java b/src/main/java/com/pina/HolodexService.java
index 4b42433..fa2af85 100644
--- a/src/main/java/com/pina/HolodexService.java
+++ b/src/main/java/com/pina/HolodexService.java
@@ -1,6 +1,7 @@
package com.pina;
import com.pina.datatypes.Channel;
+import com.pina.datatypes.SimpleVideo;
import com.pina.datatypes.Video;
import retrofit2.Call;
import retrofit2.http.GET;
@@ -11,7 +12,7 @@ import java.util.List;
public interface HolodexService {
@GET("/api/v2/live")
- Call<List<Video>> getLiveVideos(
+ Call<List<SimpleVideo>> getLiveVideos(
@Query("channel_id") String channel_id,
@Query("id") String id,
@Query("include") String include,
diff --git a/src/main/java/com/pina/datatypes/Channel.java b/src/main/java/com/pina/datatypes/Channel.java
index 1aace7e..cadfbc9 100644
--- a/src/main/java/com/pina/datatypes/Channel.java
+++ b/src/main/java/com/pina/datatypes/Channel.java
@@ -3,13 +3,8 @@ package com.pina.datatypes;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
-public class Channel {
- public String id;
- public String name;
- public String english_name;
- public String org;
+public class Channel extends SimpleChannel{
public String suborg;
- public String photo;
public String banner;
public String twitter;
public String video_count;
diff --git a/src/main/java/com/pina/datatypes/SimpleChannel.java b/src/main/java/com/pina/datatypes/SimpleChannel.java
new file mode 100644
index 0000000..c70a0be
--- /dev/null
+++ b/src/main/java/com/pina/datatypes/SimpleChannel.java
@@ -0,0 +1,13 @@
+package com.pina.datatypes;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class SimpleChannel {
+ public String id;
+ public String name;
+ public String english_name;
+ public String type;
+ public String photo;
+ public String org;
+}
diff --git a/src/main/java/com/pina/datatypes/SimpleVideo.java b/src/main/java/com/pina/datatypes/SimpleVideo.java
new file mode 100644
index 0000000..1d30748
--- /dev/null
+++ b/src/main/java/com/pina/datatypes/SimpleVideo.java
@@ -0,0 +1,23 @@
+package com.pina.datatypes;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+@JsonIgnoreProperties (ignoreUnknown = true)
+public class SimpleVideo {
+ public String id;
+ public String title;
+ public String type;
+ public String topic_id;
+ public String published_at;
+ public String available_at;
+ public int duration;
+ public String status;
+ public String start_scheduled;
+ public String start_actual;
+ public String end_actual;
+ public int live_viewers;
+ public String description;
+ public int songcount;
+ public String channel_id;
+ public Channel channel;
+}
diff --git a/src/main/java/com/pina/datatypes/Video.java b/src/main/java/com/pina/datatypes/Video.java
index 81cb017..037c549 100644
--- a/src/main/java/com/pina/datatypes/Video.java
+++ b/src/main/java/com/pina/datatypes/Video.java
@@ -6,27 +6,13 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.util.List;
@JsonIgnoreProperties(ignoreUnknown = true)
-public class Video {
- public String id;
- public String title;
- public String type;
- public String topic_id;
- public String published_at;
- public String available_at;
- public int duration;
- public String status;
- public String start_scheduled;
- public String start_actual;
- public String end_actual;
- public int live_viewers;
- public String description;
- public int songcount;
- public String channel_id;
+public class Video extends SimpleVideo {
public List<Video> clips;
+ public List<Video> sources;
public List<Video> refers;
- public List<Channel> mentions;
+ public List<Video> simulcasts;
+ public List<SimpleChannel> mentions;
public String thumbnail;
- public Channel channel;
public int songs;
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage