Fix tests by removing uneeded error traces
[nikiroo-utils.git] / src / be / nikiroo / fanfix / output / Cbz.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 be.nikiroo.fanfix.data.MetaData;
10import be.nikiroo.fanfix.data.Paragraph;
11import be.nikiroo.fanfix.data.Story;
12import be.nikiroo.utils.IOUtils;
13
14class Cbz extends BasicOutput {
15 private File dir;
16
17 @Override
18 public File process(Story story, File targetDir, String targetName)
19 throws IOException {
20 String targetNameOrig = targetName;
10d558d2 21 targetName += getDefaultExtension(false);
08fe2e33
NR
22
23 File target = new File(targetDir, targetName);
24
25 dir = File.createTempFile("fanfic-reader-cbz-dir", ".wip");
26 dir.delete();
27 dir.mkdir();
2a25f781 28 try {
925298fd
NR
29 // will also save the images! (except the cover -> false)
30 BasicOutput
31 .getOutput(OutputType.TEXT, isWriteInfo(), isWriteCover())
32 // Force cover to FALSE:
33 .setType(OutputType.TEXT, isWriteInfo(), false)
34 .process(story, dir, targetNameOrig);
08fe2e33 35
276f95c6
NR
36 try {
37 super.process(story, targetDir, targetNameOrig);
38 } finally {
39 }
40
2a25f781
NR
41 InfoCover.writeInfo(dir, targetNameOrig, story.getMeta());
42 if (story.getMeta() != null && !story.getMeta().isFakeCover()) {
43 InfoCover.writeCover(dir, targetNameOrig, story.getMeta());
44 }
a9eb3f46 45
2a25f781 46 IOUtils.writeSmallFile(dir, "version", "3.0");
fe999aa4 47
2a25f781 48 IOUtils.zip(dir, target, true);
08fe2e33 49 } finally {
2a25f781 50 IOUtils.deltree(dir);
08fe2e33
NR
51 }
52
08fe2e33
NR
53 return target;
54 }
55
56 @Override
10d558d2 57 public String getDefaultExtension(boolean readerTarget) {
08fe2e33
NR
58 return ".cbz";
59 }
60
61 @Override
62 protected void writeStoryHeader(Story story) throws IOException {
63 MetaData meta = story.getMeta();
64
65 StringBuilder builder = new StringBuilder();
66 if (meta != null && meta.getResume() != null) {
67 for (Paragraph para : story.getMeta().getResume()) {
68 builder.append(para.getContent());
69 builder.append("\n");
70 }
71 }
72
3d247bc3
NR
73 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
74 new FileOutputStream(new File(dir, "URL")), "UTF-8"));
08fe2e33
NR
75 try {
76 if (meta != null) {
77 writer.write(meta.getUuid());
78 }
08fe2e33
NR
79 } finally {
80 writer.close();
81 }
82
3d247bc3
NR
83 writer = new BufferedWriter(new OutputStreamWriter(
84 new FileOutputStream(new File(dir, "SUMMARY")), "UTF-8"));
08fe2e33
NR
85 try {
86 String title = "";
87 if (meta != null && meta.getTitle() != null) {
88 title = meta.getTitle();
89 }
90
91 writer.write(title);
92 if (meta != null && meta.getAuthor() != null) {
93 writer.write("\n©");
94 writer.write(meta.getAuthor());
95 }
96 writer.write("\n\n");
97 writer.write(builder.toString());
98 } finally {
99 writer.close();
100 }
101 }
102}