diff --git a/src/es/celestialmoon/build.gradle b/src/es/celestialmoon/build.gradle index 187caca95..b049f5e26 100644 --- a/src/es/celestialmoon/build.gradle +++ b/src/es/celestialmoon/build.gradle @@ -1,10 +1,14 @@ ext { extName = 'Celestial Moon' extClass = '.CelestialMoon' - themePkg = 'zeistmanga' - baseUrl = 'https://www.celestialmoonscan.com' - overrideVersionCode = 1 + themePkg = 'mangathemesia' + baseUrl = 'https://celestialmoonscan.es' + overrideVersionCode = 0 isNsfw = true } apply from: "$rootDir/common.gradle" + +dependencies { + implementation(project(":lib:cookieinterceptor")) +} diff --git a/src/es/celestialmoon/src/eu/kanade/tachiyomi/extension/es/celestialmoon/CelestialMoon.kt b/src/es/celestialmoon/src/eu/kanade/tachiyomi/extension/es/celestialmoon/CelestialMoon.kt index 7ebb6ce80..622be4dd3 100644 --- a/src/es/celestialmoon/src/eu/kanade/tachiyomi/extension/es/celestialmoon/CelestialMoon.kt +++ b/src/es/celestialmoon/src/eu/kanade/tachiyomi/extension/es/celestialmoon/CelestialMoon.kt @@ -1,54 +1,26 @@ package eu.kanade.tachiyomi.extension.es.celestialmoon -import eu.kanade.tachiyomi.multisrc.zeistmanga.ZeistManga +import eu.kanade.tachiyomi.lib.cookieinterceptor.CookieInterceptor +import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia 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.text.SimpleDateFormat +import java.util.Locale import java.util.concurrent.TimeUnit -class CelestialMoon : ZeistManga( +class CelestialMoon : MangaThemesia( "Celestial Moon", - "https://www.celestialmoonscan.com", + "https://celestialmoonscan.es", "es", + dateFormat = SimpleDateFormat("MMMM dd, yyyy", Locale("es")), ) { + // ZeistManga -> MangaThemesia + override val versionId = 2 + + private val cookieInterceptor = CookieInterceptor(baseUrl.substringAfter("://"), "age_gate" to "18") + override val client = super.client.newBuilder() .rateLimitHost(baseUrl.toHttpUrl(), 3, 1, TimeUnit.SECONDS) + .addNetworkInterceptor(cookieInterceptor) .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 { - val document = response.asJsoup() - val images = document.select(pageListSelector) - return images.select("> a").mapIndexed { i, img -> - Page(i, imageUrl = img.attr("abs:href")) - } - } }