X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Foutput%2FInfoCover.java;fp=src%2Fbe%2Fnikiroo%2Ffanfix%2Foutput%2FInfoCover.java;h=2280e2dc4487bbdb0adf84f139a1a135c0c35772;hb=08fe2e33007063e30fe22dc1d290f8afaa18eb1d;hp=0000000000000000000000000000000000000000;hpb=ed48062ebfb0d611b74834e313bfb0a2b81416e6;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/output/InfoCover.java b/src/be/nikiroo/fanfix/output/InfoCover.java new file mode 100644 index 0000000..2280e2d --- /dev/null +++ b/src/be/nikiroo/fanfix/output/InfoCover.java @@ -0,0 +1,86 @@ +package be.nikiroo.fanfix.output; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; + +import javax.imageio.ImageIO; + +import be.nikiroo.fanfix.Instance; +import be.nikiroo.fanfix.bundles.Config; +import be.nikiroo.fanfix.data.MetaData; + +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 { + String tags = ""; + if (meta.getTags() != null) { + for (String tag : meta.getTags()) { + if (!tags.isEmpty()) { + tags += ", "; + } + tags += tag; + } + } + + 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, "TAGS", tags); + writeMeta(infoWriter, "UUID", meta.getUuid()); + writeMeta(infoWriter, "LUID", meta.getLuid()); + writeMeta(infoWriter, "LANG", lang); + writeMeta(infoWriter, "IMAGES_DOCUMENT", + meta.isImageDocument() ? "true" : "false"); + if (meta.getCover() != null) { + String format = Instance.getConfig() + .getString(Config.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 { + infoWriter.close(); + } + } + } + + public static void writeCover(File targetDir, String targetName, + 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)); + } catch (IOException e) { + // Allow to continue without cover + Instance.syserr(new IOException( + "Failed to save the cover image", e)); + } + } + } + + private static void writeMeta(FileWriter writer, String key, String value) + throws IOException { + if (value == null) { + value = ""; + } + + writer.write(String.format("%s=\"%s\"\n", key, value.replace("\"", "'"))); + } +}