X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;ds=sidebyside;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FBasicSupport.java;h=18113188b8ac358b19af20ff62a845a91d7be9b1;hb=7e191c686f6de7cecc3979dbff136e0bf263277d;hp=e3b6fab345faa1886e491f6d22742624d6415c19;hpb=754a5bc205f6a50f3fe3fe7c2dfb09d8a8dd09bb;p=nikiroo-utils.git
diff --git a/src/be/nikiroo/fanfix/supported/BasicSupport.java b/src/be/nikiroo/fanfix/supported/BasicSupport.java
index e3b6fab..1811318 100644
--- a/src/be/nikiroo/fanfix/supported/BasicSupport.java
+++ b/src/be/nikiroo/fanfix/supported/BasicSupport.java
@@ -597,57 +597,71 @@ public abstract class BasicSupport {
if (isHtml()) {
// Special
processing:
content = content.replaceAll("(
]*>)|(
)|(
)",
- "\n* * *\n");
+ "
* * *
");
}
List paras = new ArrayList();
- InputStream in = new ByteArrayInputStream(content.getBytes("UTF-8"));
- try {
- BufferedReader buff = new BufferedReader(new InputStreamReader(in,
- "UTF-8"));
-
- for (String encodedLine = buff.readLine(); encodedLine != null; encodedLine = buff
- .readLine()) {
- String lines[];
- if (isHtml()) {
- lines = encodedLine.split("(|
|
|
|\\n)");
- } else {
- lines = new String[] { encodedLine };
- }
-
- for (String aline : lines) {
- String line = aline.trim();
- URL image = null;
- if (line.startsWith("[") && line.endsWith("]")) {
- image = getImageUrl(this, source,
- line.substring(1, line.length() - 1).trim());
+ if (content != null && !content.trim().isEmpty()) {
+ if (isHtml()) {
+ for (String line : content.split("(|
|
|
)")) {
+ paras.add(makeParagraph(source, line.trim()));
+ }
+ } else {
+ BufferedReader buff = null;
+ try {
+ buff = new BufferedReader(
+ new InputStreamReader(new ByteArrayInputStream(
+ content.getBytes("UTF-8")), "UTF-8"));
+ for (String line = buff.readLine(); line != null; line = buff
+ .readLine()) {
+ paras.add(makeParagraph(source, line.trim()));
}
-
- if (image != null) {
- paras.add(new Paragraph(image));
- } else {
- paras.add(processPara(line));
+ } finally {
+ if (buff != null) {
+ buff.close();
}
}
}
- } finally {
- in.close();
- }
- // Check quotes for "bad" format
- List newParas = new ArrayList();
- for (Paragraph para : paras) {
- newParas.addAll(requotify(para));
- }
- paras = newParas;
+ // Check quotes for "bad" format
+ List newParas = new ArrayList();
+ for (Paragraph para : paras) {
+ newParas.addAll(requotify(para));
+ }
+ paras = newParas;
- // Remove double blanks/brks
- fixBlanksBreaks(paras);
+ // Remove double blanks/brks
+ fixBlanksBreaks(paras);
+ }
return paras;
}
+ /**
+ * Convert the given line into a single {@link Paragraph}.
+ *
+ * @param source
+ * the source URL of the story
+ * @param line
+ * the textual content of the paragraph
+ *
+ * @return the {@link Paragraph}
+ */
+ private Paragraph makeParagraph(URL source, String line) {
+ URL image = null;
+ if (line.startsWith("[") && line.endsWith("]")) {
+ image = getImageUrl(this, source,
+ line.substring(1, line.length() - 1).trim());
+ }
+
+ if (image != null) {
+ return new Paragraph(image);
+ } else {
+ return processPara(line);
+ }
+ }
+
/**
* Fix the {@link ParagraphType#BLANK}s and {@link ParagraphType#BREAK}s of
* those {@link Paragraph}s.