From da1cfdc5eedde7369c829c8f31460deff1e3670d Mon Sep 17 00:00:00 2001 From: Vetle Ledaal Date: Fri, 21 Jul 2023 23:41:40 +0200 Subject: [PATCH] WeLoveMangaOne: fix chapter and page logic (#17196) --- .../welovemangaone/src/WeLoveMangaOne.kt | 36 +++++++++++++++++++ .../multisrc/fmreader/FMReaderGenerator.kt | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/multisrc/overrides/fmreader/welovemangaone/src/WeLoveMangaOne.kt b/multisrc/overrides/fmreader/welovemangaone/src/WeLoveMangaOne.kt index f1c09a21c..8c07321f4 100644 --- a/multisrc/overrides/fmreader/welovemangaone/src/WeLoveMangaOne.kt +++ b/multisrc/overrides/fmreader/welovemangaone/src/WeLoveMangaOne.kt @@ -3,6 +3,10 @@ package eu.kanade.tachiyomi.extension.ja.welovemangaone import eu.kanade.tachiyomi.multisrc.fmreader.FMReader import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request import org.jsoup.nodes.Element import java.util.Calendar @@ -10,6 +14,18 @@ class WeLoveMangaOne : FMReader("WeLoveMangaOne", "https://welovemanga.one", "ja override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/manga-list.html?page=$page&sort=last_update") + override fun chapterListRequest(manga: SManga): Request { + val mangaId = MID_URL_REGEX.find(manga.url) + ?.groupValues?.get(1) + ?: throw Exception("Could not find manga id") + + val xhrUrl = "$baseUrl/app/manga/controllers/cont.Listchapter.php".toHttpUrl().newBuilder() + .addQueryParameter("mid", mangaId) + .build() + + return GET(xhrUrl, headers) + } + override fun chapterFromElement(element: Element, mangaTitle: String): SChapter { return SChapter.create().apply { element.let { @@ -41,4 +57,24 @@ class WeLoveMangaOne : FMReader("WeLoveMangaOne", "https://welovemanga.one", "ja return chapterDate.timeInMillis } + + override fun pageListRequest(chapter: SChapter): Request { + val request = super.pageListRequest(chapter) + val response = client.newCall(request).execute() + val document = response.asJsoup() + + val chapterId = document.selectFirst("#chapter") + ?.`val`() + ?: throw Exception("Could not find chapter id") + + val xhrUrl = "$baseUrl/app/manga/controllers/cont.listImg.php".toHttpUrl().newBuilder() + .addQueryParameter("cid", chapterId) + .build() + + return GET(xhrUrl, headers) + } + + companion object { + private val MID_URL_REGEX = "(\\d+)/".toRegex() + } } diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/fmreader/FMReaderGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/fmreader/FMReaderGenerator.kt index 3f9996d17..8ed603206 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/fmreader/FMReaderGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/fmreader/FMReaderGenerator.kt @@ -22,7 +22,7 @@ class FMReaderGenerator : ThemeSourceGenerator { SingleLang("Say Truyen", "https://saytruyenvip.com", "vi", overrideVersionCode = 3), SingleLang("WeLoveManga", "https://weloma.art", "ja", pkgName = "rawlh", overrideVersionCode = 4), SingleLang("Manga1000", "https://manga1000.top", "ja"), - SingleLang("WeLoveMangaOne", "https://welovemanga.one", "ja"), + SingleLang("WeLoveMangaOne", "https://welovemanga.one", "ja", isNsfw = true, overrideVersionCode = 1), ) companion object {