🎨 Replace FreenetPage with Kotlin version
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / pages / ViewPostPage.kt
1 package net.pterodactylus.sone.web.pages
2
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.*
8 import java.net.*
9 import javax.inject.*
10
11 /**
12  * This page lets the user view a post and all its replies.
13  */
14 class ViewPostPage @Inject constructor(template: Template, webInterface: WebInterface):
15                 SoneTemplatePage("viewPost.html", webInterface, template, "Page.ViewPost.Title") {
16
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"
20         }
21
22         override fun isLinkExcepted(link: URI) = true
23
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) + "…"
28                                 } else {
29                                         it.text
30                                 } + " - ${SoneAccessor.getNiceName(it.sone)} - "
31                         } ?: "") + super.getPageTitle(freenetRequest)
32
33 }