diff --git a/src/main/java/me/kavin/piped/utils/ResponseHelper.java b/src/main/java/me/kavin/piped/utils/ResponseHelper.java index 5dcc562..b31bc3a 100644 --- a/src/main/java/me/kavin/piped/utils/ResponseHelper.java +++ b/src/main/java/me/kavin/piped/utils/ResponseHelper.java @@ -274,6 +274,9 @@ public class ResponseHelper { public static byte[] channelPageResponse(String channelId, String prevpageStr) throws IOException, ExtractionException { + if (StringUtils.isEmpty(prevpageStr)) + return mapper.writeValueAsBytes(new InvalidRequestResponse()); + Page prevpage = mapper.readValue(prevpageStr, Page.class); InfoItemsPage info = ChannelInfo.getMoreItems(YOUTUBE_SERVICE, @@ -388,6 +391,9 @@ public class ResponseHelper { public static byte[] playlistPageResponse(String playlistId, String prevpageStr) throws IOException, ExtractionException { + if (StringUtils.isEmpty(prevpageStr)) + return mapper.writeValueAsBytes(new InvalidRequestResponse()); + Page prevpage = mapper.readValue(prevpageStr, Page.class); InfoItemsPage info = PlaylistInfo.getMoreItems(YOUTUBE_SERVICE, @@ -552,6 +558,9 @@ public class ResponseHelper { public static byte[] searchPageResponse(String q, String filter, String prevpageStr) throws IOException, ExtractionException { + if (StringUtils.isEmpty(prevpageStr)) + return mapper.writeValueAsBytes(new InvalidRequestResponse()); + Page prevpage = mapper.readValue(prevpageStr, Page.class); InfoItemsPage pages = SearchInfo.getMoreItems(YOUTUBE_SERVICE, @@ -622,6 +631,9 @@ public class ResponseHelper { public static byte[] commentsPageResponse(String videoId, String prevpageStr) throws Exception { + if (StringUtils.isEmpty(prevpageStr)) + return mapper.writeValueAsBytes(new InvalidRequestResponse()); + Page prevpage = mapper.readValue(prevpageStr, Page.class); InfoItemsPage info = CommentsInfo.getMoreItems(YOUTUBE_SERVICE, "https://www.youtube.com/watch?v=" + videoId, prevpage);