From 271a3e0dc9ab08d12859c0e968e8a60b20d6392a Mon Sep 17 00:00:00 2001 From: Alessandro Jean Date: Tue, 18 Sep 2018 16:05:49 -0300 Subject: [PATCH] Add MangasProject source (#501) --- src/pt/mangasproject/build.gradle | 18 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3137 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1835 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4332 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7470 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 12759 bytes src/pt/mangasproject/res/web_hi_res_512.png | Bin 0 -> 48899 bytes .../pt/mangasproject/MangasProject.kt | 314 ++++++++++++++++++ 8 files changed, 332 insertions(+) create mode 100644 src/pt/mangasproject/build.gradle create mode 100644 src/pt/mangasproject/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/pt/mangasproject/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/pt/mangasproject/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/pt/mangasproject/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/pt/mangasproject/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/pt/mangasproject/res/web_hi_res_512.png create mode 100644 src/pt/mangasproject/src/eu/kanade/tachiyomi/extension/pt/mangasproject/MangasProject.kt diff --git a/src/pt/mangasproject/build.gradle b/src/pt/mangasproject/build.gradle new file mode 100644 index 000000000..31c118f68 --- /dev/null +++ b/src/pt/mangasproject/build.gradle @@ -0,0 +1,18 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + appName = 'Tachiyomi: mangásPROJECT' + pkgNameSuffix = 'pt.mangasproject' + extClass = '.MangasProject' + extVersionCode = 1 + extVersionSuffix = 1 + libVersion = '1.2' +} + +dependencies { + compileOnly 'com.google.code.gson:gson:2.8.2' + compileOnly 'com.github.salomonbrys.kotson:kotson:2.5.0' +} + +apply from: "$rootDir/common.gradle" diff --git a/src/pt/mangasproject/res/mipmap-hdpi/ic_launcher.png b/src/pt/mangasproject/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a6c6a8ac7b212066dd160c953c063c95bebbb08c GIT binary patch literal 3137 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 bdEjYZZ*00000NkvXXu0mjfbC>s0 literal 0 HcmV?d00001 diff --git a/src/pt/mangasproject/res/mipmap-mdpi/ic_launcher.png b/src/pt/mangasproject/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..313db5699659f2eaef344048902ea7fee8442c81 GIT binary patch literal 1835 zcmV+`2h{k9P)4V7dq2N|A1;+wZ3%5OCM@G z>P+jjR$Ds~gAk&Xf)}hHBIOnm5Msz>JHJhKb9S>Kn*@e&#yr4YetXXM{l4FK&e^jZ zUhp6Hg5$?a0&}gP76m9qOWbU5;iHX;|Ks{l1=i5eki&7@;Xoj8i0AnQJRf^r?O43V z-lLwB*R?#W65}?ROsBkF@8?dZb5hAbjR03yS9i?k^L?Tfc)DPxdrsN6*=#=Pa5z2% z5N1iJ5ir-*)((V1p**&OM8{gPss=O_@D!`l>BgK+X9)nA3Tg!A*=)8kk!3O!QU#ZZ zS}vDs0f5nD3e30JY#uGypJ`R5QOY?wUuS3PsG9gB%)5GWU zp?_c)eNP947_BAO*4C!o1IY*!7Zsv2-*P$?l0K6dnqN(c0FI7H2yKhuyJuqbmRrOG*S-6VK1fh3)MvC@)(KI%a>$%*$>H z36Dm^t!5$@gujd`q+CyLKQ3RjV`B2TOcAHknO+GkDJ#aI#s(!eq2Gy#Nwjy|$Kc=y z3Koeu<1i;EY+x@IMEEZH&wVkcjIa|&+HcxD8|vQZ=8 zd+x`TKkcwPZoz0Wfy_+5U@$0@*Lw}Sq%|x7KK=a#bliIcv)LTUJkKK(3Ss+Oo3VY{ zW*CiGvIL0)*h)xA0oDUb0uLT`(@vGjvk{DdM2qw2d%BGX?mcv7zaNj4@BG+A@I9I zKy4ha+GNF^+HFES5omRF#*Hp)c0~fBsgE2#g;CElnPMpu5L33Kv=|2(_eM^6pyO^A ze!O@^Rz55kIkOva2 zTDNRm8!aI@fkd7W2&^LyM9TE&@iQ3p$_d=Oc{6nd5)n`;pj073fGwej0%~eW3anc# zC43eM@KFz3omK%dF%6}Z&r8B66eFNUBBB6G;50_P6S5LYTY)kfM)&WPhEejsPZzJo znV1De3P>jY^%~l4r%u2#Cf|f;Zf;Jmgowa_{mdwIFG4_^2h@B(3hdgsRhkD}f8UQY zF-v&wJ2eUg&cHJ!S0FP2A4CZtHjHLvWud&RSa=`EG8zyJgfQ&(;NR{ic)fBJcJGXN z;7-RwEPtgOiwg6hH|PPEt5CqeKC0_hVdVM-_lRSsMNC8HxVA%mM;L&wF?1tQ=bmwVvGjT@OLP_Nn%vy^A$* z6bUazRC?mPpq81hiNLr|cFS(Jr>6kD*S@-}1fg&Ue3(Zl97Z@C#>9jV9`86tM!mvo zAuX51_kvuD8F{%m!qD6IbO7M=0$_S>YHA7wgB}I>^H4B94`#CwdYulOP6wTi6XM!C zy1+x19)TS@c6g@S*ix+}(a6j~O>%?cTB7YrWxGm+nwpx@Q-Ez)?PZ@G&y&R_dVad3 zi1#ukkP3J;Qkj6K_A(}rEW5J-n(g!Y_3P=EP_pbL+DFn-8d_qgeXR=Q)zsAVavT?% zViWX`YDsAUnkXh54two(`*JPY>z3;3>J!=7*&nMlHk}g5RLX?F&vBf5D^7u8HbF-{^~~qTYS3BdJzBs002ovPDHLkV1iH?LYx2q literal 0 HcmV?d00001 diff --git a/src/pt/mangasproject/res/mipmap-xhdpi/ic_launcher.png b/src/pt/mangasproject/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..e97c499eb68c42f5336c503144a4c463b18da523 GIT binary patch literal 4332 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 literal 0 HcmV?d00001 diff --git a/src/pt/mangasproject/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/mangasproject/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1ee21a456f2bd50593f0a67701fd03a3177554df GIT binary patch literal 12759 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≤}UD(@gOUEZ%;VwK$G~Y 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 literal 0 HcmV?d00001 diff --git a/src/pt/mangasproject/src/eu/kanade/tachiyomi/extension/pt/mangasproject/MangasProject.kt b/src/pt/mangasproject/src/eu/kanade/tachiyomi/extension/pt/mangasproject/MangasProject.kt new file mode 100644 index 000000000..862315d3e --- /dev/null +++ b/src/pt/mangasproject/src/eu/kanade/tachiyomi/extension/pt/mangasproject/MangasProject.kt @@ -0,0 +1,314 @@ +package eu.kanade.tachiyomi.extension.pt.mangasproject + +import com.github.salomonbrys.kotson.nullString +import com.github.salomonbrys.kotson.obj +import com.google.gson.JsonObject +import com.google.gson.JsonParser +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.POST +import eu.kanade.tachiyomi.network.asObservableSuccess +import eu.kanade.tachiyomi.source.model.* +import eu.kanade.tachiyomi.source.online.HttpSource +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.FormBody +import okhttp3.Headers +import okhttp3.Request +import okhttp3.Response +import rx.Observable +import java.lang.Exception +import java.text.ParseException +import java.text.SimpleDateFormat +import java.util.* +import java.util.concurrent.TimeUnit + +class MangasProject : HttpSource() { + override val name = "mangásPROJECT" + + override val baseUrl = "https://leitor.net" + + override val lang = "pt" + + override val supportsLatest = true + + // Sometimes the site is slow. + override val client = network.client.newBuilder() + .connectTimeout(1, TimeUnit.MINUTES) + .readTimeout(1, TimeUnit.MINUTES) + .writeTimeout(1, TimeUnit.MINUTES) + .build()!! + + private val catalogHeaders = Headers.Builder().apply { + add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36") + add("Host", "leitor.net") + // The API doesn't return the result if this header isn't sent. + add("X-Requested-With", "XMLHttpRequest") + }.build() + + override fun popularMangaRequest(page: Int): Request { + return GET("$baseUrl/home/most_read?page=$page", catalogHeaders) + } + + override fun popularMangaParse(response: Response): MangasPage { + val result = jsonParser.parse(response.body()!!.string()).obj + + // If "most_read" have boolean false value, then it doesn't have next page. + if (!result["most_read"]!!.isJsonArray) + return MangasPage(emptyList(), false) + + val popularMangas = result.getAsJsonArray("most_read")?.map { + popularMangaItemParse(it.obj) + } + + val hasNextPage = response.request().url().queryParameter("page")!!.toInt() < 10 + + if (popularMangas != null) + return MangasPage(popularMangas, hasNextPage) + + return MangasPage(emptyList(), false) + } + + private fun popularMangaItemParse(obj: JsonObject) = SManga.create().apply { + title = obj["serie_name"].nullString ?: "" + thumbnail_url = obj["cover"].nullString + url = obj["link"].nullString ?: "" + } + + override fun latestUpdatesRequest(page: Int): Request { + return GET("$baseUrl/home/releases?page=$page", catalogHeaders) + } + + override fun latestUpdatesParse(response: Response): MangasPage { + if (response.code() == 500) + return MangasPage(emptyList(), false) + + val result = jsonParser.parse(response.body()!!.string()).obj + + val latestMangas = result.getAsJsonArray("releases")?.map { + latestMangaItemParse(it.obj) + } + + val hasNextPage = response.request().url().queryParameter("page")!!.toInt() < 5 + + if (latestMangas != null) + return MangasPage(latestMangas, hasNextPage) + + return MangasPage(emptyList(), false) + } + + private fun latestMangaItemParse(obj: JsonObject) = SManga.create().apply { + title = obj["name"].nullString ?: "" + thumbnail_url = obj["image"].nullString + url = obj["link"].nullString ?: "" + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val form = FormBody.Builder().apply { + add("search", query) + } + + return POST("$baseUrl/lib/search/series.json", catalogHeaders, form.build()) + } + + override fun searchMangaParse(response: Response): MangasPage { + val result = jsonParser.parse(response.body()!!.string()).obj + + // If "series" have boolean false value, then it doesn't have results. + if (!result["series"]!!.isJsonArray) + return MangasPage(emptyList(), false) + + val searchMangas = result.getAsJsonArray("series")?.map { + searchMangaItemParse(it.obj) + } + + if (searchMangas != null) + return MangasPage(searchMangas, false) + + return MangasPage(emptyList(), false) + } + + private fun searchMangaItemParse(obj: JsonObject) = SManga.create().apply { + title = obj["name"].nullString ?: "" + thumbnail_url = obj["cover"].nullString + url = obj["link"].nullString ?: "" + author = obj["author"].nullString + artist = obj["artist"].nullString + } + + override fun mangaDetailsParse(response: Response): SManga { + val document = response.asJsoup() + val isCompleted = document.select("div#series-data span.series-author i.complete-series").first() != null + val cGenre = document.select("div#series-data ul.tags li").joinToString { it!!.text() } + + val seriesAuthor = if (isCompleted) { + document.select("div#series-data span.series-author").first()!!.nextSibling().toString().substringBeforeLast("+") + } else { + document.select("div#series-data span.series-author").first()!!.text().substringBeforeLast("+") + } + + val authors = seriesAuthor.split("&") + .map { it.trim() } + + val cAuthor = authors.filter { !it.contains("(Arte)") } + .map { author -> + if (author.contains(", ")) { + val authorSplit = author.split(", ") + authorSplit[1] + " " + authorSplit[0] + } else { + author + } + } + + val cArtist = authors.filter { it.contains("(Arte)") } + .map { it.replace("\\(Arte\\)".toRegex(), "").trim() } + .map { author -> + if (author.contains(", ")) { + val authorSplit = author.split(", ") + authorSplit[1] + " " + authorSplit[0] + } else { + author + } + } + + // Check if the manga was removed by the publisher. + val cStatus = if (document.select("div.series-blocked-img").first() == null) { + if (isCompleted) SManga.COMPLETED else SManga.ONGOING + } else { + SManga.LICENSED + } + + return SManga.create().apply { + genre = cGenre + status = cStatus + description = document.select("div#series-data span.series-desc").first()?.text() + author = cAuthor.joinToString("; ") + artist = if (cArtist.isEmpty()) cAuthor.joinToString("; ") else cArtist.joinToString("; ") + } + } + + // Need to override because the chapter API is paginated. + // Adapted from: + // https://stackoverflow.com/questions/35254323/rxjs-observable-pagination + // https://stackoverflow.com/questions/40529232/angular-2-http-observables-and-recursive-requests + override fun fetchChapterList(manga: SManga): Observable> { + return if (manga.status != SManga.LICENSED) { + fetchChapterList(manga, 1) + } else { + Observable.error(Exception("Licensed - No chapters to show")) + } + } + + private fun fetchChapterList(manga: SManga, page: Int, + pastChapters: List = emptyList()): Observable> { + val chapters = pastChapters.toMutableList() + return fetchChapterListPage(manga, page) + .flatMap { + chapters += it + if (it.isEmpty()) { + Observable.just(chapters) + } else { + fetchChapterList(manga, page + 1, chapters) + } + } + } + + private fun fetchChapterListPage(manga: SManga, page: Int): Observable> { + return client.newCall(chapterListRequest(manga, page)) + .asObservableSuccess() + .map { response -> + chapterListParse(response) + } + } + + override fun chapterListRequest(manga: SManga): Request { + return chapterListRequest(manga, 1) + } + + private fun chapterListRequest(manga: SManga, page: Int): Request { + val id = manga.url.substringAfterLast("/") + return GET("$baseUrl/series/chapters_list.json?page=$page&id_serie=$id", catalogHeaders) + } + + override fun chapterListParse(response: Response): List { + val result = jsonParser.parse(response.body()!!.string()).obj + + if (!result["chapters"]!!.isJsonArray) + return emptyList() + + return result.getAsJsonArray("chapters")?.map { + chapterListItemParse(it.obj) + } ?: emptyList() + } + + private fun chapterListItemParse(obj: JsonObject): SChapter { + val scan = obj["releases"]!!.asJsonObject!!.entrySet().first().value.obj + val cName = obj["chapter_name"]!!.asString + + return SChapter.create().apply { + name = if (cName == "") "Capítulo " + obj["number"]!!.asString else cName + date_upload = parseChapterDate(obj["date"].nullString) + scanlator = scan["scanlators"]!!.asJsonArray.get(0)!!.asJsonObject["name"].nullString + url = scan["link"]!!.nullString ?: "" + chapter_number = obj["number"]!!.asString.toFloatOrNull() ?: "1".toFloat() + } + } + + private fun parseChapterDate(date: String?) : Long { + return try { + SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH).parse(date).time + } catch (e: ParseException) { + 0L + } + } + + override fun fetchPageList(chapter: SChapter): Observable> { + return client.newCall(pageListRequest(chapter)) + .asObservableSuccess() + .flatMap { response -> + val token = getReaderToken(response) + return@flatMap if (token == "") + Observable.error(Exception("Licensed - No chapter to show")) + else fetchPageListApi(chapter, token) + } + } + + private fun fetchPageListApi(chapter: SChapter, token: String): Observable> { + val id = "\\/(\\d+)\\/capitulo".toRegex().find(chapter.url)?.groupValues?.get(1) ?: "" + return client.newCall(pageListApiRequest(id, token)) + .asObservableSuccess() + .map { response -> + pageListParse(response) + } + } + + private fun pageListApiRequest(id: String, token: String): Request { + return GET("$baseUrl/leitor/pages/$id.json?key=$token", catalogHeaders) + } + + override fun pageListParse(response: Response): List { + val result = jsonParser.parse(response.body()!!.string()).obj + + return result["images"]!!.asJsonArray + .mapIndexed { i, obj -> + Page(i, obj.asString, obj.asString) + } + } + + override fun fetchImageUrl(page: Page): Observable { + return Observable.just(page.imageUrl!!) + } + + override fun imageUrlParse(response: Response): String = "" + + private fun getReaderToken(response: Response): String { + val document = response.asJsoup() + // The pages API needs the token provided in the reader script. + val scriptSrc = document.select("script[src*=\"reader.min.js\"]")?.first()?.attr("src") ?: "" + return "token=(.*)&id".toRegex().find(scriptSrc)?.groupValues?.get(1) ?: "" + } + + companion object { + val jsonParser by lazy { + JsonParser() + } + } +} \ No newline at end of file