X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Foutput%2FText.java;h=f0516dc629ebca9bf65b7bf86fa559028004f622;hp=6db7b7be8d3f4ee53395345acd61a29ba802181b;hb=HEAD;hpb=2206ef66ee00ad42d806f04a7b7ad6f8cb2d8828 diff --git a/src/be/nikiroo/fanfix/output/Text.java b/src/be/nikiroo/fanfix/output/Text.java index 6db7b7b..f0516dc 100644 --- a/src/be/nikiroo/fanfix/output/Text.java +++ b/src/be/nikiroo/fanfix/output/Text.java @@ -1,33 +1,36 @@ package be.nikiroo.fanfix.output; +import java.io.BufferedWriter; import java.io.File; -import java.io.FileWriter; +import java.io.FileOutputStream; import java.io.IOException; -import java.net.URL; +import java.io.OutputStreamWriter; import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.bundles.StringId; import be.nikiroo.fanfix.data.Chapter; import be.nikiroo.fanfix.data.MetaData; import be.nikiroo.fanfix.data.Paragraph; -import be.nikiroo.fanfix.data.Story; import be.nikiroo.fanfix.data.Paragraph.ParagraphType; +import be.nikiroo.fanfix.data.Story; class Text extends BasicOutput { - protected FileWriter writer; + protected BufferedWriter writer; protected File targetDir; + private boolean nextParaIsCover = true; @Override public File process(Story story, File targetDir, String targetName) throws IOException { String targetNameOrig = targetName; - targetName += getDefaultExtension(); + targetName += getDefaultExtension(false); this.targetDir = targetDir; File target = new File(targetDir, targetName); - writer = new FileWriter(target); + writer = new BufferedWriter(new OutputStreamWriter( + new FileOutputStream(target), "UTF-8")); try { super.process(story, targetDir, targetNameOrig); } finally { @@ -39,7 +42,7 @@ class Text extends BasicOutput { } @Override - public String getDefaultExtension() { + public String getDefaultExtension(boolean readerTarget) { return ".txt"; } @@ -59,7 +62,7 @@ class Text extends BasicOutput { writer.write(title); writer.write("\n"); if (author != null && !author.isEmpty()) { - writer.write("©" + author); + writer.write(Instance.getInstance().getTrans().getString(StringId.BY) + " " + author); } if (date != null && !date.isEmpty()) { writer.write(" ("); @@ -78,11 +81,9 @@ class Text extends BasicOutput { protected void writeChapterHeader(Chapter chap) throws IOException { String txt; if (chap.getName() != null && !chap.getName().isEmpty()) { - txt = Instance.getTrans().getString(StringId.CHAPTER_NAMED, - chap.getNumber(), chap.getName()); + txt = Instance.getInstance().getTrans().getString(StringId.CHAPTER_NAMED, chap.getNumber(), chap.getName()); } else { - txt = Instance.getTrans().getString(StringId.CHAPTER_UNNAMED, - chap.getNumber()); + txt = Instance.getInstance().getTrans().getString(StringId.CHAPTER_UNNAMED, chap.getNumber()); } writer.write("\n" + txt + "\n"); @@ -101,8 +102,14 @@ class Text extends BasicOutput { protected void writeParagraphHeader(Paragraph para) throws IOException { if (para.getType() == ParagraphType.IMAGE) { File file = new File(targetDir, getCurrentImageBestName(true)); - Instance.getCache().saveAsImage(new URL(para.getContent()), file); + try { + Instance.getInstance().getCache().saveAsImage(para.getContentImage(), file, nextParaIsCover); + } catch (IOException e) { + Instance.getInstance().getTraceHandler().error(new IOException("Cannot save an image", e)); + } } + + nextParaIsCover = false; } @Override