From a0457871e2fbbda9d7ff89c2c5f4546a0da0f93d Mon Sep 17 00:00:00 2001 From: bapeey <90949336+bapeey@users.noreply.github.com> Date: Sat, 2 Mar 2024 03:21:29 -0500 Subject: [PATCH] Add TMOManga (#1638) --- src/es/tmomanga/build.gradle | 8 + .../tmomanga/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 4340 bytes .../tmomanga/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2469 bytes .../tmomanga/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5786 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 10842 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 14912 bytes .../extension/es/tmomanga/TMOManga.kt | 138 ++++++++++++++++++ .../extension/es/tmomanga/TMOMangaFilters.kt | 62 ++++++++ 8 files changed, 208 insertions(+) create mode 100644 src/es/tmomanga/build.gradle create mode 100644 src/es/tmomanga/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/es/tmomanga/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/es/tmomanga/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/es/tmomanga/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/es/tmomanga/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/es/tmomanga/src/eu/kanade/tachiyomi/extension/es/tmomanga/TMOManga.kt create mode 100644 src/es/tmomanga/src/eu/kanade/tachiyomi/extension/es/tmomanga/TMOMangaFilters.kt diff --git a/src/es/tmomanga/build.gradle b/src/es/tmomanga/build.gradle new file mode 100644 index 000000000..519365dfd --- /dev/null +++ b/src/es/tmomanga/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = 'TMO Manga' + extClass = '.TMOManga' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/es/tmomanga/res/mipmap-hdpi/ic_launcher.png b/src/es/tmomanga/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..54ad7060f46c015c16248736b3f37aeb242269d6 GIT binary patch literal 4340 zcmVPx_u1Q2eRCr$1Tnltn)tUazy*Cf?BoBEQLP7!|;b9C23{@Be#KA{>w1PUT)pi_f zoz{*}3uUGSEd%QCSTbs9wQFXLZFQ>cRELTnhPU!81foO*1__u2h&3|j?=-$oQ9~&{r7n8re0AOGWmiO| z(Ej!Aq^!{I`=_mVZg{Y;_*d=W{>rGTW~z$fkUhdU0;D6taxT`V6(D0_yt0S3=jZGLI?{SNA8+~R zCw~JVED}!{K*Wtw3fFF2rVdJ9rUKNhtd)kUyN`%n>^*1q(&)tlVLl-Rh#6FCWAwv3 z%M8r+$V@xx>+4z7wd{#i0D>YG$wZm}l0NLY7nl1pvlsK=@H9;f9PMe7RlF*B2gm3q zE^z3$(aw&w!R3pd2GFem#0M)U24xI;cEfUiR?Z?`3nXq6$ ziW|oO)~z{~3;>{x_I1G(iwQtot^hIE5e89!d^$ierZ~8j8MIgxF|BcA3M=Be!`T?5 z>khj_>~uKoVjhkGOvKG4=3Q6!GBXI% zO$}h(wI^mz`~Yb{m;hxCUSt(#YxpIeAQNTUmVi#Z&dw~ly0KizBF;8LEzf(6VC=Xt zrfN(O0mQ11vj(l+uw2O+Of`u8SOL>mU@=ap6N1E0$Ibe*D}#hdpbnsnLCne;O`I7d zs^%FN8?tJ{a(}i7keEqkR1*~|CT{Ya$mE6Qz@EUdCZBHZB>;z9O31|wfJDG(q~Y&~ znH7_Fdsz`YL}`Mvo*lREU_-JBM=}=b6D7A0MSh$3efkT z22?#!v;ZXB1=7Pj0Z1V(W^pGebG*2f8+!y%O$Lt6kC;VbAoSqCu~K_PbFnMyf-9b4 zGU+%Nl)vhQ<$g<;mkTz}EoZ^DbBkRAZuJ?^jq9c`n^v>qam?d1$)tnERsvAly5Q3u z0kW1F20%7Y^oD%?Cy7L?fXD2SL_gV{kBwE9lryS%rZImxKo((-0rUg8i}8et{Y6EZ z0OS)SiWW~|x)7f*h+Tv=!?K~K_b98myt$UnQdI-ax(%x_mS|8M3}P&G1c*<6EQYc! zVG%ehe4c=_v4}=O!)y5=l(iTDHm6Rzz1g1V)4o0Fl)6s?E>{uPT!u`0l zr~r4Cj>Io&KgFS@i+(G?Ek zd}lXiju?gy8(Q%Aw!QdH)i`{&YCK*%@-f!`u@>*#H4ph|sW{ZsipnARXzK34qg!|5 z*_l%@Ys7Fo^xjS!ZM}q_&Ao~CGxx1`QFpl=Z{9Hne>Hpv>btse&)e_gd{;MJq$N`- zQGM+thiW*{>;33J|j7d`#`c>VU-bd`surQ(sTd$7H}AqG%Se;7|xe?%ATCpS*U zE63_^e?=)iz0`(>x9mc3RtEZ`D(bGZqdywO)S>x!p8N zhI!&*ibbTW@4Jlx^w8#=XzA(20~Muo6_b2^G<0`kSlS>Y`~4K4!z~x_>Mb+zFZ+++ z<)bHXOHlz{oi_vD+`1bNj~_z;3PvJ0)z*P=c{y~#1R%oF4YQ}?wG$^Xzjy?;oVkFf z_x&*j5Lx~GO)WUwd=XFGa2IM<=`M=$QIYq;< zc=AL%wd(*DjxC|9e(P`FqlPY>Qi{p~N(Z z0OZRed63DV?F()f0`#qIdvLJnB63nw@P~WmQGi}K_9^y0a3_vmyn>$}ufx|WMq_MF zHXeL;JN{`}6*7_n_}-3v=njQ(e|ZU(POZcvTXy4z)2>HnD2&Z#>MjXuYji-F)xgAQXwyUH{Zp@zCOG*e-_4&G-BrgL{$~f+&G!0 z4&i8&YR}T$2dPWmHKqvv@WF>PXxv>|gf+9K;gPMo>3kE4VuM#|0I><(twkefblH2M z8NHDRMrCE9YDgXp^Nrm-)aYA^uEpuLPRg8sU%`aD9GV|BboHR7^)hvxn+k>@;8W;x z1n@CAS(tcDF3o#LTCwXw6Pmkwk&%>yn+u22$kx)+hq1ZYc<)R-IznMg8j?@PKhV@l z(}42aY|7BKPzVPbTPX`?kGz&f$6fVJxEu^(NLngp77W9Y*2^?FBn*)CT#P2s!ZhDZ z7>pMyjZBuyMlIz74YmAX552&?lx43h9QK)wb4Z7CIySYD0_3Hd&w6G(cP?hDxws_C zp@7wISxXkt?vdprNnEQ*D|K@ZNKmc`Q@(^4L;#W<`jNLAF(Rv_@mI zF}8(K*U15NKc^ER^d|wxZmL!#3a_&#^z7-Vi`!a{Z>$W7Rr3P2T54-;V!GcCFb~pR zUeFlial6CSK*1r91Vmw#@6oNix|YGFgf+-oYKUdW`F(eGuO{YVLIt<7j^FqaX<*E? z9RQTno6=g0b#uq)m(qh~r8yQsEECrcJ}r}PSrZ6J9P>aLc2i-cS(29RNh8QERuVGY@_uL?+(UdS3j zIxgVOeS44@TjwHK&dK4MZZ zI%A9T8ay%`Ni;ilo3BWu6`)JiUjp%*2c-)Dl8d8-{0=H=y+!{fn@on1GZuIfW0q2J z(ko#GLCPSz8W>tCTR{y7!MVC9#;jD6TK%n$m}^FQ?E9qWUcD+XS&VA5fJ0m6N6@6*y3eC zsq1;9S|rk`oH@C;@8vbG1L$%2#vwN&`jyP&36qNbcQ5=8B{y%Xqpo<4a-vc}+f0pH zW;~23>XXy+%a;z|?O#3|s;xca;VYS(=aH0IV)qVz`L;q5*%@Ldyj<6_|fP|8g z5h+t{nu(meQYb$9j|H4Q{2QeXm8)AvU&MV?4XJIHPW2z$vkRwBpVz_ZqwXcZ*p1nK z;%WfW^dABaxhDR2TtvCu))dXMpb7U+M<)M7Af#&!(H-)l5c7`(ycMgg4TMPn{fB@< zdT;~Q+uFxra2!qP*pl`}DoOz9*MA)U1BO>a4N&auL=1Lu ifke8F7Zg+F75pEDA@AA$)K$*_0000Px;Ur9tkRA@u3T5E7s)fN8Ey$K1Bkmhm|3E>e)l!q0W*iIB^@sUQcF(kB38zEz- zg$}kqtf9(i`=d;!)tNdKqomkDD`c?1!~znbmQpb=1`--XMWBV?1(Rr=O5V@Yo_+TF zoO5%+aAzPn=kBxj`quiswbtGz2BePxz>IoB{_+O=?pTn{Igb0*Q2z0H&i5EPfuDKY zS2bY3q)zlViv+;m12@3$0OYm2*NtkC-3Z*%TZmPY%Vtd#=@Wdd~z^**&hc@IE2GSz}*6qI1wNn9fMh5_drk7W=u`rpVG8CI{x~IqMeH{RKUe*J*kU7sF z0Q*bVh5>Z=10Zo;@w~8>GFhS%)dtnI%5@$gC;xc_xIXMT2|=ZMebE6B##{e|(zfid zBR~xj01TKU?Jyr&b(8r+61hYt+c=p%PW}_XE&^u0VjLI)0M|ALp!7wAI&3MCy1a!e zVC!kvE&GtHM(9eNB6(j2KoTG|!6{-OG>t`o4zd@N#Hif2J<2kcFwP!tLuM&gbUJ#v zl$oh#AP!)|+AvI`L$Y730|qHcHUMrA$0`^__{qcLMjb&i;#10F%Y2)FE(MPw^)lXC zrN4BYhloYOCmOiPihvwz+&ry@*^eGoj&Q=qBo&W@;Z2&KC zw?*vIfJF1WTXhy$#H-z~Ql-sg?tO>o?U40v&?De%B?y3234j7bii+ZSDeLIt6{8gD z`K`txojL*7`jS5m04kHT)`7cCX18d_T#cu6<^2(_!~(hu$lQ0-0=1Y8PzrgbQI>^LUV7bI1DY`8 znCSW4T3)14r8U$tkpxr%q^EBNz@wF*mDoTiT=sg~yigMENVT$-{plJSf?*gq(b$5X zp<(1_&cyBu4Y)0wjNle>QI6fX*&z!@j*SZmkkHdH8&O}X93;xsjB?;%a z0Nj<9iU%@g;E@GcINta<&a`%5^@2?7zZgNoS6z61c@A#d{wCggI3L^2UO++CY-~CG z2_CzBK0a*i#G%MlY`=dw7FX=WqYH1wP3*)1r4hBO zS0XkL#8(3YxH&lqEB^L(R6dl8x!ZQ*H%qb+YXq<)Jp~y_Q*gfHOJt{pv3SQ`{5fwK zTKoEmx*t1o93PadA}RBkV|6IKBU*B9;J@2@TYj6ymAsS{%93gu2x$F*G`g34tJ{PK-n0{==wz=swKZwg;Om z0D%COOix98Obn7@V-Xt@MB%=}s9KeW1DCGg-dWR;vvWUAttrHw3k~>I`ZUA@0%+>) z!M;lo!1<0qhybwFbh@MnPgd9BUlxEzR^rKH zwYWAgh&}oD;oG~bQ2m2^tUh!UzsSB7N3S;H`?t(NS^ZgDzSf1EEAGK_wP)~j&h4ma zZpHE$H=+3LcTut8Zsb-T!rMi8WUl&_cJvRApr*M6o9@cSgL~h>`^5$L$ETkWjcj=D zB=%p5j0eD9cowQE%)_&FXYhVg3-%S{;)$at(AqnI14ViGPUS&7e9IjCbkPEwZSNqF zdL?%m{&4CeeB9PS#?&^qqHlNvzddmpoA0?3AGUU&WMLM*_tp{Q&z*&W%vpH+-5T;; zc;ZBCs;NgpYzzuAXX8ijRAb{e77?*O`+rBcMu6`EY=;vKB$o*QcD}PS5%1rmE2*bb zzE^4k9mHEGX+tm1tENp}NO&gn1|Vv&4d6uqz|QmZyn_}ddr`Ym+P6g2R7;mQGGSB5 zrxD)93xnj}{H0MK^tBgXYjbuPQpsY@k+yqmA*HZMAtM#qb>~H+>$2bAfu;?Q?<`~k z5VRo+%Yhh&;lj(}97w05zV~(a|Cn_^RN|z~0sxPE$;KFNxJt8m4nYG0}vu5w!qmz(iI++M!7!|%HeOi>~r&g^w>6GPb< z3hm5=fpoNoUWfyfZKRj+g35#Ph9+7B7y#WEz63cza4sm1mnq}mytdDdZo2r^83B(S zS>onxE?G$L|Al8{VtMPpb{RQ3VW-dz%bmGjKAZAQp~TIvk}M<(QeVrpsF9oMrbkJy zW9TYcB&4$a zztu=dEsic+S*)}aQ6PQ`Q}h6+VKZC5`0L^j~1?#b~=R_COc=#)yUecFB4(Im{00 z#)P)Py0R7pfZRCr$9T?ueiRkmF(0|`mUKnM^5G7mBcGD-jkK%k`&!B$(_p44{euKHg= zyY1?7YFqt&wZsYgYauOI4j>?tAm9WlApH>(5dj&5KnNtvnUnWxpF6yJ&v4Iqc`p(E zt)j@wJ@=e_*4lgRea^i%FNE{y2muJ6PX_C4r71;m{69n>irF_t(&{1vOl=lcC?+my0cq0GGJ{$={}Mbun;LoU zwKJc)%60;t{?*(6+n>!kHuYo|^gj38liB9tk$*gk@bxwI;a)%}nJkknP+48!IT87h zexka=KEnPp-kJLQ6)P3brJkY0L3#V!p6nCid5;y6HctBx!Zk@D>_`uV=2fo$a^|cC50hTWviL4L4R;0v6wdF{c4P!jeETJ0)Ok z{laIR-w*8boc$aFd@o+2{ry`l6GI`iZl1b3z2xA}w?6QfJpk%#A_Ak{Bm$^SV%I5C zTDF*UgWQ zP1#+!df|v8ix!pHB*?_Ug-}NTohR>aHt?m{e<=wiJtXT*kO@g6Ilu|7wlSr-9BKq`Rjf|+v<26;XK%XcP^5Ci!!A;HtR zkpy|-HYfsO^?q`7!l7c?Z3O^M0;r4!0XYRT=N=FNwJQoQGd2rOTW|W&X}@2Ycqptv zTpP~)2Jk*=4{it$U>bZ_e%eo~JQbMJ2XGnkzw}Av%Ilz%1 zrPn(~8f-;~x*rLBo>MM02$99hj+m#+rNXPWwZA7h-K+oO6KR?2&0b=deOp@sc7>*W#8#L|XV5@JEs^ zLgahVCfdCTS-ktD z$|rG`pf)eQ&Q`+8Dn**Z_pJmDfxVwTk( zPcL>;ABOe^Q6@M^lLQ)1xmfFqZxitAp(Z214SesDPM$K=C5Ov4GO#=W?+YvwV5RE` z_tBP!bn`+bySKqnB<%ak9E*PplL!a_$EhMUyeF*MjI-7Ojsz*BT`1fI(71cW{Cbenl^v{zM^NJ-Gx}I7c2tOlaukpsKMxx)k1m!{c`h>Qlum$qIYgK-rlhX zZ*1Sq+74))iw7c>*?w$kI6{>etv*4O(;YBT~en>E9NtH+>E zZjO?GPYxVr9z+xQ=2#i7UGgDLRafKjkwb7x-yZC`UbE-pbaf5ho;Vt#+P6hnWfgun zaTD*X&GeDn5$qmXbX+xO-qv89r&+*OCGAx=r z76lpUtc>e9dmcJxw!n(1<56B)hnwF27+)VP!*xA6S`YWBq#TLvH^3q@AeTu zpWm4@21m;)aKo~Xukl2lBZUJI3Rwxf=j{0y zb3r@I95VtX<(0T-&H}a_(5qz@mRvKA$R{agZepFD-Xt@}6Lns@~RnvS0@ zT7?aVOK@Aio_J!^5Ukl>gg&iu&?+^R$=uq5hkXRlH9N{qVElrWxV3Lj76D6s*v}$^ zq;N|~DXy5moY_LJ9T8#P#}PZWNXM4nOvRD%3T!=Eh6$b8#OVQk(-+0>Ld|xWyb=%IJyueKc!@>8{~kGpM+ygFb4e*i&s&ar2K7Z@yEd-9H^2Wes_N=-W3MhOx;Gv! z!Rz1d!pyNFu&$^WQx~s6r6*6sU4n9-x00|xz|=?t+_!ckJ5BQBL;xk#R?TTg8%%do z5)+ul^91y@32-97B47!o+YxZIyb^h7RzFpBbqoxO5+Z;+`jZlLL}ON~UWM z7Guid)yPY4j^%a^xPRRyJaEayD6Oc(!rl9r3^4+VkKvIK5dvNvH;T!jbL9W?O;ps@ z;*~2$;`*Ll@Y0s;nD_l2ti1MTtXQC^Iq1m)KPdsEiwh@>#nAjb%-Z%nZoaS^1O2TX zKQON+LQDymHmDy1g8I3kXBT87Cu7zAA_g{9SwsLWhUQHggY@JiCJhM)p>Hl`Rng!!xp?>Lu}pg}duKWBAKIT0Kyq^6%vp5G%)q*X#dvJw z5SM^~t#k4B5rc&2q)54O`N!B^dcq}O)Z5FDoS1;cldnXJX4V^56ak+eEXFgJ4a4@* z;}|o41JWsIIR=*IDyWke-Ikzn&r!0%qUeJ$WFA0Pm95_>NdhSAzU$ zSVzDeYd*t!yZ1ArY3;D|nsF`xH28*_u101`GrYTVFFx2`gj@Rbz{r9&pi=g?D?i24 zmknbC{P(7>**`i+o+wdM1Wa1A3U~Iukbytn&Ly|``FXZTgGu6S`w zA@-a+jepo+U(ul*e%-qp%LCUgS%ZpNYrPQn2x$5I>_`sqP`KjS3Ai{f7jw4n!hLoX zlpIRHLaKuD^Ki#%j({l<0!~y_Gg+a99Yu+A95{Ujcdhw?CD)h7j0hy))(_U=!Qlg$ zl>BnpM@*jRpxp7dVFR%Ka0#dl5f&k!4BfM{u;#j}SRNq)e!p@p{xqOB{yMBbD`TBw z=kb#)igq18iMcqN<=MZch(nmrz?7klekG70%Mv)HL}{+yX{kANJn1c{gk1h~&{32nLUUPWKhiTWM| z)Ne0GAa@2)5g`AAWvsQq`wg-w#Gil}vxP?!13lS2=>R3UA!D~;VrDl}d6@FPfpWLi z54uZ+rJSzA#M|?oQR7d*bDkvZL0%t{oX0x=@NT1!5C^Pi2$0((ZXb&g;uEUCXMkj0 z@AbK=d*ktFVhD){TMuSsD+q`f!nu~myQRizJU-&T3OKc%?}t}^^W6qNiuW6WYWTQE zfSv$OX9Hctk^o)w*orOBBAP@R3A85ke9vpJjX=O_!aHJaVL{1J1-OCc`g4iewSx$w zbJkE2$up2l{;?93Jn8%@x*R}%dMEgBcSEzE6A7@Y1mBD9>fQ__N9FNsm;m(sr(z(0 zLtPi4LD0oL0?$ZOg!FX@?2_l%}^z0FYsPIWx$(^AML#3EJny|*vWRz`uAdlo$U3{3xwuC_v;>%Vy3CRNa}BO=bjj1b+Jm_N4S@iU4+LG$ z2v0!F3o(}fXY43FTu8pc-2Hy3BQTos(vyA^i0c83HV-sf1i1L?;#e^!^<{dE*8}N! z2PY=Ij}~sRecTDics9x$VB4evTmUtI*dWfEs=ha+rilp<-CY+T;-A(~|3yGuU%uFB z63^F5R+AB+14nhIK&SEg1Z$71FhFmY%9r)vnnXd|pN#WLP;`^ylBx*JIVUGnyUNmq?Zd$AcRVULv^ZLsBjZ^x{d^8WjyxWhvBsJUJP$< zo{BQ=O`E&zh+zr(rv1d=#0|bQboT6y$_MWrV-rw?F#AR&{~_)LNyno%@z^(LH2>qD z?+bP7F+Dn~qSz&M*A4pWhUfpM6&nd6KkR&_YUWc<(Mv&*FY=Kgr++Gf2q4+XNG>R7 zpLENAE)M0i?5HC_@J`0IX%0|7Fw{`5R~44=DLDOTgpZf)56^yna!pYYJw8p}AyX6d zePTN2q4V^xd~*Oo%9b^N$Mj1{R8z=ykh?`Bi6tUOfIXh zL%6K$$LjYN{{dS!erJDuNky#RqC_A#-=st@_-3L_n>H!qCf^)tS1=x_X`K)XMc!u6 zg@)>n+QfY^Wnf55O+1W*!?mca*cU!r^g+$4#c$xqkt4SB(3{)zJz~mlP$Cm_5#Y2T zcc-tjqSw%g2>M64f#k`0W4jTKD2l2^7~Qx_0+?im-sC3G>0dbzss_T8d;^t}z3yzF zt<;Q2AixQDdSI7+ChvE?Rn^$y^R=O(7$XAc%i4$pdOe4Tpr5tin?`_x7md%p)YJaw z1>Yo+njUvU?~1`N@?HApkU*e2U*f6o>*!X(ylr%~1NM38`EljMUi34Ntcu$qMDduI zNOdfpYh4@H8O7j>O?9b!z6L5TH!v0gf~PDo^t|P&5e;uV0-DMr8+9Bt@+O>^wlSN6 zNpIesqHP~&g{HH(j%5ais#Ub6oMRDSn;-2gB*Ztoi-up>5bDk`0va-f23*s$7zY~o Ye@_)~7wW8}VgLXD07*qoM6N<$f@bajoB#j- literal 0 HcmV?d00001 diff --git a/src/es/tmomanga/res/mipmap-xxhdpi/ic_launcher.png b/src/es/tmomanga/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bc59bef47d5c8a404ae97489ac2e97e745c52ca9 GIT binary patch literal 10842 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 literal 0 HcmV?d00001 diff --git a/src/es/tmomanga/res/mipmap-xxxhdpi/ic_launcher.png b/src/es/tmomanga/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..10034e1d33dea7d70f122887ececcb4ea39f6505 GIT binary patch literal 14912 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 literal 0 HcmV?d00001 diff --git a/src/es/tmomanga/src/eu/kanade/tachiyomi/extension/es/tmomanga/TMOManga.kt b/src/es/tmomanga/src/eu/kanade/tachiyomi/extension/es/tmomanga/TMOManga.kt new file mode 100644 index 000000000..dda36cdb4 --- /dev/null +++ b/src/es/tmomanga/src/eu/kanade/tachiyomi/extension/es/tmomanga/TMOManga.kt @@ -0,0 +1,138 @@ +package eu.kanade.tachiyomi.extension.es.tmomanga + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.interceptor.rateLimitHost +import eu.kanade.tachiyomi.source.model.Filter +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.MangasPage +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 eu.kanade.tachiyomi.util.asJsoup +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import org.jsoup.select.Elements + +class TMOManga : ParsedHttpSource() { + + override val baseUrl = "https://tmomanga.com" + + override val lang = "es" + + override val name = "TMO Manga" + + override val supportsLatest = true + + override val client = network.cloudflareClient.newBuilder() + .rateLimitHost(baseUrl.toHttpUrl(), 2) + .build() + + override fun headersBuilder() = super.headersBuilder() + .add("Referer", "$baseUrl/") + + override fun popularMangaRequest(page: Int) = GET("$baseUrl/recomendados?page=$page", headers) + + override fun popularMangaSelector() = "div.page-content-listing div.page-item-detail" + + override fun popularMangaNextPageSelector() = "nav.navigation ul.pagination a[rel=next]" + + override fun popularMangaFromElement(element: Element) = SManga.create().apply { + title = element.select(".manga-title-updated").text() + thumbnail_url = element.selectFirst("img")?.imgAttr() + setUrlWithoutDomain(element.select("div.manga_biblioteca > a").attr("href")) + } + + override fun latestUpdatesRequest(page: Int) = GET(baseUrl, headers) + + private fun latestUpdatesWrapperSelector() = "div.site-content div.main-col div.main-col-inner" + + override fun latestUpdatesSelector() = "div.page-content-listing div.episode_thumb" + + override fun latestUpdatesParse(response: Response): MangasPage { + val document = response.asJsoup() + val mangas = document.selectFirst(latestUpdatesWrapperSelector())!! + .select(latestUpdatesSelector()) + .map { latestUpdatesFromElement(it) } + + return MangasPage(mangas, false) + } + + override fun latestUpdatesNextPageSelector(): String? = null + + override fun latestUpdatesFromElement(element: Element) = SManga.create().apply { + title = element.select(".manga-title-updated").text() + thumbnail_url = element.selectFirst("img")?.imgAttr() + val chapterUrl = element.selectFirst("a")!!.attr("href") + setUrlWithoutDomain(chapterUrl.substringBeforeLast("-").replace("/capitulo/", "/manga/")) + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val urlBuilder = baseUrl.toHttpUrl().newBuilder() + + if (query.isNotBlank()) { + urlBuilder.addPathSegment("biblioteca") + urlBuilder.addQueryParameter("search", query) + } else { + urlBuilder.addPathSegment("genero") + filters.forEach { filter -> + when (filter) { + is GenreFilter -> urlBuilder.addPathSegment(filter.toUriPart()) + else -> {} + } + } + } + + urlBuilder.addQueryParameter("page", page.toString()) + return GET(urlBuilder.build(), headers) + } + + override fun getFilterList(): FilterList { + return FilterList( + Filter.Header("Los filtros seran ignorados si se realiza una busqueda por texto"), + Filter.Separator(), + GenreFilter(), + ) + } + + override fun searchMangaSelector() = popularMangaSelector() + + override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() + + override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) + + override fun mangaDetailsParse(document: Document) = SManga.create().apply { + title = document.select("post-title > h1").text() + genre = document.select("div.summary_content a.tags_manga").joinToString { it.ownText() } + description = document.select("div.description-summary p").text() + thumbnail_url = document.select("div.summary_image img").imgAttr() + } + + override fun chapterListSelector() = "div.listing-chapters_wrap li.wp-manga-chapter" + + override fun chapterFromElement(element: Element) = SChapter.create().apply { + name = element.select("a").text() + setUrlWithoutDomain(element.select("a").attr("href")) + } + + override fun pageListParse(document: Document): List { + return document.select("div#images_chapter img").mapIndexed { i, img -> + Page(i, imageUrl = img.imgAttr()) + } + } + + override fun imageUrlParse(document: Document) = throw UnsupportedOperationException() + + private fun Element.imgAttr(): String { + return when { + hasAttr("data-src") -> attr("abs:data-src") + hasAttr("data-lazy-src") -> attr("abs:data-lazy-src") + else -> attr("abs:src") + } + } + + private fun Elements.imgAttr() = this.first()!!.imgAttr() +} diff --git a/src/es/tmomanga/src/eu/kanade/tachiyomi/extension/es/tmomanga/TMOMangaFilters.kt b/src/es/tmomanga/src/eu/kanade/tachiyomi/extension/es/tmomanga/TMOMangaFilters.kt new file mode 100644 index 000000000..4cc8cbe16 --- /dev/null +++ b/src/es/tmomanga/src/eu/kanade/tachiyomi/extension/es/tmomanga/TMOMangaFilters.kt @@ -0,0 +1,62 @@ +package eu.kanade.tachiyomi.extension.es.tmomanga + +import eu.kanade.tachiyomi.source.model.Filter + +class GenreFilter : UriPartFilter( + "Géneros", + arrayOf( + Pair("Acción", "accion"), + Pair("Aventura", "aventura"), + Pair("Comedia", "comedia"), + Pair("Drama", "drama"), + Pair("Recuentos de la vida", "recuentos-de-la-vida"), + Pair("Ecchi", "ecchi"), + Pair("Fantasia", "fantasia"), + Pair("Magia", "magia"), + Pair("Sobrenatural", "sobrenatural"), + Pair("Horror", "horror"), + Pair("Misterio", "misterio"), + Pair("Psicológico", "psicologico"), + Pair("Romance", "romance"), + Pair("Ciencia Ficción", "ciencia-ficcion"), + Pair("Thriller", "thriller"), + Pair("Deporte", "deporte"), + Pair("Girls Love", "girls-love"), + Pair("Boys Love", "boys-love"), + Pair("Harem", "harem"), + Pair("Mecha", "mecha"), + Pair("Supervivencia", "supervivencia"), + Pair("Reencarnación", "reencarnacion"), + Pair("Gore", "gore"), + Pair("Apocalíptico", "apocaliptico"), + Pair("Tragedia", "tragedia"), + Pair("Vida Escolar", "vida-escolar"), + Pair("Historia", "historia"), + Pair("Militar", "militar"), + Pair("Policiaco", "policiaco"), + Pair("Crimen", "crimen"), + Pair("Superpoderes", "superpoderes"), + Pair("Vampiros", "vampiros"), + Pair("Artes Marciales", "artes-marciales"), + Pair("Samurái", "samurai"), + Pair("Género Bender", "genero-bender"), + Pair("Realidad Virtual", "realidad-virtual"), + Pair("Ciberpunk", "ciberpunk"), + Pair("Musica", "musica"), + Pair("Parodia", "parodia"), + Pair("Animación", "animacion"), + Pair("Demonios", "demonios"), + Pair("Familia", "familia"), + Pair("Extranjero", "extranjero"), + Pair("Niños", "ninos"), + Pair("Realidad", "realidad"), + Pair("Telenovela", "telenovela"), + Pair("Guerra", "guerra"), + Pair("Oeste", "oeste"), + ), +) + +open class UriPartFilter(displayName: String, val vals: Array>) : + Filter.Select(displayName, vals.map { it.first }.toTypedArray()) { + fun toUriPart() = vals[state].second +}