From d2eb84321582bcad0e4953c146e4d1b77c11a23a Mon Sep 17 00:00:00 2001 From: haruki-takeshi <nguyenson.bkacad@gmail.com> Date: Mon, 6 Jul 2020 21:24:29 +0700 Subject: [PATCH] Update WPComicsFactory.kt Add new source: TruyenChon --- .../extension/all/wpcomics/WPComicsFactory.kt | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/src/all/wpcomics/src/eu/kanade/tachiyomi/extension/all/wpcomics/WPComicsFactory.kt b/src/all/wpcomics/src/eu/kanade/tachiyomi/extension/all/wpcomics/WPComicsFactory.kt index 2f9cb9ee0..8c8d5d2d8 100644 --- a/src/all/wpcomics/src/eu/kanade/tachiyomi/extension/all/wpcomics/WPComicsFactory.kt +++ b/src/all/wpcomics/src/eu/kanade/tachiyomi/extension/all/wpcomics/WPComicsFactory.kt @@ -182,3 +182,94 @@ private class NetTruyen : WPComics("NetTruyen", "http://www.nettruyen.com", "vi" "xuyen-khong" to "Xuyên Không" ) } + +private class TruyenChon : WPComics("TruyenChon", "http://truyenchon.com", "vi", SimpleDateFormat("dd/MM/yy", Locale.getDefault()), null) { + override fun imageRequest(page: Page): Request = GET(page.imageUrl!!, headersBuilder().add("Referer", baseUrl).build()) + + // search and filters taken from old extension (1.2.5) + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + var url = HttpUrl.parse("$baseUrl/tim-truyen?")!!.newBuilder() + (if (filters.isEmpty()) getFilterList() else filters).forEach { filter -> + when (filter) { + is Genre -> { + url = if (filter.state == 0) url else + HttpUrl.parse(url.toString() + .replace("tim-truyen?", + "tim-truyen/${getGenreList().map { it.first }[filter.state]}?"))!! + .newBuilder() + } + is Status -> { + url.addQueryParameter("status", if (filter.state == 0) "hajau" else filter.state.toString()) + url.addQueryParameter("sort", "0") + } + } + } + url.addQueryParameter("keyword", query) + return GET(url.toString(), headers) + } + + private fun getStatusList() = arrayOf("Tất cả", "Đang tiến hành", "Đã hoàn thành", "Tạm ngừng") + + private class Status(status: Array<String>) : Filter.Select<String>("Status", status) + private class Genre(genreList: Array<String>) : Filter.Select<String>("Thể loại", genreList) + + override fun getFilterList() = FilterList( + Status(getStatusList()), + Genre(getGenreList().map { it.second }.toTypedArray()) + ) + + private fun getGenreList() = arrayOf( + "tim-truyen" to "Tất cả", + "action" to "Action", + "adult" to "Adult", + "adventure" to "Adventure", + "anime" to "Anime", + "chuyen-sinh" to "Chuyển Sinh", + "comedy" to "Comedy", + "comic" to "Comic", + "cooking" to "Cooking", + "co-dai" to "Cổ Đại", + "doujinshi" to "Doujinshi", + "drama" to "Drama", + "dam-my" to "Đam Mỹ", + "ecchi" to "Ecchi", + "fantasy" to "Fantasy", + "gender-bender" to "Gender Bender", + "harem" to "Harem", + "historical" to "Historical", + "horror" to "Horror", + "josei" to "Josei", + "live-action" to "Live action", + "manga" to "Manga", + "manhua" to "Manhua", + "manhwa" to "Manhwa", + "martial-arts" to "Martial Arts", + "mature" to "Mature", + "mecha" to "Mecha", + "mystery" to "Mystery", + "ngon-tinh" to "Ngôn Tình", + "one-shot" to "One shot", + "psychological" to "Psychological", + "romance" to "Romance", + "school-life" to "School Life", + "sci-fi" to "Sci-fi", + "seinen" to "Seinen", + "shoujo" to "Shoujo", + "shoujo-ai" to "Shoujo Ai", + "shounen" to "Shounen", + "shounen-ai" to "Shounen Ai", + "slice-of-life" to "Slice of Life", + "smut" to "Smut", + "soft-yaoi" to "Soft Yaoi", + "soft-yuri" to "Soft Yuri", + "sports" to "Sports", + "supernatural" to "Supernatural", + "thieu-nhi" to "Thiếu Nhi", + "tragedy" to "Tragedy", + "trinh-tham" to "Trinh Thám", + "truyen-scan" to "Truyện scan", + "truyen-mau" to "Truyện Màu", + "webtoon" to "Webtoon", + "xuyen-khong" to "Xuyên Không" + ) +}