Fix CBZ: do not include the first page twice
[nikiroo-utils.git] / src / be / nikiroo / fanfix / output / Cbz.java
index f618f59da51a192065ea7cd4aa9d9c141dcbe9e3..8d59ae883a7586d966440cb6aff738ce83e6739a 100644 (file)
@@ -1,8 +1,10 @@
 package be.nikiroo.fanfix.output;
 
+import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStreamWriter;
 
 import be.nikiroo.fanfix.data.MetaData;
 import be.nikiroo.fanfix.data.Paragraph;
@@ -16,7 +18,7 @@ class Cbz extends BasicOutput {
        public File process(Story story, File targetDir, String targetName)
                        throws IOException {
                String targetNameOrig = targetName;
-               targetName += getDefaultExtension();
+               targetName += getDefaultExtension(false);
 
                File target = new File(targetDir, targetName);
 
@@ -26,8 +28,11 @@ class Cbz extends BasicOutput {
 
                // will also save the images!
                new InfoText().process(story, dir, targetNameOrig);
+
                InfoCover.writeInfo(dir, targetNameOrig, story.getMeta());
-               InfoCover.writeCover(dir, targetNameOrig, story.getMeta());
+               if (story.getMeta() != null && !story.getMeta().isFakeCover()) {
+                       InfoCover.writeCover(dir, targetNameOrig, story.getMeta());
+               }
 
                IOUtils.writeSmallFile(dir, "version", "3.0");
 
@@ -43,7 +48,7 @@ class Cbz extends BasicOutput {
        }
 
        @Override
-       public String getDefaultExtension() {
+       public String getDefaultExtension(boolean readerTarget) {
                return ".cbz";
        }
 
@@ -59,7 +64,8 @@ class Cbz extends BasicOutput {
                        }
                }
 
-               FileWriter writer = new FileWriter(new File(dir, "URL"));
+               BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
+                               new FileOutputStream(new File(dir, "URL")), "UTF-8"));
                try {
                        if (meta != null) {
                                writer.write(meta.getUuid());
@@ -70,7 +76,8 @@ class Cbz extends BasicOutput {
                        writer.close();
                }
 
-               writer = new FileWriter(new File(dir, "SUMMARY"));
+               writer = new BufferedWriter(new OutputStreamWriter(
+                               new FileOutputStream(new File(dir, "SUMMARY")), "UTF-8"));
                try {
                        String title = "";
                        if (meta != null && meta.getTitle() != null) {