Refactor: remove webp to png convert

direct upload webp - cause discord upload limit
This commit is contained in:
2025-10-12 06:36:28 +09:00
parent 40e20c381b
commit 35c2973bb9
4 changed files with 9 additions and 31 deletions

2
.idea/gradle.xml generated
View File

@@ -5,7 +5,7 @@
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="" />
<option name="gradleJvm" value="ms-11" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />

View File

@@ -89,23 +89,17 @@ class BotListener extends ListenerAdapter {
eb.appendDescription("태그: `" + hitomiData.getTagsAsString() + "`");
String coverUrl = Hitomi.getImageUrl(hitomiData.getImageHashList().get(0));
byte[] webpData = AyayaUtils.GetFileFromUrl(coverUrl);
byte[] webpData = AyayaUtils.getFileFromUrl(coverUrl);
if (webpData == null) {
event.getHook().editOriginal("URL에서 이미지를 가져오지 못했습니다. URL이나 서버 상태를 확인해주세요.").queue();
return;
}
byte[] pngData = AyayaUtils.ConvertWebpToPng(webpData);
if (pngData == null) {
event.getHook().editOriginal("이미지를 PNG로 변환하는 데 실패했습니다. 파일이 올바른 WebP 형식이 아닐 수 있습니다.").queue();
return;
}
eb.setImage("attachment://" + "1.png");
eb.setImage("attachment://" + "1.webp");
eb.setFooter("Uploader : " + event.getUser().getName());
eb.setTimestamp(Instant.now());
FileUpload fileUpload = FileUpload.fromData(pngData, "1.png");
FileUpload fileUpload = FileUpload.fromData(webpData, "1.webp");
event.getChannel().sendFiles(fileUpload).setEmbeds(eb.build()).queue();
event.getHook().editOriginal("작품을 받아오는 데에 성공하였습니다!").queue();
}

View File

@@ -1,13 +1,11 @@
package dev.ptnr;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
public class AyayaUtils {
public static byte[] GetFileFromUrl(String url) {
public static byte[] getFileFromUrl(String url) {
HttpURLConnection conn = null;
try {
URL u = new URL(url);
@@ -29,7 +27,7 @@ public class AyayaUtils {
return out.toByteArray();
}
} catch (IOException e) {
System.out.println("[ERR > AyayaUtils.GetFileFromUrl()] Failed to Get Data\n" + e.getMessage());
System.out.println("[ERR > AyayaUtils.getFileFromUrl()] Failed to Get Data\n" + e.getMessage());
return null;
} finally {
if (conn != null) {
@@ -38,24 +36,10 @@ public class AyayaUtils {
}
}
public static byte[] ConvertWebpToPng(byte[] webpBytes) {
try (ByteArrayInputStream bais = new ByteArrayInputStream(webpBytes);
ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
BufferedImage image = ImageIO.read(bais);
if (image == null) return null;
ImageIO.write(image, "png", baos);
return baos.toByteArray();
} catch (IOException e) {
System.out.println("[ERR > AyayaUtils.ConvertWebpToPng()] Failed to Convert Webp\n" + e.getMessage());
return null;
}
}
public static boolean writeFile(String location, byte[] data) {
File file = new File(location);
try (FileOutputStream fos = new FileOutputStream(file)) {
fos.write(data);
fos.close();
} catch (IOException e) {
System.out.println("[ERR > AyayaUtils.writeFile()] Failed to Convert Webp\n" + e.getMessage());
return false;

View File

@@ -29,7 +29,7 @@ public class Hitomi {
ArrayList<String> normalTag = new ArrayList<>();
Map<String, ArrayList<String>> tags = new HashMap<String, ArrayList<String>>();
byte[] rawData = AyayaUtils.GetFileFromUrl(baseUrl);
byte[] rawData = AyayaUtils.getFileFromUrl(baseUrl);
if (rawData == null) {
System.out.println("[ERR > Hitomi.GetGalleryData()] Failed to Get " + galleryId + ".js");
return null;
@@ -123,7 +123,7 @@ public class Hitomi {
private static String getGGJS() {
String baseUrl = baseCDNUrl + "/gg.js";
byte[] rawJs = AyayaUtils.GetFileFromUrl(baseUrl);
byte[] rawJs = AyayaUtils.getFileFromUrl(baseUrl);
if (rawJs == null) {
System.out.println("[ERR > Hitomi.GetGGJS()] Failed to Get gg.js");
return null;
@@ -182,7 +182,7 @@ public class Hitomi {
for (String hash : test.getImageHashList()) {
File file = new File(downloadPath + "/" + test.getId());
file.mkdirs();
byte[] data = AyayaUtils.GetFileFromUrl(getImageUrl(hash));
byte[] data = AyayaUtils.getFileFromUrl(getImageUrl(hash));
AyayaUtils.writeFile(downloadPath + "/" + test.getId() + "/" + idx + ".webp", data);
++idx;
}