Merge branch 'subtree'
[fanfix.git] / src / be / nikiroo / fanfix / output / Cbz.java
index f618f59da51a192065ea7cd4aa9d9c141dcbe9e3..ee671e779668483bc0efd82038afa898905c3cee 100644 (file)
@@ -1,9 +1,12 @@
 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.Instance;
 import be.nikiroo.fanfix.data.MetaData;
 import be.nikiroo.fanfix.data.Paragraph;
 import be.nikiroo.fanfix.data.Story;
@@ -16,34 +19,41 @@ 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);
 
-               dir = File.createTempFile("fanfic-reader-cbz-dir", ".wip");
-               dir.delete();
-               dir.mkdir();
+               dir = Instance.getInstance().getTempFiles().createTempDir("fanfic-reader-cbz-dir");
+               try {
+                       // will also save the images! (except the cover -> false)
+                       BasicOutput
+                                       .getOutput(OutputType.TEXT, isWriteInfo(), isWriteCover())
+                                       // Force cover to FALSE:
+                                       .setType(OutputType.TEXT, isWriteInfo(), false)
+                                       .process(story, dir, targetNameOrig);
+
+                       try {
+                               super.process(story, targetDir, targetNameOrig);
+                       } finally {
+                       }
 
-               // will also save the images!
-               new InfoText().process(story, dir, targetNameOrig);
-               InfoCover.writeInfo(dir, targetNameOrig, story.getMeta());
-               InfoCover.writeCover(dir, targetNameOrig, story.getMeta());
+                       InfoCover.writeInfo(dir, targetNameOrig, story.getMeta());
+                       if (story.getMeta() != null && !story.getMeta().isFakeCover()) {
+                               InfoCover.writeCover(dir, targetNameOrig, story.getMeta());
+                       }
 
-               IOUtils.writeSmallFile(dir, "version", "3.0");
+                       IOUtils.writeSmallFile(dir, "version", "3.0");
 
-               try {
-                       super.process(story, targetDir, targetNameOrig);
+                       IOUtils.zip(dir, target, true);
                } finally {
+                       IOUtils.deltree(dir);
                }
 
-               IOUtils.zip(dir, target, true);
-               IOUtils.deltree(dir);
-
                return target;
        }
 
        @Override
-       public String getDefaultExtension() {
+       public String getDefaultExtension(boolean readerTarget) {
                return ".cbz";
        }
 
@@ -59,18 +69,18 @@ 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());
+                               writer.write(meta.getUrl());
                        }
-                       writer.write("\n\n");
-                       writer.write(builder.toString());
                } finally {
                        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) {