X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Foutput%2FText.java;h=f0516dc629ebca9bf65b7bf86fa559028004f622;hb=d66deb8d8b30cff6b54db352eef34a3508939f84;hp=4555ce621f68816ec9271681497476042897b7fc;hpb=a7d266e6616349169d03e93780fb656754089dd0;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/output/Text.java b/src/be/nikiroo/fanfix/output/Text.java index 4555ce6..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,8 +62,7 @@ class Text extends BasicOutput { writer.write(title); writer.write("\n"); if (author != null && !author.isEmpty()) { - writer.write(Instance.getTrans().getString(StringId.BY) + " " - + author); + writer.write(Instance.getInstance().getTrans().getString(StringId.BY) + " " + author); } if (date != null && !date.isEmpty()) { writer.write(" ("); @@ -79,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"); @@ -102,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