diff options
Diffstat (limited to 'src/main/java/net/tylermurphy/ken/util/ImageFetcher.java')
-rw-r--r-- | src/main/java/net/tylermurphy/ken/util/ImageFetcher.java | 19 |
1 files changed, 18 insertions, 1 deletions
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()); |