git://git.nikiroo.be
/
fanfix.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
FimFiction: Fix tags and chapter handling
[fanfix.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 295dc15a92ddc699792fdd4914c7a05f14056918..b041b6d468a30a81683465bef8968dd35c9c56e0 100644
(file)
--- a/
src/be/nikiroo/fanfix/supported/Cbz.java
+++ b/
src/be/nikiroo/fanfix/supported/Cbz.java
@@
-1,5
+1,6
@@
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.io.File;
import java.io.IOException;
import java.io.InputStream;
@@
-10,11
+11,13
@@
import java.util.List;
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.
ui.
Progress;
+import be.nikiroo.utils.Progress;
/**
* Support class for CBZ files (works better with CBZ created with this program,
/**
* Support class for CBZ files (works better with CBZ created with this program,
@@
-62,14
+65,19
@@
class Cbz extends Epub {
pg.setMinMax(0, 100);
}
pg.setMinMax(0, 100);
}
- Story story = processMeta(url, false, true);
+ Progress pgMeta = new Progress();
+ pg.addProgress(pgMeta, 10);
+ Story story = processMeta(url, false, true, pgMeta);
+ if (!pgMeta.isDone()) {
+ pgMeta.setProgress(pgMeta.getMax()); // 10%
+ }
+
story.setChapters(new ArrayList<Chapter>());
Chapter chap = new Chapter(1, null);
story.getChapters().add(chap);
ZipInputStream zipIn = new ZipInputStream(getInput());
story.setChapters(new ArrayList<Chapter>());
Chapter chap = new Chapter(1, null);
story.getChapters().add(chap);
ZipInputStream zipIn = new ZipInputStream(getInput());
- pg.setProgress(10);
List<String> images = new ArrayList<String>();
for (ZipEntry entry = zipIn.getNextEntry(); entry != null; entry = zipIn
.getNextEntry()) {
List<String> images = new ArrayList<String>();
for (ZipEntry entry = zipIn.getNextEntry(); entry != null; entry = zipIn
.getNextEntry()) {
@@
-85,9
+93,9
@@
class Cbz extends Epub {
if (imageEntry) {
String uuid = meta.getUuid() + "_" + entry.getName();
if (imageEntry) {
String uuid = meta.getUuid() + "_" + entry.getName();
- images.add(uuid);
try {
try {
- Instance.getCache().addToCache(zipIn, uuid);
+ File tmp = Instance.getCache().addToCache(zipIn, uuid);
+ images.add(tmp.toURI().toURL().toString());
} catch (Exception e) {
Instance.syserr(e);
}
} catch (Exception e) {
Instance.syserr(e);
}
@@
-97,19
+105,30
@@
class Cbz extends Epub {
pg.setProgress(80);
pg.setProgress(80);
- // ZIP order is not
sure
+ // ZIP order is not
correct for us
Collections.sort(images);
pg.setProgress(90);
for (String uuid : images) {
try {
Collections.sort(images);
pg.setProgress(90);
for (String uuid : images) {
try {
- chap.getParagraphs().add(
- new Paragraph(new File(uuid).toURI().toURL()));
+ chap.getParagraphs().add(new Paragraph(new URL(uuid)));
} catch (Exception e) {
Instance.syserr(e);
}
}
} catch (Exception e) {
Instance.syserr(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();
+ }
+ }
+
pg.setProgress(100);
return story;
}
pg.setProgress(100);
return story;
}