summaryrefslogtreecommitdiff
path: root/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy/ken/util/ImageFetcher.java')
-rw-r--r--src/main/java/net/tylermurphy/ken/util/ImageFetcher.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java b/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java
new file mode 100644
index 0000000..875475b
--- /dev/null
+++ b/src/main/java/net/tylermurphy/ken/util/ImageFetcher.java
@@ -0,0 +1,30 @@
+package net.tylermurphy.ken.util;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+public class ImageFetcher {
+
+ private final Map<String,BufferedImage> CACHE = new HashMap<>();
+
+ public BufferedImage getImage(String url, boolean cache) throws IOException {
+ if(CACHE.containsKey(url)) return CACHE.get(url);
+ HttpURLConnection connection = getConnection(url);
+ BufferedImage image = ImageIO.read(connection.getInputStream());
+ if(cache && image != null) CACHE.put(url, image);
+ return image;
+ }
+
+ private HttpURLConnection getConnection(String link) throws IOException {
+ final URL url = new URL(link);
+ final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+ connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0");
+ return connection;
+ }
+
+}