Instance: use getInstance()
[nikiroo-utils.git] / src / be / nikiroo / fanfix / supported / Cbz.java
index 3682afe520706748c36e1132cf56770d02c919bb..76b66aba7c75fa24317eb4daca6ff75854658326 100644 (file)
@@ -13,6 +13,7 @@ import java.util.zip.ZipEntry;
 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;
@@ -70,7 +71,7 @@ class Cbz extends Epub {
 
                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>();
@@ -85,18 +86,18 @@ class Cbz extends Epub {
                                                && 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) {
@@ -111,6 +112,12 @@ class Cbz extends Epub {
                                        }
                                }
                        }
+                       
+                       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);
 
@@ -120,7 +127,7 @@ class Cbz extends Epub {
 
                        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) {
@@ -128,6 +135,9 @@ class Cbz extends Epub {
                                }
                                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
@@ -164,7 +174,7 @@ class Cbz extends Epub {
                                                chap.getParagraphs().add(
                                                                new Paragraph(images.get(uuid)));
                                        } catch (Exception e) {
-                                               Instance.getTraceHandler().error(e);
+                                               Instance.getInstance().getTraceHandler().error(e);
                                        }
                                }
                        }