From 7962ebec0c739c10e058222da0b9faad34149cbe Mon Sep 17 00:00:00 2001 From: ZtereoHYPE <57519662+ZtereoHYPE@users.noreply.github.com> Date: Mon, 6 Dec 2021 00:14:26 +0100 Subject: [PATCH] fix: #9 solved by checking if there are any results before parsing the json --- .../ztereohype/ztereomusic/networking/YoutubeSearch.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/codes/ztereohype/ztereomusic/networking/YoutubeSearch.java b/src/main/java/codes/ztereohype/ztereomusic/networking/YoutubeSearch.java index da2e9e9..8df57c8 100644 --- a/src/main/java/codes/ztereohype/ztereomusic/networking/YoutubeSearch.java +++ b/src/main/java/codes/ztereohype/ztereomusic/networking/YoutubeSearch.java @@ -25,11 +25,14 @@ public class YoutubeSearch { return Optional.empty(); } - JsonPath path = JsonPath.parse("items[0].id.videoId"); + JsonPath resultsNumberPath = JsonPath.parse("pageInfo.totalResults"); + JsonPath videoPath = JsonPath.parse("items[0].id.videoId"); - //todo: actually check if there is a response before parsing directly to the response + get the music-related one with most views try { - return Optional.ofNullable(JSON.parse(jsonResponse).query(path).asString()); + int results = JSON.parse(jsonResponse).query(resultsNumberPath).asInt(); + if (results == 0) return Optional.empty(); + + return Optional.ofNullable(JSON.parse(jsonResponse).query(videoPath).asString()); } catch (JsonSyntaxException e) { e.printStackTrace(); return Optional.empty();