From 71ae228f99e53bc29de6c6ea8ecc1dac58d69869 Mon Sep 17 00:00:00 2001 From: DarKCroX Date: Mon, 15 Apr 2019 04:45:59 +0800 Subject: [PATCH] Add MangaLife (#1028) closes #948 --- src/en/mangalife/build.gradle | 12 + .../mangalife/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2977 bytes .../mangalife/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1730 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3739 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6728 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9411 bytes src/en/mangalife/res/web_hi_res_512.png | Bin 0 -> 49837 bytes .../extension/en/mangalife/mangalife.kt | 247 ++++++++++++++++++ 8 files changed, 259 insertions(+) create mode 100644 src/en/mangalife/build.gradle create mode 100644 src/en/mangalife/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/en/mangalife/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/en/mangalife/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/en/mangalife/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/en/mangalife/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/en/mangalife/res/web_hi_res_512.png create mode 100644 src/en/mangalife/src/eu/kanade/tachiyomi/extension/en/mangalife/mangalife.kt diff --git a/src/en/mangalife/build.gradle b/src/en/mangalife/build.gradle new file mode 100644 index 000000000..7b0313dba --- /dev/null +++ b/src/en/mangalife/build.gradle @@ -0,0 +1,12 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + appName = 'Tachiyomi: MangaLife' + pkgNameSuffix = 'en.mangalife' + extClass = '.MangaLife' + extVersionCode = 1 + libVersion = '1.2' +} + +apply from: "$rootDir/common.gradle" diff --git a/src/en/mangalife/res/mipmap-hdpi/ic_launcher.png b/src/en/mangalife/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..fb45833f23fc64c3b9583c4eb8f95d2ebc004f4a GIT binary patch literal 2977 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 X`9YjjyH7`p00000NkvXXu0mjfX!v~K literal 0 HcmV?d00001 diff --git a/src/en/mangalife/res/mipmap-mdpi/ic_launcher.png b/src/en/mangalife/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..87df94b2515f8c8d34530679935137cec0aebb54 GIT binary patch literal 1730 zcmV;z20i(SP)1VR!L?0B5eA_|z4UO{OqAP^-a zf&fiPJPx#7L`4c!)u1*)RdE)yRWWw{KwI$#-Y&-D%*2=2u9Ix?Nw2)J{5;=$bLPx3 zA)B>Xn^ml~5JI*RLSEhAY|XNiUlc`cZ)s_{5(otT_WS*iBngrv!RPbk#q0IL>-ECp z@xbHp!0mP$;&Qp*a=9RiB1BPy)9EzC;c&p=aKLW2!)CJ?A_xL(Hrqc=r}J7vL&J`8 z`L{}vbgj@26#EfD5Ww?1c%BExafYxg3zlWUFbo)m0Zr4nP!t7^5PYQqrQj2^iq*b~rtLIK2V&)8mK3sQol*^INra&_cc%H}T z=qP4qXY+ErySpHKMFRR!aRrYc`qd)deXxX+_wy6I_d6U?D>#mWzjpwA$_w<(ETL~^ z3DKF1nuMCJ;YXku7J?ukkw{>1aWOA_eSK>qPze6y{Ut=>f5F?)502x}a{6*Uyk6kC zD!}vn`U=QJ1p4nUp)c_Qf#}EJcphyRZWisnoD*Qm5?Be}*w|RUfVRR2f&ektmM74! z&rAlbXNSNEHgtUXZ9#aw07aJ;h(@C|76`OKzMCupucrOeN$_?jdTz`Y9345E&ME~O z8yhPV(AIXI=i$r>^cR8epIJiJ&_meVeuVEX7KL9HpuurmNr6J$uU^1^7!kdI4qTh} z(5+wLY6~Iq^|NJoC2fGu2~g`Gpnsy~1oYra8uHYiIf2N%-{Fs3KxFFAT<1d*zZDd) zW(5>QDN8_uZ)j+!jX>Yb5~A^xI`0W}T;%D$aP;C7wb9h8QMSprm%pODqBDgUzGsMvT#VP=)IFP ztnYF>h1S>z8h_=*IyJv_rOu=`q60sT`oo`NqFL&xRWJa{>gLG!s0G@TnU!1pQ{ z94jG^OeSkDK+`mAz7~Y;JT(YJ;wgBJpGMm!lX>tFB?DjNBQ%{GF~I8u7=|$jXz+T0 zmGBh_=--@d-e!dEJT*d2r{L~7g{IS2AZKr0ZCoNs2F@dqq5@`%bya~v@Kp;4-e!bu z7ZB(?1yA=GMB*s}eD8D$oVy84XUh}N!>^;jbGSQC!QRw~-s$Ito3&@+DHw+bL7hN2 zu0|EGfTn3EijoJPOeQffFo0k%h+r@X$?u2BY^hE_d+8QDO*o+wP`msbu8#M>IeiFC zJ~MQ=bNENlydA+a!v^?pJcIV3Ihf31|Psmvk0CUHo%AD>9Pd$nV+AB%jK$EKs)NNTCL#SLG(;K zHLmH?&mkUr7Zk(c=ojA^1eynK!fZCL5J+#lfF3eDr3zTB6k0yGrJMCMq?3a>fpjjR zcp697OF)0XL<>#?-ycHr!1!`vH^BQ2!(y?(+1`()^W$n_V-NzzU^1EDZ0|=fHkL~u zHU@9>A{y0mPQ+p{T)ld=WCjNZ!LscC6DSq!^gy4LFC!~=mc^d3<)kJ8g`i7;7u#8` zt3Wl-wd#6R0>yyKfv$Des}a~`GMWCZ6nL$=uI137L;n&&cC9Ax3L)h6{rmS%{2%CA zf@|5gZ{GwV*S8-CKM2?wzc!uYY;);6ap1eSLji4jed8%e>sPXU}9^ zUEQ06kh<02wX3k55b_2g%F#rGn07*qoM6N<$g6cjrtN;K2 literal 0 HcmV?d00001 diff --git a/src/en/mangalife/res/mipmap-xhdpi/ic_launcher.png b/src/en/mangalife/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6589973ff044d371db204072e9b475a9bf73f5dd GIT binary patch literal 3739 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 literal 0 HcmV?d00001 diff --git a/src/en/mangalife/res/mipmap-xxhdpi/ic_launcher.png b/src/en/mangalife/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..8938385999693db9b813d590a545bdd2b3e80268 GIT binary patch literal 6728 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 XD*E&D9}mIHNe~l53xirc_k{lgfi_e+ literal 0 HcmV?d00001 diff --git a/src/en/mangalife/res/web_hi_res_512.png b/src/en/mangalife/res/web_hi_res_512.png new file mode 100644 index 0000000000000000000000000000000000000000..11d762ba0fc280a15a730d7d5286fa4b0c73ca3c GIT binary patch literal 49837 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 literal 0 HcmV?d00001 diff --git a/src/en/mangalife/src/eu/kanade/tachiyomi/extension/en/mangalife/mangalife.kt b/src/en/mangalife/src/eu/kanade/tachiyomi/extension/en/mangalife/mangalife.kt new file mode 100644 index 000000000..522e9f954 --- /dev/null +++ b/src/en/mangalife/src/eu/kanade/tachiyomi/extension/en/mangalife/mangalife.kt @@ -0,0 +1,247 @@ +package eu.kanade.tachiyomi.extension.en.mangalife + +import eu.kanade.tachiyomi.network.POST +import eu.kanade.tachiyomi.source.model.* +import eu.kanade.tachiyomi.source.online.ParsedHttpSource +import okhttp3.FormBody +import okhttp3.Headers +import okhttp3.HttpUrl +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import java.text.SimpleDateFormat +import java.util.regex.Pattern + +class MangaLife : ParsedHttpSource() { + + override val name = "MangaLife" + + override val baseUrl = "https://mangalife.us" + + override val lang = "en" + + override val supportsLatest = true + + private val recentUpdatesPattern = Pattern.compile("(.*?)\\s(\\d+\\.?\\d*)\\s?(Completed)?") + + private val indexPattern = Pattern.compile("-index-(.*?)-") + + private val catalogHeaders = Headers.Builder().apply { + add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64)") + add("Host", "mangalife.us") + }.build() + + override fun popularMangaSelector() = "div.requested > div.row" + + override fun popularMangaRequest(page: Int): Request { + val (body, requestUrl) = convertQueryToPost(page, "$baseUrl/search/request.php?sortBy=popularity&sortOrder=descending") + return POST(requestUrl, catalogHeaders, body.build()) + } + + override fun popularMangaFromElement(element: Element): SManga { + val manga = SManga.create() + element.select("a.resultLink").first().let { + manga.setUrlWithoutDomain(it.attr("href")) + manga.title = it.text() + } + return manga + } + + override fun popularMangaNextPageSelector() = "button.requestMore" + + override fun searchMangaSelector() = "div.requested > div.row" + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = HttpUrl.parse("$baseUrl/search/request.php")!!.newBuilder() + if (!query.isEmpty()) url.addQueryParameter("keyword", query) + val genres = mutableListOf() + val genresNo = mutableListOf() + for (filter in if (filters.isEmpty()) getFilterList() else filters) { + when (filter) { + is Sort -> { + if (filter.state?.index != 0) + url.addQueryParameter("sortBy", if (filter.state?.index == 1) "dateUpdated" else "popularity") + if (filter.state?.ascending != true) + url.addQueryParameter("sortOrder", "descending") + } + is SelectField -> if (filter.state != 0) url.addQueryParameter(filter.key, filter.values[filter.state]) + is TextField -> if (!filter.state.isEmpty()) url.addQueryParameter(filter.key, filter.state) + is GenreList -> filter.state.forEach { genre -> + when (genre.state) { + Filter.TriState.STATE_INCLUDE -> genres.add(genre.name) + Filter.TriState.STATE_EXCLUDE -> genresNo.add(genre.name) + } + } + } + } + if (genres.isNotEmpty()) url.addQueryParameter("genre", genres.joinToString(",")) + if (genresNo.isNotEmpty()) url.addQueryParameter("genreNo", genresNo.joinToString(",")) + + val (body, requestUrl) = convertQueryToPost(page, url.toString()) + return POST(requestUrl, catalogHeaders, body.build()) + } + + private fun convertQueryToPost(page: Int, url: String): Pair { + val url = HttpUrl.parse(url)!! + val body = FormBody.Builder().add("page", page.toString()) + for (i in 0 until url.querySize()) { + body.add(url.queryParameterName(i), url.queryParameterValue(i)) + } + val requestUrl = url.scheme() + "://" + url.host() + url.encodedPath() + return Pair(body, requestUrl) + } + + override fun searchMangaFromElement(element: Element): SManga { + val manga = SManga.create() + element.select("a.resultLink").first().let { + manga.setUrlWithoutDomain(it.attr("href")) + manga.title = it.text() + } + return manga + } + + override fun searchMangaNextPageSelector() = "button.requestMore" + + override fun mangaDetailsParse(document: Document): SManga { + val detailElement = document.select("div.well > div.row").first() + + val manga = SManga.create() + manga.author = detailElement.select("a[href^=/search/?author=]").first()?.text() + manga.genre = detailElement.select("span.details > div.row > div:has(b:contains(Genre(s))) > a").map { it.text() }.joinToString() + manga.description = detailElement.select("strong:contains(Description:) + div").first()?.text() + manga.status = detailElement.select("a[href^=/search/?status=]").first()?.text().orEmpty().let { parseStatus(it) } + manga.thumbnail_url = detailElement.select("div > img").first()?.absUrl("src") + return manga + } + + private fun parseStatus(status: String) = when { + status.contains("Ongoing (Scan)") -> SManga.ONGOING + status.contains("Complete (Scan)") -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + + override fun chapterListSelector() = "div.chapter-list > a" + + override fun chapterFromElement(element: Element): SChapter { + val urlElement = element.select("a").first() + + val chapter = SChapter.create() + chapter.setUrlWithoutDomain(urlElement.attr("href")) + chapter.name = element.select("span.chapterLabel").first().text()?.let { it } ?: "" + chapter.date_upload = element.select("time").first()?.attr("datetime")?.let { parseChapterDate(it) } ?: 0 + return chapter + } + + private fun parseChapterDate(dateAsString: String): Long { + return SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse(dateAsString).time + } + + override fun pageListParse(document: Document): List { + val fullUrl = document.baseUri() + val url = fullUrl.substringBeforeLast('/') + + val pages = mutableListOf() + + val series = document.select("input.IndexName").first().attr("value") + val chapter = document.select("span.CurChapter").first().text() + var index = "" + + val m = indexPattern.matcher(fullUrl) + if (m.find()) { + val indexNumber = m.group(1) + index = "-index-$indexNumber" + } + + document.select("div.ContainerNav").first().select("select.PageSelect > option").forEach { + pages.add(Page(pages.size, "$url/$series-chapter-$chapter$index-page-${pages.size + 1}.html")) + } + pages.getOrNull(0)?.imageUrl = imageUrlParse(document) + return pages + } + + override fun imageUrlParse(document: Document): String = document.select("img.CurImage").attr("src") + + override fun latestUpdatesNextPageSelector() = "button.requestMore" + + override fun latestUpdatesSelector(): String = "a.latestSeries" + + override fun latestUpdatesRequest(page: Int): Request { + val url = "$baseUrl/home/latest.request.php" + val (body, requestUrl) = convertQueryToPost(page, url) + return POST(requestUrl, catalogHeaders, body.build()) + } + + override fun latestUpdatesFromElement(element: Element): SManga { + val manga = SManga.create() + element.select("a.latestSeries").first().let { + val chapterUrl = it.attr("href") + val indexOfMangaUrl = chapterUrl.indexOf("-chapter-") + val indexOfLastPath = chapterUrl.lastIndexOf("/") + val mangaUrl = chapterUrl.substring(indexOfLastPath, indexOfMangaUrl) + val defaultText = it.select("p.clamp2").text() + val m = recentUpdatesPattern.matcher(defaultText) + val title = if (m.matches()) m.group(1) else defaultText + manga.setUrlWithoutDomain("/manga$mangaUrl") + manga.title = title + } + return manga + } + + private class Sort : Filter.Sort("Sort", arrayOf("Alphabetically", "Date updated", "Popularity"), Filter.Sort.Selection(2, false)) + private class Genre(name: String) : Filter.TriState(name) + private class TextField(name: String, val key: String) : Filter.Text(name) + private class SelectField(name: String, val key: String, values: Array, state: Int = 0) : Filter.Select(name, values, state) + private class GenreList(genres: List) : Filter.Group("Genres", genres) + + override fun getFilterList() = FilterList( + TextField("Years", "year"), + TextField("Author", "author"), + SelectField("Scan Status", "status", arrayOf("Any", "Complete", "Discontinued", "Hiatus", "Incomplete", "Ongoing")), + SelectField("Publish Status", "pstatus", arrayOf("Any", "Cancelled", "Complete", "Discontinued", "Hiatus", "Incomplete", "Ongoing", "Unfinished")), + SelectField("Type", "type", arrayOf("Any", "Doujinshi", "Manga", "Manhua", "Manhwa", "OEL", "One-shot")), + Sort(), + GenreList(getGenreList()) + ) + + // [...document.querySelectorAll("label.triStateCheckBox input")].map(el => `Filter("${el.getAttribute('name')}", "${el.nextSibling.textContent.trim()}")`).join(',\n') + // http://mangalife.co/advanced-search/ + private fun getGenreList() = listOf( + Genre("Action"), + Genre("Adult"), + Genre("Adventure"), + Genre("Comedy"), + Genre("Doujinshi"), + Genre("Drama"), + Genre("Ecchi"), + Genre("Fantasy"), + Genre("Gender Bender"), + Genre("Harem"), + Genre("Hentai"), + Genre("Historical"), + Genre("Horror"), + Genre("Josei"), + Genre("Lolicon"), + Genre("Martial Arts"), + Genre("Mature"), + Genre("Mecha"), + Genre("Mystery"), + Genre("Psychological"), + Genre("Romance"), + Genre("School Life"), + Genre("Sci-fi"), + Genre("Seinen"), + Genre("Shotacon"), + Genre("Shoujo"), + Genre("Shoujo Ai"), + Genre("Shounen"), + Genre("Shounen Ai"), + Genre("Slice of Life"), + Genre("Smut"), + Genre("Sports"), + Genre("Supernatural"), + Genre("Tragedy"), + Genre("Yaoi"), + Genre("Yuri") + ) + +} \ No newline at end of file