Add some documentation for later when I have to look at it again.
[Sone.git] / src / main / java / net / pterodactylus / sone / text / SoneTextParser.java
index 9754ac4..d271203 100644 (file)
@@ -123,6 +123,11 @@ public class SoneTextParser implements Parser<SoneTextParserContext> {
                                continue;
                        }
                        emptyLines = 0;
+                       /*
+                        * lineComplete tracks whether the block you are parsing is the
+                        * first block of the line. this is important because sometimes you
+                        * have to add an additional line break.
+                        */
                        boolean lineComplete = true;
                        while (line.length() > 0) {
                                int nextKsk = line.indexOf("KSK@");
@@ -177,7 +182,11 @@ public class SoneTextParser implements Parser<SoneTextParserContext> {
                                }
                                if (linkType == LinkType.SONE) {
                                        if (next > 0) {
-                                               parts.add(new PlainTextPart(line.substring(0, next)));
+                                               if (lineComplete && !lastLineEmpty) {
+                                                       parts.add(new PlainTextPart("\n" + line.substring(0, next)));
+                                               } else {
+                                                       parts.add(new PlainTextPart(line.substring(0, next)));
+                                               }
                                        }
                                        if (line.length() >= (next + 7 + 43)) {
                                                String soneId = line.substring(next + 7, next + 50);
@@ -192,6 +201,7 @@ public class SoneTextParser implements Parser<SoneTextParserContext> {
                                                parts.add(new PlainTextPart(line.substring(next)));
                                                line = "";
                                        }
+                                       lineComplete = false;
                                        continue;
                                }
                                if (linkType == LinkType.POST) {
@@ -202,8 +212,6 @@ public class SoneTextParser implements Parser<SoneTextParserContext> {
                                                String postId = line.substring(next + 7, next + 43);
                                                Post post = postProvider.getPost(postId, false);
                                                if ((post != null) && (post.getSone() != null)) {
-                                                       String postText = post.getText();
-                                                       postText = postText.substring(0, Math.min(postText.length(), 20)) + "…";
                                                        parts.add(new PostPart(post));
                                                } else {
                                                        parts.add(new PlainTextPart(line.substring(next, next + 43)));