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