X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FViewPostPage.kt;fp=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FViewPostPage.kt;h=d2e163d1466ce9c6ed0a2463f47fcecd4fdb3f02;hp=0000000000000000000000000000000000000000;hb=f82bb98082031beef8316c8ea7f4e95fd3bd37a2;hpb=78c208e6b826eb2a032c6c1911a7a8e59eb174fb diff --git a/src/main/kotlin/net/pterodactylus/sone/web/pages/ViewPostPage.kt b/src/main/kotlin/net/pterodactylus/sone/web/pages/ViewPostPage.kt new file mode 100644 index 0000000..d2e163d --- /dev/null +++ b/src/main/kotlin/net/pterodactylus/sone/web/pages/ViewPostPage.kt @@ -0,0 +1,34 @@ +package net.pterodactylus.sone.web.pages + +import net.pterodactylus.sone.template.SoneAccessor +import net.pterodactylus.sone.utils.let +import net.pterodactylus.sone.utils.parameters +import net.pterodactylus.sone.web.WebInterface +import net.pterodactylus.sone.web.page.FreenetRequest +import net.pterodactylus.util.template.Template +import net.pterodactylus.util.template.TemplateContext +import java.net.URI + +/** + * This page lets the user view a post and all its replies. + */ +class ViewPostPage(template: Template, webInterface: WebInterface): + SoneTemplatePage("viewPost.html", template, "Page.ViewPost.Title", webInterface, false) { + + override fun handleRequest(request: FreenetRequest, templateContext: TemplateContext) { + templateContext["post"] = request.parameters["post"].let(webInterface.core::getPost).orNull() + templateContext["raw"] = request.parameters["raw"] == "true" + } + + override fun isLinkExcepted(link: URI?) = true + + public override fun getPageTitle(request: FreenetRequest) = + (request.parameters["post"].let(webInterface.core::getPost).let { + if (it.text.length > 20) { + it.text.substring(0..19) + "…" + } else { + it.text + } + " - ${SoneAccessor.getNiceName(it.sone)} - " + } ?: "") + super.getPageTitle(request) + +}