import be.nikiroo.fanfix.data.Paragraph;
import be.nikiroo.fanfix.data.Paragraph.ParagraphType;
import be.nikiroo.fanfix.data.Story;
-import be.nikiroo.utils.IOUtils;
+import be.nikiroo.utils.ImageUtils;
import be.nikiroo.utils.Progress;
import be.nikiroo.utils.StringUtils;
}
/**
- * Call {@link SupportType#valueOf(String.toUpperCase())}.
+ * Call {@link SupportType#valueOf(String)} after conversion to upper
+ * case.
*
* @param typeName
* the possible type name
}
/**
- * Call {@link SupportType#valueOf(String.toUpperCase())} but return
- * NULL for NULL instead of raising exception.
+ * Call {@link SupportType#valueOf(String)} after conversion to upper
+ * case but return NULL for NULL instead of raising exception.
*
* @param typeName
* the possible type name
}
/**
- * Call {@link SupportType#valueOf(String.toUpperCase())} but return
- * NULL in case of error instead of raising an exception.
+ * Call {@link SupportType#valueOf(String)} after conversion to upper
+ * case but return NULL in case of error instead of raising an
+ * exception.
*
* @param typeName
* the possible type name
*/
protected abstract boolean isHtml();
+ /**
+ * Return the {@link MetaData} of this story.
+ *
+ * @param source
+ * the source of the story
+ * @param in
+ * the input (the main resource)
+ *
+ * @return the associated {@link MetaData}
+ *
+ * @throws IOException
+ * in case of I/O error
+ */
protected abstract MetaData getMeta(URL source, InputStream in)
throws IOException;
*
* @param url
* the story resource
- *
* @param close
* close "this" and "in" when done
+ * @param getDesc
+ * retrieve the description of the story, or not
* @param pg
* the optional progress reporter
*
pg.setProgress(50);
- if (meta != null && meta.getCover() == null) {
+ if (meta.getCover() == null) {
meta.setCover(getDefaultCover(meta.getSubject()));
}
* @throws IOException
* on I/O error
*/
+ @SuppressWarnings("unused")
protected void preprocess(URL source, InputStream in) throws IOException {
}
* Create a {@link Chapter} object from the given information, formatting
* the content as it should be.
*
+ * @param source
+ * the source of the story
* @param number
* the chapter number
* @param name
protected Chapter makeChapter(URL source, int number, String name,
String content, Progress pg) throws IOException {
// Chapter name: process it correctly, then remove the possible
- // redundant "Chapter x: " in front of it
+ // redundant "Chapter x: " in front of it, or "-" (as in
+ // "Chapter 5: - Fun!" after the ": " was automatically added)
String chapterName = processPara(name).getContent().trim();
for (String lang : Instance.getConfig().getString(Config.CHAPTER)
.split(",")) {
Integer.toString(number).length()).trim();
}
- if (chapterName.startsWith(":")) {
+ while (chapterName.startsWith(":") || chapterName.startsWith("-")) {
chapterName = chapterName.substring(1).trim();
}
//
if (image != null) {
return new Paragraph(image);
- } else {
- return processPara(line);
}
+
+ return processPara(line);
}
/**
static String[] getImageExt(boolean emptyAllowed) {
if (emptyAllowed) {
return new String[] { "", ".png", ".jpg", ".jpeg", ".gif", ".bmp" };
- } else {
- return new String[] { ".png", ".jpg", ".jpeg", ".gif", ".bmp" };
}
+
+ return new String[] { ".png", ".jpg", ".jpeg", ".gif", ".bmp" };
}
/**
InputStream in = null;
try {
in = Instance.getCache().open(url, getSupport(url), true);
- return IOUtils.toImage(in);
+ return ImageUtils.fromStream(in);
} catch (IOException e) {
} finally {
if (in != null) {
if (prev == car) {
builder.append(closeDoubleQuote);
continue;
- } else {
- builder.append(closeQuote);
}
+
+ builder.append(closeQuote);
}
}