From eff44e9643aeab89978064933f6386abfb8a8949 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Mej=C3=ADa?= <33939239+edgarMejia@users.noreply.github.com> Date: Sat, 25 Aug 2018 09:18:30 -0600 Subject: [PATCH] Added LeoManga(ES) source. (#461) Added LeoManga(ES) source. --- src/es/leomanga/build.gradle | 13 + .../leomanga/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 1319 bytes .../leomanga/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1539 bytes .../leomanga/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 791 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 3791 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 13241 bytes .../extension/es/leomanga/LeoManga.kt | 252 ++++++++++++++++++ 7 files changed, 265 insertions(+) create mode 100644 src/es/leomanga/build.gradle create mode 100644 src/es/leomanga/res/mipmap-hdpi/ic_launcher.png create mode 100755 src/es/leomanga/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/es/leomanga/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/es/leomanga/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/es/leomanga/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/es/leomanga/src/eu/kanade/tachiyomi/extension/es/leomanga/LeoManga.kt diff --git a/src/es/leomanga/build.gradle b/src/es/leomanga/build.gradle new file mode 100644 index 000000000..217d2e8e8 --- /dev/null +++ b/src/es/leomanga/build.gradle @@ -0,0 +1,13 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + appName = 'Tachiyomi: LeoManga' + pkgNameSuffix = "es.leomanga" + extClass = '.LeoManga' + extVersionCode = 1 + extVersionSuffix = 1 + libVersion = '1.0' +} + +apply from: "$rootDir/common.gradle" \ No newline at end of file diff --git a/src/es/leomanga/res/mipmap-hdpi/ic_launcher.png b/src/es/leomanga/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1a1d491636e14f284d5160b54256db1510fc4d5d GIT binary patch literal 1319 zcmV+?1=#wDP)g;K5Cx<})KCzK6cH#vG(l8Y zm;jbQA|_y;?}lP`cHaEjnf-Cz?0KGK-8XaJytgy+zJ0r6C-myAV}S@G0)%j208tJ` zYB>=_lQ~tx4z6JRUGUJBi82+05Re!`0HVwc)-NJ(WxU-Hive*iC#d=*W{Xre0l3E6 z?Jju8MQSE7A9lFdaEU>!q)@v#l*ER_H4=lBZXu`Zl-N+%lGx2_GwknVsIzzPp5mKd zmsPuK6(ay&ys=#y^E~Xc2Mc`q;7sewg%BX3YR4{Z5uTnFQ{dlm&Q_*&nD=XoErhx` zMc~U@YP>J*y76pcU%w?Wvu)j5OzS~nd|^yZUowr7vf1`kF<)il{Tg;~+f*wvgN86O zuDgnrX71uztC+)@#O)22Ke9k2iFr0wE>e=1VT~jvt)0Xg;*N0#lUUg5Bo>D^Ut&GH zi*cW$kyxr?sfvXqhDh_?!1?*>n(dFr0%v8Y=e7xX{VOB>IsyJI2kg!W+tIUCmIM0x zh-?FDcloDj{7jnb*UXF%j*0u`*C#kUE>i!a*XP*Zp=zAuaQxnPr?`E%gaGjN)hVv; zO=|g78vqs6L*1n7Zq_c24~M=FjSIyE)QvsXZ!3P;m%Fkerp#BI9wg?v2LQJW1d`BdU0F&{rkEX)T+C^0Y&ALqhd_%e$|Co$Kn zNiA;6FBd6EtcDMaP-2|J`&_sSf7Dg1tKTSos$yY2Fj9%Z)#t!n_@kB>8N86+R{SKf zFds+~OA>3%PZA6Bfe}g!)a=2pEnj9)4l0fqxlZF&oh+;|rQZlFJ%tYKtMANq;CkEf zONkX{uez70CsB10&9L&LO+18+Y%$NOwQF#ko!40xJ_L{#7fBG-I@cfCtL1^VR4g4- zR>ok5Ipdc6ckY~E8u+co?~g^rm;L}~K7Ia46k|szF#!1Gk!X;jy2Z>-Y=Xp^{(;1W zl9-f0ESCO&3nDSW;>TcZ>_w2+OS>87IpK$+r50D>y(<|OE8yYrDmX8ff9WTaHD4Gp znIA!fOp}<$k=qC=7YZyFO8Se%d_i2BV%pA>kd>i#XJpCh#mnV^dj>rJl)V8P zFR}YaE4+ViflE2?<-xLu&o1GsgC+KN&hXzE@a=D_N;VgyiWQ%q|FkG^ku4P#0;em1 z558ZNl?a+LfKU}vegt8RRZPZOR~6I!k5Xc0tXO<*5}Qtd?JYZl+L~|lXde{cx;pa) z=wh4opy=*IO}2xW(CX0MgIi0f zM{G&Vs%S(kqxinsSW7(Vw;S+ literal 0 HcmV?d00001 diff --git a/src/es/leomanga/res/mipmap-mdpi/ic_launcher.png b/src/es/leomanga/res/mipmap-mdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..968ee3990188b4be673878a159a3de6e2df42c68 GIT binary patch literal 1539 zcmV+e2K@PnP) zNGW1rOU@5R=GpI-;%;x}c4v0y?wupS$ky%6&V4(3J3BKw_voV^P8{F>00aU6I5-ff z;|3ylN#5_<0i$gP>CmPD2DNS4k@(#z+aQ*kZh8n9~;UIIl|sV`}h+}3on@Juop{XNwV7;YVZPr{YSQfG<% zb5c7V*|Fy&+$lVROdT`@?%Y_zt*e!wA+Z0n!QSDrzju5hTAR`3HNt0GwcI%~?Hw(# zf86x?)I?#=eEwdI?YB}zoOAf;!8v|EYGeo4fdN8a$KR}huRd4@5y3eJQf!*{<>Yeo z-Teg~J#}Fvol9Rm=kY;$eiBDCQ$k9h_DRDwsNID`)XZ>KwiFqb7D{sNs%{9NZcv=VN{|uz8n4F8ZPx#c;l+(;fgAfvR zWldm+k!?GHW!g*gkYjrE-qo~~2}#V?4@Yvpk7qIM9X2>!0yj1ZZ@(t5`pa|RkE1q| zdH;9L+X6egr?~s*Tpj-L^9DP+r`Xv&#pCCV zS=TyV2D5V!`ubH%Ki{%ePoHWN{iyV)W zW4yX1s~oTTPU{#}=Qk2dEPtp(^OQeSc*Ap6Y%bSEnklPU%6Kk{q`+K|O%il#(p$`U z5|Wbu2|ud?^LQp*T~z)6|ZbCAk>Xy(&mOniHTomQ5dPX5Uy5hj4Bhom0tFDvH)v*oglFjNO3(jXW z9G{4=UIB|GFtjgX-$V^LE=wM&QXyH(727aGeVg+;mBfz*5?;6hU*EZeyI*YJ-PZ$; zK=|aHHT?YL20q43y0k_~w^?aC4LJ@R*kz9lrnb410%5-2b}~Ye5p0 z*I^#VlWs{_tmr-oFBZVVMe4K9mcXx1nqF>$0${K2;nDfKsSL~R|y~9lz%i~ zp=+0h=RS#gUE(0C1YT1G!8;xdRzZGW+qY|M-=62!8>2q~D&}LY$hQf4DgSi(FEVm{ zTEANU@VeyEDI;;LN#zg8>~cpSZH!#WA_(dev6nvzM=kA)R|*Ff($9~C)J7%SwVXvq z{`wV7lk&;uumf=j|Q;?8^xZ$3MnT z+E#3}#p3^e%bc75fuqelWm@yT8hw0pZXf^s!vZzTT|TxiWhy?ia?D;3!d0ep=!);s zvfQmdKUWB>nVjOS`Z7PaZvO3EIyR@xZG1oHY&_NN%e-*oP399;tO~&lM##kJ*1Z)E zJ9^_|FwLcwpH<|YSHE*`s6V)yM_eErAYQVGwN zG=G|TVd48oZtc7mubWGycomV&M6&|Q-E?r*%7632?0;8$Jo*3g*PVszo0mV*x2Vlw zi&#~9-TK(~NZYm3->3*P#^ti@h<+(|Ap7zQ%>!6Dad4D?u3!s>u`pKx|SxfKFAi4L_jCt#K zy>N+{cuUM6{#4?l3BB&2{8QI|w6{JobteO>^bS+&Cgw_R@qWvQe5pJ2!v78&Ts_(H zj!irRLyXnC2frqp-D#0d$>Y+pIPfBVd2Hd4t~=kpM0~Gi=ROc&^ndzx-)BrYI}aRQ z#h%P#7R4yHzqjtrv(4pl+wR=ot~js$!^gMjpB|sQBf`Q^9=B^pc;Uq&#{Bl%Hd}Wc z>|LHKBfB+V_3~nSjmeA*531GgmG$yn@c5V(^K99Iy>5&rL>hD^erGuD^;}5TOYhgI z!Urls3rcPrymaTEO4(G)SxrC%J|I>22&e1JJ&a6~?>Uw1SN%I%LZ!TB&8H;e5`X6{ zFQ!y5EcpId*tG40=*EYZ|1VFx^6_FdJeHomN!)cu(qTWtOxEcxtgm{QfC-+#)78&q Iol`;+06u3>QUCw| literal 0 HcmV?d00001 diff --git a/src/es/leomanga/res/mipmap-xxhdpi/ic_launcher.png b/src/es/leomanga/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f3fe9fbc0a1bdfcc14b3450673613e0bbab31961 GIT binary patch literal 3791 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 literal 0 HcmV?d00001 diff --git a/src/es/leomanga/src/eu/kanade/tachiyomi/extension/es/leomanga/LeoManga.kt b/src/es/leomanga/src/eu/kanade/tachiyomi/extension/es/leomanga/LeoManga.kt new file mode 100644 index 000000000..e7970c08e --- /dev/null +++ b/src/es/leomanga/src/eu/kanade/tachiyomi/extension/es/leomanga/LeoManga.kt @@ -0,0 +1,252 @@ +package eu.kanade.tachiyomi.extension.es.leomanga + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.* +import eu.kanade.tachiyomi.source.online.ParsedHttpSource +import okhttp3.HttpUrl +import okhttp3.OkHttpClient +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import org.jsoup.Jsoup +import java.util.* + +class LeoManga : ParsedHttpSource() { + + override val name = "LeoManga" + + override val baseUrl = "http://leomanga.com" + + override val lang = "es" + + override val supportsLatest = false + + override val client: OkHttpClient = network.cloudflareClient + + override fun popularMangaSelector() = "ul.list-inline > li.manga-all" + + override fun latestUpdatesSelector() = popularMangaSelector() + + override fun popularMangaRequest(page: Int) + = GET("$baseUrl/directorio-manga?pagina=$page", headers) + + override fun latestUpdatesRequest(page: Int) = throw Exception("Not used") + + override fun popularMangaFromElement(element: Element): SManga { + val manga = SManga.create() + + element.select("a").let { + manga.setUrlWithoutDomain(baseUrl + it.attr("href")) + manga.title = it.select("h2.title-dirmanga").toString().substringAfter(">").substringBefore("
") + manga.thumbnail_url = baseUrl + it.select("div.image-dir > img").attr("data-original").toString() + } + + return manga + } + + override fun latestUpdatesFromElement(element: Element) = throw Exception("Not used") + + override fun mangaDetailsParse(document: Document) = SManga.create().apply { + description = document.select("p.text-justify").text() + status = document.select("div.downstate")?.text().orEmpty().let {parseStatus(it)} + thumbnail_url = baseUrl + document.select("div.manga-right > div.well-image > img")?.attr("data-original") + genre = document.select("div#page-manga > div.row").first().select("div.col-sm-4").map { + it.text().substringAfter("Géneros:") + }.joinToString(", ") + author = document.select("div.col-sm-auth").text().substringAfter("Autor:") + } + + private fun parseStatus(status: String) = when { + status.contains("En Curso") -> SManga.ONGOING + status.contains("Finalizado") -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + + override fun popularMangaNextPageSelector() = "ul.pagination > li > a" + + override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector() + + /* + * LEOMANGA UTILIZA DOS BUSCADORES DISTINTOS, UNO PARA LOS FILTROS Y OTRO PARA QUERYS. + * ADEMAS MUESTRA LOS RESULTADOS DE FORMA DISTINTA + */ + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + // URL PARA BUSCAR POR ESTADO, ETIQUETA, DEMOGRAFIA Y ESTILO. + var url = HttpUrl.parse("$baseUrl/directorio-manga")?.newBuilder()!! + (if (filters.isEmpty()) getFilterList() else filters).forEach { filter -> + when (filter) { + is Types -> url.addQueryParameter("estilo", arrayOf("", "manga", "manhwa", "manhua")[filter.state]) + is Status -> url.addQueryParameter("estado", arrayOf("", "finalizado", "en-curso")[filter.state]) + is Demography -> url.addQueryParameter("demografia", arrayOf("", "shonen", "seinen", "shojo", "josei", "kodomo", "yuri", "yaoi")[filter.state]) + is Genres -> url.addQueryParameter("genero", arrayOf( + "", + "accion", + "artes-marciales", + "aventura", + "artes-marciales", + "comedia", + "deporte", + "doujinshi", + "drama", + "ecchi", + "escolar", + "fantasia", + "gender-bender", + "gore", + "harem", + "historico", + "horror", + "lolicon", + "magia", + "mecha", + "misterio", + "musical", + "one-shot", + "parodia", + "policiaca", + "psicologia", + "romance", + "shojo-ai", + "shonen-ai", + "shota", + "slice-of-life", + "smut", + "sobrenatural", + "superpoderes", + "tragedia" + )[filter.state]) + } + } + + // URL PARA BUSCAR POR QUERYS. + if(query.isNotEmpty()){ + url = HttpUrl.parse("$baseUrl/buscar")?.newBuilder()!!.addQueryParameter("s", query) + } + + return GET(url.toString(), headers) + } + + override fun searchMangaSelector() = "table.manga-searchtable > tbody > tr:has(td:gt(1)), ul.list-inline > li.manga-all" + + override fun searchMangaFromElement(element: Element) = SManga.create().apply { + val url = element.baseUri() + + //SELECTOR PARA RESULTADOS DE BUSQUEDA POR ETIQUETA, ESTADO, DEMOGRAFIA Y ARTISTAS. + if(url.contains("directorio-manga", ignoreCase = false)) { + element.select("a").let { + setUrlWithoutDomain(baseUrl + it.attr("href")) + title = it.select("h2.title-dirmanga").toString().substringAfter(">").substringBefore("
") + thumbnail_url = baseUrl + it.select("div.image-dir > img").attr("data-original").toString() + } + } + + //SELECTOR PARA RESULTADOS DE BUSQUEDAS POR QUERY. + if (url.contains("buscar", ignoreCase = false)) { + element.select("td").first()?.let { + setUrlWithoutDomain(it.attr("onclick").substringAfter("location=\"").substringBefore("\"")) + title = it.select("div.title-searchmanga").text() + thumbnail_url = baseUrl + it.select("div.big-imgsearch > div.lit-imgsearch > img").attr("onerror").substringAfter("src='").substringBefore("'") + } + } + } + + override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() + + override fun chapterListSelector() = "ul.ul-chapter > li" + + override fun chapterFromElement(element: Element) = SChapter.create().apply { + setUrlWithoutDomain(element.select("a").attr("href")) + name = element.select("a").text() + date_upload = element.select("div.right-date").last()?.text()?.let { parseChapterDate(it) } ?: 0 + } + + private fun parseChapterDate(date: String): Long { + val dateWords: List = date.split(" ") + + if (dateWords.size == 3) { + val timeAgo = Integer.parseInt(dateWords[1]) + val dates: Calendar = Calendar.getInstance() + + when{ + dateWords[2].contains("segundo") || dateWords[2].contains("segundos") -> dates.add(Calendar.SECOND, -timeAgo) + dateWords[2].contains("minuto") || dateWords[2].contains("minutos") -> dates.add(Calendar.MINUTE, -timeAgo) + dateWords[2].contains("hora") || dateWords[2].contains("horas") -> dates.add(Calendar.HOUR_OF_DAY, -timeAgo) + dateWords[2].contains("día") || dateWords[2].contains("dias") -> dates.add(Calendar.DAY_OF_YEAR, -timeAgo) + dateWords[2].contains("semana") || dateWords[2].contains("semanas") -> dates.add(Calendar.WEEK_OF_YEAR, -timeAgo) + dateWords[2].contains("mes") || dateWords[2].contains("meses") -> dates.add(Calendar.MONTH, -timeAgo) + dateWords[2].contains("año") || dateWords[2].contains("años") -> dates.add(Calendar.YEAR, -timeAgo) + } + + return dates.timeInMillis + } + return 0L + } + + override fun pageListRequest(chapter: SChapter): Request { + //= GET(baseUrl + chapter.url, headers) + val response = Jsoup.connect(baseUrl + chapter.url).get() + val newUrl = response.select("a.cap-option").first().attr("href") + + return GET(baseUrl + newUrl, headers) + } + + override fun pageListParse(document: Document): List = mutableListOf().apply { + document.select("img.cap-images").forEach { + add(Page(size, "", baseUrl + it.attr("src"))) + } + } + + override fun imageUrlParse(document: Document): String { + throw UnsupportedOperationException("imageUrlParse not implemented") + } + + private class Types : Filter.Select("Estilo",arrayOf("Todos", "Manga Japonés", "Manhwa Coreano", "Manhua Chino")) + private class Status : Filter.Select("Estado",arrayOf("Todos", "Finalizado", "En Curso")) + private class Demography : Filter.Select("Demografia",arrayOf("Todos", "Shonen", "Seinen", "Shojo", "Josei", "Kodomo", "Yuri", "Yaoi")) + private class Genres : Filter.Select("Generos", + arrayOf( + "Todos", + "Acción", + "Artes Marciales", + "Aventura", + "Ciencia Ficción", + "Comedia", + "Deporte", + "Doujinshi", + "Drama", + "Ecchi", + "Escolar", + "Fantasía", + "Gender Bender", + "Gore", + "Harem", + "Histórico", + "Horror", + "Lolicon", + "Magia", + "Mecha", + "Misterio", + "Musical", + "One-Shot", + "Parodia", + "Policíaca", + "Psicológica", + "Romance", + "Shojo Ai", + "Shonen Ai", + "Shota", + "Slice of Life", + "Smut", + "Sobrenatural", + "Superpoderes", + "Tragedia" + ) + ) + + override fun getFilterList() = FilterList( + Types(), + Status(), + Demography(), + Genres() + ) +}