diff --git a/src/main/java/com/cloverta/webapi/controller/BiliApiController.java b/src/main/java/com/cloverta/webapi/controller/BiliApiController.java index edf893a..e87cfcc 100644 --- a/src/main/java/com/cloverta/webapi/controller/BiliApiController.java +++ b/src/main/java/com/cloverta/webapi/controller/BiliApiController.java @@ -15,7 +15,7 @@ public class BiliApiController { } @GetMapping("/bili") - public BiliApi BiliApi(@RequestParam(value = "bvid", required = true) String bvid) { + public BiliApi BiliApi(@RequestParam(value = "bvid", defaultValue = "empty") String bvid) { return biliApiService.getPagesInfo(bvid); } } diff --git a/src/main/java/com/cloverta/webapi/restservice/BiliApi.java b/src/main/java/com/cloverta/webapi/restservice/BiliApi.java index 9c3b43a..a9bac4b 100644 --- a/src/main/java/com/cloverta/webapi/restservice/BiliApi.java +++ b/src/main/java/com/cloverta/webapi/restservice/BiliApi.java @@ -1,10 +1,13 @@ package com.cloverta.webapi.restservice; import com.cloverta.webapi.model.BiliVid; +import com.fasterxml.jackson.annotation.JsonInclude; import java.util.List; +@JsonInclude(JsonInclude.Include.NON_NULL) public record BiliApi(String status, + String message, String bvId, String name, String author, diff --git a/src/main/java/com/cloverta/webapi/service/BiliApiService.java b/src/main/java/com/cloverta/webapi/service/BiliApiService.java index 5343bd9..f673f6e 100644 --- a/src/main/java/com/cloverta/webapi/service/BiliApiService.java +++ b/src/main/java/com/cloverta/webapi/service/BiliApiService.java @@ -16,6 +16,9 @@ import java.util.*; @Service public class BiliApiService { public BiliApi getPagesInfo(String bvid) { + if (bvid.equals("empty")) { + return generateBiliApi("ERROR", "Missing param 'bvid'", null, null, null, null, null, null); + } List biliVids = new ArrayList<>(); HttpURLConnection connection = null; InputStream is = null; @@ -46,7 +49,10 @@ public class BiliApiService { String jsonResponse = result.toString(); JSONObject root = new JSONObject(jsonResponse); - JSONObject data = root.getJSONObject("data"); + JSONObject data; + + data = root.getJSONObject("data"); + String bvId = data.getString("bvid"); String name = data.getString("title"); String author = data.getJSONObject("owner").getString("name"); @@ -73,9 +79,13 @@ public class BiliApiService { // System.out.println(biliVid.getCid()); } - return generateBiliApi("OK", bvId, name, author, imageUrl, description, appendVidUrl(biliVids)); + return generateBiliApi("OK", "success", bvId, name, author, imageUrl, description, appendVidUrl(biliVids)); } catch (IOException e) { e.printStackTrace(); + return generateBiliApi("ERROR", "Can't access data: api.bilibili.com unreachable. Please contact cloverta@petalmail.com for further support.", null, null, null, null, null, null); + }catch (org.json.JSONException e) { + e.printStackTrace(); + return generateBiliApi("ERROR", "Invalid BVId: Please check whether there was a typo or whether the video exists.", null, null, null, null, null, null); } finally { if (null != br) { try { @@ -97,7 +107,6 @@ public class BiliApiService { } } - return null; } public List appendVidUrl(List biliVids) { @@ -173,13 +182,14 @@ public class BiliApiService { } public BiliApi generateBiliApi(String status, + String message, String bvId, String name, String author, String imageUrl, String description, List data) { - return new BiliApi(status, bvId, name, author, imageUrl, description, data); + return new BiliApi(status, message, bvId, name, author, imageUrl, description, data); } // public static void main(String[] args) {