X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FParserFilter.java;h=2aafd1fa1993360852384eaa4daef342dbc884a3;hb=616d826774d0ac43e1152ec6a4f5c3c198b95483;hp=f402a41a346ef7fb8df775a8c782cfe843ca305e;hpb=224be7a31fee673fa438cb02c4bb2105d01a52cc;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 f402a41..2aafd1f 100644 --- a/src/main/java/net/pterodactylus/sone/template/ParserFilter.java +++ b/src/main/java/net/pterodactylus/sone/template/ParserFilter.java @@ -31,7 +31,9 @@ import java.util.List; import java.util.Map; import net.pterodactylus.sone.core.Core; +import net.pterodactylus.sone.data.Album; import net.pterodactylus.sone.data.Sone; +import net.pterodactylus.sone.text.AlbumPart; import net.pterodactylus.sone.text.FreenetLinkPart; import net.pterodactylus.sone.text.LinkPart; import net.pterodactylus.sone.text.Part; @@ -91,7 +93,7 @@ public class ParserFilter implements Filter { */ @Override public Object format(TemplateContext templateContext, Object data, Map parameters) { - String text = String.valueOf(data); + 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"); @@ -177,6 +179,8 @@ public class ParserFilter implements Filter { render(writer, (SonePart) part); } else if (part instanceof PostPart) { render(writer, (PostPart) part); + } else if (part instanceof AlbumPart) { + render(writer, (AlbumPart) part); } else if (part instanceof Iterable) { render(writer, (Iterable) part); } @@ -250,7 +254,7 @@ public class ParserFilter implements Filter { * The part to render */ private void render(Writer writer, PostPart postPart) { - SoneTextParser parser = new SoneTextParser(core, core); + SoneTextParser parser = new SoneTextParser(core, core, core); SoneTextParserContext parserContext = new SoneTextParserContext(null, postPart.getPost().getSone()); try { Iterable parts = parser.parse(parserContext, new StringReader(postPart.getPost().getText())); @@ -268,12 +272,18 @@ public class ParserFilter implements Filter { break; } } - renderLink(writer, "viewPost.html?post=" + postPart.getPost().getId(), excerpt.toString(), SoneAccessor.getNiceName(postPart.getPost().getSone()), "in-sone"); + renderLink(writer, "viewPost.html?post=" + postPart.getPost().getId(), excerpt.toString(), + SoneAccessor.getNiceName(postPart.getPost().getSone()), postPart.usesDeprecatedLink() ? "internet" : "in-sone"); } catch (IOException ioe1) { /* StringReader shouldn’t throw. */ } } + private void render(Writer writer, AlbumPart albumPart) { + Album album = albumPart.getAlbum(); + renderLink(writer, String.format("imageBrowser.html?album=%s", album.getId()), album.getTitle(), album.getDescription(), "in-sone"); + } + /** * Renders the given link. *