X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2FDataLoader.java;h=901e8da4c13d8a338cccf2945be17a52adef5abd;hb=98b95fb81566ca8b04c8d891a02c8019d8bed63d;hp=2fd59d89764783cd9622fcc0249039dc012f1043;hpb=62c63b0724f4bc45999cb2e7186b4b3ada479a0a;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/DataLoader.java b/src/be/nikiroo/fanfix/DataLoader.java deleted file mode 100644 index 2fd59d8..0000000 --- a/src/be/nikiroo/fanfix/DataLoader.java +++ /dev/null @@ -1,294 +0,0 @@ -package be.nikiroo.fanfix; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.Map; - -import javax.imageio.ImageIO; - -import be.nikiroo.fanfix.bundles.Config; -import be.nikiroo.fanfix.supported.BasicSupport; -import be.nikiroo.utils.Cache; -import be.nikiroo.utils.Downloader; -import be.nikiroo.utils.ImageUtils; - -/** - * This cache will manage Internet (and local) downloads, as well as put the - * downloaded files into a cache. - *
- * As long the cached resource is not too old, it will use it instead of - * retrieving the file again. - * - * @author niki - */ -public class DataLoader { - private Cache cache; - private Downloader downloader; - - /** - * Create a new {@link DataLoader} object. - * - * @param dir - * the directory to use as cache - * @param UA - * the User-Agent to use to download the resources - * @param hoursChanging - * the number of hours after which a cached file that is thought - * to change ~often is considered too old (or -1 for - * "never too old") - * @param hoursStable - * the number of hours after which a LARGE cached file that is - * thought to change rarely is considered too old (or -1 for - * "never too old") - * - * @throws IOException - * in case of I/O error - */ - public DataLoader(File dir, String UA, int hoursChanging, int hoursStable) - throws IOException { - cache = new Cache(dir, hoursChanging, hoursStable); - downloader = new Downloader(UA); - } - - /** - * Open a resource (will load it from the cache if possible, or save it into - * the cache after downloading if not). - * - * @param url - * the resource to open - * @param support - * the support to use to download the resource - * @param stable - * TRUE for more stable resources, FALSE when they often change - * - * @return the opened resource, NOT NULL - * - * @throws IOException - * in case of I/O error - */ - public InputStream open(URL url, BasicSupport support, boolean stable) - throws IOException { - // MUST NOT return null - return open(url, support, stable, url); - } - - /** - * Open a resource (will load it from the cache if possible, or save it into - * the cache after downloading if not). - *
- * The cached resource will be assimilated to the given original {@link URL}
- *
- * @param url
- * the resource to open
- * @param support
- * the support to use to download the resource
- * @param stable
- * TRUE for more stable resources, FALSE when they often change
- * @param originalUrl
- * the original {@link URL} used to locate the cached resource
- *
- * @return the opened resource, NOT NULL
- *
- * @throws IOException
- * in case of I/O error
- */
- public InputStream open(URL url, BasicSupport support, boolean stable,
- URL originalUrl) throws IOException {
- // MUST NOT return null
- try {
- InputStream in = cache.load(originalUrl, false, stable);
- Instance.getTraceHandler().trace(
- "Cache " + (in != null ? "hit" : "miss") + ": " + url);
-
- if (in == null) {
- try {
- in = openNoCache(url, support, null, null, null);
- cache.save(in, originalUrl);
- // ..But we want a resetable stream
- in.close();
- in = cache.load(originalUrl, false, stable);
- } catch (IOException e) {
- throw new IOException("Cannot save the url: "
- + (url == null ? "null" : url.toString()), e);
- }
- }
-
- return in;
- } catch (IOException e) {
- throw new IOException("Cannot open the url: "
- + (url == null ? "null" : url.toString()), e);
- }
- }
-
- /**
- * Open the given {@link URL} without using the cache, but still update the
- * cookies.
- *
- * @param url
- * the {@link URL} to open
- *
- * @return the {@link InputStream} of the opened page
- *
- * @throws IOException
- * in case of I/O error
- */
- public InputStream openNoCache(URL url) throws IOException {
- return downloader.open(url);
- }
-
- /**
- * Open the given {@link URL} without using the cache, but still using and
- * updating the cookies.
- *
- * @param url
- * the {@link URL} to open
- * @param support
- * the {@link BasicSupport} used for the cookies
- * @param postParams
- * the POST parameters
- * @param getParams
- * the GET parameters (priority over POST)
- * @param oauth
- * OAuth authorization (aka, "bearer XXXXXXX")
- *
- * @return the {@link InputStream} of the opened page
- *
- * @throws IOException
- * in case of I/O error
- */
- public InputStream openNoCache(URL url, BasicSupport support,
- Map