🎨 Replace future reply filter with Kotlin version
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / pages / SearchPage.kt
index 4e29246..9bbc3e5 100644 (file)
@@ -19,8 +19,9 @@ import javax.inject.*
  * words.
  */
 @TemplatePath("/templates/search.html")
+@ToadletPath("search.html")
 class SearchPage(webInterface: WebInterface, loaders: Loaders, templateRenderer: TemplateRenderer, ticker: Ticker = Ticker.systemTicker()) :
-               SoneTemplatePage("search.html", webInterface, loaders, templateRenderer, pageTitleKey = "Page.Search.Title") {
+               SoneTemplatePage(webInterface, loaders, templateRenderer, pageTitleKey = "Page.Search.Title") {
 
        @Inject
        constructor(webInterface: WebInterface, loaders: Loaders, templateRenderer: TemplateRenderer) :
@@ -57,7 +58,7 @@ class SearchPage(webInterface: WebInterface, loaders: Loaders, templateRenderer:
                val postPagination = cache.get(phrases) {
                        soneRequest.core.sones
                                        .flatMap(Sone::getPosts)
-                                       .filter { Post.FUTURE_POSTS_FILTER.apply(it) }
+                                       .filter(noFuturePost)
                                        .scoreAndPaginate(phrases, soneRequest.core.preferences.postsPerPage) { it.allText(soneNameCache, soneRequest.core::getReplies) }
                }.apply { page = soneRequest.parameters["postPage"].emptyToNull?.toIntOrNull() ?: 0 }
 
@@ -87,7 +88,7 @@ class SearchPage(webInterface: WebInterface, loaders: Loaders, templateRenderer:
 
        private fun Post.allText(soneNameCache: (Sone) -> String, getReplies: (String) -> Collection<PostReply>) =
                        (text + recipient.orNull()?.let { " ${soneNameCache(it)}" } + getReplies(id)
-                                       .filter { PostReply.FUTURE_REPLY_FILTER.apply(it) }
+                                       .filter(noFutureReply)
                                        .map { "${soneNameCache(it.sone)} ${it.text}" }.joinToString(" ", " ")).toLowerCase()
 
        private fun Iterable<Phrase>.indicesFor(text: String, predicate: (Phrase) -> Boolean) =
@@ -124,7 +125,7 @@ class SearchPage(webInterface: WebInterface, loaders: Loaders, templateRenderer:
                                                }
                                        }
 
-       private fun redirect(target: String): Nothing = throw RedirectException(target)
+       private fun redirect(target: String): Nothing = redirectTo(target)
 
        enum class Optionality {
                OPTIONAL,