diff options
| author | Pinapelz <donaldshan1@outlook.com> | 2023-04-06 11:08:29 -0700 |
|---|---|---|
| committer | Pinapelz <donaldshan1@outlook.com> | 2023-04-06 11:08:29 -0700 |
| commit | 070887400d5164ee623796240ad29da385a12a44 (patch) | |
| tree | 4bb5c5003e269c95947fabff34de51fdd7a7508b /src | |
| parent | caed3a3e490ea5fa98dfdd767b0fb26018e28348 (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.java | 22 | ||||
| -rw-r--r-- | src/main/java/com/pina/Holodex.java | 5 | ||||
| -rw-r--r-- | src/main/java/com/pina/HolodexService.java | 3 | ||||
| -rw-r--r-- | src/main/java/com/pina/datatypes/Channel.java | 7 | ||||
| -rw-r--r-- | src/main/java/com/pina/datatypes/SimpleChannel.java | 13 | ||||
| -rw-r--r-- | src/main/java/com/pina/datatypes/SimpleVideo.java | 23 | ||||
| -rw-r--r-- | src/main/java/com/pina/datatypes/Video.java | 22 |
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; } |
