Instance: use getInstance()
[nikiroo-utils.git] / src / be / nikiroo / fanfix / output / Html.java
index 6e0bb6d22d0d0e706e99b7dc605bdc590c1b596b..da79466a40d9cc2fcf80872d77ef6e588398e732 100644 (file)
@@ -1,11 +1,11 @@
 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.InputStream;
-
-import javax.imageio.ImageIO;
+import java.io.OutputStreamWriter;
 
 import be.nikiroo.fanfix.Instance;
 import be.nikiroo.fanfix.bundles.Config;
@@ -19,7 +19,7 @@ import be.nikiroo.utils.StringUtils;
 
 class Html extends BasicOutput {
        private File dir;
-       protected FileWriter writer;
+       protected BufferedWriter writer;
        private boolean inDialogue = false;
        private boolean inNormal = false;
 
@@ -32,12 +32,10 @@ class Html extends BasicOutput {
                target.mkdir();
                dir = target;
 
-               targetName = new File(targetName, "index").getPath();
-               targetName += getDefaultExtension();
-
-               target = new File(targetDir, targetName);
+               target = new File(targetDir, targetName + getDefaultExtension(true));
 
-               writer = new FileWriter(target);
+               writer = new BufferedWriter(new OutputStreamWriter(
+                               new FileOutputStream(target), "UTF-8"));
                try {
                        super.process(story, targetDir, targetNameOrig);
                } finally {
@@ -45,19 +43,26 @@ class Html extends BasicOutput {
                        writer = null;
                }
 
-               String format = Instance.getConfig()
-                               .getString(Config.IMAGE_FORMAT_COVER).toLowerCase();
+               // write a copy of the originals inside
+               InfoCover.writeInfo(dir, targetName, story.getMeta());
+               InfoCover.writeCover(dir, targetName, story.getMeta());
+               BasicOutput.getOutput(OutputType.TEXT, isWriteInfo(), isWriteCover())
+                               .process(story, dir, targetNameOrig);
+
                if (story.getMeta().getCover() != null) {
-                       ImageIO.write(story.getMeta().getCover(), format, new File(dir,
-                                       "cover." + format));
+                       Instance.getInstance().getCache().saveAsImage(story.getMeta().getCover(), new File(dir, "cover"), true);
                }
 
                return target;
        }
 
        @Override
-       public String getDefaultExtension() {
-               return ".html";
+       public String getDefaultExtension(boolean readerTarget) {
+               if (readerTarget) {
+                       return File.separator + "index.html";
+               }
+
+               return "";
        }
 
        @Override
@@ -85,8 +90,8 @@ class Html extends BasicOutput {
                        author = meta.getAuthor();
                }
 
-               String format = Instance.getConfig()
-                               .getString(Config.IMAGE_FORMAT_COVER).toLowerCase();
+               String format = Instance.getInstance().getConfig()
+                               .getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER).toLowerCase();
 
                InputStream inStyle = getClass().getResourceAsStream("html.style.css");
                if (inStyle == null) {
@@ -202,7 +207,7 @@ class Html extends BasicOutput {
                        writer.write("          <div class='blank'></div>");
                        break;
                case BREAK:
-                       writer.write("          <hr/>");
+                       writer.write("          <hr class='break'/>");
                        break;
                case NORMAL:
                        writer.write("          <span class='normal'>");