From: David ‘Bombe’ Roden Date: Thu, 20 Jan 2022 20:35:45 +0000 (+0100) Subject: 🚧 Add comic filter for Oglaf X-Git-Tag: v2~56 X-Git-Url: https://git.pterodactylus.net/?p=rhynodge.git;a=commitdiff_plain;h=00b36bb75aec8838ffa3473b14c42b275fa06747 🚧 Add comic filter for Oglaf --- diff --git a/src/main/kotlin/net/pterodactylus/rhynodge/filters/comics/OglafComicSiteFilter.kt b/src/main/kotlin/net/pterodactylus/rhynodge/filters/comics/OglafComicSiteFilter.kt new file mode 100644 index 0000000..777eca8 --- /dev/null +++ b/src/main/kotlin/net/pterodactylus/rhynodge/filters/comics/OglafComicSiteFilter.kt @@ -0,0 +1,21 @@ +package net.pterodactylus.rhynodge.filters.comics + +import net.pterodactylus.rhynodge.filters.ComicSiteFilter +import net.pterodactylus.rhynodge.utils.asOptional +import org.jsoup.nodes.Document + +class OglafComicSiteFilter : ComicSiteFilter() { + + override fun extractTitle(document: Document) = document.title().asOptional() + + override fun extractImageUrls(document: Document) = + document.getElementById("strip") + .attr("src") + .let(::listOf) + + override fun extractImageComments(document: Document) = + document.getElementById("strip") + .attr("title") + .let(::listOf) + +} diff --git a/src/test/kotlin/net/pterodactylus/rhynodge/filters/comics/OglafComicSiteFilterTest.kt b/src/test/kotlin/net/pterodactylus/rhynodge/filters/comics/OglafComicSiteFilterTest.kt new file mode 100644 index 0000000..1bf90d2 --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/rhynodge/filters/comics/OglafComicSiteFilterTest.kt @@ -0,0 +1,17 @@ +package net.pterodactylus.rhynodge.filters.comics + +import net.pterodactylus.rhynodge.states.ComicState +import net.pterodactylus.rhynodge.states.ComicState.Comic + +class OglafComicSiteFilterTest : ComicSiteFilterTest() { + + override val filter = OglafComicSiteFilter() + override val baseUrl = "https://www.oglaf.com/" + override val resource = "oglaf.html" + override val expectedComics = listOf( + Comic("Lightning Rod") + .add(ComicState.Strip("https://media.oglaf.com/comic/lightning_rod.jpg", "With Zeus, ‘aftercare’ usually means turning you into an animal")) + ) + +} + diff --git a/src/test/resources/net/pterodactylus/rhynodge/filters/comics/oglaf.html b/src/test/resources/net/pterodactylus/rhynodge/filters/comics/oglaf.html new file mode 100644 index 0000000..66ac736 --- /dev/null +++ b/src/test/resources/net/pterodactylus/rhynodge/filters/comics/oglaf.html @@ -0,0 +1,4 @@ +Lightning Rod
lovingly rendered pictures of cocks.