CelestialMoon: Fix selectors (#3187)

fix selectors
This commit is contained in:
bapeey 2024-05-22 00:49:05 -05:00 committed by GitHub
parent c4e12f808f
commit c7973ccb3a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 51 additions and 2 deletions

View File

@ -3,7 +3,7 @@ ext {
extClass = '.CelestialMoon'
themePkg = 'zeistmanga'
baseUrl = 'https://www.celestialmoonscan.com'
overrideVersionCode = 0
overrideVersionCode = 1
isNsfw = true
}

View File

@ -1,5 +1,54 @@
package eu.kanade.tachiyomi.extension.es.celestialmoon
import eu.kanade.tachiyomi.multisrc.zeistmanga.ZeistManga
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.Response
import java.util.concurrent.TimeUnit
class CelestialMoon : ZeistManga("Celestial Moon", "https://www.celestialmoonscan.com", "es")
class CelestialMoon : ZeistManga(
"Celestial Moon",
"https://www.celestialmoonscan.com",
"es",
) {
override val client = super.client.newBuilder()
.rateLimitHost(baseUrl.toHttpUrl(), 3, 1, TimeUnit.SECONDS)
.build()
override val popularMangaSelector = "div.PopularPosts > div.grid > article"
override val popularMangaSelectorUrl = ".post-title > a"
override val popularMangaSelectorTitle = ".post-title"
override val mangaDetailsSelector = "div.Blog > main"
override val mangaDetailsSelectorGenres = "dl:has(dt:contains(Genre)) dd a[rel=tag]"
override val mangaDetailsSelectorAuthor = "div#extra-info > dl:has(dt:contains(Author)) dd"
override val mangaDetailsSelectorArtist = "div#extra-info > dl:has(dt:contains(Artist)) dd"
override fun mangaDetailsParse(response: Response): SManga {
val document = response.asJsoup()
val profileManga = document.selectFirst(mangaDetailsSelector)!!
return SManga.create().apply {
thumbnail_url = profileManga.selectFirst("img")!!.attr("abs:src")
description = profileManga.select(mangaDetailsSelectorDescription).text()
genre = profileManga.select(mangaDetailsSelectorGenres)
.joinToString { it.text() }
author = profileManga.selectFirst(mangaDetailsSelectorAuthor)?.text()
artist = profileManga.selectFirst(mangaDetailsSelectorArtist)?.text()
status = parseStatus(document.selectFirst("main > header > div.grid span[data-status]")!!.text())
title = profileManga.selectFirst("main > header > div.grid h1[itemprop=name]")!!.text()
}
}
override val pageListSelector = "article.chapter > div.separator"
override fun pageListParse(response: Response): List<Page> {
val document = response.asJsoup()
val images = document.select(pageListSelector)
return images.select("> a").mapIndexed { i, img ->
Page(i, imageUrl = img.attr("abs:href"))
}
}
}