From 3a8b7c697ed5b8350bbae54a10e806ca2b1b6774 Mon Sep 17 00:00:00 2001 From: Bui Dai <140616004+buidai123@users.noreply.github.com> Date: Sun, 2 Feb 2025 15:27:50 +0700 Subject: [PATCH] Add TruyenTranh3Q (#7300) * Add TruyenTranh3Q * fix: improve null safety for next.js image URL decoding * fix(search): combine filters with search queries the website backend supports filters parameters being used alongside search queries despite the UI not showing filter control during text search, this matches actual API behavior observed through direct URL teseting * remove URLDecoder part * remove non-null assert for date_upload * use absUrl * use build() * remove try/catch for parseRelativeDate --- src/vi/truyentranh3q/build.gradle | 9 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 7042 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3524 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 11409 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 22662 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 36480 bytes .../vi/truyentranh3q/TruyenTranh3Q.kt | 267 ++++++++++++++++++ 7 files changed, 276 insertions(+) create mode 100644 src/vi/truyentranh3q/build.gradle create mode 100644 src/vi/truyentranh3q/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/vi/truyentranh3q/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/vi/truyentranh3q/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/vi/truyentranh3q/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/vi/truyentranh3q/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/vi/truyentranh3q/src/eu/kanade/tachiyomi/extension/vi/truyentranh3q/TruyenTranh3Q.kt diff --git a/src/vi/truyentranh3q/build.gradle b/src/vi/truyentranh3q/build.gradle new file mode 100644 index 000000000..02ed19119 --- /dev/null +++ b/src/vi/truyentranh3q/build.gradle @@ -0,0 +1,9 @@ +ext { + extName = 'TruyenTranh3Q' + extClass = '.TruyenTranh3Q' + baseUrl = 'https://truyentranh3q.com' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/vi/truyentranh3q/res/mipmap-hdpi/ic_launcher.png b/src/vi/truyentranh3q/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..63c1ecedfa0d58788a417bfc96ec2c6fa09d7664 GIT binary patch literal 7042 zcmV-|8-3)7P){yOuYqKS5w9Ka2XE@|=-^oX^=i|&smlV+3vjw26h>1n4F}+ar;i7Ic*@NC5il4r+Y~ljZN* zj$)c0{_uy^JMX#gH)O5cUjr2JiS>GYn?UiCmcQ2iaeKb8>fMq?LqKY%)-?r9y>{-* zJ0}i*^{Zb^@w63J|KKGzTcq{}&pZ=&;GPGbt)qT7-)<)~^164v&YrBlRV!Xu`f*F! ziVwc8v1yw^T8BoXQMtJ(jU*j^%Da&fHdF!_P1T1`@)z0U89jc zx%dGa+`?4=hh~YoX0tuxIXrLW?Qqds0%sY7<+sz4UjMg${g=-_^UO2rTGB>$qkG}i z*S_d+dw!&W#wTj5yYbc6-+an$cl^~xZnYLbVgZZ0%#T^R zg4pFNUu(F?(g!sFXq-!^SG=e3nFK_mR-on2$z&2R7@%0KkR$@s`1s8Mx^lk_9<3%4 z@$WwVsfYibZ!WIoBI|vk#FNc0|Kg4BIGxUKt%d9|2>DV4;t-25>1D{=O|6D+7YpJW zB}r-+#qxy~Z;=06TF@dCbtpW~ZqheCr%+OnE|$2Zd{tVqNxo5Et;5XM4SF4-g&b4@ zqtOa*Hh0U_?zQ}TJRbW80`%AXJ;&n%guM|!mKR@n?K^Id=bLK*B+NUJ&fwUkX-qE^ zVbtniQFJhxbG?{%3M;M4M!>9!2_~c5 z_}#_BK>!t5gT7DzF0T*OSPJEtD5B*OA~LOy#^@w?TB8CZm)NdZvi>HxHKtxBbWbHhV;e&8I!1_fo=1PL;XbOSpN)6$Jq zcynT-HC%~aqeV@wpkh#IEj9$0FtiZVTReW;b?a?(Q8OZE&LJ@q#%MN%y3d7>*8{y- zi|KS6GqX8#wRFQ|Hb4@{H2iZb2;CrnE{u%eXYZZGj8Q>OXGC2xz^pSdlO#|CP+KWM zM|AXJ5j0*sUCE|Z(b=S+r`=25slmzjwTIf^^aK!_p2PG1`QK3NHY5mSpr-@PE)OEH z2u4#0R1I!uO*UAKCbU~Dv^*mGkpXB`ycQND0DAt+dCVHD$k3g%7AtRrNP0kv9(G?Kh0lB=!7lZ$^_-+H$1VlR=Ty=#-S0O;cAC|)=- zh&hv!02yEj`Vi`9L%CW(CXq%VlWUN!%)?kJ!nE)-h*!%OW%Rzlz za$bI6dnCP)1rea3QAV*-Lzp$WkS#=qpcSbO6a3O1w(L`=Bnq|z*g&{E) zat8v?TTGZsERdv0(B%rg5(?szwLDDGY1B(4WNQ*E{wBQi>PvX}*a;GR4Zm~WL+I%0 zM9pnSnAdrCgurD}&;(kL@`f<$aHEF-VJCB<8cU9V#|5K-=GzErms8SBt>>Bmw7e%O zQ~sgRG5m}GP3qmqD@N?yzYCdc924VX4S+n&LFO+8hA%Bj1Vh8b@^SwDnQ|VEg*j-o zbqq{S;_RhM(30de?f}|a+F?wqNYyGx86~_oJc*N+#t>(gZEtOdr}q}r+k&{;Y{A`h z!?~Fm*c1g`k9R3+zkvX)3}njy9ej5b6Gk6$Oai-iwj)msnpGDJ-JuvUS3uhu(3=B>np$AeV`&yDE2BT!r zs6jH5K(v^GZFf5!@9)O}hli;|1!aQob~6Q#WCqde2+#}UAkR8cY}v(rdRhQPuAv23 z+zNahZY<=Y$QH72IGv4J$?0;U!g{Sn4*6J3#i!LAn$;q-#VjgZbgELvaRPHmXT>WQ zCQ)|;Pmex`RO)IYREtA|Z6En49*$zyLKweUuVAO1X=5}@3&>%HWy-Ol z7DvbDaOA=md~Ll@=rSr@s8E(bZ(}VcN|rhj*(9`1BRN_gY+Ib0l>fUmU^K_-uxB9Y;FPQ{8sG>%+0$J&k&i+pro zR|_7YtLf;wqTtnP>0XO0{m}wQxY#&3D5KS*Zm2P#)4=F5u%L8sZHC5PR{8%Di(Ay{ zc+76XANXBpVst_xiVQ94(0B~5#Mu?s$4Eyw~{%p&bYUg2d!;Ei{`5`I~EqS$Uy<*nafx_7C4*j(9(i5 z%!`aB6S+a5UQ|RP!DO+l;t8JvU-nqxrCd?ZB@vyQ#{Zt3!RuieljAd3h)hBD*eGeZ z;LsakN>0O&jA2K6AF|}Rqr;=9Fz@-q$M#|Wj&}H2x5?zW#k<lg%PP_q@N&i*An_zECU9OwQqjw~wPtzIph*J8)Y^2v%118ma^u z5y4gz_N!%$)s}OW06N4d=3P@TTa04kc<#(Jrp!#>Bx*m*Yb1*VtyK#56zG^iKZ9aidk)OWgv%t%6tupKnpP$1&|Kc6Y`#YEo zQ-x&BRg8?|(F6N%OJ@^0d>&Lt&ckC97@C>Gp`&kM*RDP2Y4*WumAMHP=$!$&ox(uC zJ(lq}v z^6^RRDlFjl+dSxJWl)I3F*}>Zk#GSQ8S3kFD-(q=DHX<7e)}YuI4qb&?eg%8n+wIVG3t3Xo?b7n{Iyr>8MyYGxi}L7CF3 zs;k1{rM?`rqop-SfFu^HR0ny}WrE|My@1b}B|Jn60JGpYT{C76;KbMrMo+#23jqoc z%!lvYi~i0wRP)q~%G9YT!5$kugN#&RmEQ$JNkccZAz!3;uQGvDwWtI-U~qa?)nx0j z&*I;=8O3Nps{mRyq-ukM76F=|i)Cdi3sWN_nF$4QNU>UgKj?+cW=D+Lkji3JM~>>q zM$r=;#~mRX+B-W?wzwIc95_2Pj^y+dIxRZr!qf0;s_3E`AabFakWMHbj!g}LQa8-J zj#)CpY4T8$)*_wBB37ut)Y*?ZHKN6I=z6)>54N0vTb?VD*l5n8i zgM7J+L@EUXImk+qEz??5F1Cw;*xe?6Z!*KmTuDdiqEyu*5{)4io`F+R;b-csBw4-F zt)|FRCWjqOK077{&r+?V#gOdXc52m<0vDy)5>t+d%9<_MOu$%fTuvA_ww|kELGBG* zj3j+}1{3C1BxN&-+;vgK+dWP+v*OmVdr>4HTDE{xE}%fNbwy|KP>UP=J${16RuGkH ziRj1T)SZWh;kQ}Q=J8N8DR#6zAmL&^eRm3DN((K>imJX2UyBv~kcC{KLB7C-qS4AE z&Wvy*jS9)s6`e?HOb!@+X-iwNNk%#G@Gb@r&p& zHKF_A{di;WICGyYt9(6lHa}#F_h~8zTB`+Sf>dL9@{t1Qx%cKUPLfWLgL3sUB=V4A zH^c3>(Rz$f8QH2ef>mU5j1lc_X43aLHAs<&7a|elQ(1I|nz46JKU>xsMCT)@(bC*Z zG=t2m%G8UdUw#edsTef;+@bg!Omr(}pb5sl9ni5HnPB%rW`ok^cEK8KW#klD_14^M z+fi&I4jLYv#Lv!#F==gQA4@@jVALpu*2ydyhI@sHoQp&(lY@#ZR<&Hj4r2{_Bu|i#~EPnIK^=Fd?qP!s0Z@jeY#@vYS3A-Ks8VH1pB5yf z3PQ!)g%v$}@oYXrW?p0~&EP>+`ww)sBF!*cFAM82b1cQ!AWMlVplqPSu@~v+z?x~3L9JAlER`@SdYkst}h3zP7@c~K7#_F^RpQ9v>5JhTy7?D$NVJJ%}wexnQN!YtunpvQ_8!pD`0kXo( znA~J!#++dUJoJ+vW9;N{?7p=P!QK`|!Zs-E%eg6uNaQ+EtX|hldcFCeMzKnH^ry6- zaUbOl)4z7y4is{_Mpuxrp9W>vHrR^I?XDd?=#ylF>n&6e)1pK#{|^xpc}H|swymKDe^1+ z03;_hYJ$W8&4vZ7w4(Ja>MFR{ir)MRLuyzM^C013Q%xNV^A;ACVh064Ci0NBVFg-R zkkMSj{x%!Faf=(>Vib^Lb{eM77cLIrmxqrdMKw}x>p-Zj1tu=ed|KUX91vzRZL2)f(;eU?1Fw!?${%#U;$89HXm zG1g{>PL1H$*#THtnBKGJR#+rXsj-wWSSkD)Bt$0WFu=Z9v0OxokxC`F5~U8AwV9vd zzcL+$@#I_Bqo$zi*^O}jJ*d#l#9-$#Kw^eb{H$F9Z6$YK6Mz~*{AGYA5a1M6r(^EbB zs1BI9IlLD!FDb_U2#n0%b=0zDaZfA0t{OmVRr8|teDM4JK_Gav$o@2CIae^B3k@JHrLn)q7ZjDk>rHOFRfif*K=JC-% z_&dAN%yzRqz}6A@dY+xyNpjLccOP6`-3X3PqxZ;bxGyq<)(V>dZ9B1G50c;s#u6Y# z=2D_>CIAv(T{VE7r;B;k8RA@26h{frB;vh$5g|aC0+ZM(Z=_BatBZ*%yBF{} zP?k8{$?zX%P?+oNft6Ww;L;SjjvmI&0U$Rf0<20F%1&7`?0WdH>7?6 z&d){11?a;*2^ zWyK(S`)T(1bvYG1eS1;ednZot{1TJZ))Pn3R!%cKR8Y*MFfkX!Ew|o*efREfB(#^G z%~&J5zGfCAc0tVi42?2O51hp)%{kl8`5==EWt9Liq9M;|dy4K>kt~+OxXnV6%FQFm zsHAczyh6b%HAQkRR$ozY(heOnu z6t;s_XVj}fy5<0h3zjL+&(4Q&dhjC7iGj=z2d4}{j>oYUTPS7b8ybI?1l=0(0>kL6X?# zDsu>;##T>(6KPqF3m2(m7!rB7rlRmrR0|M5C&e;93sw;kEn=8zjgWo~T@g?3{V+m1Z`=-L^ zn9t|f4=YmlDU+{Ch!emBEvZ0oGn{eEaLRrMd8<2_Vcu0G_h{f?uH$q%E)P;|W;x62 z*ro-&@*TI^^UcjJw(^-VF&48BkKx>g#5CB4Sj?xC zk>A(UPx(OfQ{G<=e^}&h{P{IT+`|0)+~CtsfB$R8jvN``Ev0#UsE2yRGK8B6K&%}d z9sVyq`Q-45Ab;p0RZ*TS)F2hY6k<><6vJ_FaWm|UK*0JLvX&WGofgt&mFA0)-C{P3~S~oyY z0|g4SMN||;T(n3Lz>pm8Mr22l<4B??(V`?v6tz>_X5(-;`#wEyNJb(xlto2u5Fl^x zz{mIQyZ8L>+5YD|4Zr7y=J#BF{s7>2t--r#Kz*iNJb#yRR%LPZtThs%A%K@&dP#Zy zPrv-KR;PbaUUDycvB5OUZ!P|}{7-|m?`2#~m3ppPF8}XO|NAFD*tc(AdgVlo0O*en z4gc7nH-4)j=oJ9&#B-ZqH4#A5XbHJ5&#ILwTCFI#;TToag}G!X#X@1!b$+@|L&oW&(7X1yt-(vSmI`M9)nhgVl!bh=+JAl z81y;}I&FRVx^Qx#0yJuBwApRw^m=0PB#Ek+v4Akh5L;D))~F*^EG!7Wik6mke@T|d z1|Igwb^LaJSP4Mg3XcGY-VQ)j^|7<(cyla-QENf5YOx3ai`9X_s>f~6;#M zK9d2jMaS0O^;F_15;L=0r-IdNz$nir#^-SO9CZV!tr|vdna^zin&evDT-B-T$EO2O zHD0N3@c1#_4adk>T$nN9E!D78O2}qXt7tH5HB^ildV5>wF=%+QcN6Q{f?POwn5*F_ zT>U-REk;gH+@RUhgV*I0ZQh&x-#>sw`%?jYaD0$=LUSbSZnS0_7Iauua}d+A7KI8r=M%%ulWfIl}P>0hfndlb>_*6|%DRU-bGh)$M=fap&%< zBgBO6Q3J!vO-KcBXmE&kLs{Z>JMCL~QDg^`@dO$HKq^CbHpkyQxrOF(gt7>zvAQ`t zdYV`+CBCA=WmDKQupOOE%kk+nuf+3w)8)l2KJwWE5C=Sbe2BNF^F(b%Y7Q;Uoo%#t zb&@IMDW)?7Ge!PxO8|c{N^T-Sv7+bgk)wnn5q5N}XXg`7pi_*@g~xe+Hp>xP3x8pA z(!&|9&3oSjXqL?IP`U@ZQ<8T*+s#Y}?IzdlxU%#N6f+bOr+TFuM?H8w-D5CbX2K zsw#lNQyiF*_}vzusmsabn`88D*$74vLKd|~;(RxsWNRr+C_2sIV}opd;VWE8X*fSI z&2%wOESw`LTFB{ZwC>)-x4U~GnZo0ez+kpKH~^B!mWRn+tKXSmR)#!W$Q+u?G7n8BA1?T1v$<)oK?1=2pJBu^X@C z5v#?D!C?3-0aW==OlW_kM#ka6yUvBqsX-_9izKlo(Mt5nRlZ-%@h4Ub#mQ?NN|gB7 zH$0}B9N z4OK~s5GKDQB%dCyghYeUKq8&SF01}?PaB&{1#(kY`S(*3d~iL*=*9Es+!AdR2lm_? z`c#>?!H6@^$~T_fMPI-#!V5L2OS`)LugM2)0a%!@DpBaeuzGX(CfM**6s8mltQrWg{3B6P@BK18yTdef|9OqvMnng|Ge5 zqqIp7(CSq4S=jH@c7Kfk&aCi(szjmF{5)!A&g{kPHB+t6u31`}EYusE5jfg^*bIS^g|&>ZyRS?8u$7E&fWNT?pw=q3KT#lnEG$n;p4SI&k= zm=!8l&hwRLcFN*gFciv6-kjtoZ~dG{ckU7n1zukZMWaIA*#>&KahEFh-T|Cyq=69* zM9d^Cek!IKMz2o7XeXs|l|(X+UJ}?d;W7TQyP1;J$u(;e@BiX39k~Sk4g&*QHjqyj zNMsXSn7vN0yAyZSUT3h;M3!35HlZli-_Y&`>3IzrSOjn@52!w%0 z&L!}RBbS9~YSVc>FCcdJIB~Ugkt|!ddg&5v8gC;Z1|hS=m77R7+m?8o71 zVkVVE*R@_Y|8C@N4JI_$Py?sMiOodBgfx+4OnXSBm*bv&pb-GogkFm~m@&C1Xcr=oKcGk^HVC1sVv&6Cji4l| z_!N`Z$Jw;5i(aww$aDyg!%mY$3YmA`p)@!`xSYWzRNB3LJ6fAV2;UU`j)3Hs_6Oqw zjRBnD^?4^@iEwGIbF<8srONBrP>({lYV76e_^mW>Sn|MY89TEQT`E-z zWhpHsg<`T9q|VK-p)$_*|M+pc2SuH|o`sE;GF{F*|2WV} zf0K)I5_z&0hPhZY5;J<~^*Cwuh@A@qb$C4Jq`v;};6cuxJjO%2x(IlKQmHj#vb*Z@ zt+xAXN@RnlM(!x;RRFIQ6rz@|H0_2U~@m>lA)04Fjc^AzO&^#((@LVNVz3 z?oB-XxvhAeCZ?ldsu}5MNYr`%zy6gcs%fDZ6-pL2im#n&-!`g}2Xs>0EP+@F=H5-{ zRE4mEgts`prQge zHq2Z22rJFhit0WJO_2DHse;E4=6iuMd)Iek6>|34iBX0>xj;G`WqWrI0in*rBPX~f zU<~Q3{*aF=RIh zXR|UY8_;Lx+$#4W1Jpfl}kBBrG*+2R05c zx^)-D;WKPIKZKHwGA_0A<6rm^o$G>XFZ7Oxbl(6}8_Y@>c=XgsJ}Q@pY~CSc%}p(- zN1Mr_lxEmzoFSD;kjqG)D3&EAC8Yo19T=o}t2LG})smz|TSeJVidK9{8ecs2jgm;E zh$hoaOU)cJ=t)}?QXZRhHUyZ2;GWT&w21}-(kKpgcF4Ov$=<6cvwJq7V?!TD8)d|$ za!&;@di5$tW)j4jrHLz~_&HwCaXlR+hhJpQmW3gXZMaz?TxCXwdYsIhOSBcb=<8!RfW28W1OQCQR%F;u{YQv zEkf}LNo0+Vr4J(Nvy!~4?)2>f-;F}l-zgQ7d-v>?s;B;aVAb}zy1L`l18@FYdq>CD z?@G?)q1yCKiFw#;Hu=!es7bqg1{H)VsA`mJ{l0tS`t|>L@vDFSU3oRBy5!Q#jpi}6 zx3BN`;g9~|hk>?^FG}O}j!#XW2JAsT7fmOprY7F{`@j9cOOtZQ+|tXrbud#UswC0?O4)q3Pqzl$a0%-+8H>d@6RsoqxwSBc1KU*JAFv2V?+nu==g yDhT!K00008nCcHK|y`_3X++$mBLwYSu2_4M?NXYEWpGluQhj$=DP?AU0-HsS<`VFbvhe96}U zi48Bvz<~`TAM7M>5PLjJuhX0MeWxgKCyQi}weMB=y&~CCYb23Wx0>o$HK<{WtmR+# zynFAt=ic|qqGz{lwSZ+?-~HK}>lpysya=8F@C<-$w!k*O{WA}E2EaC3V4L6mnFoBv z0WbjmLkF?BhT;0pEkXJ?#pwRQ##W5h zGW@HrzUuo|um0ArIvvhmwpc8CvAciuy&wO!@w4xH#6ADq___CA*Q1}jwbyGsI@fGA zFV`xyzx=cB{PCav>7V{-ehml%#)h}e0$_}9`_5nd#g4-Vj{L8Bv$41N;gxRUk~etB z#;@>jqiy`$%>%Ht*Si1F7TImq3n$(`@pHfPJHIi(yVll#cq9m$0l+-Q{!72~OQC=F z`~TtXMzgu+qp$e!th@1te)#G)*Rk>Q@4eb5_gd=<(rVTD-}|@!`YZ3e^Gb1HWjXJB=F00La z#E%E&-H0Hi)9K&;$ydJohrDE&d;L)^u+i0zA-#undg=Ad1Y2sp1;tklf=Rh8%c>ipZn`?PMW2+3M+%EeDN|8~1v zO67AbP2SV)kOkwLYutEAJ=plG2EX@jtN;D^V~4x=k>Or4Ci(G4+`Yty{muN|0N~*s z!ULur^}y8&X{u7KX)%-2*kW3Rd`&LgJK%N7>9)(^29adS+^ zr*-6c6l(K55R%|6y@JO2S8ey>WPIk*wrno$EW(z zvdWY5su#}yGg{Kf(LL-)oMj!;}iPfxwE=O+%0>9tTuAE#g2gip<0)pkl`gpn;=og zV1^>p>J3@=yZN8PVv`f2rR(G`k5!?FUtxzuaq?Iv0Q3dJI=XkiIy$;ZtWB+4zp28^ zB1tu;o4J%4k)Yb!VhVYjviqG{C}wp2(wJhwUJdkiw~TMzYc=+){@5A-8?XLPAAq%M zs#fuU2>>{IMx!LeoG+k?-H8)8F*u>d=8>CdVK0^VS>rc#RwZ$tP|>Vg)gXkqOde=d zNaPt-t5-uq-53*Zs8rM&2&pF;S5Kl>E?-dj`9+<5^G8~lU(iY^uO&xKJD%IGp}v0A z@&!#S%;?tQoC+1Y26}cW;19^{aL7YmG9hi9d40A4xaaB(0Cy%Q_1fvvx{1>j17T%Z z(G43Q@YC=1vZx($@*D^EdLb_t)R2WP8^G9Dk|xHx>SgUuM76IctVGNsr@f(CsVbi* zpw6y7xdEaEa5qk!)qnqQ-%)#aLeGEkC0&>tRW#AA9i3gO=Zad$r8Up%SG-}R$` zRMP8^JuLn|*%0)IC1U_E26_F|c>r*z6pAWOc#+quo}mGSV=?6lIjYc%YUPTG*?fye z+Nm3iN4WW&501Vk9@Ebp8rHtBp^wWXmm(fOt{{}SgAvsMXeu?Y_X&07W=+wyHU&dL zrLz=R02B54wP$EZiN1DT)TR=QcCl#D+p~*$J6BT8?$$3*1^1ac;4=fj=?fduPy@ik z)Rf*heNi{7cIEwHRP#++45H70J3OS5rCj{6DCB;IqB@fsOCAm@=?T23e z+`&QZ@{%J8OS06;Y63td+my}aQv*hHabi@bZeCRrwv&i=XeGG_?PYa$bZGy+{p#yU z$U#n!rJ{1FqRFMAPUNflUV(qx{rY*lvKOy3%xLqs&4r&Q;{lrifa0bFz{&HvUUsM$ zj46wkmu)rZCe#qans^;1gg97zF5D2su5RWcO|j@7$$0Y{!L{sG6fj$Y^14Nu!yP z&erWZZAW@=hxBc{q#FR%&A+iHY~J|W3c%#_lwLo6LDvAF9F8k%ZK^;VxBH0v@Oc~D zJ{*mbOuH0}k|Qc*jorR2J4O!yiYHgrK|wQSxg||cO)Esr@zVb1G_rTE!krzm1OqBTaZ9;nm9i-<x2r%@8J%^A=a zAO=P&2)dneu?RNygwF~9c);r?FX~#!+46v#4c_1GQO}NURVqa#2^DpiP9PFiB;F=F zD|L2hQTb9q9;9Ix;o|vVP`|dLM_u!ivaclNzytF6qN+~6+WQAJHhNuu{?~t{QRt_& zoY%Jw9@EQ*o|iWkRx{*R8M$F{Wm(tn+)@g#?9n#mF#K}3P1F7$#hgZ8J_1IW>fwri8 z;UHD9mFl(G$_tiaQF~dDzh>y<{ETe#)8tY9274M?UY6-{6w_(Fed3fFu&n2H4(Uio zzq~M=90glB;MP1~eQ^1jPL7Q##cPNA2Glt;BL9w^%Hnk);{MkOWg%YE)GYzRSQoj& z<#M<5tRD|YTQmNr9)i{{??V7iUDTD5TRDGB8A8E<7xofvJQ}@qT?-3I5~+>VA6KHk zN7+I_4TzF2=vN*Qua2PBPto-=B-#V{jQntUFOM%#xV>}wq~3b(J@pL^Y54F_#Ygs2 z6GSzAbzI3giZSwx0bz0~sheZdN>SKV!hY4=E`=!I{3K>8%&41O^i5w#ebgm0v$HA{ z3yR0u6b?sL3*;Y5%ugu*_cPLa0k}|hs~GAK#D&D$rk=rsrWYqQw=^RQdQCgAdiS0Y zXlY(K7*G{sIjIS1sG7ZK^)KhsdeI8SL`LzVq*@wPU5DdeyFMy^tV8YlkEqnuuT$em zUA%Tj8MuGJZ&Q|ff;PFrwy->evXZ^746l`1N@}){QgC0tp5H&BuLs+-n{Y%8-fGTx z2wN=xxL%841RuFQMF2dia=aIS^A!LHc0&2=s#Vg_I zfY;|$C>+)j(n6C8wx7`OO~}rnN=}h_MNV=+qmUt~a!1^|xs=nzm7)sqZoPhaOe;0J zqJukNT&#F37;;49EZdb{PAi?Kj%ZSCJ1t7)7Zu#qt(T7;)L!(UevBR={4}7?b_jr% z+Th0l*t+qbNC-N<2^w01h8h<1#)*qMSM%WhT`D0**ICJSFRQ-4P0oNrOX(D=J|{c6 zOatZ8fjlrYJlvv$D@!X%kR!eh_urREsf${{n$N1bvM3)#RT}nkqef-haO&)IQa?O( zNnJbk$Vt)Hpg~i|kW~OF=Nr@;RkRQ7@ED?`(^~CklXiP!EV;zq%GPm1p z6j;}4=iws`@L2d*73p!T?fJnEpRJxJ&r~)yc3eB8q)C2+IvZ0;JxPBfMVj3mg zy**UQZJL>$m388_UMBYcbVp3Pe8lk7GIhW_hH7X6(e60Loov|k?%7MaJ)fe!Xj7!K zhddL*+iY~kP`F_^4id8)Q0;(h5`4M{r44!%XA%61&+Sz&y@3Mp-`Lx9%1ncPEeWgz zpvN=*_IiK;;3NRlz0?6+%H!${#I$HfSl%{PA{Md0Oso_^HmYPN#aM_~ZKpYtM~YZn zT9WRJ=@*fqzug{Ff^Jq5pqk4`jFr>nOhxaN92(2j^uftfnwXrG17&n461A7ax{@o9 zuxZ*LPXuWEWM-4fli17XP%i3&I?_lxi{Tev8qtn;h>)||sBd-S@U~W`=EEfX83bUe zMMD9g=0y!{7itg6Wla`0GJ==>aM&;sxH!#l^Eplb*o=jkCQ20})$o`eV)n21CiD|t z9!pqj60Ve9VBBLx$7j-dEhR0~UAlb!yryUXxyc`XyeEs`W(2>U?hYkryyU497RILN zBv>g1t%@YNS~=q2fjxSz$FKc_BGZ*KlDKIje^gw1eB*Dc2dn~cQRm441pp|rf*oGF zf^7lSoK->uN!9C+A1x+KG3F*d=b)nLOj>!gAfpeB&=LEWJ?(mdnD3{yXi}spyVRnv zuZ<@4{V57Fx@{A%qWRe=*$8PlW_$vncD02fG=4HFOpmF$u%tvFrrzP*x<&0Ui6>P7 zoDvbNi6@(0c2OqI^qqB>d8FTrp|;$d|VmV#{^8ed$|xv_D*b@rT^exF`=?f}i6 zb`3xdoUkM_-_T`8u~cKe?lH`e#3r13xG*N(CMqXSP#L1dZD4P z9THuL9N-8VikMf)biZIIMtgCyVx7nibt>IzIU^^Xml2;`{|o>Q1Aw?TWNSKi z@s9rNho`g{A5@*jjH(6NmqlGU^^U&rr5EXfg*DXGuKfeOYGb9Z5c98&-O(J?^&+9| zwI98!;l2BGU}UEv^hJBx5blVCR$o*OsB8lY`%xPD;GwIBt@?X^{{%eX5df??#kvQ) zfd?1>ig-XC<VZ*dcX5EyI35HR2v4 zE6L=N<`MDE+$0B_Jgu*M@k{DKg>^KG^q8rBncVP(+f~I2ic}6w8a@;$Ez6rZqQ|{G zc>o>|iS7m9LXB>ize7bPA&RVc2g6jIFpu`07`>i>D?4NWKK^~#sNqA-cK2B?0jUkCR9jI0bPSgt~uDIV>C$lcl1 z$3)=C0PrXwXpIF;PR;6#QzYRQ0G&t?RK&#g8uz*rs)*Z12uHz)SDi@ChJfE5pF#@2 z2o*e_ye!A!xCWEs`X>Y3I!bJJ(zIEop^~8=kb`R8sWfzku3P5znA`|$Uh>2+h2AS) z`Mi2M;%XAt>vY#BD#+_K-AYdA_~<1C;}Pu|9#W9iUPxw?h|xt~OOKw}k6A?NxOWl6KG|u0R`a zjZH#J`LmG&kd$MMy!z(uXo&d#9ER;PM)lI=qQR4=v2tsESr^VhP&Zi*ar-N%2)wh)z^b zZ!byMr6t0NS#@SSHw+csZTS7-9qsH6(Q4c&2VtRP_2NZA%_LVeJv}WC6>}7sBUCPE z>FQ1>)&L1sT`ka(zmbLcqLN?l&Gn`6+`k$^>=aR#UYc!tYR#W1m&<_ry+xtUq=#iBxV z%X&=G&A^~CS=D&%bPD|+FX%#&=&MCEe{CM@qz{Astn~KDJw-| zod|k4`pr3d07VqjR4OYQZ5Mzrl8w=uHogtyITcawl;(cbskXYYNi!%-Hw~|b4 z)E>*@v>L}I6lNmAVlAr{Xv#w`puH>3B!r9b#i$|!VhfDZ*I5`Ae?+!OCsIlH$7+Gc z0pzIxAZK%{P7AWL$FwEe7^+2AE39Zaz1(VkbR>FIt6DTZkyNRSk?2ZUmKNl^a#p)x zOUFKUSOY_7{ZK~_uVtp_?8N;QnmWaDNmVm3K~I4#chnav@&m>&6Ap!|H#GCkS@pPL zI`Y*oD($W6%(c^KPZk~ANlu|@kWQDifHySh$XUD$d=Y}|PH&49eYnf!ajegCwhe$O zSkUVfOXnNV&|sHxR9<)@X_uHL*hp{Y+1k7@nO)>tW(t&RkA? z*=5CRS;qU}`-Gf8z)z*yt^TfrV#o+~n(sN9DQUW8rqVVekqvsey=@WgW=Bqv=Ka{; zzo*@yejWYVSG3sX(huJHJLoPgOAMWzTTyh+A-p0A5Gi^Hj78GW@dTq>+uh0O$F%=8 z0{{)ZY(bx23qd(PT-^wAgdQ&}#Dt#^b$}gqRHjH{Q4@+7Wh4hQs0%tU=-0Zu>T^`J zFf&D=wuBnNd?sGQCp1N28_=8Y2uju2;(=|V?b^Qp;38h+63vYHEpoBEpObr3)l8~ z07>|&t^Gp)3Miiqvk%M4hr-ZC_;mZAo5W;)keFnq*kC_JI${n6wYmZxeZ4E7K^Lu* zCe^VSGoPJTW?@+ozh8Uz3@MDE8ayYHTA^8=QyVL}r=v|3yrP_0QEu{%W|+A0|h^u-jT z7^|1rW?F5u#@getAe$|`OiKeC&79=?EZp8JKMA>vr^GN~W_C`;UwcF4r%Q5jJRK5#hf7#@kBL%-_?`)}*DBs%TF3 z8Y7O3yQk7i+IMKbUVQ0A6pLDGILk~|r?T`P!U?%!U9J7c58GhAQEu2a08BsNbwbb; zM_joWl`uxHuvw$EX%rS?rWINnP@$hT*pY{oZ2H3HgW4O+hgOpcl@@85A5|w6@;mRo z)0&F=!pkqI6T??%&O~Xlm}3T-RJ*26Y^Q-^r?Ik3>@SlS63EM8mtR-LZs_e(@3Rv| z8elTc14GJ|n3!fvri9FKXwMGqA*Waw49hbPQzxXEJ#7_V8+{At=w}gtiAj3G$kCS_ zB;j_ZA`A^>V}*qxssSTvP#4hmYAqleMx*+dg|Oqmh>py(;<<7C<3qdj?PJf$PaOW6 z@4lrom#*m0ft_@+I46V{ ziPeV8EW=V)blDkIrab`w#Qh2%hAD;yIiQ9|m?;HQ?wc_j8{(TCiNNitF_5*OuO&SC zsl$8JO_DY3!LwIK*>^UpcB)|?BHcVfPo--&qb?qeU%4bF)$}1^d5}Ucg|eANp6>4I zq%RO>l^5|YR9G(Y!j<0RLDjP`WOtz zfbawXcyvp0f{xg0Edbg8pmP-f_6ktt-~ogiyuk2m!|`l1-HrO$pcNAES@gM1uYU7D zT>D6-L?=Q|Nh_@I0-8_m>UoWyJg%{_O-sW^Rq>!TvGL-_uALe{EwwU9XJ<05K{KEZ zy=|E7N4S95DDD7+$?I42z5nr-TDW{kdxyFdABrmm3vvZ}NXkJZiHL&X(CXB`Bv6YAgte@J`qhB9zD}nZ3Lt?f- zL)p)*+gC5@()YfrJS#XK?bU7W&1ff^v0eHSBPQL374cdPHiMY?qN}$jHIEk5j^5t} z&8+8Ebo$Nj>E;jqPG4XozAs1u_cWBD725E1%HktG0Dy;KE(=O&(_EOr!ORP_&YswM zXY2`hz$O47DNaxczjguu+-)j!^{`c(4_hGCH<-O=dyw&f8XjO)nvH`TObBukwB2kV z{?GPRuAUv|CB4=fL1_>x_x+cvQnEtR@LB zF~DmiiUtE(ZLSENuOOTIU^dBVz4o_%tr$J$gH9@PWN9dss)mWd2&`O>o0xA!3n~rl zRVC5iI!D6nUp5nS>maNHu^B)<9RTi&MkWWW18@ZZioN|xBS%;Bd=T{arVZ|n3~X{h zi(vqOmGNFiebJ2j*dP^pgkRftbTcCOkeGV)eyUR1amv9GWKnn z@^78JrSrt_8eOeEcEcZKe}S9A&cQPFc-TMY=cohzmRrf{{Asqzj*gN~kvnL&8LzAI zo(=LtkrEgFx78)`DU~76ZGk^#VUqRf!4@qz{`-tDU^k(aO8Z9b0Kw@-Tp`x&?;+`y7%lPrL@ z-qZ(Y&Ttx*PeZ$gcx`5oJboBdO-tmB9@|&Y000b3Nkl1jgIf6;C?OuuG+uz^ z`5*>|Iv!vE2ri6jU}aLr7#ZA0Z+6%2evYK^=<4{iPF%U7Ia-)rI#^D`wM9lClS%rx z4D?pb@nZ;nB>=c}<1$AS?AG%ye-$|)M$yIS3Bun(Zb2ywnDRz6L4VnE@F2XOQAtQc z$H@=0b8b?5^KR=IcK>+6C zJG2n(W{QKn!oST14igf6G;d4~xs?YVK~J|4fJu@t$JGSm>`&dV6oyV0%$5~Gki`uh zMUdm(ARINx52mBlKpFM;m||GEt-$=K-0=4HNV|@G{ut_~OXDb+nPsYBC}(?|1B z$h>C;dBJSjNVE6LlAKci;-cD7Lpgd&&RsiH>Fv^(p_;5%h?W*XdxcSy*$87U#}3O0 z0P%@=h2MKu{Q!_)WX3;rL*3|0>KWEd7q5Z1XLj@l*w7cC)8;b!30mXqkFE{24S?xc z)0980QPj=G{sWq4m1j$^2kHPbgBwQ#$N?b^@CY4$U%gASiju?|cdjcuKPOK|pHl3?4E78# z!53RKKH;ot$$Y55(YI?Vv|C2UH*l-Y^)P zck4iROhwv|&Z}3MEoCnlhY;PS>voaj%~DX=0INTO`gE1 z4_W}k@Wkrkj4E{D7SnmgRD9a^!sqqEu@_s$ZPXDVmmGRNjF>`8l>Mp6I5D&U}$Mn-cmM z;-{ODl_J0uXu34$YSkkNl07k-*K1}AI(p!U?6f4W_}#k2_@ZrmPHm@8sfXjuq8Q%n z#58f<(9B3U)*2uVa=@!83b&#QZHosO0L)nnRVw1;R7zKn0Ip8YXvWNI4((Fb$82W} zEr<}*EK$s`soiRZLaUq=)L^P@?yB|zK#01)3|Hk@<%VV&MKeY?$fa_cBgS_=w-?<8 zqoCbaS?X0&D1l-V<2%gRXJ|c)0dQU&gTYp&rO~53$kcvQeX|KXOUp7l*rzIqHNq(@ z5qifROi+hR@7in(XUmim#uR10S!ZXWHN4f@L1}`}CWX0e17IBlQi)GkAHEMBO9-*O4~rJg))Es*`7$c#;WoruryTLo6dt zS1HDP>o5%UPxoC70w+kAu&`L*mc5GIFCu@luRo<$O=ZTFlAxEJ8XoLqS=AN=0LMw zt-=s+lLv<>2qUPaL1v0#OhyD?Waebw2%{_QoMD&x zILE?Vo151d4VuMvK%i2tP@s9ySP~|jEYHceG@*_XJz+)|6Lizs*~#K(XxGR9W^%e_ zj0y;*_{yS+W-xG?dzN{jJnywkKcM8LnS7;JXC3S=L zxbDe7oL8HRGxZ0<|5>Pa{7f8LMqlE=XP z#Qwu(KQSTF7j^#@PXmHEC1na`bc?~M zQTAjl1-c>MtU4;pU9}Z`u9ss6Tt;m)s-rQ)*5a=L#TT%i z699UlmhH$BHo}@2Z!svg4hvrs*dBM)uRqUR!^=`bf+xy^Bstq#=V^<&pb!1|?{5qNX3 zxS_{JLN;N|xu@(R|m=$38uM{rdxgfA{^@zXvf*P)@ip@mCg${X^92r%eR{gdLgvVw;2-_TcmBr0j{mR*$A&L>-vjPHd~cm9JZTWj`<_01{6GEfZ~xYR<&w--n0%~n&{+Qt8DC%D zaL0fCga7h3iOz)iZj?{tcK5qvR>Qz26#_nyi+ju$nVz1y{=2{Z>d(&3&T^V;>yXEf z^&K*1!K{CaM(`Wo_}0j;zxwK*bS4rz3{87>yK4cXfz8ZJ-TdP}{=?sV>$TTzuC4y{ zFK>7#SKo|Bnt*J+Ny#MOKq8Td{l=@m^-p*1-u+E>nD5}Moku3-|KCA^0v9sr%;=39 z*Z%LH{Lvr$&&5RsQCCBcF}_*-AM1O>jQtEq_kv&yZp3kOMvU=})iJkEFULJCn3`3+ zI=Hl&WR0-9f0-6JT1ogw65cR0F2QM5Up=! zSp(>i*Rojv)(zbHW~eofSpWGCarLhob=?b0m@x)l|GECPwi_;ltpKq8V&*ybhMi{s ztcId>Z`fEIy9buX0pNaAKZ)1aaHTxu57?5?@BJ*#jJM6mJ_Fzx0NZSVZGQV_9`Fo+ fZMMKRzy1FMH4{~wd@K7D00000NkvXXu0mjf+o(h( literal 0 HcmV?d00001 diff --git a/src/vi/truyentranh3q/res/mipmap-xxhdpi/ic_launcher.png b/src/vi/truyentranh3q/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ded3213c97329679f4ed7176e57748963380446b GIT binary patch literal 22662 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�=~`8Df96EulBv7gMewlHu-N9mNE zT2GRP-3hKbvxu-zfI}o-ZcZ6=4IQs;XMr_ItVFF!iOM{Dr=;nuxS$3LuY{sHF-m}_ z058&h8$+DqF{C16yw2ru_>3ak@~M9Klt^*}z)R=T-D2TMyQ~MV|1;!3PX|Ev$~ub9 z#8Db<7o8Q{*)n8vnfZas)W>q{?o)>sc{JIbh(-YFqYydL%-eBh0}V0`SiN3@8_fLM*@_QqoD>*O|c-)8sWQQ$QDzQXbDUZ79ol5y-S3Wzc!+?FYZF0%35BH>Sg@<9VKE3-dF9_M(( zYscwj??)}Dh1G&|Wu8ytj^1gdIv=Q$*V68ZvQP>NWKn|BFJleeGahoc>_<(w>kIgZ zC&KHBzy95~U*^wLnjL@?P<|-@ivGzz{j-0W?(aXjn-B3Y>$02Ib)VCPrcTm1wr&x7auFd%dw#Q(O3f4aNxb8X1? zgXn1hdpFmYI^^}=`AhG<%X7OH=&1upw~#DQ^zZ%s|L1==edg?6dDw{_6flqa@SV~J zlTzV9+IDFj!PSPgxFj@>Ba9zGeK-VgVk8W8$9KP;)&e~Upq=mIT9J3NiqG&l*RNjr z2mj$;`FH>8hX80-;qzWUpIq2o0R7Fs`3K+nt$+J>{s`A`Z>7G3i_u9qvJWXbnJqw6 z!Xha&??JMfK>w_8{b>Q_;Wta?T0i)nJ6B+@7y4;mMqR^7rCk44Klzt`^}qjHf9prv z08+hIVi~!xrv@Mik`c*RHqnE{O|AYa9@hR zkW%h00&`Y(k7u+q61xkc|LXVuo8SG$TkrhA(C|=_u%7kX>tXkJ7KcyY*A>{VHMUn* zR&qc4=}-Um5C5k>{F5Ev>AEigXjkrQKLFBeWQD|e6wV7oR1+=wd;iH_d+Y6Y-uaIP z2Z!ILeuHx2Uh!{VpZ4%YPvi=8^;XhOmrBLT%F^;*{QT#C{zrfB@BZCi@CI^Q3f%>s zoz~~61866R93SEle&v-{23~*tYsX(Y_u6j|-hY$s$sz2~p7TUc^O$bt$8 zT|zCe2sB-{rte*F={a2h9fD`?Ksd-Ny5Q*o$ZZF*4WKS)^j*K}W}f#1o`V3W``Rvu zWNEsf>3-Mmb^_?2?{|=k`69mdVE__Py4I!(sC|RyNi1mB5(y|f!PNb^`}ZgDUN0gD z4)U3Iy0I>|>1_3Q&*F4{zh}$SJ+UX@R=UUNf~X6cov!Oiyw5={=8O8;omQyp%DUgX zWO?7(FU!Y_D|Bo{SGyt4NT>t<807*qoM6N<$f|5$p^Z)<= literal 0 HcmV?d00001 diff --git a/src/vi/truyentranh3q/res/mipmap-xxxhdpi/ic_launcher.png b/src/vi/truyentranh3q/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..e27de1a9ccf6b8a452f3db465c751f2b57ed4f6b GIT binary patch literal 36480 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�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 k_=Z|N|?Z32@12P`e?CIA2c literal 0 HcmV?d00001 diff --git a/src/vi/truyentranh3q/src/eu/kanade/tachiyomi/extension/vi/truyentranh3q/TruyenTranh3Q.kt b/src/vi/truyentranh3q/src/eu/kanade/tachiyomi/extension/vi/truyentranh3q/TruyenTranh3Q.kt new file mode 100644 index 000000000..655a251e2 --- /dev/null +++ b/src/vi/truyentranh3q/src/eu/kanade/tachiyomi/extension/vi/truyentranh3q/TruyenTranh3Q.kt @@ -0,0 +1,267 @@ +package eu.kanade.tachiyomi.extension.vi.truyentranh3q + +import android.net.ParseException +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.interceptor.rateLimit +import eu.kanade.tachiyomi.source.model.Filter +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 eu.kanade.tachiyomi.util.asJsoup +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import okhttp3.Headers +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.HttpUrl.Companion.toHttpUrlOrNull +import okhttp3.OkHttpClient +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Locale + +class TruyenTranh3Q : ParsedHttpSource() { + override val name: String = "TruyenTranh3Q" + override val lang: String = "vi" + override val baseUrl: String = "https://truyentranh3q.com" + override val supportsLatest: Boolean = true + + override val client: OkHttpClient = network.cloudflareClient.newBuilder() + .rateLimit(3) + .build() + + override fun headersBuilder(): Headers.Builder { + return super.headersBuilder().add("Referer", "$baseUrl/") + } + + private val dateFormat = SimpleDateFormat("dd/MM/yyyy", Locale.US) + + override fun popularMangaRequest(page: Int): Request { + return GET("$baseUrl/danh-sach/truyen-yeu-thich?page=$page", headers) + } + + override fun popularMangaSelector(): String = "ul.list_grid.grid > li" + + override fun popularMangaFromElement(element: Element): SManga { + return SManga.create().apply { + element.select("h3 a").let { + title = it.text() + setUrlWithoutDomain(it.attr("abs:href")) + } + thumbnail_url = element.selectFirst(".book_avatar a img") + ?.absUrl("src") + ?.let { url -> + url.toHttpUrlOrNull() + ?.queryParameter("url") + ?: url + } + } + } + + override fun popularMangaNextPageSelector(): String? = ".page_redirect > a:last-child > p:not(.active)" + + override fun latestUpdatesRequest(page: Int): Request { + return GET("$baseUrl/danh-sach/truyen-moi-cap-nhat?page=$page", headers) + } + + // same as popularManga + override fun latestUpdatesSelector(): String = popularMangaSelector() + override fun latestUpdatesFromElement(element: Element): SManga = popularMangaFromElement(element) + override fun latestUpdatesNextPageSelector(): String? = popularMangaNextPageSelector() + + // search + private val searchPath = "tim-kiem-nang-cao" + private val queryParam = "keyword" + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = "$baseUrl/$searchPath".toHttpUrl().newBuilder() + .addQueryParameter("page", page.toString()) + + // always add search query if present + if (query.isNotBlank()) { + url.addQueryParameter(queryParam, query) + } + + // process filters regardless of search query + filters.forEach { filter -> + when (filter) { + is SortFilter -> url.addQueryParameter("sort", filter.state.toString()) + is StatusFilter -> url.addQueryParameter("status", filter.state.toString()) + is CountryFilter -> url.addQueryParameter("country", filter.countryValues[filter.state]) + is MinChapterFilter -> url.addQueryParameter("minChap", filter.chapterValues[filter.state].toString()) + is GenreFilter -> { + val includeGenres = mutableListOf() + val excludeGenres = mutableListOf() + filter.state.forEach { genre -> + when (genre.state) { + Filter.TriState.STATE_INCLUDE -> includeGenres.add(genre.id.toString()) + Filter.TriState.STATE_EXCLUDE -> excludeGenres.add(genre.id.toString()) + else -> {} // do nothing for STATE_IGNORE + } + } + if (includeGenres.isNotEmpty()) { + url.addQueryParameter("categories", includeGenres.joinToString(",")) + } + if (excludeGenres.isNotEmpty()) { + url.addQueryParameter("nocategories", excludeGenres.joinToString(",")) + } + } + else -> {} // do nothing for unhandled filters + } + } + + return GET(url.build(), headers) + } + + // same as popularManga + override fun searchMangaSelector(): String = popularMangaSelector() + override fun searchMangaFromElement(element: Element): SManga = popularMangaFromElement(element) + override fun searchMangaNextPageSelector(): String? = popularMangaNextPageSelector() + + override fun mangaDetailsParse(document: Document): SManga { + return SManga.create().apply { + document.selectFirst(".book_info > .book_other")?.let { info -> + title = info.selectFirst("h1[itemprop=name]")!!.text() + author = info.selectFirst("ul.list-info li.author p.col-xs-9")?.text() + status = when (info.selectFirst("ul.list-info li.status p.col-xs-9")?.text()) { + "Đang Cập Nhật" -> SManga.ONGOING + "Hoàn Thành" -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + genre = info.select(".list01 li a").joinToString { it.text() } + } + description = document.selectFirst(".book_detail > .story-detail-info")?.text() + thumbnail_url = document.selectFirst(".book_detail > .book_info > .book_avatar > img")?.attr("abs:src") + } + } + + // chapters + override fun chapterListSelector(): String = ".works-chapter-list .works-chapter-item" + + private fun parseRelativeDate(dateString: String): Long { + val now = Calendar.getInstance() + + val timeUnits = mapOf( + "giây" to Calendar.SECOND, + "phút" to Calendar.MINUTE, + "giờ" to Calendar.HOUR, + "ngày" to Calendar.DAY_OF_YEAR, + "tuần" to Calendar.WEEK_OF_YEAR, + "tháng" to Calendar.MONTH, + "năm" to Calendar.YEAR, + ) + + // extract the number and time unit from the string + val parts = dateString.replace(" trước", "").split(" ") + if (parts.size < 2) return 0L + + val number = parts[0].toIntOrNull() ?: return 0L + val unit = parts[1] + + // find the matching time unit + val calendarUnit = timeUnits.entries.find { (key, _) -> unit.startsWith(key) }?.value ?: return 0L + + // subtract the time + now.add(calendarUnit, -number) + + return now.timeInMillis + } + + private fun parseChapterDate(dateString: String): Long { + val relativeTime = parseRelativeDate(dateString) + return if (relativeTime != 0L) { + relativeTime + } else { + try { + dateFormat.parse(dateString)?.time ?: 0L + } catch (e: ParseException) { + 0L + } + } + } + + override fun chapterFromElement(element: Element): SChapter { + return SChapter.create().apply { + element.selectFirst(".name-chap > a")?.let { + name = it.text() + setUrlWithoutDomain(it.attr("abs:href")) + } + date_upload = parseChapterDate(element.selectFirst(".time-chap")?.text() ?: "") + } + } + + // parse pages + private val pageListSelector = ".chapter_content .page-chapter img" + + override fun pageListParse(document: Document): List { + return document.select(pageListSelector).mapIndexed { idx, it -> + Page(idx, imageUrl = it.absUrl("data-src")) + } + } + + override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException() + + // filters + class SortFilter(name: String, val options: List) : Filter.Select(name, options.toTypedArray()) + class StatusFilter(name: String, val options: List) : Filter.Select(name, options.toTypedArray()) + class CountryFilter(name: String, val options: List, val countryValues: List) : Filter.Select(name, options.toTypedArray()) + class MinChapterFilter(name: String, val options: List, val chapterValues: List) : Filter.Select(name, options.toTypedArray()) + class Genre(name: String, val id: Int) : Filter.TriState(name) + class GenreFilter(name: String, state: List) : Filter.Group(name, state) + + private val scope = CoroutineScope(Dispatchers.IO) + private fun launchIO(block: () -> Unit) = scope.launch { block() } + + override fun getFilterList(): FilterList { + launchIO { fetchGenres() } + return FilterList( + SortFilter("Sắp xếp", listOf("Ngày cập nhật", "Truyện mới", "Top all", "Top tháng", "Top tuần", "Top ngày", "Theo dõi", "Bình luận", "Số chapter")), + StatusFilter("Trạng thái", listOf("Tất cả", "Đang Tiến Hành", "Hoàn Thành")), + CountryFilter( + "Quốc gia", + listOf("Tất cả", "Nhật Bản", "Trung Quốc", "Hàn Quốc", "Khác"), + listOf("all", "manga", "manhua", "manhwa", "other"), + ), + MinChapterFilter( + "Số lượng chương", + listOf(">=0 chapters", ">= 50 chapters", ">=100 chapters", ">=200 chapters", ">=300 chapters", ">=400 chapters", ">=500 chapters"), + listOf(0, 50, 100, 200, 300, 400, 500), + ), + if (genreList.isEmpty()) { + Filter.Header("Ấn 'Reset' để tải danh sách thể loại") + } else { + GenreFilter( + "Thể loại", + genreList.map { genre -> + Genre(genre.name, genre.id) + }, + ) + }, + ) + } + + private var genreList: List = emptyList() + private var fetchGenreAttempts: Int = 0 + + private fun genresRequest() = GET("$baseUrl/$searchPath", headers) + + private fun parseGenres(document: Document): List { + return document.select(".genre-item").mapIndexed { index, element -> + Genre(element.text(), index + 1) + } + } + + private fun fetchGenres() { + if (fetchGenreAttempts < 3 && genreList.isEmpty()) { + try { + genreList = client.newCall(genresRequest()).execute().asJsoup().let(::parseGenres) + } catch (_: Exception) { + } finally { + fetchGenreAttempts++ + } + } + } +}