git://git.nikiroo.be
/
nikiroo-utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix epub compatibility + cover image ext
[nikiroo-utils.git]
/
src
/
be
/
nikiroo
/
fanfix
/
supported
/
Cbz.java
diff --git
a/src/be/nikiroo/fanfix/supported/Cbz.java
b/src/be/nikiroo/fanfix/supported/Cbz.java
index 02c667c1032be681186b4e786907243c046eafd9..b6524acac90fbb16d3ffd6e7621c84c4f518883a 100644
(file)
--- a/
src/be/nikiroo/fanfix/supported/Cbz.java
+++ b/
src/be/nikiroo/fanfix/supported/Cbz.java
@@
-1,22
+1,21
@@
package be.nikiroo.fanfix.supported;
package be.nikiroo.fanfix.supported;
-import java.awt.image.BufferedImage;
-import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import java.util.List;
+import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
-import javax.imageio.ImageIO;
-
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.data.Chapter;
import be.nikiroo.fanfix.data.Paragraph;
import be.nikiroo.fanfix.data.Story;
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.data.Chapter;
import be.nikiroo.fanfix.data.Paragraph;
import be.nikiroo.fanfix.data.Story;
+import be.nikiroo.utils.Image;
import be.nikiroo.utils.Progress;
/**
import be.nikiroo.utils.Progress;
/**
@@
-68,9
+67,7
@@
class Cbz extends Epub {
Progress pgMeta = new Progress();
pg.addProgress(pgMeta, 10);
Story story = processMeta(url, false, true, pgMeta);
Progress pgMeta = new Progress();
pg.addProgress(pgMeta, 10);
Story story = processMeta(url, false, true, pgMeta);
- if (!pgMeta.isDone()) {
- pgMeta.setProgress(pgMeta.getMax()); // 10%
- }
+ pgMeta.done(); // 10%
story.setChapters(new ArrayList<Chapter>());
Chapter chap = new Chapter(1, null);
story.setChapters(new ArrayList<Chapter>());
Chapter chap = new Chapter(1, null);
@@
-78,7
+75,7
@@
class Cbz extends Epub {
ZipInputStream zipIn = new ZipInputStream(getInput());
ZipInputStream zipIn = new ZipInputStream(getInput());
-
List<String> images = new ArrayList<String
>();
+
Map<String, Image> images = new HashMap<String, Image
>();
for (ZipEntry entry = zipIn.getNextEntry(); entry != null; entry = zipIn
.getNextEntry()) {
if (!entry.isDirectory()
for (ZipEntry entry = zipIn.getNextEntry(); entry != null; entry = zipIn
.getNextEntry()) {
if (!entry.isDirectory()
@@
-94,39
+91,37
@@
class Cbz extends Epub {
if (imageEntry) {
String uuid = meta.getUuid() + "_" + entry.getName();
try {
if (imageEntry) {
String uuid = meta.getUuid() + "_" + entry.getName();
try {
- File tmp = Instance.getCache().addToCache(zipIn, uuid);
- images.add(tmp.toURI().toURL().toString());
+ images.put(uuid, new Image(zipIn));
} catch (Exception e) {
Instance.getTraceHandler().error(e);
}
} catch (Exception e) {
Instance.getTraceHandler().error(e);
}
+
+ if (pg.getProgress() < 85) {
+ pg.add(1);
+ }
}
}
}
}
}
}
- pg.setProgress(8
0
);
+ pg.setProgress(8
5
);
// ZIP order is not correct for us
// ZIP order is not correct for us
- Collections.sort(images);
+ List<String> imagesList = new ArrayList<String>(images.keySet());
+ Collections.sort(imagesList);
+
pg.setProgress(90);
pg.setProgress(90);
- for (String uuid : images) {
+ for (String uuid : images
List
) {
try {
try {
- chap.getParagraphs().add(new Paragraph(
new URL
(uuid)));
+ chap.getParagraphs().add(new Paragraph(
images.get
(uuid)));
} catch (Exception e) {
Instance.getTraceHandler().error(e);
}
}
if (meta.getCover() == null && !images.isEmpty()) {
} catch (Exception e) {
Instance.getTraceHandler().error(e);
}
}
if (meta.getCover() == null && !images.isEmpty()) {
- InputStream in = Instance.getCache().open(new URL(images.get(0)),
- this, true);
- try {
- BufferedImage fcover = ImageIO.read(in);
- meta.setCover(fcover);
- meta.setFakeCover(true);
- } finally {
- in.close();
- }
+ meta.setCover(images.get(imagesList.get(0)));
+ meta.setFakeCover(true);
}
pg.setProgress(100);
}
pg.setProgress(100);