From f28161c28b09a6b37e8e260d894b567775e3b766 Mon Sep 17 00:00:00 2001 From: Creepler13 Date: Mon, 17 Nov 2025 13:13:48 +0100 Subject: [PATCH] Add SubManhwa (#11683) --- src/es/submanhwa/build.gradle | 8 ++ .../submanhwa/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2452 bytes .../submanhwa/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1289 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3317 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5945 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 7996 bytes .../extension/es/submanhwa/Submanhwa.kt | 114 ++++++++++++++++++ 7 files changed, 122 insertions(+) create mode 100644 src/es/submanhwa/build.gradle create mode 100644 src/es/submanhwa/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/es/submanhwa/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/es/submanhwa/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/es/submanhwa/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/es/submanhwa/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/es/submanhwa/src/eu/kanade/tachiyomi/extension/es/submanhwa/Submanhwa.kt diff --git a/src/es/submanhwa/build.gradle b/src/es/submanhwa/build.gradle new file mode 100644 index 000000000..3a035ad3c --- /dev/null +++ b/src/es/submanhwa/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = 'Submanhwa' + extClass = '.Submanhwa' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/es/submanhwa/res/mipmap-hdpi/ic_launcher.png b/src/es/submanhwa/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..eadbe5e25116f19783cb2687e2a9ba9ca8df6ffa GIT binary patch literal 2452 zcmai$dpHw{8^`B9Gq<^Ah}?!GMXn*2a*4SdDTKD>j0$mv5fPeMEW$E0mtn*>x#ZFj z4b_g^Z=Eo=<$6ptBEs=|p5Jqx-+#Y9-uM0E{qOs{-|y#5bA#K9f}kJ(03hnbpvUFFdQMj01ihTa| zW2MyXJILo%8rh_evS=jXS@4~L8~GI(F(&j&3n>y(bTfjWhSoT2flpcHp@3`@LQ;a= zR5xjgo=~!zMUvDzr)EBg^|mfewJ$|?aG&j=REE{kmkJ!7;*Rf@;s#l1$msTB~pg?W?ON--N?=rV7k{{J`E#*G%7HNG@I50^!aJ5QTTs&Ubzyu zjA=7;T~X;qoedEd5m8Ixq$RZ-X_Tnt0C3L)l&bL9S@Zs{c>i6nM22roCvmQ>V=gAH zgv#h)4@yn~Ef~O>y1K7EnO=1GZ(BotO~0hdlX$LGOcG5$g@~K3Lr6R)Kezb}L_eHJ zGAywj#@Y{9piD?nwI^dw;SrsG3RbD`s?BveIW!2Z=;HD0XK;)^tm_O$iO*kR<$7`z zRP z-?ieZ0U<8i%VAn^@#h0svrQ^=pX^Igbo1@eE1o9~16~bYpGkB#s6Y%eq@$%0b1w(+ zD`L4yJ2=6cs|56kEQcx;+B9)Nc_Z;`r?_x0Ig8|Ol_|C!X?Yo_z@MAS;eFhpH`2(;HcZ0f!J{Vv*fSt4(DR?+dnTT^FKxWckK5S<5#M zZg`7jkbHhu6iMw9tFjSG9m92z4^z50odyZcv@D0xs@CsfWgr2RrOwAmdZrdTsC^R1 znoFD-kfV!6BbxsTZhX$mcU)qUmQ+Iz`M8&A)%9tZ;9XTMSvjs6HW}q0KKT$pud)Tt_AZ22(3Ql z$;fMU9JG{8R`X>E!Lk{jh6NMo(1oQw#t)0Vs+42<3z<4H$H<%f5i@(h2MDw7Whpld z+eA~(`OS)JLkSq1c$n!nWf@Q5TrVoVpicLDctWjo%3}4VHLB9jDvB2!mB6$9{+hG* zYknc4FzcO#e>B_#s0XWadD8iZTky|d-g(jUG4Fv@<2@G6Ri`iADZAQ z!RrITo9{iHq&XJAG-tw4!>_ZW{km=MLe{-@C(rz%Y|mWb28D%|WZ4?s|MRzjS)WkL znm)Rr4^+p+?H$sbbuXI4_0nz$ z&F#L3>+W+-DQ^Tv%E$nTV0*t-$+P94H(9obKO&T<+34AX7y)1gRFF1}YjcvCrxX%T zrbbB0Tan;kb?e8@g-&WFcPqt)gtPDJ-8(%m*KfboH(A*dm%FG9X(B=R)IGE-YOmv} z?YV9N!KGboZ97KKBIVk@`aDeiv??ISzL}#P)$`&Wj9PeeC~YV!5wk1oZgUy z@|pYKijFUeuVZgEpv^Sz>3r>3au5HkQ(aoJQE$Sqf~*~!|T@{3|0blvGEotCxP`}ia@tQ?l7vR15_MnZ}Qmc@2}`I zHoq)hjM6TI!!T52aD-+7Tv_i1I!?iX% z=dza07ElsOdi0VpDJdCm1HY!?z?TJik(t;<;K zPBWyeErz?eL8Vehyh*uO5?J-UNTh~_M!`)a@?bZ_KhotV=`5I;Uy9HP*ufKIQe`TNt`4220a8ZE~Yr0zO_ z)rl;IS)=47=dBQol;0!Q#$A*xtD#{^CJmy>>*nGIc zczsvRPU1)AJ$JTkH%8ucJ0^$7lH+QH?5b^RSmb2BLKa7VH@E+n(T76O4XQb21Jde8 P-xk2}BHXUl=0?&#^3I54 literal 0 HcmV?d00001 diff --git a/src/es/submanhwa/res/mipmap-mdpi/ic_launcher.png b/src/es/submanhwa/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a02ee761bbbab09ccc0afb428a5bb36ff2b7a9c4 GIT binary patch literal 1289 zcmV+k1@`)hP)Y17muO>B8+@sWr6WSgcBnqbkS zv=23XFd?x`3~8y6l#0fn6lvLjyX9KtR#b%Lw(Mmt%^8*{Ygw~Ibe3elgzU_J&J4eA z&N(}0fWjt+lD0M}5dpb*ngBVr`bQ1~|0lm{JAgHV)z#H$YHDh}WEkc>ilVkk2V_7H zgejI~8|&-qKdr5;U6c;^SxZ2%xVU&$tJR*6Dq(=jK~dBe0OaOI1Y{v1 zAU6>KxrqqKP3QtV?-wAuQd@EbX>$dh4Op54Kq+YQOQrp1C1e4f<)(Pw|AUc0bd*Bc zCvYBLfa7XNTXN1u@yr5*CqqdBGzFTW!F&HZk5)1A^?<;UcL-pt*MY9fKV#3^RY=Ir zlzO4%>^CSmb`)B@9;9toQ#11Sm125y9J7-TQLw)(X!sFZFKC4VDFwMwEfhi)See8e z%i>b)DI^z|QB-*VBi%h8Zd=I9~bTBFf*x{SeTx{V0$NaR=kPMOP8V2>0n4s1nYKVdUQg}VJY7a`>!{kiPb}?QRBhD zFp7^@#271#L{MB|7 zWgj0$+qd6i+b#>ndhB4m9%y1>usAb|qQeK#*VYb>^&!!mjp2?zkiKUZT+Ugz=jM^} zavu6`w8LC#g{`?|S)Lc5(rREmehjxR{s5lmkoU%GD5^TJ94=%5|0HI;UNoOMM_x=( ze5f3)4c|fF1?;W)5Wh8C5KoAH$%x!iD~39L7v+-kbHzZZg*!0bMukWJSZ2knmoKy@Vpv=t7Ol@pz{46UgtCC?DopeM7SeA7S z3=A|?S6831*=+X!c%_3u1V~Lo{?!CP4C zCu`(j?VdLzELpD;3G#*&5S}1cuni+3AUFR4L@ZZNuKUF!00000NkvXXu0mjfMutX6 literal 0 HcmV?d00001 diff --git a/src/es/submanhwa/res/mipmap-xhdpi/ic_launcher.png b/src/es/submanhwa/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ec63635ebbb4c14b1662dab58ffb251c313393fe GIT binary patch literal 3317 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 D=R-YL literal 0 HcmV?d00001 diff --git a/src/es/submanhwa/res/mipmap-xxhdpi/ic_launcher.png b/src/es/submanhwa/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..49f00610379a665779aa9e4cb2847a92842d6862 GIT binary patch literal 5945 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 BRMr3h literal 0 HcmV?d00001 diff --git a/src/es/submanhwa/res/mipmap-xxxhdpi/ic_launcher.png b/src/es/submanhwa/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..7e902a1acd37126c0d772bd26dcb9bb32c45ed9a GIT binary patch literal 7996 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 BEg}E_ literal 0 HcmV?d00001 diff --git a/src/es/submanhwa/src/eu/kanade/tachiyomi/extension/es/submanhwa/Submanhwa.kt b/src/es/submanhwa/src/eu/kanade/tachiyomi/extension/es/submanhwa/Submanhwa.kt new file mode 100644 index 000000000..20ca74971 --- /dev/null +++ b/src/es/submanhwa/src/eu/kanade/tachiyomi/extension/es/submanhwa/Submanhwa.kt @@ -0,0 +1,114 @@ +package eu.kanade.tachiyomi.extension.es.submanhwa + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.Page +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.source.online.ParsedHttpSource +import keiyoushi.utils.tryParse +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import java.text.SimpleDateFormat +import java.util.Locale + +class Submanhwa : ParsedHttpSource() { + + override val name = "Submanhwa" + override val baseUrl = "https://www.submanhwa.com" + override val lang = "es" + override val supportsLatest = true + + private val dateFormat = SimpleDateFormat("dd MMM. yyyy", Locale.ENGLISH) + + override fun popularMangaRequest(page: Int): Request = GET( + baseUrl.toHttpUrl().newBuilder().apply { + addPathSegment("filterList") + addQueryParameter("page", page.toString()) + addQueryParameter("sortBy", "views") + addQueryParameter("asc", "false") + }.build(), + headers, + ) + + override fun latestUpdatesRequest(page: Int): Request = GET(baseUrl, headers) + + override fun searchMangaRequest( + page: Int, + query: String, + filters: FilterList, + ): Request = GET( + baseUrl.toHttpUrl().newBuilder().apply { + addPathSegment("filterList") + addQueryParameter("page", page.toString()) + addQueryParameter("sortBy", "views") + addQueryParameter("asc", "false") + addQueryParameter("alpha", query) + }.build(), + headers, + ) + + override fun popularMangaSelector(): String = ".series-card" + + override fun latestUpdatesSelector(): String = "div[class^=manga-item]" + + override fun searchMangaSelector(): String = popularMangaSelector() + + override fun popularMangaNextPageSelector(): String = "li a[rel=next]" + + override fun latestUpdatesNextPageSelector(): String = "no next page" + + override fun searchMangaNextPageSelector(): String = popularMangaNextPageSelector() + + override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply { + title = element.selectFirst(".series-title")!!.text() + setUrlWithoutDomain(element.selectFirst("a")!!.absUrl("href")) + thumbnail_url = element.selectFirst("img")!!.absUrl("src") + } + + override fun latestUpdatesFromElement(element: Element): SManga = SManga.create().apply { + title = element.selectFirst("h3[class^=manga-title] a")!!.text() + setUrlWithoutDomain(element.selectFirst("a")!!.absUrl("href")) + thumbnail_url = element.selectFirst("img")!!.absUrl("src") + } + + override fun searchMangaFromElement(element: Element): SManga = popularMangaFromElement(element) + + override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply { + title = document.selectFirst(".widget-title")!!.text() + thumbnail_url = document.selectFirst("img")?.absUrl("src") + description = document.selectFirst("h5:contains(Resumen) + p")?.text() + + val box = document.selectFirst(".widget-container") + + status = when (box?.selectFirst("dt:contains(Estado) + dd span")?.text()?.lowercase()) { + "completed" -> SManga.COMPLETED + "cancelled" -> SManga.CANCELLED + "ongoing" -> SManga.ONGOING + else -> SManga.UNKNOWN + } + + author = box?.selectFirst("dt:contains(Autor) + dd a")?.text() + genre = box?.select("dt:contains(Categor) + dd a")?.joinToString { a -> a!!.text() } + } + + override fun chapterListSelector(): String = ".chapters li" + + override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply { + val a = element.selectFirst("a") + name = a!!.text() + setUrlWithoutDomain(a.absUrl("href")) + + val date = element.selectFirst(".date-chapter-title-rtl")!!.text() + date_upload = dateFormat.tryParse(date) + } + + override fun pageListParse(document: Document): List = + document.select("#all img").mapIndexed { idx, img -> + Page(idx, imageUrl = img.absUrl("data-src")) + } + + override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException() +}