import be.nikiroo.fanfix.data.Paragraph.ParagraphType;
import be.nikiroo.fanfix.data.Story;
import be.nikiroo.utils.Progress;
+import be.nikiroo.utils.Version;
/**
* This class is the base class used by the other output classes. It can be used
StringId id = longDesc ? StringId.OUTPUT_DESC
: StringId.OUTPUT_DESC_SHORT;
- String desc = Instance.getTrans().getStringX(id, this.name());
+ String desc = Instance.getInstance().getTrans().getStringX(id, this.name());
if (desc == null) {
- desc = Instance.getTrans().getString(id, this);
+ desc = Instance.getInstance().getTrans().getString(id, this.toString());
}
- if (desc == null) {
+ if (desc == null || desc.isEmpty()) {
desc = this.toString();
}
* The default extension to add to the output files.
*
* @param readerTarget
- * the target to point to to read the {@link Story} (for
- * instance, the main entry point if this {@link Story} is in
- * a directory bundle)
+ * TRUE to point to the main {@link Story} entry point for a
+ * reader (for instance, the main entry point if this
+ * {@link Story} is in a directory bundle), FALSE to point to
+ * the main file even if it is a directory for instance
*
* @return the extension
*/
public String getDefaultExtension(boolean readerTarget) {
- BasicOutput output = BasicOutput.getOutput(this, false);
+ BasicOutput output = BasicOutput.getOutput(this, false, false);
if (output != null) {
return output.getDefaultExtension(readerTarget);
}
}
/** The creator name (this program, by me!) */
- static final String EPUB_CREATOR = "Fanfix (by Niki)";
+ static protected final String EPUB_CREATOR = "Fanfix "
+ + Version.getCurrentVersion() + " (by Niki)";
/** The current best name for an image */
private String imageName;
return type;
}
+ /**
+ * Enable the creation of a .info file next to the resulting processed file.
+ *
+ * @return TRUE to enable it
+ */
+ protected boolean isWriteInfo() {
+ return writeInfo;
+ }
+
+ /**
+ * Enable the creation of a cover file next to the resulting processed file
+ * if possible.
+ *
+ * @return TRUE to enable it
+ */
+ protected boolean isWriteCover() {
+ return writeCover;
+ }
+
/**
* The output type.
*
* @param type
* the new type
- * @param writeInfo
- * TRUE to enable the creation of a .info file
* @param writeCover
* TRUE to enable the creation of a cover if possible
+ * @param writeInfo
+ * TRUE to enable the creation of a .info file
*
* @return this
*/
- protected BasicOutput setType(OutputType type, boolean writeCover,
- boolean writeInfo) {
+ protected BasicOutput setType(OutputType type, boolean writeInfo,
+ boolean writeCover) {
this.type = type;
- this.writeCover = writeCover;
this.writeInfo = writeInfo;
+ this.writeCover = writeCover;
return this;
}
* The default extension to add to the output files.
*
* @param readerTarget
- * the target to point to to read the {@link Story} (for
- * instance, the main entry point if this {@link Story} is in a
- * directory bundle)
+ * TRUE to point to the main {@link Story} entry point for a
+ * reader (for instance, the main entry point if this
+ * {@link Story} is in a directory bundle), FALSE to point to the
+ * main file even if it is a directory for instance
*
* @return the extension
*/
String chapterNameNum = String.format("%03d", 0);
String paragraphNumber = String.format("%04d", 0);
- imageName = paragraphNumber + "_" + chapterNameNum + ".png";
+ imageName = paragraphNumber + "_" + chapterNameNum;
if (story.getMeta() != null) {
story.getMeta().setType("" + getType());
}
- if (writeCover) {
+ if (isWriteCover()) {
InfoCover.writeCover(targetDir, targetName, story.getMeta());
}
- if (writeInfo) {
+ if (isWriteInfo()) {
InfoCover.writeInfo(targetDir, targetName, story.getMeta());
}
int num = 0;
String paragraphNumber = String.format("%04d", num++);
- imageName = chapterNameNum + "_" + paragraphNumber + ".png";
+ imageName = chapterNameNum + "_" + paragraphNumber;
writeChapterHeader(chap);
int i = 1;
for (Paragraph para : chap) {
paragraphNumber = String.format("%04d", num++);
- imageName = chapterNameNum + "_" + paragraphNumber + ".png";
+ imageName = chapterNameNum + "_" + paragraphNumber;
writeParagraph(para);
if (chapPg != null) {
chapPg.setProgress(i++);
*
* @param type
* the type
- * @param infoCover
- * force the <tt>.info</tt> file and the cover to be saved next
+ * @param writeCover
+ * TRUE to enable the creation of a cover if possible to be saved
+ * next to the main target file
+ * @param writeInfo
+ * TRUE to enable the creation of a .info file to be saved next
* to the main target file
*
* @return the {@link BasicOutput}
*/
- public static BasicOutput getOutput(OutputType type, boolean infoCover) {
+ public static BasicOutput getOutput(OutputType type, boolean writeInfo,
+ boolean writeCover) {
if (type != null) {
switch (type) {
case EPUB:
- return new Epub().setType(type, infoCover, infoCover);
+ return new Epub().setType(type, writeInfo, writeCover);
case TEXT:
- return new Text().setType(type, true, infoCover);
+ return new Text().setType(type, writeInfo, true);
case INFO_TEXT:
return new InfoText().setType(type, true, true);
case SYSOUT:
return new Sysout().setType(type, false, false);
case CBZ:
- return new Cbz().setType(type, infoCover, infoCover);
+ return new Cbz().setType(type, writeInfo, writeCover);
case LATEX:
- return new LaTeX().setType(type, infoCover, infoCover);
+ return new LaTeX().setType(type, writeInfo, writeCover);
case HTML:
- return new Html().setType(type, infoCover, infoCover);
+ return new Html().setType(type, writeInfo, writeCover);
}
}