1 package net.pterodactylus.rhynodge.filters.webpages.savoy
3 import net.pterodactylus.rhynodge.Filter
4 import net.pterodactylus.rhynodge.State
5 import net.pterodactylus.rhynodge.states.HtmlState
6 import org.apache.log4j.Logger
9 * [Filter] implementation that creates a list of movies running at the
10 * Savoy theatre in Hamburg.
12 class SavoyTicketsFilter : Filter {
14 override fun filter(state: State) =
15 requireNotNull(state as? HtmlState) { "state must be HTML" }
17 .let(movieExtractor::getMovies)
18 .also { logger.debug("Parsed Movies: $it") }
19 .let { MovieState(it, emptySet(), false) }
23 private val logger = Logger.getLogger(SavoyTicketsFilter::class.java)
24 private val movieExtractor = MovieExtractor()