From 28550a86f6f9b4dea05e3c19fb89ab7e4f6996ef Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Tue, 4 Apr 2023 12:11:11 -0700 Subject: Initial Commit --- src/main/java/com/pina/Holodex.java | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/com/pina/Holodex.java (limited to 'src/main/java/com/pina/Holodex.java') diff --git a/src/main/java/com/pina/Holodex.java b/src/main/java/com/pina/Holodex.java new file mode 100644 index 0000000..38c519a --- /dev/null +++ b/src/main/java/com/pina/Holodex.java @@ -0,0 +1,44 @@ +package com.pina; + +import retrofit2.Call; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; + +import java.io.IOException; +import java.util.List; + +public class Holodex { + private final HolodexService service; + + public Holodex(){ + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("https://holodex.net") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + service = retrofit.create(HolodexService.class); + } + public List getLiveStreams() throws HolodexException { + Call> call = service.getLiveStreams("channel,clip"); + return executeCall(call); + } + + public List getUpcomingStreams() throws HolodexException { + Call> call = service.getUpcomingStreams("channel,clip"); + return executeCall(call); + } + + private T executeCall(Call call) throws HolodexException { + try { + Response response = call.execute(); + if (response.isSuccessful()) { + return response.body(); + } else { + throw new HolodexException("API returned error: " + response.code()); + } + } catch (IOException e) { + System.out.println(e); + throw new HolodexException("Failed to execute API call", e); + } + } +} -- cgit v1.2.3