X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Foutput%2FInfoCover.java;h=d8ca49a6876bcb1a759845d117b26cdd302bdfe6;hb=d66deb8d8b30cff6b54db352eef34a3508939f84;hp=74505e7dd72bc4b290feb801ab7c588166a0280e;hpb=2206ef66ee00ad42d806f04a7b7ad6f8cb2d8828;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/output/InfoCover.java b/src/be/nikiroo/fanfix/output/InfoCover.java index 74505e7..d8ca49a 100644 --- a/src/be/nikiroo/fanfix/output/InfoCover.java +++ b/src/be/nikiroo/fanfix/output/InfoCover.java @@ -1,23 +1,26 @@ 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 javax.imageio.ImageIO; +import java.io.OutputStreamWriter; import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.bundles.Config; import be.nikiroo.fanfix.data.MetaData; -class InfoCover { +public 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); - if (meta != null) { - try { + BufferedWriter infoWriter = null; + try { + infoWriter = new BufferedWriter(new OutputStreamWriter( + new FileOutputStream(info), "UTF-8")); + + if (meta != null) { String tags = ""; if (meta.getTags() != null) { for (String tag : meta.getTags()) { @@ -43,15 +46,22 @@ class InfoCover { meta.isImageDocument() ? "true" : "false"); writeMeta(infoWriter, "TYPE", meta.getType()); if (meta.getCover() != null) { - String format = Instance.getConfig() - .getString(Config.IMAGE_FORMAT_COVER).toLowerCase(); + String format = Instance.getInstance().getConfig() + .getString(Config.FILE_FORMAT_IMAGE_FORMAT_COVER).toLowerCase(); writeMeta(infoWriter, "COVER", targetName + "." + format); } else { writeMeta(infoWriter, "COVER", ""); } writeMeta(infoWriter, "EPUBCREATOR", BasicOutput.EPUB_CREATOR); writeMeta(infoWriter, "PUBLISHER", meta.getPublisher()); - } finally { + writeMeta(infoWriter, "WORDCOUNT", + Long.toString(meta.getWords())); + writeMeta(infoWriter, "CREATION_DATE", meta.getCreationDate()); + writeMeta(infoWriter, "FAKE_COVER", + Boolean.toString(meta.isFakeCover())); + } + } finally { + if (infoWriter != null) { infoWriter.close(); } } @@ -61,20 +71,16 @@ class InfoCover { MetaData meta) { if (meta != null && meta.getCover() != null) { try { - String format = Instance.getConfig() - .getString(Config.IMAGE_FORMAT_COVER).toLowerCase(); - ImageIO.write(meta.getCover(), format, new File(targetDir, - targetName + "." + format)); + Instance.getInstance().getCache().saveAsImage(meta.getCover(), new File(targetDir, targetName), true); } catch (IOException e) { // Allow to continue without cover - Instance.syserr(new IOException( - "Failed to save the cover image", e)); + Instance.getInstance().getTraceHandler().error(new IOException("Failed to save the cover image", e)); } } } - 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 = ""; }