X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FRenderFilter.kt;h=25df23989331148566599700433b459fd298a47e;hb=8e313509a42a8c638fcac018dd73dd975bf9cb68;hp=9f785ca8c32efed8f9d7923764348f5aa1e69f34;hpb=579f882ba9cc899613ef840d421db898b3ebbd73;p=Sone.git diff --git a/src/main/kotlin/net/pterodactylus/sone/template/RenderFilter.kt b/src/main/kotlin/net/pterodactylus/sone/template/RenderFilter.kt index 9f785ca..25df239 100644 --- a/src/main/kotlin/net/pterodactylus/sone/template/RenderFilter.kt +++ b/src/main/kotlin/net/pterodactylus/sone/template/RenderFilter.kt @@ -10,11 +10,10 @@ import net.pterodactylus.sone.text.PostPart import net.pterodactylus.sone.text.SonePart import net.pterodactylus.sone.text.SoneTextParser import net.pterodactylus.sone.text.SoneTextParserContext +import net.pterodactylus.sone.utils.asTemplate import net.pterodactylus.util.template.Filter import net.pterodactylus.util.template.TemplateContext import net.pterodactylus.util.template.TemplateContextFactory -import net.pterodactylus.util.template.TemplateParser -import java.io.StringReader import java.io.StringWriter import java.io.Writer import java.net.URLEncoder @@ -27,8 +26,8 @@ import java.net.URLEncoder class RenderFilter(private val core: Core, private val templateContextFactory: TemplateContextFactory) : Filter { companion object { - private val plainTextTemplate = TemplateParser.parse(StringReader("<%text|html>")) - private val linkTemplate = TemplateParser.parse(StringReader("\" href=\"<%link|html>\" title=\"<%title|html>\"><%text|html>")) + private val plainTextTemplate = "<%text|html>".asTemplate() + private val linkTemplate = "\" href=\"<%link|html>\" title=\"<%title|html>\"><%text|html>".asTemplate() } override fun format(templateContext: TemplateContext?, data: Any?, parameters: MutableMap?): Any? { @@ -69,7 +68,7 @@ class RenderFilter(private val core: Core, private val templateContextFactory: T renderLink(writer, "/external-link/?_CHECKED_HTTP_=${linkPart.link.urlEncode()}", linkPart.text, linkPart.title, "internet") } - private fun String.urlEncode() = URLEncoder.encode(this, "UTF-8")!! + private fun String.urlEncode(): String = URLEncoder.encode(this, "UTF-8") private fun render(writer: Writer, sonePart: SonePart) { if (sonePart.sone.name != null) { @@ -102,7 +101,7 @@ class RenderFilter(private val core: Core, private val templateContextFactory: T private fun render(writer: Writer, freemailPart: FreemailPart) { val sone = core.getSone(freemailPart.identityId) - val soneName = sone.transform(SoneAccessor::getNiceName).or(freemailPart.identityId) + val soneName = sone?.let(SoneAccessor::getNiceName) ?: freemailPart.identityId renderLink(writer, "/Freemail/NewMessage?to=${freemailPart.identityId}", "${freemailPart.emailLocalPart}@$soneName.freemail",