From f1ea2691552381418452fbf0e121a8580d0c2b60 Mon Sep 17 00:00:00 2001 From: ClovertaTheTrilobita Date: Sun, 13 Apr 2025 19:42:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=8C=E5=96=84=E9=94=99=E8=AF=AFURL?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=8A=9B=E5=87=BA=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E6=9B=B4=E8=AF=A6=E7=BB=86=E7=9A=84=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webapi/controller/BiliApiController.java | 2 +- .../cloverta/webapi/restservice/BiliApi.java | 3 +++ .../webapi/service/BiliApiService.java | 18 ++++++++++++++---- 3 files changed, 18 insertions(+), 5 deletions(-) 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) {