summaryrefslogtreecommitdiff
path: root/src/main/java/net
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2022-10-05 08:50:42 -0400
committerTyler Murphy <tylermurphy534@gmail.com>2022-10-05 08:50:42 -0400
commit146d1ee7ff07c351e5249880ad2095a34fd3c7e7 (patch)
tree9e55e03b59167f650170e8f63e616cfae52a66d5 /src/main/java/net
parentchange image fetch timeout (diff)
downloadken-146d1ee7ff07c351e5249880ad2095a34fd3c7e7.tar.gz
ken-146d1ee7ff07c351e5249880ad2095a34fd3c7e7.tar.bz2
ken-146d1ee7ff07c351e5249880ad2095a34fd3c7e7.zip
local image fetch
Diffstat (limited to 'src/main/java/net')
-rw-r--r--src/main/java/net/tylermurphy/ken/command/Responder.java1
-rw-r--r--src/main/java/net/tylermurphy/ken/command/fun/CrabRave.java5
-rw-r--r--src/main/java/net/tylermurphy/ken/command/fun/Eject.java6
-rw-r--r--src/main/java/net/tylermurphy/ken/command/fun/GayMeme.java8
-rw-r--r--src/main/java/net/tylermurphy/ken/command/fun/Headpat.java5
-rw-r--r--src/main/java/net/tylermurphy/ken/command/fun/Wank.java4
-rw-r--r--src/main/java/net/tylermurphy/ken/util/ImageFetcher.java19
7 files changed, 31 insertions, 17 deletions
diff --git a/src/main/java/net/tylermurphy/ken/command/Responder.java b/src/main/java/net/tylermurphy/ken/command/Responder.java
index d7bdc15..eee9bb7 100644
--- a/src/main/java/net/tylermurphy/ken/command/Responder.java
+++ b/src/main/java/net/tylermurphy/ken/command/Responder.java
@@ -147,6 +147,7 @@ public class Responder extends ListenerAdapter {
Response response = (Response)temp;
reply(response, event.getHook());
} catch (Exception e) {
+ e.printStackTrace();
EmbedBuilder builder = Ken.getInstance().getDefaultEmbed()
.setColor(Color.RED)
.setTitle(":x: **Error**")
diff --git a/src/main/java/net/tylermurphy/ken/command/fun/CrabRave.java b/src/main/java/net/tylermurphy/ken/command/fun/CrabRave.java
index b0d3b0f..f530de9 100644
--- a/src/main/java/net/tylermurphy/ken/command/fun/CrabRave.java
+++ b/src/main/java/net/tylermurphy/ken/command/fun/CrabRave.java
@@ -4,7 +4,6 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.interactions.commands.OptionType;
import net.tylermurphy.ken.Ken;
-import net.tylermurphy.ken.api.Request;
import net.tylermurphy.ken.command.Response;
import net.tylermurphy.ken.command.annotation.Command;
import net.tylermurphy.ken.command.annotation.Option;
@@ -33,8 +32,8 @@ public class CrabRave {
}
private byte[] generateGif(User u) throws IOException, NullPointerException {
- BufferedImage crab = Ken.getInstance().getImageFetcher().getImage("https://cdn.tylermurphy.net/ken/crab.png", true);
- BufferedImage avatar = Ken.getInstance().getImageFetcher().getImage(u.getAvatarUrl(), false);
+ BufferedImage crab = Ken.getInstance().getImageFetcher().getCdnImage("crab.png", true);
+ BufferedImage avatar = Ken.getInstance().getImageFetcher().getRawImage(u.getAvatarUrl(), false);
BufferedImage[] frames = new BufferedImage[26];
for(int i = 0; i < frames.length; i++) {
frames[i] = generateFrame(i, avatar, crab);
diff --git a/src/main/java/net/tylermurphy/ken/command/fun/Eject.java b/src/main/java/net/tylermurphy/ken/command/fun/Eject.java
index 29900be..7a08991 100644
--- a/src/main/java/net/tylermurphy/ken/command/fun/Eject.java
+++ b/src/main/java/net/tylermurphy/ken/command/fun/Eject.java
@@ -4,7 +4,6 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.interactions.commands.OptionType;
import net.tylermurphy.ken.Ken;
-import net.tylermurphy.ken.api.Request;
import net.tylermurphy.ken.command.annotation.Command;
import net.tylermurphy.ken.command.annotation.Option;
import net.tylermurphy.ken.command.Response;
@@ -28,6 +27,7 @@ public class Eject {
byte[] data = generateGif(ejected.getUser());
return Response.success(ejected.getEffectiveName() +" was ejected by "+sender.getEffectiveName()).setFile(data, "eject.gif");
} catch (IOException e) {
+ e.printStackTrace();
return Response.error("Failed to generate gif");
}
}
@@ -39,8 +39,8 @@ public class Eject {
else
message = u.getName() + " was not An Impostor";
- BufferedImage space = Ken.getInstance().getImageFetcher().getImage("https://cdn.tylermurphy.net/ken/space.jpg", true);
- BufferedImage avatar = Ken.getInstance().getImageFetcher().getImage(u.getAvatarUrl(), false);
+ BufferedImage space = Ken.getInstance().getImageFetcher().getCdnImage("space.jpg", true);
+ BufferedImage avatar = Ken.getInstance().getImageFetcher().getRawImage(u.getAvatarUrl(), false);
BufferedImage[] frames = new BufferedImage[30];
for (int i = 0; i < frames.length; i++) {
diff --git a/src/main/java/net/tylermurphy/ken/command/fun/GayMeme.java b/src/main/java/net/tylermurphy/ken/command/fun/GayMeme.java
index b538606..20737f0 100644
--- a/src/main/java/net/tylermurphy/ken/command/fun/GayMeme.java
+++ b/src/main/java/net/tylermurphy/ken/command/fun/GayMeme.java
@@ -4,7 +4,6 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.interactions.commands.OptionType;
import net.tylermurphy.ken.Ken;
-import net.tylermurphy.ken.api.Request;
import net.tylermurphy.ken.command.Response;
import net.tylermurphy.ken.command.annotation.Command;
import net.tylermurphy.ken.command.annotation.Option;
@@ -12,7 +11,6 @@ import net.tylermurphy.ken.util.GifSequenceWriter;
import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;
-import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
@@ -34,9 +32,9 @@ public class GayMeme {
}
private byte[] generateGif(User u) throws IOException, NullPointerException {
- BufferedImage avatar = Ken.getInstance().getImageFetcher().getImage(u.getAvatarUrl(), false);
- BufferedImage background = Ken.getInstance().getImageFetcher().getImage("https://cdn.tylermurphy.net/ken/theMoreYouKnow.png", true);
- BufferedImage gay = Ken.getInstance().getImageFetcher().getImage("https://cdn.tylermurphy.net/ken/gay.png", true);
+ BufferedImage avatar = Ken.getInstance().getImageFetcher().getRawImage(u.getAvatarUrl(), false);
+ BufferedImage background = Ken.getInstance().getImageFetcher().getCdnImage("theMoreYouKnow.png", true);
+ BufferedImage gay = Ken.getInstance().getImageFetcher().getCdnImage("gay.png", true);
BufferedImage[] frames = new BufferedImage[40];
for(int i = 0; i < frames.length; i++) {
diff --git a/src/main/java/net/tylermurphy/ken/command/fun/Headpat.java b/src/main/java/net/tylermurphy/ken/command/fun/Headpat.java
index 5a2239e..cf5a08f 100644
--- a/src/main/java/net/tylermurphy/ken/command/fun/Headpat.java
+++ b/src/main/java/net/tylermurphy/ken/command/fun/Headpat.java
@@ -4,7 +4,6 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.interactions.commands.OptionType;
import net.tylermurphy.ken.Ken;
-import net.tylermurphy.ken.api.Request;
import net.tylermurphy.ken.command.Response;
import net.tylermurphy.ken.command.annotation.Command;
import net.tylermurphy.ken.command.annotation.Option;
@@ -33,8 +32,8 @@ public class Headpat {
}
private byte[] generateGif(User u) throws IOException, NullPointerException {
- BufferedImage hand = Ken.getInstance().getImageFetcher().getImage("https://cdn.tylermurphy.net/ken/headpat.png", true);
- BufferedImage avatar = Ken.getInstance().getImageFetcher().getImage(u.getAvatarUrl(), false);
+ BufferedImage hand = Ken.getInstance().getImageFetcher().getCdnImage("headpat.png", true);
+ BufferedImage avatar = Ken.getInstance().getImageFetcher().getRawImage(u.getAvatarUrl(), false);
BufferedImage[] frames = new BufferedImage[5];
for(int i = 0; i < frames.length; i++) {
diff --git a/src/main/java/net/tylermurphy/ken/command/fun/Wank.java b/src/main/java/net/tylermurphy/ken/command/fun/Wank.java
index c2cb6f1..a2918f8 100644
--- a/src/main/java/net/tylermurphy/ken/command/fun/Wank.java
+++ b/src/main/java/net/tylermurphy/ken/command/fun/Wank.java
@@ -32,8 +32,8 @@ public class Wank {
}
private byte[] generateGif(User u) throws IOException {
- BufferedImage wank = Ken.getInstance().getImageFetcher().getImage("https://cdn.tylermurphy.net/ken/laptop.png", true);
- BufferedImage avatar = Ken.getInstance().getImageFetcher().getImage(u.getAvatarUrl(), false);
+ BufferedImage wank = Ken.getInstance().getImageFetcher().getCdnImage("laptop.png", true);
+ BufferedImage avatar = Ken.getInstance().getImageFetcher().getRawImage(u.getAvatarUrl(), false);
BufferedImage[] frames = new BufferedImage[4];
for (int i = 0; i < frames.length; i++) {
diff --git a/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java b/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java
index d3bddbc..686eb7e 100644
--- a/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java
+++ b/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java
@@ -1,8 +1,11 @@
package net.tylermurphy.ken.util;
+import net.tylermurphy.ken.Ken;
+
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;
+import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
@@ -12,7 +15,21 @@ public class ImageFetcher {
private final Map<String,BufferedImage> CACHE = new HashMap<>();
- public BufferedImage getImage(String url, boolean cache) throws IOException {
+ public BufferedImage getCdnImage(String name, boolean cache) throws IOException {
+ if(Ken.getInstance().getConfig().getBoolean("fetchLocal")) {
+ if(CACHE.containsKey(name)) return CACHE.get(name);
+ InputStream in = Ken.getInstance().getResource("cdn/"+name);
+ if(in == null) return null;
+ BufferedImage image = ImageIO.read(in);
+ if(cache && image != null) CACHE.put(name, image);
+ return image;
+ } else {
+ String url = Ken.getInstance().getConfig().getString("cdn") + name;
+ return getRawImage(url, cache);
+ }
+ }
+
+ public BufferedImage getRawImage(String url, boolean cache) throws IOException {
if(CACHE.containsKey(url)) return CACHE.get(url);
HttpURLConnection connection = getConnection(url);
BufferedImage image = ImageIO.read(connection.getInputStream());