From 05262283f8dd9dec65cf5e3bce1936cfccf09c02 Mon Sep 17 00:00:00 2001 From: ThePotioner Date: Wed, 11 Jun 2025 17:35:29 +0900 Subject: [PATCH] Fix: handling some exception --- src/main/java/dev/ptnr/AyayaBot.java | 14 +++++++++----- src/main/java/dev/ptnr/Hitomi.java | 3 ++- src/main/java/dev/ptnr/HitomiDTO.java | 3 +++ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/dev/ptnr/AyayaBot.java b/src/main/java/dev/ptnr/AyayaBot.java index 9932bda..61512be 100644 --- a/src/main/java/dev/ptnr/AyayaBot.java +++ b/src/main/java/dev/ptnr/AyayaBot.java @@ -73,13 +73,17 @@ class BotListener extends ListenerAdapter { event.reply("작품을 로드합니다. 조금 기다려주세요...").setEphemeral(true).queue(); HitomiDTO hitomiData = Hitomi.GetHitomiData(id); + if (hitomiData == null) { + event.getHook().editOriginal("작품을 가져오는 데 오류가 발생하였습니다.\n존재하는 ID인지 확인해주세요.").queue(); + return; + } EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle(hitomiData.getTitle()); - eb.appendDescription("`품번: " + hitomiData.getId() + "`\n"); - eb.appendDescription("`작가: " + hitomiData.getArtistsAsString() + "`\n"); - eb.appendDescription("`종류: " + hitomiData.getType() + "`\n"); - eb.appendDescription("`태그: " + hitomiData.getTagsAsString() + "`"); + eb.setTitle(hitomiData.getTitle()).setUrl("https://hitomi.la/reader/"+id+".html"); + eb.appendDescription("품번: `" + hitomiData.getId() + "`\n"); + eb.appendDescription("작가: `" + hitomiData.getArtistsAsString() + "`\n"); + eb.appendDescription("종류: `" + hitomiData.getType() + "`\n"); + eb.appendDescription("태그: `" + hitomiData.getTagsAsString() + "`"); String coverUrl = Hitomi.getImageUrl(hitomiData.getImageHashList().get(0)); byte[] webpData = AyayaUtils.GetFileFromUrl(coverUrl); diff --git a/src/main/java/dev/ptnr/Hitomi.java b/src/main/java/dev/ptnr/Hitomi.java index 346854d..5e1baa3 100644 --- a/src/main/java/dev/ptnr/Hitomi.java +++ b/src/main/java/dev/ptnr/Hitomi.java @@ -149,7 +149,8 @@ public class Hitomi { } public static void main(String[] args) { - HitomiDTO test = GetHitomiData(3392566); + HitomiDTO test = GetHitomiData(2154225); System.out.println(test.getTagsAsString()); + System.out.println(test.getArtistsAsString()); } } diff --git a/src/main/java/dev/ptnr/HitomiDTO.java b/src/main/java/dev/ptnr/HitomiDTO.java index dbb637d..7f5880c 100644 --- a/src/main/java/dev/ptnr/HitomiDTO.java +++ b/src/main/java/dev/ptnr/HitomiDTO.java @@ -36,11 +36,14 @@ public class HitomiDTO { for (String tag : this.tags.get("tag")) tags += "tag:" + tag + ", "; } + if (tags.isEmpty()) return "N/A"; + return tags.substring(0, tags.length() - 2); } public String getArtistsAsString() { String artists = ""; + if (this.artists.isEmpty()) return "N/A"; if (this.artists.size() == 1) return this.artists.get(0); for (String artist : this.artists) artists += artist + ", ";