package be.nikiroo.fanfix.supported;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.zip.ZipInputStream;
import be.nikiroo.fanfix.Instance;
+import be.nikiroo.fanfix.bundles.Config;
import be.nikiroo.fanfix.data.Chapter;
import be.nikiroo.fanfix.data.MetaData;
import be.nikiroo.fanfix.data.Paragraph;
import be.nikiroo.fanfix.data.Story;
import be.nikiroo.utils.IOUtils;
import be.nikiroo.utils.Image;
-import be.nikiroo.utils.streams.MarkableFileInputStream;
import be.nikiroo.utils.Progress;
+import be.nikiroo.utils.streams.MarkableFileInputStream;
/**
* Support class for CBZ files (works better with CBZ created with this program,
} else {
pg.setMinMax(0, 100);
}
+
+ pg.setName("Initialising");
Progress pgMeta = new Progress();
pg.addProgress(pgMeta, 10);
MetaData meta = story.getMeta();
pgMeta.done(); // 10%
-
- File tmpDir = Instance.getTempFiles().createTempDir("info-text");
+
+ File tmpDir = Instance.getInstance().getTempFiles().createTempDir("info-text");
String basename = null;
Map<String, Image> images = new HashMap<String, Image>();
&& entry.getName().startsWith(getDataPrefix())) {
String entryLName = entry.getName().toLowerCase();
boolean imageEntry = false;
- for (String ext : BasicSupportImages.getImageExt(false)) {
+ for (String ext : bsImages.getImageExt(false)) {
if (entryLName.endsWith(ext)) {
imageEntry = true;
}
}
-
+
if (imageEntry) {
String uuid = meta.getUuid() + "_" + entry.getName();
try {
images.put(uuid, new Image(zipIn));
} catch (Exception e) {
- Instance.getTraceHandler().error(e);
+ Instance.getInstance().getTraceHandler().error(e);
}
if (pg.getProgress() < 85) {
}
}
}
+
+ String ext = "."
+ + Instance.getInstance().getConfig().getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER).toLowerCase();
+ String coverName = meta.getUuid() + "_" + basename + ext;
+ Image cover = images.get(coverName);
+ images.remove(coverName);
pg.setProgress(85);
pg.setProgress(90);
- // only the description is kept
+ // only the description/cover is kept
Story origStory = getStoryFromTxt(tmpDir, basename);
if (origStory != null) {
if (origStory.getMeta().getCover() == null) {
}
story.setMeta(origStory.getMeta());
}
+ if (story.getMeta().getCover() == null) {
+ story.getMeta().setCover(cover);
+ }
story.setChapters(new ArrayList<Chapter>());
// Check if we can find non-images chapters, for hybrid-cbz support
- for (Chapter chap : origStory) {
- Boolean isImages = null;
- for (Paragraph para : chap) {
- ParagraphType t = para.getType();
- if (isImages == null && !t.isText(true)) {
- isImages = true;
- }
- if (t.isText(false)) {
- String line = para.getContent();
- // Images are saved in text mode as "[image-link]"
- if (!(line.startsWith("[") && line.endsWith("]"))) {
- isImages = false;
+ if (origStory != null) {
+ for (Chapter chap : origStory) {
+ Boolean isImages = null;
+ for (Paragraph para : chap) {
+ ParagraphType t = para.getType();
+ if (isImages == null && !t.isText(true)) {
+ isImages = true;
+ }
+ if (t.isText(false)) {
+ String line = para.getContent();
+ // Images are saved in text mode as "[image-link]"
+ if (!(line.startsWith("[") && line.endsWith("]"))) {
+ isImages = false;
+ }
}
}
- }
- if (isImages != null && !isImages) {
- story.getChapters().add(chap);
- chap.setNumber(story.getChapters().size());
+ if (isImages != null && !isImages) {
+ story.getChapters().add(chap);
+ chap.setNumber(story.getChapters().size());
+ }
}
}
if (!imagesList.isEmpty()) {
- Chapter chap = new Chapter(story.getChapters().size() + 1, null);
+ Chapter chap = new Chapter(story.getChapters().size() + 1, "");
story.getChapters().add(chap);
for (String uuid : imagesList) {
chap.getParagraphs().add(
new Paragraph(images.get(uuid)));
} catch (Exception e) {
- Instance.getTraceHandler().error(e);
+ Instance.getInstance().getTraceHandler().error(e);
}
}
}
}
}
- pg.setProgress(100);
+ pg.done();
return story;
}