From 0e224e22211bb2235164ca33cdd32f820717eb2a Mon Sep 17 00:00:00 2001 From: Mike <51273546+SnakeDoc83@users.noreply.github.com> Date: Wed, 30 Oct 2019 22:18:58 -0400 Subject: [PATCH] MangaBox - for sites like Mangakakalot (#1694) * MangaBox - for sites like Mangakakalot * Icons, search --- src/all/mangabox/build.gradle | 12 + .../mangabox/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3802 bytes .../mangabox/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2079 bytes .../mangabox/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5037 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 8670 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 11879 bytes src/all/mangabox/res/web_hi_res_512.png | Bin 0 -> 55098 bytes .../extension/all/mangabox/MangaBox.kt | 293 ++++++++++++++++++ .../extension/all/mangabox/MangaBoxFactory.kt | 119 +++++++ 9 files changed, 424 insertions(+) create mode 100644 src/all/mangabox/build.gradle create mode 100644 src/all/mangabox/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/all/mangabox/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/all/mangabox/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/all/mangabox/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/all/mangabox/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/all/mangabox/res/web_hi_res_512.png create mode 100644 src/all/mangabox/src/eu/kanade/tachiyomi/extension/all/mangabox/MangaBox.kt create mode 100644 src/all/mangabox/src/eu/kanade/tachiyomi/extension/all/mangabox/MangaBoxFactory.kt diff --git a/src/all/mangabox/build.gradle b/src/all/mangabox/build.gradle new file mode 100644 index 000000000..99a99d752 --- /dev/null +++ b/src/all/mangabox/build.gradle @@ -0,0 +1,12 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + appName = 'Tachiyomi: MangaBox (Mangakakalot and others)' + pkgNameSuffix = 'all.mangabox' + extClass = '.MangaBoxFactory' + extVersionCode = 1 + libVersion = '1.2' +} + +apply from: "$rootDir/common.gradle" diff --git a/src/all/mangabox/res/mipmap-hdpi/ic_launcher.png b/src/all/mangabox/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2fbde5dc41ccdcc94a20826bf207b14642a06acf GIT binary patch literal 3802 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 QQ2+n{07*qoM6N<$g7+#RApigX literal 0 HcmV?d00001 diff --git a/src/all/mangabox/res/mipmap-mdpi/ic_launcher.png b/src/all/mangabox/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd5f9b2ea39eb0acd93dbd0e61d365cb0ee3078 GIT binary patch literal 2079 zcmV+)2;ldLP)A&QAYj3yEl1XO|w-Uo+?h8SWz@DJ~3;_-)| zhNy`eg$Qa41|&fvhiH_bG+d>$^rEHo*lu^XmF_X-?YuYh=4d-x8ygch+3f6_d2hb& zcYMF!yb^1bbD|-50G;fVA{PT0!RTMzq*eR0imw0&SAGZ-WrWxygMa| zPBv8(=^CO)heSw2(yw&LkBMpa>3IVEW!Fe&kfQSmM7C;r4fanIB01Sv+p@E58yXuM zBU%PV1hOuhRsVi08ha$Ypp02MU?j}^lKBEzf=m?@V#>0NxO5+84Cy>MCk>M6PKV>8 zuCC5?01`Y2EdlaBZ$?#3cOsc^=q=BzH2#g5M30h`qt4Tbvs0AhSN z84+*?D=PcP25;mADU6uq%o5Ry1!D~ZD zZGAdRll)Q&jwb@z_-E>7o;XYkj6b850PUl}jE_f#a-e zU_mW-BkP-%Pi_2D>zVdIpe)$SEG}38yTgW9I8F&Emghr^FLIo3G}_J=z42pTYkl%R z8XYp11EqnW$^+Nl;e)@*jsx4zqo;M4x<;v-e3J84*5}K=M8F>?>*YHSi&elwZ(NGf z>O3_5K8OR`yK%0O)Du3exT?(>4LNbt#f&AXto4! zcfi@B5ggpnjg~)$Xvt@e(ImOT%RqV5DmIq-uy8U>z~?6f)Xg6WlQ}nfuxx!L%kT7W zS5pi>f7OlS2SXe{UZG?;pbeiU_Dx!!tdaqNfb0QvEdW+LQ-zuH-7*O#x4rEn_`oijZJG&}Crj}JMVd;A z_~NA|G#w6eO`MtDY3#x_DFP+FQpE#Y`@o{SvfhdNU#kO=SkBDp4l;E9A~vl(hD2P` ze#@c=+$0Furw8ZC^>i}nFRa(ruwHS-mmdnp;eC6KrVF$`u`!F{kz-k4) zJd(tfGX?B8n8bxJdAL&A6fJnQ^im^8gD_3NTjHl4;3PzjX6e9PH48pp7jAkqfP8PZ zDzQf*3G9FII5sb}KoCVdzblTHS7#xf5V7Y-5})i%;8dqXMAs8hu)0D^x1C~^LZYnK

T2 zB`^@78KvlO`d%3mP~S+wTRLwcu72`ul~)wS2L{icK=aN`s4PE?@X0}3RWge8%cKzE z*Gwcubo7ci)0ITiIT481arA5w``e;&ZtzwzO`xdQtMdT2K>@*P!!=L63-9F%6cQ?b zNPh;Jj^gC@%~(PuY6v)b@%%VB)m z*RGOhwsd9$*mjBmFp^+`U_tdQ_oD8$)yQ%xm6^YsN#yDGHe$}H2F%JWK#kpnTDwcy zEz^Vu8G8KmFZeOkWpLLFLda8O-~nAhlhnp$cc6ChgQ!__U;0=MCH5?vN+RdE`|zxX z_E6mBm=2`~yxjT+wq9tN3Icprsa{X%|Ea`^K#t3ey4%-a#*KHulBLvzSWgG$zWEeZ zdaD$R8(5wt$nO45Y-s-NpAjhZ6dTk5gQCVM6O%@}$A_7BK7sPbf|Ln;Z5ZVL;M!4!Au<@~(vOy)^r*bSsb#A6Kvj^{X}@uOx`sZ#|6% z{k6K7Cm5SX!f1#N;7Fto4Y3efMs(YsG6eGk3Mm0Pm2ZnxgtWkUsiH~huDt^D2L|xk zj4KgNjN(LW5WhwGa3U7M(dYn%5~GIUVl-%)K!KYPFxb)7fKKBy0M5_M7Ay#4=c4tm zD3T&=<}^DVW>{oEz@yFq1JGuGvo@F|C?lmBH-nsBW1c{PNB2M@$G6tnG*oztYXS1A zHCgcFHl_*W7ZfTF_3}2gfvMyd9m+YC#A?oK6{N+QXnWn|aJb$VES8mq zHGsyvT29ql!O|sD1e{4Z#H}N-=wkqe#v?#3&jC=8o9lShVzDlQfLz`aN-|4FD(JGz zOdWU;7>1bIH8L{15kMP&i@fm+-%-lk!YnEs>2`m377f zM#jk#2>DLuyJ7;CR6g=%l6-Zpoi58xB8!cu{7+!YOgYJg{s!f)M~lVQbC3W4002ov JPDHLkV1n~`*=7I$ literal 0 HcmV?d00001 diff --git a/src/all/mangabox/res/mipmap-xhdpi/ic_launcher.png b/src/all/mangabox/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..70bb7fc6bb7ea50cc3c7a81a102ab5193b0cf8f0 GIT binary patch literal 5037 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 DL-=^+ literal 0 HcmV?d00001 diff --git a/src/all/mangabox/res/mipmap-xxhdpi/ic_launcher.png b/src/all/mangabox/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1d1dcacd22053855ffa314e79c2eba1d0bde8ef3 GIT binary patch literal 8670 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 w8dY;2e>W=t==dAcQSDIyK%;8z&5!SY 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 Ezr+ + when (filter) { + is SortFilter -> { + url.addQueryParameter("type", filter.toUriPart()) + } + is StatusFilter -> { + url.addQueryParameter("state", filter.toUriPart()) + } + is GenreFilter -> { + url.addQueryParameter("category", filter.toUriPart()) + } + } + } + + return if (query.isNotBlank()) { + GET("$baseUrl/$simpleQueryPath${normalizeSearchQuery(query)}?page=$page", headers) + } else { + GET(url.build().toString(), headers) + } + } + + override fun searchMangaSelector() = ".panel_story_list .story_item" + + override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) + + override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() + + override fun searchMangaParse(response: Response): MangasPage { + val document = response.asJsoup() + val mangaSelector = if (document.select(searchMangaSelector()).isNotEmpty()) { + searchMangaSelector() + } else { + popularMangaSelector() + } + val mangas = document.select(mangaSelector).map { element -> + searchMangaFromElement(element) + } + val hasNextPage = searchMangaNextPageSelector().let { selector -> + document.select(selector).first() + } != null + return MangasPage(mangas, hasNextPage) + } + + open val mangaDetailsMainSelector = "div.manga-info-top" + + open val thumbnailSelector = "div.manga-info-pic img" + + open val descriptionSelector = "div#noidungm" + + override fun mangaDetailsParse(document: Document): SManga { + val manga = SManga.create() + val infoElement = document.select(mangaDetailsMainSelector).first() + + manga.title = infoElement.select("h1, h2").first().text() + manga.author = infoElement.select("li:contains(author) a").text() + val status = infoElement.select("li:contains(status").text() + manga.status = parseStatus(status) + manga.genre = infoElement.select("div.manga-info-top li:contains(genres)").text().substringAfter(": ") + manga.description = document.select(descriptionSelector).first().ownText() + manga.thumbnail_url = document.select(thumbnailSelector).attr("abs:src") + + return manga + } + + private fun parseStatus(status: String?) = when { + status == null -> SManga.UNKNOWN + status.contains("Ongoing") -> SManga.ONGOING + status.contains("Completed") -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + + override fun chapterListSelector() = "div.chapter-list div.row" + + override fun chapterFromElement(element: Element): SChapter { + val chapter = SChapter.create() + + element.select("a").let { + chapter.url = it.attr("abs:href").substringAfter(baseUrl) // intentionally not using setUrlWithoutDomain + chapter.name = it.text() + } + chapter.date_upload = parseChapterDate(element.select("span").last().text()) + + return chapter + } + + private fun parseChapterDate(date: String): Long { + if ("ago" in date) { + val value = date.split(' ')[0].toInt() + + if ("min" in date) { + return Calendar.getInstance().apply { + add(Calendar.MINUTE, value * -1) + }.timeInMillis + } + + if ("hour" in date) { + return Calendar.getInstance().apply { + add(Calendar.HOUR_OF_DAY, value * -1) + }.timeInMillis + } + + if ("day" in date) { + return Calendar.getInstance().apply { + add(Calendar.DATE, value * -1) + }.timeInMillis + } + } + + try { + return dateformat.parse(date).time + } catch (e: ParseException) { + } + + return 0L + } + + open val pageListSelector = "div#vungdoc img" + + override fun pageListParse(document: Document): List { + val pages = mutableListOf() + + document.select(pageListSelector).forEach { + pages.add(Page(pages.size, "", it.attr("abs:src"))) + } + + return pages + } + + override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("No used") + + // Based on change_alias JS function from Mangakakalot's website + open fun normalizeSearchQuery(query: String): String { + var str = query.toLowerCase() + str = str.replace("à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ".toRegex(), "a") + str = str.replace("è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ".toRegex(), "e") + str = str.replace("ì|í|ị|ỉ|ĩ".toRegex(), "i") + str = str.replace("ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ".toRegex(), "o") + str = str.replace("ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ".toRegex(), "u") + str = str.replace("ỳ|ý|ỵ|ỷ|ỹ".toRegex(), "y") + str = str.replace("đ".toRegex(), "d") + str = str.replace("""!|@|%|\^|\*|\(|\)|\+|=|<|>|\?|/|,|\.|:|;|'| |"|&|#|\[|]|~|-|$|_""".toRegex(), "_") + str = str.replace("_+_".toRegex(), "_") + str = str.replace("""^_+|_+$""".toRegex(), "") + return str + } + + override fun getFilterList() = FilterList( + Filter.Header("NOTE: Ignored if using text search!"), + Filter.Separator(), + SortFilter(), + StatusFilter(), + GenreFilter() + ) + + private class SortFilter : UriPartFilter("Sort", arrayOf( + Pair("latest", "Latest"), + Pair("newest", "Newest"), + Pair("topview", "Top read") + )) + + private class StatusFilter : UriPartFilter("Status", arrayOf( + Pair("all", "ALL"), + Pair("completed", "Completed"), + Pair("ongoing", "Ongoing"), + Pair("drop", "Dropped") + )) + + private class GenreFilter : UriPartFilter("Category", arrayOf( + Pair("all", "ALL"), + Pair("2", "Action"), + Pair("3", "Adult"), + Pair("4", "Adventure"), + Pair("6", "Comedy"), + Pair("7", "Cooking"), + Pair("9", "Doujinshi"), + Pair("10", "Drama"), + Pair("11", "Ecchi"), + Pair("12", "Fantasy"), + Pair("13", "Gender bender"), + Pair("14", "Harem"), + Pair("15", "Historical"), + Pair("16", "Horror"), + Pair("45", "Isekai"), + Pair("17", "Josei"), + Pair("44", "Manhua"), + Pair("43", "Manhwa"), + Pair("19", "Martial arts"), + Pair("20", "Mature"), + Pair("21", "Mecha"), + Pair("22", "Medical"), + Pair("24", "Mystery"), + Pair("25", "One shot"), + Pair("26", "Psychological"), + Pair("27", "Romance"), + Pair("28", "School life"), + Pair("29", "Sci fi"), + Pair("30", "Seinen"), + Pair("31", "Shoujo"), + Pair("32", "Shoujo ai"), + Pair("33", "Shounen"), + Pair("34", "Shounen ai"), + Pair("35", "Slice of life"), + Pair("36", "Smut"), + Pair("37", "Sports"), + Pair("38", "Supernatural"), + Pair("39", "Tragedy"), + Pair("40", "Webtoons"), + Pair("41", "Yaoi"), + Pair("42", "Yuri") + )) + + private open class UriPartFilter(displayName: String, val vals: Array>) : + Filter.Select(displayName, vals.map { it.second }.toTypedArray()) { + fun toUriPart() = vals[state].first + } +} diff --git a/src/all/mangabox/src/eu/kanade/tachiyomi/extension/all/mangabox/MangaBoxFactory.kt b/src/all/mangabox/src/eu/kanade/tachiyomi/extension/all/mangabox/MangaBoxFactory.kt new file mode 100644 index 000000000..6af9bd971 --- /dev/null +++ b/src/all/mangabox/src/eu/kanade/tachiyomi/extension/all/mangabox/MangaBoxFactory.kt @@ -0,0 +1,119 @@ +package eu.kanade.tachiyomi.extension.all.mangabox + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.POST +import eu.kanade.tachiyomi.source.Source +import eu.kanade.tachiyomi.source.SourceFactory +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.MangasPage +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.Request +import okhttp3.RequestBody +import okhttp3.Response +import org.jsoup.nodes.Element +import java.text.SimpleDateFormat +import java.util.* + +class MangaBoxFactory : SourceFactory { + override fun createSources(): List = listOf( + Mangakakalot(), + Manganelo(), + Mangafree(), + Mangabat(), + KonoBasho(), + MangaOnl(), + ChapterManga() + ) +} + +//TODO: Alternate search/filters for some sources that don't use query parameters + +class Mangakakalot : MangaBox("Mangakakalot", "http://mangakakalot.com", "en") + +class Manganelo : MangaBox("Manganelo", "https://manganelo.com", "en") + +class Mangafree : MangaBox("Mangafree", "http://mangafree.online", "en") { + override val popularUrlPath = "hotmanga" + override val latestUrlPath = "latest" + override fun chapterListSelector() = "div#ContentPlaceHolderLeft_list_chapter_comic div.row" + override fun getFilterList() = FilterList() +} + +class Mangabat : MangaBox("Mangabat", "https://mangabat.com", "en") { + override fun popularMangaSelector() = "div.item" + override fun latestUpdatesSelector() = "div.update_item" + override fun searchMangaSelector() = "div.update_item" + override val simpleQueryPath = "search_manga/" + override val mangaDetailsMainSelector = "div.truyen_info" + override val thumbnailSelector = "img.info_image_manga" + override val descriptionSelector = "div#contentm" + override val pageListSelector = "div.vung_doc img" +} + +class KonoBasho : MangaBox("Kono-Basho", "https://kono-basho.com", "en") + +class MangaOnl : MangaBox("MangaOnl", "https://mangaonl.com", "en") { + override val popularUrlPath = "story-list-ty-topview-st-all-ca-all-1" + override val latestUrlPath = "story-list-ty-latest-st-all-ca-all-1" + override fun popularMangaSelector() = "div.story_item" + override val mangaDetailsMainSelector = "div.panel_story_info" + override val thumbnailSelector = "img.story_avatar" + override val descriptionSelector = "div.panel_story_info_description" + override fun chapterListSelector() = "div.chapter_list_title + ul li" + override val pageListSelector = "div.container_readchapter img" + override fun getFilterList() = FilterList() +} + +class ChapterManga : MangaBox("ChapterManga", "https://chaptermanga.com", "en", SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH)) { + override val popularUrlPath = "hot-manga" + override val latestUrlPath = "read-latest-manga" + override fun chapterListRequest(manga: SManga): Request { + val response = client.newCall(GET(baseUrl + manga.url, headers)).execute() + val cookie = response.headers("set-cookie") + .filter{ it.contains("laravel_session") } + .map{ it.substringAfter("=").substringBefore(";") } + val document = response.asJsoup() + val token = document.select("meta[name=\"csrf-token\"]").attr("content") + val script = document.select("script:containsData(manga_slug)").first() + val mangaSlug = script.data().substringAfter("manga_slug : \'").substringBefore("\'") + val mangaId = script.data().substringAfter("manga_id : \'").substringBefore("\'") + val tokenHeaders = headers.newBuilder() + .add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") + .add("X-CSRF-Token", token) + .add("Cookie", cookie.toString()) + .build() + val body = RequestBody.create(null, "manga_slug=$mangaSlug&manga_id=$mangaId") + + return POST("$baseUrl/get-chapter-list", tokenHeaders, body) + } + override fun chapterListSelector() = "div.row" + override fun getFilterList() = FilterList() + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val site = baseUrl.substringAfter("//") + val searchHeaders = headers.newBuilder().add("Content-Type", "application/x-www-form-urlencoded").build() + val body = RequestBody.create(null, "q=site%3A$site+inurl%3A$site%2Fread-manga+${query.replace(" ", "+")}&b=&kl=us-en") + + return POST("https://duckduckgo.com/html/", searchHeaders, body) + } + override fun searchMangaParse(response: Response): MangasPage { + val document = response.asJsoup() + val mangas = mutableListOf() + + document.select(searchMangaSelector()) + .filter{ it.text().startsWith("Read") } + .map{ mangas.add(searchMangaFromElement(it)) } + + return MangasPage(mangas, false) + } + override fun searchMangaSelector() = "div.result h2 a" + override fun searchMangaFromElement(element: Element): SManga { + val manga = SManga.create() + + manga.title = element.text().substringAfter("Read").substringBeforeLast("online").trim() + manga.setUrlWithoutDomain(element.attr("href")) + + return manga + } +} +