X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FEpub.java;h=794998e0d75c24ed36288aec9dcb7c846ecd93fd;hb=2aac79c740789071ad9b773d25f20e103f0da86c;hp=ad4d65f5a4c180b8d68db15e4d0d0a860e72cfdd;hpb=62c63b0724f4bc45999cb2e7186b4b3ada479a0a;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/supported/Epub.java b/src/be/nikiroo/fanfix/supported/Epub.java index ad4d65f..794998e 100644 --- a/src/be/nikiroo/fanfix/supported/Epub.java +++ b/src/be/nikiroo/fanfix/supported/Epub.java @@ -1,6 +1,5 @@ package be.nikiroo.fanfix.supported; -import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -16,7 +15,7 @@ import java.util.zip.ZipInputStream; import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.data.MetaData; import be.nikiroo.utils.IOUtils; -import be.nikiroo.utils.ImageUtils; +import be.nikiroo.utils.Image; import be.nikiroo.utils.MarkableFileInputStream; import be.nikiroo.utils.Progress; import be.nikiroo.utils.StringUtils; @@ -29,6 +28,7 @@ import be.nikiroo.utils.StringUtils; */ class Epub extends InfoText { protected MetaData meta; + private File tmpDir; private File tmp; private String desc; @@ -94,10 +94,11 @@ class Epub extends InfoText { protected void preprocess(URL source, InputStream in) throws IOException { // Note: do NOT close this stream, as it would also close "in" ZipInputStream zipIn = new ZipInputStream(in); - tmp = File.createTempFile("fanfic-reader-parser_", ".tmp"); - File tmpInfo = new File(tmp + ".info"); + tmpDir = Instance.getTempFiles().createTempDir("fanfic-reader-parser"); + tmp = new File(tmpDir, "file.txt"); + File tmpInfo = new File(tmpDir, "file.info"); fakeSource = tmp.toURI().toURL(); - BufferedImage cover = null; + Image cover = null; String url = source.toString(); String title = null; @@ -126,7 +127,7 @@ class Epub extends InfoText { // Cover if (getCover()) { try { - cover = ImageUtils.fromStream(zipIn); + cover = new Image(zipIn); } catch (Exception e) { Instance.getTraceHandler().error(e); } @@ -190,28 +191,32 @@ class Epub extends InfoText { } meta = new MetaData(); - meta.setLang("EN"); + meta.setLang("en"); meta.setTags(new ArrayList()); meta.setSource(getSourceName()); meta.setUuid(url); meta.setUrl(url); meta.setTitle(title); meta.setAuthor(author); + meta.setImageDocument(isImagesDocumentByDefault()); } } @Override - protected void close() throws IOException { - if (tmp != null && tmp.exists()) { - if (!tmp.delete()) { - tmp.deleteOnExit(); - } + protected void close() { + if (tmpDir != null) { + IOUtils.deltree(tmpDir); } + tmpDir = null; tmp = null; if (fakeIn != null) { - fakeIn.close(); + try { + fakeIn.close(); + } catch (Exception e) { + Instance.getTraceHandler().error(e); + } } super.close(); @@ -228,4 +233,8 @@ class Epub extends InfoText { protected boolean getCover() { return true; } + + protected boolean isImagesDocumentByDefault() { + return false; + } }