X-Git-Url: https://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FEpub.java;h=ce9bd06f7a7b15efc358fac017b1313cc03763ed;hb=0ec7855764b78c0956c552566fe52587c2b43f4e;hp=6819ec29e272f1ee319fdf69da893b8d20855a77;hpb=b7afbe4297ae1f0c4db57cc431c2341b9fc6c061;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/supported/Epub.java b/src/be/nikiroo/fanfix/supported/Epub.java index 6819ec2..ce9bd06 100644 --- a/src/be/nikiroo/fanfix/supported/Epub.java +++ b/src/be/nikiroo/fanfix/supported/Epub.java @@ -1,11 +1,11 @@ package be.nikiroo.fanfix.supported; -import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; +import java.net.URLDecoder; import java.util.ArrayList; import java.util.List; import java.util.Map.Entry; @@ -15,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; @@ -96,7 +96,7 @@ class Epub extends InfoText { tmp = File.createTempFile("fanfic-reader-parser_", ".tmp"); File tmpInfo = new File(tmp + ".info"); fakeSource = tmp.toURI().toURL(); - BufferedImage cover = null; + Image cover = null; String url = source.toString(); String title = null; @@ -125,9 +125,9 @@ class Epub extends InfoText { // Cover if (getCover()) { try { - cover = ImageUtils.fromStream(zipIn); + cover = new Image(zipIn); } catch (Exception e) { - Instance.syserr(e); + Instance.getTraceHandler().error(e); } } } else if (entry.getName().equals(getDataPrefix() + "URL")) { @@ -180,19 +180,28 @@ class Epub extends InfoText { } tmpInfo.delete(); } else { + if (title == null || title.isEmpty()) { + title = new File(source.getPath()).getName(); + if (title.toLowerCase().endsWith(".cbz")) { + title = title.substring(0, title.length() - 4); + } + title = URLDecoder.decode(title, "UTF-8").trim(); + } + 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 { + protected void close() { if (tmp != null && tmp.exists()) { if (!tmp.delete()) { tmp.deleteOnExit(); @@ -202,7 +211,11 @@ class Epub extends InfoText { tmp = null; if (fakeIn != null) { - fakeIn.close(); + try { + fakeIn.close(); + } catch (Exception e) { + Instance.getTraceHandler().error(e); + } } super.close(); @@ -219,4 +232,8 @@ class Epub extends InfoText { protected boolean getCover() { return true; } + + protected boolean isImagesDocumentByDefault() { + return false; + } }