1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.template.*
4 import net.pterodactylus.sone.utils.*
5 import net.pterodactylus.sone.web.*
6 import net.pterodactylus.sone.web.page.*
7 import net.pterodactylus.util.template.*
12 * This page lets the user view a post and all its replies.
14 class ViewPostPage @Inject constructor(template: Template, webInterface: WebInterface):
15 SoneTemplatePage("viewPost.html", webInterface, template, "Page.ViewPost.Title") {
17 override fun handleRequest(freenetRequest: FreenetRequest, templateContext: TemplateContext) {
18 templateContext["post"] = freenetRequest.parameters["post"]?.let(webInterface.core::getPost)
19 templateContext["raw"] = freenetRequest.parameters["raw"] == "true"
22 override fun isLinkExcepted(link: URI) = true
24 override fun getPageTitle(freenetRequest: FreenetRequest) =
25 (freenetRequest.parameters["post"]?.let(webInterface.core::getPost)?.let {
26 if (it.text.length > 20) {
27 it.text.substring(0..19) + "…"
30 } + " - ${SoneAccessor.getNiceName(it.sone)} - "
31 } ?: "") + super.getPageTitle(freenetRequest)