import net.pterodactylus.sone.template.SoneAccessor
import net.pterodactylus.sone.utils.mapPresent
import net.pterodactylus.sone.utils.paginate
import net.pterodactylus.sone.utils.parameters
import net.pterodactylus.sone.web.WebInterface
import net.pterodactylus.sone.template.SoneAccessor
import net.pterodactylus.sone.utils.mapPresent
import net.pterodactylus.sone.utils.paginate
import net.pterodactylus.sone.utils.parameters
import net.pterodactylus.sone.web.WebInterface
import net.pterodactylus.util.template.Template
import net.pterodactylus.util.template.TemplateContext
import java.net.URI
import net.pterodactylus.util.template.Template
import net.pterodactylus.util.template.TemplateContext
import java.net.URI
-class ViewSonePage(template: Template, webInterface: WebInterface):
- SoneTemplatePage("viewSone.html", webInterface, template) {
+class ViewSonePage @Inject constructor(template: Template, webInterface: WebInterface, loaders: Loaders):
+ SoneTemplatePage("viewSone.html", webInterface, loaders, template = template) {
- override fun handleRequest(freenetRequest: FreenetRequest, templateContext: TemplateContext) {
- templateContext["soneId"] = freenetRequest.parameters["sone"]
- freenetRequest.parameters["sone"]!!.let(webInterface.core::getSone)?.let { sone ->
+ override fun handleRequest(soneRequest: SoneRequest, templateContext: TemplateContext) {
+ templateContext["soneId"] = soneRequest.parameters["sone"]
+ soneRequest.parameters["sone"]!!.let(soneRequest.core::getSone)?.let { sone ->
- .paginate(webInterface.core.preferences.postsPerPage)
- .apply { page = freenetRequest.parameters["postPage"]?.toIntOrNull() ?: 0 }
+ .paginate(soneRequest.core.preferences.postsPerPage)
+ .apply { page = soneRequest.parameters["postPage"]?.toIntOrNull() ?: 0 }
- .sortedByDescending { webInterface.core.getReplies(it.id).first().time }
- .paginate(webInterface.core.preferences.postsPerPage)
- .apply { page = freenetRequest.parameters["repliedPostPage"]?.toIntOrNull() ?: 0 }
+ .sortedByDescending { soneRequest.core.getReplies(it.id).first().time }
+ .paginate(soneRequest.core.preferences.postsPerPage)
+ .apply { page = soneRequest.parameters["repliedPostPage"]?.toIntOrNull() ?: 0 }
- public override fun getPageTitle(freenetRequest: FreenetRequest): String =
- freenetRequest.parameters["sone"]!!.let(webInterface.core::getSone)?.let { sone ->
- "${SoneAccessor.getNiceName(sone)} - ${webInterface.l10n.getString("Page.ViewSone.Title")}"
- } ?: webInterface.l10n.getString("Page.ViewSone.Page.TitleWithoutSone")
+ override fun getPageTitle(soneRequest: SoneRequest): String =
+ soneRequest.parameters["sone"]!!.let(soneRequest.core::getSone)?.let { sone ->
+ "${SoneAccessor.getNiceName(sone)} - ${soneRequest.l10n.getString("Page.ViewSone.Title")}"
+ } ?: soneRequest.l10n.getString("Page.ViewSone.Page.TitleWithoutSone")