X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FParserFilter.java;h=db945b526560d4dcccf2a8c3cf59c1e79d4d196f;hb=eb776984f2bf7c1f218dcc65fca80ef0298ed2f2;hp=f1190e054fafa8c54e647fbb8bc304d78614453e;hpb=9e4db46b86d084eba9029906e779ec1d96f78ac4;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 f1190e0..db945b5 100644 --- a/src/main/java/net/pterodactylus/sone/template/ParserFilter.java +++ b/src/main/java/net/pterodactylus/sone/template/ParserFilter.java @@ -21,9 +21,11 @@ import java.io.IOException; import java.io.StringReader; import java.util.Map; +import net.pterodactylus.sone.core.Core; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.text.FreenetLinkParser; import net.pterodactylus.sone.text.FreenetLinkParserContext; +import net.pterodactylus.sone.web.page.Page.Request; import net.pterodactylus.util.template.Filter; import net.pterodactylus.util.template.TemplateContext; import net.pterodactylus.util.template.TemplateContextFactory; @@ -35,6 +37,9 @@ import net.pterodactylus.util.template.TemplateContextFactory; */ public class ParserFilter implements Filter { + /** The core. */ + private final Core core; + /** The link parser. */ private final FreenetLinkParser linkParser; @@ -42,11 +47,14 @@ public class ParserFilter implements Filter { * Creates a new filter that runs its input through a * {@link FreenetLinkParser}. * + * @param core + * The core * @param templateContextFactory * The context factory for rendering the parts */ - public ParserFilter(TemplateContextFactory templateContextFactory) { - linkParser = new FreenetLinkParser(templateContextFactory); + public ParserFilter(Core core, TemplateContextFactory templateContextFactory) { + this.core = core; + linkParser = new FreenetLinkParser(core, templateContextFactory); } /** @@ -60,7 +68,10 @@ public class ParserFilter implements Filter { soneKey = "sone"; } Sone sone = (Sone) templateContext.get(soneKey); - FreenetLinkParserContext context = new FreenetLinkParserContext(sone); + if (sone == null) { + sone = core.getSone(soneKey, false); + } + FreenetLinkParserContext context = new FreenetLinkParserContext((Request) templateContext.get("request"), sone); try { return linkParser.parse(context, new StringReader(text)); } catch (IOException ioe1) {