If length can not be parsed, try again as property from the context.
[Sone.git] / src / main / java / net / pterodactylus / sone / template / ParserFilter.java
index 5f6fd3e..1bacb8e 100644 (file)
@@ -93,6 +93,13 @@ public class ParserFilter implements Filter {
                } catch (NumberFormatException nfe1) {
                        /* ignore. */
                }
+               if (length == -1) {
+                       try {
+                               length = Integer.parseInt(String.valueOf(templateContext.get(parameters.get("length"))));
+                       } catch (NumberFormatException nfe1) {
+                               /* ignore. */
+                       }
+               }
                String soneKey = parameters.get("sone");
                if (soneKey == null) {
                        soneKey = "sone";
@@ -114,7 +121,7 @@ public class ParserFilter implements Filter {
                                                if (length >= longText.length()) {
                                                        shortenedParts.add(part);
                                                } else {
-                                                       shortenedParts.add(new PlainTextPart(longText.substring(0, length)));
+                                                       shortenedParts.add(new PlainTextPart(longText.substring(0, length) + "…"));
                                                }
                                                length -= longText.length();
                                        } else if (part instanceof LinkPart) {