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