Fix UTF-8 and "/" -> "\" issues for Win32
[fanfix.git] / src / be / nikiroo / fanfix / output / InfoCover.java
index 2280e2dc4487bbdb0adf84f139a1a135c0c35772..1a63dce664d465f4e982fb331861fd574ad695ac 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 javax.imageio.ImageIO;
 
@@ -14,7 +16,8 @@ class InfoCover {
        public static void writeInfo(File targetDir, String targetName,
                        MetaData meta) throws IOException {
                File info = new File(targetDir, targetName + ".info");
-               FileWriter infoWriter = new FileWriter(info);
+               BufferedWriter infoWriter = new BufferedWriter(new OutputStreamWriter(
+                               new FileOutputStream(info), "UTF-8"));
 
                if (meta != null) {
                        try {
@@ -28,22 +31,20 @@ class InfoCover {
                                        }
                                }
 
-                               String lang = meta.getLang();
-                               if (lang != null) {
-                                       lang = lang.toLowerCase();
-                               }
-
                                writeMeta(infoWriter, "TITLE", meta.getTitle());
                                writeMeta(infoWriter, "AUTHOR", meta.getAuthor());
                                writeMeta(infoWriter, "DATE", meta.getDate());
                                writeMeta(infoWriter, "SUBJECT", meta.getSubject());
                                writeMeta(infoWriter, "SOURCE", meta.getSource());
+                               writeMeta(infoWriter, "URL", meta.getUrl());
                                writeMeta(infoWriter, "TAGS", tags);
                                writeMeta(infoWriter, "UUID", meta.getUuid());
                                writeMeta(infoWriter, "LUID", meta.getLuid());
-                               writeMeta(infoWriter, "LANG", lang);
+                               writeMeta(infoWriter, "LANG", meta.getLang() == null ? ""
+                                               : meta.getLang().toLowerCase());
                                writeMeta(infoWriter, "IMAGES_DOCUMENT",
                                                meta.isImageDocument() ? "true" : "false");
+                               writeMeta(infoWriter, "TYPE", meta.getType());
                                if (meta.getCover() != null) {
                                        String format = Instance.getConfig()
                                                        .getString(Config.IMAGE_FORMAT_COVER).toLowerCase();
@@ -75,8 +76,8 @@ class InfoCover {
                }
        }
 
-       private static void writeMeta(FileWriter writer, String key, String value)
-                       throws IOException {
+       private static void writeMeta(BufferedWriter writer, String key,
+                       String value) throws IOException {
                if (value == null) {
                        value = "";
                }