diff --git a/src/main/java/me/kavin/piped/server/ServerLauncher.java b/src/main/java/me/kavin/piped/server/ServerLauncher.java index 21b2e2b..8af9028 100644 --- a/src/main/java/me/kavin/piped/server/ServerLauncher.java +++ b/src/main/java/me/kavin/piped/server/ServerLauncher.java @@ -99,7 +99,7 @@ public class ServerLauncher extends MultithreadedHttpServerLauncher { try { return getJsonResponse( SponsorBlockUtils.getSponsors(request.getPathParameter("videoId"), - request.getQueryParameter("category")).getBytes(UTF_8), + request.getQueryParameter("category"), request.getQueryParameter("actionType")).getBytes(UTF_8), "public, max-age=3600"); } catch (Exception e) { return getErrorResponse(e, request.getPath()); diff --git a/src/main/java/me/kavin/piped/utils/SponsorBlockUtils.java b/src/main/java/me/kavin/piped/utils/SponsorBlockUtils.java index 4151575..799d1a7 100644 --- a/src/main/java/me/kavin/piped/utils/SponsorBlockUtils.java +++ b/src/main/java/me/kavin/piped/utils/SponsorBlockUtils.java @@ -22,7 +22,7 @@ import static me.kavin.piped.consts.Constants.mapper; public class SponsorBlockUtils { - public static String getSponsors(String id, String categories) + public static String getSponsors(String id, String categories, String actionType) throws IOException { if (StringUtils.isEmpty(categories)) @@ -30,11 +30,15 @@ public class SponsorBlockUtils { String hash = DigestUtils.sha256Hex(id); - for (String url : Constants.SPONSORBLOCK_SERVERS) { + for (String apiUrl : Constants.SPONSORBLOCK_SERVERS) { try { + String url = apiUrl + "/api/skipSegments/" + URLUtils.silentEncode(hash.substring(0, 4)) - var resp = RequestUtils.sendGetRaw(url + "/api/skipSegments/" + URLUtils.silentEncode(hash.substring(0, 4)) - + "?categories=" + URLUtils.silentEncode(categories)).get(); + + "?categories=" + URLUtils.silentEncode(categories); + if (actionType != null && !actionType.isBlank()) + url += "&actionTypes=" + URLUtils.silentEncode(actionType); + + var resp = RequestUtils.sendGetRaw(url).get(); if (resp.status() == 200) { var any = mapper.readTree(resp.body());