diff --git a/multisrc/overrides/mccms/haomanwu/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/mccms/haomanwu/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index db0900e4c..000000000 Binary files a/multisrc/overrides/mccms/haomanwu/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/mccms/haomanwu/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/mccms/haomanwu/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index dc04c938f..000000000 Binary files a/multisrc/overrides/mccms/haomanwu/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/mccms/haomanwu/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/mccms/haomanwu/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 80891f12b..000000000 Binary files a/multisrc/overrides/mccms/haomanwu/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/mccms/haomanwu/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/mccms/haomanwu/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 5d84aaaf1..000000000 Binary files a/multisrc/overrides/mccms/haomanwu/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/mccms/haomanwu/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/mccms/haomanwu/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 322f9d3e7..000000000 Binary files a/multisrc/overrides/mccms/haomanwu/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/multisrc/overrides/mccms/haomanwu/res/web_hi_res_512.png b/multisrc/overrides/mccms/haomanwu/res/web_hi_res_512.png deleted file mode 100644 index f5cd7d949..000000000 Binary files a/multisrc/overrides/mccms/haomanwu/res/web_hi_res_512.png and /dev/null differ diff --git a/multisrc/overrides/mccms/haomanwu/src/Haomanwu.kt b/multisrc/overrides/mccms/haomanwu/src/Haomanwu.kt deleted file mode 100644 index ce3d6c189..000000000 --- a/multisrc/overrides/mccms/haomanwu/src/Haomanwu.kt +++ /dev/null @@ -1,15 +0,0 @@ -package eu.kanade.tachiyomi.extension.zh.haomanwu - -import eu.kanade.tachiyomi.multisrc.mccms.MCCMS -import eu.kanade.tachiyomi.source.model.Page -import okhttp3.Response - -class Haomanwu : MCCMS("好漫屋", "https://app2.haoman6.com", hasCategoryPage = false) { - override fun pageListParse(response: Response): List { - val pages = super.pageListParse(response) - if (pages.any { it.imageUrl!!.endsWith("tianjia.jpg") }) { - throw Exception("该章节有图片尚未添加") - } - return pages - } -} diff --git a/multisrc/overrides/mccms/manhuaorg/src/Manhuaorg.kt b/multisrc/overrides/mccms/manhuaorg/src/Manhuaorg.kt new file mode 100644 index 000000000..a00f1256c --- /dev/null +++ b/multisrc/overrides/mccms/manhuaorg/src/Manhuaorg.kt @@ -0,0 +1,20 @@ +package eu.kanade.tachiyomi.extension.zh.manhuaorg + +import eu.kanade.tachiyomi.multisrc.mccms.MCCMS +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.Page +import eu.kanade.tachiyomi.source.model.SManga +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request + +class Manhuaorg : MCCMS("朴朴漫画", "https://app.manhuaorg.com", hasCategoryPage = false) { + + override fun mangaDetailsRequest(manga: SManga) = throw UnsupportedOperationException() + + override fun imageRequest(page: Page): Request { + val url = page.imageUrl!! + val host = url.toHttpUrl().host + val headers = headers.newBuilder().set("Referer", "https://$host/").build() + return GET(url, headers) + } +} diff --git a/multisrc/overrides/mccms/pphanman/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/mccms/pphanman/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..dcb39f847 Binary files /dev/null and b/multisrc/overrides/mccms/pphanman/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mccms/pphanman/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/mccms/pphanman/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..6d4764762 Binary files /dev/null and b/multisrc/overrides/mccms/pphanman/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mccms/pphanman/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/mccms/pphanman/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..7bab05a9a Binary files /dev/null and b/multisrc/overrides/mccms/pphanman/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mccms/pphanman/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/mccms/pphanman/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..6db9b4747 Binary files /dev/null and b/multisrc/overrides/mccms/pphanman/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mccms/pphanman/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/mccms/pphanman/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..f6410b32b Binary files /dev/null and b/multisrc/overrides/mccms/pphanman/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mccms/pphanman/res/web_hi_res_512.png b/multisrc/overrides/mccms/pphanman/res/web_hi_res_512.png new file mode 100644 index 000000000..2857ebe58 Binary files /dev/null and b/multisrc/overrides/mccms/pphanman/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/mccms/pphanman/src/PPHanman.kt b/multisrc/overrides/mccms/pphanman/src/PPHanman.kt new file mode 100644 index 000000000..0205e0562 --- /dev/null +++ b/multisrc/overrides/mccms/pphanman/src/PPHanman.kt @@ -0,0 +1,44 @@ +package eu.kanade.tachiyomi.extension.zh.pphanman + +import android.app.Application +import androidx.preference.ListPreference +import androidx.preference.PreferenceScreen +import eu.kanade.tachiyomi.multisrc.mccms.MCCMS +import eu.kanade.tachiyomi.source.ConfigurableSource +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get + +// it has a category page with no filter +class PPHanman : MCCMS("PP韩漫", "", hasCategoryPage = false), ConfigurableSource { + + override val baseUrl: String + + init { + val mirrors = MIRRORS + val mirrorIndex = Injekt.get().getSharedPreferences("source_$id", 0x0000) + .getString(MIRROR_PREF, "0")!!.toInt().coerceAtMost(mirrors.size - 1) + baseUrl = "https://" + mirrors[mirrorIndex] + } + + // .../comic_{id}.html + override fun getMangaId(url: String) = url.substringAfterLast('_').substringBeforeLast('.') + + override fun setupPreferenceScreen(screen: PreferenceScreen) { + ListPreference(screen.context).apply { + val mirrors = MIRRORS + key = MIRROR_PREF + title = "镜像站点" + summary = "%s\n重启生效" + entries = mirrors + entryValues = Array(mirrors.size) { it.toString() } + setDefaultValue("0") + }.let(screen::addPreference) + } + + companion object { + private const val MIRROR_PREF = "MIRROR" + + // https://bitbucket.org/fabuye/pphanman + private val MIRRORS get() = arrayOf("pphm.xyz", "pphm2.xyz", "krhentai.com") + } +} diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMS.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMS.kt index 513608b1f..99d5b1d57 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMS.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMS.kt @@ -94,7 +94,7 @@ open class MCCMS( override fun mangaDetailsParse(response: Response) = throw UnsupportedOperationException("Not used.") override fun fetchChapterList(manga: SManga): Observable> = Single.create> { subscriber -> - val id = manga.url.substringAfterLast('/') + val id = getMangaId(manga.url) val dataResponse = client.newCall(GET("$baseUrl/api/data/chapter?mid=$id", headers)).execute() val dataList: List = dataResponse.parseAs() // unordered val dateMap = HashMap(dataList.size * 2) @@ -105,6 +105,8 @@ open class MCCMS( subscriber.onSuccess(result) }.toObservable() + protected open fun getMangaId(url: String) = url.substringAfterLast('/') + override fun chapterListParse(response: Response) = throw UnsupportedOperationException("Not used.") override fun pageListRequest(chapter: SChapter): Request = diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSGenerator.kt index e3df0072e..13776e488 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mccms/MCCMSGenerator.kt @@ -12,10 +12,6 @@ class MCCMSGenerator : ThemeSourceGenerator { name = "Haoman6", baseUrl = "https://www.haoman6.com", lang = "zh", className = "Haoman6", sourceName = "好漫6", overrideVersionCode = 3 ), - SingleLang( // 与 app2.haomanwu.com 相同 - name = "Haomanwu", baseUrl = "https://app2.haoman6.com", lang = "zh", - className = "Haomanwu", sourceName = "好漫屋", overrideVersionCode = 3 - ), SingleLang( name = "Haoman6 (g-lens)", baseUrl = "https://www.g-lens.com", lang = "zh", className = "Haoman6_glens", sourceName = "好漫6 (g-lens)", overrideVersionCode = 0 @@ -30,7 +26,11 @@ class MCCMSGenerator : ThemeSourceGenerator { ), SingleLang( name = "Pupu Manhua", baseUrl = "https://app.manhuaorg.com", lang = "zh", - className = "Manhuaorg", sourceName = "朴朴漫画", overrideVersionCode = 1 + className = "Manhuaorg", sourceName = "朴朴漫画", overrideVersionCode = 2 + ), + SingleLang( + name = "PPHanman", baseUrl = "https://pphm.xyz", lang = "zh", isNsfw = true, + className = "PPHanman", sourceName = "PP韩漫", overrideVersionCode = 0 ), )