Version 1.1.0
[fanfix.git] / src / be / nikiroo / fanfix / output / InfoCover.java
CommitLineData
08fe2e33
NR
1package be.nikiroo.fanfix.output;
2
3d247bc3 3import java.io.BufferedWriter;
08fe2e33 4import java.io.File;
3d247bc3 5import java.io.FileOutputStream;
08fe2e33 6import java.io.IOException;
3d247bc3 7import java.io.OutputStreamWriter;
08fe2e33
NR
8
9import javax.imageio.ImageIO;
10
11import be.nikiroo.fanfix.Instance;
12import be.nikiroo.fanfix.bundles.Config;
13import be.nikiroo.fanfix.data.MetaData;
14
15class InfoCover {
16 public static void writeInfo(File targetDir, String targetName,
17 MetaData meta) throws IOException {
18 File info = new File(targetDir, targetName + ".info");
3d247bc3
NR
19 BufferedWriter infoWriter = new BufferedWriter(new OutputStreamWriter(
20 new FileOutputStream(info), "UTF-8"));
08fe2e33
NR
21
22 if (meta != null) {
23 try {
24 String tags = "";
25 if (meta.getTags() != null) {
26 for (String tag : meta.getTags()) {
27 if (!tags.isEmpty()) {
28 tags += ", ";
29 }
30 tags += tag;
31 }
32 }
33
08fe2e33
NR
34 writeMeta(infoWriter, "TITLE", meta.getTitle());
35 writeMeta(infoWriter, "AUTHOR", meta.getAuthor());
36 writeMeta(infoWriter, "DATE", meta.getDate());
37 writeMeta(infoWriter, "SUBJECT", meta.getSubject());
38 writeMeta(infoWriter, "SOURCE", meta.getSource());
2206ef66 39 writeMeta(infoWriter, "URL", meta.getUrl());
08fe2e33
NR
40 writeMeta(infoWriter, "TAGS", tags);
41 writeMeta(infoWriter, "UUID", meta.getUuid());
42 writeMeta(infoWriter, "LUID", meta.getLuid());
2206ef66
NR
43 writeMeta(infoWriter, "LANG", meta.getLang() == null ? ""
44 : meta.getLang().toLowerCase());
08fe2e33
NR
45 writeMeta(infoWriter, "IMAGES_DOCUMENT",
46 meta.isImageDocument() ? "true" : "false");
fe999aa4 47 writeMeta(infoWriter, "TYPE", meta.getType());
08fe2e33
NR
48 if (meta.getCover() != null) {
49 String format = Instance.getConfig()
50 .getString(Config.IMAGE_FORMAT_COVER).toLowerCase();
51 writeMeta(infoWriter, "COVER", targetName + "." + format);
52 } else {
53 writeMeta(infoWriter, "COVER", "");
54 }
55 writeMeta(infoWriter, "EPUBCREATOR", BasicOutput.EPUB_CREATOR);
56 writeMeta(infoWriter, "PUBLISHER", meta.getPublisher());
57 } finally {
58 infoWriter.close();
59 }
60 }
61 }
62
63 public static void writeCover(File targetDir, String targetName,
64 MetaData meta) {
65 if (meta != null && meta.getCover() != null) {
66 try {
67 String format = Instance.getConfig()
68 .getString(Config.IMAGE_FORMAT_COVER).toLowerCase();
69 ImageIO.write(meta.getCover(), format, new File(targetDir,
70 targetName + "." + format));
71 } catch (IOException e) {
72 // Allow to continue without cover
73 Instance.syserr(new IOException(
74 "Failed to save the cover image", e));
75 }
76 }
77 }
78
3d247bc3
NR
79 private static void writeMeta(BufferedWriter writer, String key,
80 String value) throws IOException {
08fe2e33
NR
81 if (value == null) {
82 value = "";
83 }
84
85 writer.write(String.format("%s=\"%s\"\n", key, value.replace("\"", "'")));
86 }
87}