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