X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FParserFilter.java;h=6c74f0b3b5ecf7874e650288241ed0eb3dbeeb61;hb=662bcd45433c0ab480ad0e52f3e72e9e886bdfc6;hp=db41830f0d16475908e01fd8955aa65fe5a8db43;hpb=d5efb086bee8f103cbe90c7a953ffbb7ff27b689;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/template/ParserFilter.java b/src/main/java/net/pterodactylus/sone/template/ParserFilter.java index db41830..6c74f0b 100644 --- a/src/main/java/net/pterodactylus/sone/template/ParserFilter.java +++ b/src/main/java/net/pterodactylus/sone/template/ParserFilter.java @@ -1,5 +1,5 @@ /* - * Sone - ParserFilter.java - Copyright © 2011–2013 David Roden + * Sone - ParserFilter.java - Copyright © 2011–2015 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,6 +17,9 @@ package net.pterodactylus.sone.template; +import static java.lang.String.valueOf; +import static net.pterodactylus.sone.utils.NumberParsers.parseInt; + import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; @@ -44,9 +47,6 @@ import net.pterodactylus.util.template.TemplateContext; import net.pterodactylus.util.template.TemplateContextFactory; import net.pterodactylus.util.template.TemplateParser; -import com.google.common.base.Optional; -import com.google.common.primitives.Ints; - /** * Filter that filters a given text through a {@link SoneTextParser}. * @@ -91,18 +91,18 @@ public class ParserFilter implements Filter { */ @Override public Object format(TemplateContext templateContext, Object data, Map parameters) { - String text = String.valueOf(data); - int length = Optional.fromNullable(Ints.tryParse(String.valueOf(parameters.get("length")))).or(-1); - int cutOffLength = Optional.fromNullable(Ints.tryParse(String.valueOf(parameters.get("cut-off-length")))).or(length); + String text = valueOf(data); + int length = parseInt(valueOf(parameters.get("length")), -1); + int cutOffLength = parseInt(valueOf(parameters.get("cut-off-length")), length); Object sone = parameters.get("sone"); if (sone instanceof String) { - sone = core.getSone((String) sone, false); + sone = core.getSone((String) sone).orNull(); } FreenetRequest request = (FreenetRequest) templateContext.get("request"); SoneTextParserContext context = new SoneTextParserContext(request, (Sone) sone); StringWriter parsedTextWriter = new StringWriter(); try { - Iterable parts = soneTextParser.parse(context, new StringReader(text)); + Iterable parts = soneTextParser.parse(context, text); if (length > -1) { int allPartsLength = 0; List shortenedParts = new ArrayList(); @@ -253,7 +253,7 @@ public class ParserFilter implements Filter { SoneTextParser parser = new SoneTextParser(core, core); SoneTextParserContext parserContext = new SoneTextParserContext(null, postPart.getPost().getSone()); try { - Iterable parts = parser.parse(parserContext, new StringReader(postPart.getPost().getText())); + Iterable parts = parser.parse(parserContext, postPart.getPost().getText()); StringBuilder excerpt = new StringBuilder(); for (Part part : parts) { excerpt.append(part.getText());