1 package be
.nikiroo
.fanfix
.output
;
3 import java
.io
.BufferedWriter
;
5 import java
.io
.FileOutputStream
;
6 import java
.io
.IOException
;
7 import java
.io
.OutputStreamWriter
;
9 import be
.nikiroo
.fanfix
.data
.MetaData
;
10 import be
.nikiroo
.fanfix
.data
.Paragraph
;
11 import be
.nikiroo
.fanfix
.data
.Story
;
12 import be
.nikiroo
.utils
.IOUtils
;
14 class Cbz
extends BasicOutput
{
18 public File
process(Story story
, File targetDir
, String targetName
)
20 String targetNameOrig
= targetName
;
21 targetName
+= getDefaultExtension(false);
23 File target
= new File(targetDir
, targetName
);
25 dir
= File
.createTempFile("fanfic-reader-cbz-dir", ".wip");
29 // will also save the images! (except the cover -> false)
31 .getOutput(OutputType
.TEXT
, isWriteInfo(), isWriteCover())
32 // Force cover to FALSE:
33 .setType(OutputType
.TEXT
, isWriteInfo(), false)
34 .process(story
, dir
, targetNameOrig
);
36 InfoCover
.writeInfo(dir
, targetNameOrig
, story
.getMeta());
37 if (story
.getMeta() != null && !story
.getMeta().isFakeCover()) {
38 InfoCover
.writeCover(dir
, targetNameOrig
, story
.getMeta());
41 IOUtils
.writeSmallFile(dir
, "version", "3.0");
44 super.process(story
, targetDir
, targetNameOrig
);
48 IOUtils
.zip(dir
, target
, true);
57 public String
getDefaultExtension(boolean readerTarget
) {
62 protected void writeStoryHeader(Story story
) throws IOException
{
63 MetaData meta
= story
.getMeta();
65 StringBuilder builder
= new StringBuilder();
66 if (meta
!= null && meta
.getResume() != null) {
67 for (Paragraph para
: story
.getMeta().getResume()) {
68 builder
.append(para
.getContent());
73 BufferedWriter writer
= new BufferedWriter(new OutputStreamWriter(
74 new FileOutputStream(new File(dir
, "URL")), "UTF-8"));
77 writer
.write(meta
.getUuid());
83 writer
= new BufferedWriter(new OutputStreamWriter(
84 new FileOutputStream(new File(dir
, "SUMMARY")), "UTF-8"));
87 if (meta
!= null && meta
.getTitle() != null) {
88 title
= meta
.getTitle();
92 if (meta
!= null && meta
.getAuthor() != null) {
94 writer
.write(meta
.getAuthor());
97 writer
.write(builder
.toString());