mirror of
https://github.com/heavycaffeiner/ayaya.git
synced 2025-10-27 20:34:55 +09:00
Refactor: remove webp to png convert
direct upload webp - cause discord upload limit
This commit is contained in:
2
.idea/gradle.xml
generated
2
.idea/gradle.xml
generated
@@ -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$" />
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user