X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2FCache.java;h=40ce15efec98860c559177dc0734c3b68377f797;hb=211f7ddb50f68aa8a999023ef6d63d5756bdace6;hp=7f603c1ba15f1c7e9d812d76941ce616e9d419b3;hpb=57f02339393c9997391b76ffcb22ae72fd0a45cb;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/Cache.java b/src/be/nikiroo/fanfix/Cache.java index 7f603c1..40ce15e 100644 --- a/src/be/nikiroo/fanfix/Cache.java +++ b/src/be/nikiroo/fanfix/Cache.java @@ -14,7 +14,6 @@ import java.net.CookiePolicy; import java.net.CookieStore; import java.net.HttpCookie; import java.net.HttpURLConnection; -import java.net.URISyntaxException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; @@ -27,6 +26,7 @@ import javax.imageio.ImageIO; import be.nikiroo.fanfix.bundles.Config; import be.nikiroo.fanfix.supported.BasicSupport; import be.nikiroo.utils.IOUtils; +import be.nikiroo.utils.ImageUtils; import be.nikiroo.utils.MarkableFileInputStream; /** @@ -303,17 +303,13 @@ public class Cache { } /** - * Open a resource (will load it from the cache if possible, or save it into - * the cache after downloading if not) as an Image, then save it where - * requested. - *

- * This version will not always work properly if the original file was not - * downloaded before. + * Save the given resource as an image on disk using the default image + * format for content. * * @param url - * the resource to open - * - * @return the opened resource image + * the resource + * @param target + * the target file * * @throws IOException * in case of I/O error @@ -324,7 +320,7 @@ public class Cache { if (!cached.exists() || isOld(cached, true)) { InputStream imageIn = open(url, null, true); - ImageIO.write(IOUtils.toImage(imageIn), Instance.getConfig() + ImageIO.write(ImageUtils.fromStream(imageIn), Instance.getConfig() .getString(Config.IMAGE_FORMAT_CONTENT).toLowerCase(), cached); } @@ -357,7 +353,7 @@ public class Cache { * * @param uniqueID * the unique ID - * + * * @return the content or NULL */ public InputStream getFromCache(String uniqueID) { @@ -400,16 +396,21 @@ public class Cache { * * @param url * the resource to open + * @param allowTooOld + * allow files even if they are considered too old + * @param stable + * a stable file (that dones't change too often) -- parameter + * used to check if the file is too old to keep or not * * @return the opened resource if found, NULL i not * * @throws IOException * in case of I/O error */ - private InputStream load(URL url, boolean allowOld, boolean stable) + private InputStream load(URL url, boolean allowTooOld, boolean stable) throws IOException { File cached = getCached(url); - if (cached.exists() && !isOld(cached, stable)) { + if (cached.exists() && (allowTooOld || !isOld(cached, stable))) { return new MarkableFileInputStream(new FileInputStream(cached)); } @@ -428,7 +429,6 @@ public class Cache { * * @throws IOException * in case of I/O error - * @throws URISyntaxException */ private void save(URL url, BasicSupport support, URL originalUrl) throws IOException { @@ -518,6 +518,7 @@ public class Cache { * * @param url * the url + * * @return the cached version if present, NULL if not */ private File getCached(URL url) { @@ -535,8 +536,9 @@ public class Cache { * Get the cache resource from the cache if it is present for this unique * ID. * - * @param url - * the url + * @param uniqueID + * the id + * * @return the cached version if present, NULL if not */ private File getCached(String uniqueID) {