mirror of
https://github.com/heavycaffeiner/ayaya.git
synced 2025-10-28 04:44:56 +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">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
<option name="gradleHome" value="" />
|
<option name="gradleJvm" value="ms-11" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
<set>
|
<set>
|
||||||
<option value="$PROJECT_DIR$" />
|
<option value="$PROJECT_DIR$" />
|
||||||
|
|||||||
@@ -89,23 +89,17 @@ class BotListener extends ListenerAdapter {
|
|||||||
eb.appendDescription("태그: `" + hitomiData.getTagsAsString() + "`");
|
eb.appendDescription("태그: `" + hitomiData.getTagsAsString() + "`");
|
||||||
|
|
||||||
String coverUrl = Hitomi.getImageUrl(hitomiData.getImageHashList().get(0));
|
String coverUrl = Hitomi.getImageUrl(hitomiData.getImageHashList().get(0));
|
||||||
byte[] webpData = AyayaUtils.GetFileFromUrl(coverUrl);
|
byte[] webpData = AyayaUtils.getFileFromUrl(coverUrl);
|
||||||
if (webpData == null) {
|
if (webpData == null) {
|
||||||
event.getHook().editOriginal("URL에서 이미지를 가져오지 못했습니다. URL이나 서버 상태를 확인해주세요.").queue();
|
event.getHook().editOriginal("URL에서 이미지를 가져오지 못했습니다. URL이나 서버 상태를 확인해주세요.").queue();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
byte[] pngData = AyayaUtils.ConvertWebpToPng(webpData);
|
eb.setImage("attachment://" + "1.webp");
|
||||||
if (pngData == null) {
|
|
||||||
event.getHook().editOriginal("이미지를 PNG로 변환하는 데 실패했습니다. 파일이 올바른 WebP 형식이 아닐 수 있습니다.").queue();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
eb.setImage("attachment://" + "1.png");
|
|
||||||
eb.setFooter("Uploader : " + event.getUser().getName());
|
eb.setFooter("Uploader : " + event.getUser().getName());
|
||||||
eb.setTimestamp(Instant.now());
|
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.getChannel().sendFiles(fileUpload).setEmbeds(eb.build()).queue();
|
||||||
event.getHook().editOriginal("작품을 받아오는 데에 성공하였습니다!").queue();
|
event.getHook().editOriginal("작품을 받아오는 데에 성공하였습니다!").queue();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
package dev.ptnr;
|
package dev.ptnr;
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
|
||||||
import java.awt.image.BufferedImage;
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
|
||||||
public class AyayaUtils {
|
public class AyayaUtils {
|
||||||
public static byte[] GetFileFromUrl(String url) {
|
public static byte[] getFileFromUrl(String url) {
|
||||||
HttpURLConnection conn = null;
|
HttpURLConnection conn = null;
|
||||||
try {
|
try {
|
||||||
URL u = new URL(url);
|
URL u = new URL(url);
|
||||||
@@ -29,7 +27,7 @@ public class AyayaUtils {
|
|||||||
return out.toByteArray();
|
return out.toByteArray();
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} 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;
|
return null;
|
||||||
} finally {
|
} finally {
|
||||||
if (conn != null) {
|
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) {
|
public static boolean writeFile(String location, byte[] data) {
|
||||||
File file = new File(location);
|
File file = new File(location);
|
||||||
try (FileOutputStream fos = new FileOutputStream(file)) {
|
try (FileOutputStream fos = new FileOutputStream(file)) {
|
||||||
fos.write(data);
|
fos.write(data);
|
||||||
fos.close();
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("[ERR > AyayaUtils.writeFile()] Failed to Convert Webp\n" + e.getMessage());
|
System.out.println("[ERR > AyayaUtils.writeFile()] Failed to Convert Webp\n" + e.getMessage());
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class Hitomi {
|
|||||||
ArrayList<String> normalTag = new ArrayList<>();
|
ArrayList<String> normalTag = new ArrayList<>();
|
||||||
Map<String, ArrayList<String>> tags = new HashMap<String, ArrayList<String>>();
|
Map<String, ArrayList<String>> tags = new HashMap<String, ArrayList<String>>();
|
||||||
|
|
||||||
byte[] rawData = AyayaUtils.GetFileFromUrl(baseUrl);
|
byte[] rawData = AyayaUtils.getFileFromUrl(baseUrl);
|
||||||
if (rawData == null) {
|
if (rawData == null) {
|
||||||
System.out.println("[ERR > Hitomi.GetGalleryData()] Failed to Get " + galleryId + ".js");
|
System.out.println("[ERR > Hitomi.GetGalleryData()] Failed to Get " + galleryId + ".js");
|
||||||
return null;
|
return null;
|
||||||
@@ -123,7 +123,7 @@ public class Hitomi {
|
|||||||
|
|
||||||
private static String getGGJS() {
|
private static String getGGJS() {
|
||||||
String baseUrl = baseCDNUrl + "/gg.js";
|
String baseUrl = baseCDNUrl + "/gg.js";
|
||||||
byte[] rawJs = AyayaUtils.GetFileFromUrl(baseUrl);
|
byte[] rawJs = AyayaUtils.getFileFromUrl(baseUrl);
|
||||||
if (rawJs == null) {
|
if (rawJs == null) {
|
||||||
System.out.println("[ERR > Hitomi.GetGGJS()] Failed to Get gg.js");
|
System.out.println("[ERR > Hitomi.GetGGJS()] Failed to Get gg.js");
|
||||||
return null;
|
return null;
|
||||||
@@ -182,7 +182,7 @@ public class Hitomi {
|
|||||||
for (String hash : test.getImageHashList()) {
|
for (String hash : test.getImageHashList()) {
|
||||||
File file = new File(downloadPath + "/" + test.getId());
|
File file = new File(downloadPath + "/" + test.getId());
|
||||||
file.mkdirs();
|
file.mkdirs();
|
||||||
byte[] data = AyayaUtils.GetFileFromUrl(getImageUrl(hash));
|
byte[] data = AyayaUtils.getFileFromUrl(getImageUrl(hash));
|
||||||
AyayaUtils.writeFile(downloadPath + "/" + test.getId() + "/" + idx + ".webp", data);
|
AyayaUtils.writeFile(downloadPath + "/" + test.getId() + "/" + idx + ".webp", data);
|
||||||
++idx;
|
++idx;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user