diff --git a/src/zh/boylove/build.gradle b/src/zh/boylove/build.gradle index a722ccac0..688dec4dc 100644 --- a/src/zh/boylove/build.gradle +++ b/src/zh/boylove/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'BoyLove' extClass = '.BoyLove' - extVersionCode = 14 + extVersionCode = 15 isNsfw = true } diff --git a/src/zh/boylove/src/eu/kanade/tachiyomi/extension/zh/boylove/BoyLove.kt b/src/zh/boylove/src/eu/kanade/tachiyomi/extension/zh/boylove/BoyLove.kt index f487e2e2c..a9d4d54c9 100644 --- a/src/zh/boylove/src/eu/kanade/tachiyomi/extension/zh/boylove/BoyLove.kt +++ b/src/zh/boylove/src/eu/kanade/tachiyomi/extension/zh/boylove/BoyLove.kt @@ -137,9 +137,9 @@ class BoyLove : HttpSource(), ConfigurableSource { } private fun Document.getPartsCount(): Int? { - return selectFirst("script:containsData(do_mergeImg):containsData(context0 =)")?.data()?.run { - substringBefore("canvas0.width") - .substringAfterLast("var ") + return selectFirst("script:containsData(firstMergeImg):containsData(imageData)")?.data()?.run { + substringBefore("var scrollTop") + .substringAfterLast("var randomClass = ") .substringBefore(';') .trim() .substringAfterLast(" ") @@ -169,6 +169,8 @@ class BoyLove : HttpSource(), ConfigurableSource { StatusFilter(), TypeFilter(), genreFilter, + Filter.Header("若要观看VIP漫画,请先在Webview中登录网站,并确认您的账户已达到Lv3"), + VipFilter(), // SortFilter(), // useless ) } @@ -179,7 +181,7 @@ class BoyLove : HttpSource(), ConfigurableSource { try { val request = client.newCall(GET("$baseUrl/home/book/cate.html", headers)) val document = request.execute().asJsoup() - genres = document.select("ul[data-str=tag] > li[class] > a") + genres = document.select("div[data-str=tag] > a.button") .map { it.ownText() }.toTypedArray() } catch (e: Throwable) { isFetchingGenres = false diff --git a/src/zh/boylove/src/eu/kanade/tachiyomi/extension/zh/boylove/BoyLoveFilters.kt b/src/zh/boylove/src/eu/kanade/tachiyomi/extension/zh/boylove/BoyLoveFilters.kt index 0046ddc02..39d066063 100644 --- a/src/zh/boylove/src/eu/kanade/tachiyomi/extension/zh/boylove/BoyLoveFilters.kt +++ b/src/zh/boylove/src/eu/kanade/tachiyomi/extension/zh/boylove/BoyLoveFilters.kt @@ -12,23 +12,25 @@ import eu.kanade.tachiyomi.source.model.FilterList * [4] page, index from 1 * [5] type, 0=all, 1=清水, 2=有肉 * [6] 1=manga, 2=novel, else=manga - * [7] vip, 0=default, useless + * [7] vip, 2=all, 0=without, 1=hasvip */ internal fun parseFilters(page: Int, filters: FilterList): String { var status = '2' var type = '0' var genre = "0" var sort = '1' + var vip = '2' for (filter in filters) { when (filter) { is StatusFilter -> status = STATUS_KEYS[filter.state] is TypeFilter -> type = TYPE_KEYS[filter.state] is GenreFilter -> if (filter.state > 0) genre = filter.values[filter.state] is SortFilter -> sort = SORT_KEYS[filter.state] + is VipFilter -> vip = VIP_KEYS[filter.state] else -> {} } } - return "1-$genre-$status-$sort-$page-$type-1-0" + return "1-$genre-$status-$sort-$page-$type-1-$vip" } internal class StatusFilter : Filter.Select("状态", STATUS_NAMES) @@ -47,3 +49,8 @@ internal class SortFilter : Filter.Select("排序", SORT_NAMES) private val SORT_NAMES = arrayOf("顺序", "类似排行榜") private val SORT_KEYS = arrayOf('1', '2') + +internal class VipFilter : Filter.Select("漫画权限", VIP_NAMES) + +private val VIP_NAMES = arrayOf("全部", "非会员可观看", "VIP 漫画") +private val VIP_KEYS = arrayOf('2', '0', '1')