X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftext%2FFreenetLinkParser.java;h=704792caa11a5b9cbc0278b241d9ac465c2ff6ef;hb=9e4db46b86d084eba9029906e779ec1d96f78ac4;hp=73b33bec328e86bdd3d0cadc63a54037b28411f9;hpb=18338415117c61708e349222af566a09a9b490d6;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/text/FreenetLinkParser.java b/src/main/java/net/pterodactylus/sone/text/FreenetLinkParser.java index 73b33be..704792c 100644 --- a/src/main/java/net/pterodactylus/sone/text/FreenetLinkParser.java +++ b/src/main/java/net/pterodactylus/sone/text/FreenetLinkParser.java @@ -28,7 +28,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import net.pterodactylus.util.logging.Logging; -import net.pterodactylus.util.template.TemplateFactory; +import net.pterodactylus.util.template.TemplateContextFactory; +import net.pterodactylus.util.template.TemplateParser; import freenet.keys.FreenetURI; /** @@ -72,16 +73,16 @@ public class FreenetLinkParser implements Parser { } /** The template factory. */ - private final TemplateFactory templateFactory; + private final TemplateContextFactory templateContextFactory; /** * Creates a new freenet link parser. * - * @param templateFactory - * The template factory + * @param templateContextFactory + * The template context factory */ - public FreenetLinkParser(TemplateFactory templateFactory) { - this.templateFactory = templateFactory; + public FreenetLinkParser(TemplateContextFactory templateContextFactory) { + this.templateContextFactory = templateContextFactory; } // @@ -170,6 +171,12 @@ public class FreenetLinkParser implements Parser { } catch (MalformedURLException mue1) { /* not a valid link, insert as plain text. */ parts.add(createPlainTextPart(link)); + } catch (NullPointerException npe1) { + /* FreenetURI sometimes throws these, too. */ + parts.add(createPlainTextPart(link)); + } catch (ArrayIndexOutOfBoundsException aioobe1) { + /* oh, and these, too. */ + parts.add(createPlainTextPart(link)); } } else if ((linkType == LinkType.HTTP) || (linkType == LinkType.HTTPS)) { name = link.substring(linkType == LinkType.HTTP ? 7 : 8); @@ -212,7 +219,7 @@ public class FreenetLinkParser implements Parser { * @return The part that displays the given text */ private Part createPlainTextPart(String text) { - return new TemplatePart(templateFactory.createTemplate(new StringReader("<% text|html>"))).set("text", text); + return new TemplatePart(templateContextFactory, TemplateParser.parse(new StringReader("<% text|html>"))).set("text", text); } /** @@ -226,7 +233,7 @@ public class FreenetLinkParser implements Parser { * @return The part that displays the link */ private Part createInternetLinkPart(String link, String name) { - return new TemplatePart(templateFactory.createTemplate(new StringReader("\" title=\"<% link|html>\"><% name|html>"))).set("link", link).set("name", name); + return new TemplatePart(templateContextFactory, TemplateParser.parse(new StringReader("\" title=\"<% link|html>\"><% name|html>"))).set("link", link).set("name", name); } /** @@ -240,7 +247,7 @@ public class FreenetLinkParser implements Parser { * @return The part that displays the link */ private Part createFreenetLinkPart(String link, String name) { - return new TemplatePart(templateFactory.createTemplate(new StringReader("\" title=\"<% link|html>\"><% name|html>"))).set("link", link).set("name", name); + return new TemplatePart(templateContextFactory, TemplateParser.parse(new StringReader("\" title=\"<% link|html>\"><% name|html>"))).set("link", link).set("name", name); } /** @@ -254,7 +261,7 @@ public class FreenetLinkParser implements Parser { * @return The part that displays the link */ private Part createTrustedFreenetLinkPart(String link, String name) { - return new TemplatePart(templateFactory.createTemplate(new StringReader("\" title=\"<% link|html>\"><% name|html>"))).set("link", link).set("name", name); + return new TemplatePart(templateContextFactory, TemplateParser.parse(new StringReader("\" title=\"<% link|html>\"><% name|html>"))).set("link", link).set("name", name); } }