From 293c70c08fcc778c0098c3d555b29e90cd7f94c3 Mon Sep 17 00:00:00 2001 From: nyagami Date: Fri, 26 Apr 2024 23:04:03 +0700 Subject: [PATCH] Add Spanish plugins + Light Novel Brasil (#908) * added hasutl * added novelasligera * added ReinoWuxia * added Oasis Translations * added SkyNovels * added Yuuki Tls * added Light Novel Brasil --- icons/src/es/hasutl/icon.jpg | Bin 0 -> 4399 bytes icons/src/es/novelasligera/icon.png | Bin 0 -> 3077 bytes icons/src/es/oasistranslations/icon.png | Bin 0 -> 1487 bytes icons/src/es/reinowuxia/icon.png | Bin 0 -> 507 bytes icons/src/es/skynovels/icon.png | Bin 0 -> 2743 bytes icons/src/es/yuukitls/icon.png | Bin 0 -> 5607 bytes icons/src/pt/lightnovelbrasil/icon.png | Bin 0 -> 750 bytes ...elbrasil.broken.ts => lightnovelbrasil.ts} | 47 ++++++----- .../spanish/{hasutl.broken.ts => hasutl.ts} | 54 ++++++------- ...velasligera.broken.ts => novelasligera.ts} | 51 ++++++------ .../{novelawuxia.broken.ts => novelawuxia.ts} | 57 ++++++++------ ...lations.broken.ts => oasistranslations.ts} | 67 +++++++--------- .../{skynovels.broken.ts => skynovels.ts} | 32 ++++---- .../spanish/{yukitls.broken.ts => yukitls.ts} | 74 ++++++++---------- scripts/icon_reloading.ts | 2 +- 15 files changed, 182 insertions(+), 202 deletions(-) create mode 100644 icons/src/es/hasutl/icon.jpg create mode 100644 icons/src/es/novelasligera/icon.png create mode 100644 icons/src/es/oasistranslations/icon.png create mode 100644 icons/src/es/reinowuxia/icon.png create mode 100644 icons/src/es/skynovels/icon.png create mode 100644 icons/src/es/yuukitls/icon.png create mode 100644 icons/src/pt/lightnovelbrasil/icon.png rename plugins/portuguese/{lightnovelbrasil.broken.ts => lightnovelbrasil.ts} (87%) rename plugins/spanish/{hasutl.broken.ts => hasutl.ts} (67%) rename plugins/spanish/{novelasligera.broken.ts => novelasligera.ts} (76%) rename plugins/spanish/{novelawuxia.broken.ts => novelawuxia.ts} (77%) rename plugins/spanish/{oasistranslations.broken.ts => oasistranslations.ts} (70%) rename plugins/spanish/{skynovels.broken.ts => skynovels.ts} (88%) rename plugins/spanish/{yukitls.broken.ts => yukitls.ts} (69%) diff --git a/icons/src/es/hasutl/icon.jpg b/icons/src/es/hasutl/icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..50c14648baccc5ed2556ea722dbd23ce14e8cc90 GIT binary patch literal 4399 zcmb7{S2WxW*Tw&1FnWm+HF~e31f%y}MrU{sEk=(hQ4$gc6Fqv6D8UR8M2Ql0^j`Bs zi84x%La4xjZ?ARk4&h(IIzVTnXQ&5&KmY)`8Gx`1!~^7{5HbiU zIT?hEf`XiqnwgfGii(<@k%^9(o0FH9o0E%+Usz6@Ul1z9#U-IC0hL#P!C-u1>N@I* z+Hy)T1rP-V1vM2l8!auHf&iC*!v9-@9)O+g15i0sC@O9v2vz+fU`ViGWzJNsWI2q3zF{*QQ5K@1`y0Z4B=>6>mM(9KFrObY(L1c(R#(-Ys~fod|qNp6UI z!I=$=T5+W_NBkQ<2}=MK_y$K0rU%pk?Z84LIkQ2RfQpLuduso+D&sszcZB@ChNNaI zLo1Tmg?Q^6M}y8eh!ES9zxHCC?qB?~Lkc<$nf`Yz59@R>uTd;JDFx)@s2H)bMY?4P zB}kH;N%YuC)=!m8z12u=XUgPn2n}OM)z-4UL;zQ z@Acg(HJb?h-h(qZgAE`tm`q!iw7E%q4_Azap?(`XjO8Wz)?Iwr=d^wnDE715P)LdQiNim-%ZC%H zYFq9MNdN}&(I}1EkB%2hUYZp~4j@BB{7YZ*CH-z(%+P!DKx6&aZmFG@i5ISClfkdm zoYP2V+uiNR^&-+oDp}Pli)43BNRdxNBT%{uyfa9b(k_$N3blwLXYE! zWmts(u$_$6*wlth@^4==@EwbY z-=dMB$bXC9m|(G$Oh?0BYMo!_{}}qYugCm(Y`L_CTD9P~&S((OowWDP;?ACayTK;8 z;I^f@5(@&!Bt7{jta{Bx_M8uTBNT8lGMDMs%#W;c)Qt*CWKL59jV%h{_=1!u zwNKg~??2XKec~MP?t(02xFmt0xFSWCdg4VnGuh?S zX-W{ajg(Jc@?ez8%!E*UIIj>IF(cc1Ew7YKIjQq|K}td?DV-^nRcP$6^b>r=Abr2t z*k80@=Wf%Q7&fdIVWY57et&LfT^RN;Z8>Z=3C%6h%`tIzL#LH25~W`=VfTsZhc7l+0t$z;-RY z+usLq^j9W^J0JF#yrz{ng|@S;vVwvtf0As9^Hlr`?}m4oa_%7cdZaIxgJb!hE;k5N z0x=TSDWK@`+j^9e;dA<@y`t;Fu7dClbLYWqbj{QYR_odv8~7WAp7>}J71X=h_xI49 z`GU%6`c@O_2D%|7IoN1uU}bbt&(!lBgEQ3=P8c)$xWn>=-G|AnDE}-1Am3H_MR>0U zJ!19)f|{ivo67uNhNv%kC;K8YMfcUd{t4RbWv(NeHMQg2h|H&u;K}H#`^cARA@kje z1+7}kh1+%xW=G^a($EL?(frX>rwjhd8ZuZK_ozVAifs7_xTr?MI5(xBQAdvA_aD&1 zYH^AkR(-{1pJ7>1Zg-dK#pmP86a!yy&R;&mHiAbdi4>k;1v&-%o|A}M!|7@maRq`( zyA3m6&qG#I9=eIOv^P!^rMoAU;6q=iampE*-+63(czNLUF5U-wiNc>9oMg9dUe=IK z<7f}%1@AR2=ZdFXU*gzaK0R*Cr+@hNSejk>$#B^8_pk;{J`7*-=t@~ZMRM#pUT@?_ z1ot%om@KQA&{)^9*N#)3YjezXqNNS&-+A2ry!P}}G~Gt9n0N-5tRPL31%AzEg8Cz% zDKayjP5^8rt!M3Bt0Dz6x2j1?{^`AYCbSY<$~@>UXFWJDBxs-;TGe4OyAE4Wusgku*A){QeU0# zA_`rXAM8R+5sL=@3f8EL4T0+y*E7ld_Uvl1b)Ewde{0u6&yTNKYY~DOdH&{JwTX?d(n+G8Sga z;Z`vf5VgL)6ckQ%%G6$;X18Qc05D~nr_e>?BMZF_Mw*$Ti>u48pDgS$S?63FMOIfb zt4ed56cPpJt#)W3M)jY^z3L3-J!vh_$jZj1w&+E_Wl{*owci!Z(zf$TFY=THZVN*> zwtv~yCh?HbYKB{nXN{J}=Kp|v7(@?4TfC@#6aSjGYmZu(Wp1f`DfHa8ol2SE!r=10 zvF%|-(u8EsEh?fh0e?1%OZoBaaZ7swFcL%a7U`wcU!<2d*ayW`*0jy8R+nSZh4L?b zaH(S=CyVd;h5Z6nhnmI~B>P*(=R8sX=MTE;dz{nt!nVHXria?lFmEB&Y2%NbLRR?+ zTfG5{rhZnkllf+5lXugd$@V_$g$Nk%8ifWLe==Ff6BQfS)cU`fH)WYOS{PwS+^`p$-4IDq!*A8Tu5iQG3yE|wP%AFX|T%gj36)Ygf0_3NS` zCJdV>(R(s~2b86xNT0xo8j7f{elSz<_1_%Oy24vk)sFpU%OA?SxCf{@m!sRf##3{l zVPoi4hMu~NuWK%E^Be9Ye2Ki(JbP!HR@Eq~C|E*VUbrLZAoZJ}r;7L4VnVn?oU@rb zvyWqYICv=$LZlL$$E|NgZTsOb@{>7yqW_vpYoAZK$D8}X)Q ztUy(<(aph8N()?*8ZPnD>~TV4S;1?18a)r z=>6|cAY99$*Wd~fa4^h@=UcfKrRi7LvQ8yOaSxj%D*VBIi-$b`|J6QZQhvot3nk2$ z?ss*r8Z`)?KIshZ%sztG>0}xW{!L`(_x1Hg`q;YPi|)E&ogljS(-c~0EhnXM;>t@Jh?mVIcCge7U3V}0)XM(lb6 zd4*F??k~f9>BNp)4-R1jz%otoY!uu=I=6y%MEAxn&rh@rO62`uN6d$he$5dn_F%}s zP9JTwmVU}|OV2MMo-x8&{i3=jh4F5l8TC|jZQ zT=SE^DtW$TGe$M?Dh1S=oTVDO-Fg1Z{S6_CD>=_PJy z;%ce!eBR2}mVKM=JM$ZAk``>PW2B=9Pt^!j5^0Z8&&g2qUZCZe?=g9Tvoe$7zRBm* z8VqdU>ueU8aEoFRzqSl0OFv+!*vAH8GBr;rNZauE{@@c8+v%& zSdBu*jMS=NeeQCkc?*_)>T-5A+J;QCx|P&&A)FY4p^%U@iS5H0&=7~2^Ma()j;+JD z`sJC?fxn-X6Sjo@mhYv4z6m84xcSoPTeOJ@`@FHi6oj{WT4l+zsE*V*Wyaww<7^Ri ztZ}(HcpnQ;YRz(YK#Uw;7}5Gx317d3MlS~e@DcHRQ{C{z-=-qbO|*kwKiFFJ7&3ie z8Y+Bol>R7xBu!|#QEmTT^ij>LN?}qq@qOi5+kc8nTD&MX2E&Mg+Zt}Zsc=_vQJFdJ zJs2AAUmO17fpP)e+4-+rn4RVAaE56Mj=jd{AaxN_1hE2|EZ4Fhm;NAgP)1H(nLRmM zB9uQOW8>|^7x`fEUUKlGksdrE+vTGN0wKkhsX7+)QTZ5aO+})D*Jp+BQh#qacV{?H zE59xW5rE7^b%qFIN)^Uj3LcjbS5XgEogY1spw|tOL4u)^pVV;s5jFdd94mR#x)Vdk zc)60i=l8qv=$GU$np9>cF6N?IN25mK(A05bZ?#Jlt0j-PCuPZNCWW?l@;Rnp#-E!b zYEV$D5(~u6k-3@mZyCkffUMs&Tyb%X+Any~vKAxiYVF>3nQ|YKGuot^{P2r_x7lfN z-HESF=9J4b~i3DDkv!(9LhE*lN>AbQ5z{993~qX!#OOj9Wf^! z9QlVFB^nqb7#1ZN7bF=M^idr3R2r-wGO8gjs2?%+YaH`X9Q0Kgt{pJ+R~htB8=oaL ztsOB+Jv*Z%Fs~gk{-h+X9Wnl+Bvvyt{-h)HUljeKBlUU+^m_pQr6l~MB<*_$cX4oS zV_-xuFlIs;esy$MPfdwGM2v=n)Qln`7Zv}eB=vg$^iUlBrX>ETCG<=j8x|A$mmx72 z81`NqOBx)98z^-fC14sLpd2mviyZlTAF3TN3=|XnpCdUYBeoneXI)x|NgTFyAk9M^ zxQ&sUhU*Ie002F7QchC6;|5^1|i3L|31({@#VgS8+wy z{e6o{ZFG2+rmfKT!|lA5xxV}Q(DB^!Bwfmt000VXNklu=f%oms1Kf zPQR0SPEe2(-pv5n)1P}c{df`7m&y1Ijv{Ch7i8{_)YApD{SqI!$kVuxE2YbxX-c|O z5`I@bU-0RVKniIkCZ&Qv{DywAc%YvUO2xQ#Pl^Jcpy`BApslRrc7MgoCzS6*_^*M$ zlek>k?Vl(m=`N-Vx!+=mpjrQioTNTSaBSqMv-MM3Vu?Z$GXzGl0095-vOv)UC&>TN z82prLm2v^6Ii#Bu2$G}ZatWt+jw%QM!;<71PT87G?btWs00oLgi3ZgwT_OdV6l6J< zlX*%`g8+4qjtKxhKYXx#^AKU(^9`WG78Xd7##jpDNC8Kr9Vr4)N$;N4XXXJvGE`VX zF2pkrvO9;7xpcb!Hvb%*L&}#r0L=7=eq5l1qI85fMd|efRNX}eA@GSgNFf*Nrehnr z9ku|l%B7-iZY2Fcxo)f#(=m!U663NRllKtS#qS8H}eyL`26&$)G>j%w9i>gOkXa%Sg+a4Vs*pq!^Z=n_!XS z&X$%m(+%6Pkc(VP(botGmboSXScZ|lt=F@l=Z0yq*v+7iII9h^H+zO?6i1fp+Dpq; z6lr6-=4@jcwyjH>jigAHp}4N)0D&9VH9Y3Z#hL4_0TJi}D2WlV8pAN1Oe@PUS**i! zTa7SDtYA2fV;RzHIomjR*d|MFYlGY5Y5elzA za2zMaZdUjqkd9=)j*3hcmzYN52CFmKK66uN8e+B<(vK@k*s^80)^g_Bx-Bgo$pXR{ z$ugI=ZAbvh*u4#t-82YPQ*ol6?ek>rXRASG-5wBCW4et2MrDDeS_Vj}GvZ!9lu_LQ z-Hd}gYTA-%xQ=5Ou05Lp3$wM`Ews=BVvQMijAFQx1)8vW4*%gm`z9rDOq9OVi!hy2;FDjA=;yTDLyvwm9*o*4c%I2uw3wF5AF? z6!30CYKg5D%b;k&28~8NI|zBW09hs(I_wyN-hrTmzoP857gRD5Jj#N9(DL_G4pa*56VI@7ZeyaDC|M<1iv`G z1~E?xr5uTBlYG2*vq70L*V`YZb6XbIXhAu;eSQ6ggL0Oqj?QVjj-&tjd+Gg<&r}aS ztwT=H{O3=WM!(`RCT)Y){mYtF-_uSO06DV%slz)S5sBJL>G7#)sOuGIy{clRdqb^ zO&E(}@)Gb4(?tm+HBQZ;arrKMuuNg5Ru%Zdh znX2OuN1@$s4QO)PG7iewzzjS{W2I27h*%YNG7lqY&nTeos^X{N&<_+(K0HVC&sF3B zu~PLm4Kp_uRPDVFau{r|+D=7DLOl6feguRaz?mj-^)v%%4_gdu*W)A4w$ju%=4!m|N58V)P5{cG9+ zd@~+{k9JwY3n4>%k(X9^5z#$tr$dTY#HGdG74?SPj=fZvVd^N^#!;>UQ}j1)p7L@3Y7Tfak~Ldm%}aAcwd+T;RNseO z*MnJlaFCr|5Ojt!2x)^&Q8j;AG1&;UM<^;z9u8O+vbRPEMXg*DC)jy`- z*4{tp7V4zc({FEiGL#2s`(FD6AFM{ct5@^IG}UJBe1HeGotiG@E8o4^3VeXNK_xcN zgglbdd%H~bMQm46h}tO<@J9tji0A{LXuPU~ZjMuxws=an&lpzhy()(@J1btbFG1SX z?F8oao8fd@Gc#5H?v)syCD|BV1^ln|TZfJ-sMARQ!Dw_`4hDEkCdhO#`P2k0f1=GV z4obo)IW&PFctJ^iwf70-m)CvO_264IEh|U%m-%aK!QPZ$T`^CUf+#t3b%hsbqloAroCAxKb(Mna3@FH)E-9034$TVwWr> zeB}zdjCS!BK>Wpqf0<=v{K)mKJO)L2K7NBD3Oj)S=h@RwJ?zFIbdq^U1UMNhEJvSy z!E!eYoG`xln53RM3Bd8xVSenT8ccK(b&_~aPkhkzm57$4nk||IsLaY6*<$eDWt3DCF^4zLm^F#y{93yo-5b z|Ckp8+^I$Rym#_=I$g3plWg*b1Ro<|32^j$nxM~L_|r*n9srm0qUZK2eTI5p&&fNd z^;5TB&;R0mI*=3i`HQCC@829?xJ=RshX1MXUw@G2(*GO6-S&D3b@-3v_WSGiFYgAx z%lPN-Up{x`BVUvQitx!?HKe};C9rznmmc=kjO{&N5pHLrIJeP7-k;0^gdx^?W7 TnqKms00000NkvXXu0mjfT5z5~ literal 0 HcmV?d00001 diff --git a/icons/src/es/oasistranslations/icon.png b/icons/src/es/oasistranslations/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c4a05c400701406e79e2dbefcda1639b26c9b80b GIT binary patch literal 1487 zcmV;=1u*)FP)^MfST&on+%#=HeHpFZs2+-;T|LP8deG)A>J40eX!p`|@OKkdA2&f? z+1CBgb;Gr;wsC1ve>9=z#;dBjg9c?#lnZuotb>W8{)_uiM=TyZwHEZwBi9x$A42U3 zistg~(X_Cy$ixL+(+@}5e*B#*7G?@i{}N1a#l36up8y!$(^oH8@H;!bl(O(e9C+FS zOt^1ePFH(7ZC^NpBK!}_{7{#WCgW3)wtLdQT+vL&d3}6_txzI989Po%<;d_SipKov zGRmdt)6$e31~a?Q>u*;PKx=K#kTphQGf;|}f>w&$RaIL2hFp*|#;tPFy87=3;w&88 z%Cayz$&v1nd3uMhQeG{kJ6zsGv2LbG6^=ar5XF-gqkkXxaQS*oOTo; z&o(cc+#}f3+w(1y3Rk6d8CQ2;f+pSYr&w98IZ=StdlR@PKPbkdVkqn^1|0Ru3?kXW zeSAFgHX&<*hd`kjxE_gcSw4ap+;@6NBFv)sU>)nRmJQt8&-HThAVL-JwmXcjaj_M% zY6@!uxU4Ied8EieV1g$YC50iOi;j_32;qK-M-;U~VRwvC5;x8Bi(pi!J{}cT8QF{> zKrU!@Ho-`0XMz!Bxf39C7lVLY#NDc9jKn8v*lZzC0F4HfqP^#(AYgStFNENm1S7?y zOrY=u$t~dNw@U`VrDl(trC=m+lbV$BXbeZ9UzZ?4u9J6$IoT(111=YW5mmfahf^<= zBh=t2a$t;-Qv(M23Y;bK(S;XLgZ`414a_$#8uo< zQQOOcsENsI)lVJ?LV^)h#~rnwoFFSn7I8OXga|Q6=U|o^AcYC@aIs)xf>qvta57?q zCcn8{#8bJ&wKvdbB$}BdS(uX%BaI^>ckF->78TzHFxu-Si0qdzL0Xv4HALtl<-%iR zaD#UMd+M~(mGdM}|l(PGU(!_1i%+rBTQ^j z2;Egi!@2U2lNN>;AwsB%rwa@yCRbn%W@eQ!ZyqA8i=>5(CL)xECipNa{`i`SQ?4PP(gz^aU>4rFYvR zMKh*45sDxJlHLFW0pOvAhF7aLtGr8N6oP(B8)V{5W<1N~Vl}C7;_FivWgKKz8@%ZW zC#Qtu5TB%6#j_OPXCD)2?%!bDK8Y%kIFP!UZHZI)cUZPS^V+PqT-^048;6=fpAf^% z3(uVX?lNf=IC(!e$IID`dUW&BJE|szHv5}bbwBWgp{6A-o`1{<7QFBN{@UIvk*kyA z&&%(E<|Mb&?t$gESf$F0N2T9IZi6!bK3O}#mrZ?`g6;8-kF!Qz3)*qm&HMd)>BcHn zsP*Z^7e^7R?3HKs2N@54R!=63zSKW$tdH=%2Y91kKh$lg59N71&7j`?7lI05Hu#AB pX6=cccmMbCk&k@jBOl3;e*gt>3*;^xxT*tWmMxUZ_fV*pbC0Evf(%hlDl!og~1 zXKMfe?Q|jfVgL z@$BuUq@&v4-2fODf@4>loSaNLHL#|l85tQVDJfb|PU+g!B?JJbnUy&J05%*F761S% z77jNM0Gy16TQMTg$;U(`87u$*ab;tWK@!x$yD|U(R4f~kNhsd9uC7)rOdbK*mxR@T zWvqsLt5qt-Zcf2#OQcjVLI41Uj*rBEYSUjs{{T76XhyMeUS|xPJpcdzy-7qtR2Y>t z&evMPKp2GKos9&LzJTg1WtECrsm3kNn^{$uU9$+vs=`hg$qBtJ!% xd+b-rqm(*a(8S;W`EtDpp|NL*b+(+B><*B86yH`I(oz5b002ovPDHLkV1iQ3-Ut8y literal 0 HcmV?d00001 diff --git a/icons/src/es/skynovels/icon.png b/icons/src/es/skynovels/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7d5cfb270a85030e298ee33f60da6bc0a41e7276 GIT binary patch literal 2743 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 literal 0 HcmV?d00001 diff --git a/icons/src/es/yuukitls/icon.png b/icons/src/es/yuukitls/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..277b7d729e9788c3c8096e95132ad02756aa84da GIT binary patch literal 5607 zcmcJT=l*M^sF=?*CY>6DaQ5O`ElT98fw0g+e)q)R}$yF;X#r8|~dVCh<7m#$p| zUVneYd(E74f4IM1GiT;RX}^C%LdZY}002ld)PcJH^3(qYAM4*

c9iVE)#AtFQXT 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 MsJ;i*Du4R%f5{t?RsaA1 literal 0 HcmV?d00001 diff --git a/icons/src/pt/lightnovelbrasil/icon.png b/icons/src/pt/lightnovelbrasil/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dcabe5ba4616d8ead4f42d6d83a4c2d4c860402c GIT binary patch literal 750 zcmVya(8yg!zK|x?(U|Ox?r~m)}40KXXQvl6PfEq^!#`vXvPBVii zbpQYYKuJVFRA_sy+cgD&(!|SD!FlR<0~n_FN#p<80AiWI`&ML5z@>-jM@5_5~z-G?^Q1sX_^3u_b*E_ z+I{&ENHG3Z;~a7?MP(ZQvK->@ld9tiu~Yyy5A$u9Kve#?(!&&Pvk=f!{$)vLK^X4h zBq`KuNTlZsfYSl+2}lMoOb~+YM*eDx2@#mT2+%@}zd}+8q^3m85!o23;q+e!T_g zS}Gd?m~NnY6F|4FH~y;qU;==CW!NU5-Ujf#LjX|40;<0b*oncL%;5b2?;nHe1e|~q zZ~{)i2{-}&4AB0~Mp7wS*HkGvY?(%Y*LECWsNn9_&fxAqt^*(?W?Rdq%^n7<$*Mx& zLfQ4!1b}@V0~pRk)vmB=mzrSi?SwVQWN4;Uvl};u01_=uf{~=yj7u(;?MNN~YzWEb z>tt!}Dhkku@j!>rCUABC?GA9`Mw>bW04DH#9_nBNfRd9v@lc20PCt!Kz>5H|gIVyS zW$?ps@Z){(0tI-91-?iGUgiQX)WMe;r@J|!p0lDgbh#J4U=3e#hkt3{0{+^=1^&g2 gE)<}zp1h^L0lYDkT9`!Z?f?J)07*qoM6N<$f`OlJO8@`> literal 0 HcmV?d00001 diff --git a/plugins/portuguese/lightnovelbrasil.broken.ts b/plugins/portuguese/lightnovelbrasil.ts similarity index 87% rename from plugins/portuguese/lightnovelbrasil.broken.ts rename to plugins/portuguese/lightnovelbrasil.ts index b5760bc..64d69a8 100644 --- a/plugins/portuguese/lightnovelbrasil.broken.ts +++ b/plugins/portuguese/lightnovelbrasil.ts @@ -6,7 +6,7 @@ import { Plugin } from '@typings/plugin'; class LightNovelBrasil implements Plugin.PluginBase { id = 'lightnovelbrasil'; name = 'Light Novel Brasil'; - icon = 'multisrc/wpmangastream/icons/lightnovelbrasil.png'; + icon = 'src/pt/lightnovelbrasil/icon.png'; site = 'https://lightnovelbrasil.com/'; version = '1.0.0'; @@ -35,19 +35,19 @@ class LightNovelBrasil implements Plugin.PluginBase { const novels: Plugin.NovelItem[] = []; - loadedCheerio('article.bs').each(function () { - const novelName = loadedCheerio(this).find('.ntitle').text().trim(); - let image = loadedCheerio(this).find('img'); + loadedCheerio('article.bs').each((idx, ele) => { + const novelName = loadedCheerio(ele).find('.ntitle').text().trim(); + let image = loadedCheerio(ele).find('img'); const novelCover = image.attr('data-src') || image.attr('src'); - const novelUrl = loadedCheerio(this).find('a').attr('href'); + const novelUrl = loadedCheerio(ele).find('a').attr('href'); if (!novelUrl) return; const novel = { name: novelName, cover: novelCover, - url: novelUrl, + path: novelUrl.replace(this.site, ''), }; novels.push(novel); @@ -56,8 +56,8 @@ class LightNovelBrasil implements Plugin.PluginBase { return novels; } - async parseNovelAndChapters(novelUrl: string): Promise { - const url = novelUrl; + async parseNovel(novelPath: string): Promise { + const url = this.site + novelPath; const headers = new Headers(); const result = await fetchApi(url, { headers }); const body = await result.text(); @@ -65,12 +65,11 @@ class LightNovelBrasil implements Plugin.PluginBase { let loadedCheerio = parseHTML(body); const novel: Plugin.SourceNovel = { - url, + path: novelPath, + name: loadedCheerio('.entry-title').text(), chapters: [], }; - novel.name = loadedCheerio('.entry-title').text(); - novel.cover = loadedCheerio('img.wp-post-image').attr('data-src') || loadedCheerio('img.wp-post-image').attr('src'); @@ -103,22 +102,22 @@ class LightNovelBrasil implements Plugin.PluginBase { loadedCheerio('.eplister') .find('li') - .each(function () { + .each((idx, ele) => { const chapterName = - loadedCheerio(this).find('.epl-num').text() + + loadedCheerio(ele).find('.epl-num').text() + ' - ' + - loadedCheerio(this).find('.epl-title').text(); + loadedCheerio(ele).find('.epl-title').text(); - const releaseDate = loadedCheerio(this).find('.epl-date').text().trim(); + const releaseDate = loadedCheerio(ele).find('.epl-date').text().trim(); - const chapterUrl = loadedCheerio(this).find('a').attr('href'); + const chapterUrl = loadedCheerio(ele).find('a').attr('href'); if (!chapterUrl) return; chapter.push({ name: chapterName, releaseTime: releaseDate, - url: chapterUrl, + path: chapterUrl.replace(this.site, ''), }); }); @@ -126,9 +125,9 @@ class LightNovelBrasil implements Plugin.PluginBase { return novel; } - async parseChapter(chapterUrl: string): Promise { + async parseChapter(chapterPath: string): Promise { const headers = new Headers(); - const result = await fetchApi(chapterUrl, { headers }); + const result = await fetchApi(this.site + chapterPath, { headers }); const body = await result.text(); const loadedCheerio = parseHTML(body); @@ -151,15 +150,15 @@ class LightNovelBrasil implements Plugin.PluginBase { const novels: Plugin.NovelItem[] = []; - loadedCheerio('article.bs').each(function () { - const novelName = loadedCheerio(this).find('.ntitle').text().trim(); - const novelCover = loadedCheerio(this).find('img').attr('src'); - const novelUrl = loadedCheerio(this).find('a').attr('href'); + loadedCheerio('article.bs').each((idx, ele) => { + const novelName = loadedCheerio(ele).find('.ntitle').text().trim(); + const novelCover = loadedCheerio(ele).find('img').attr('src'); + const novelUrl = loadedCheerio(ele).find('a').attr('href'); if (!novelUrl) return; novels.push({ name: novelName, - url: novelUrl, + path: novelUrl.replace(this.site, ''), cover: novelCover, }); }); diff --git a/plugins/spanish/hasutl.broken.ts b/plugins/spanish/hasutl.ts similarity index 67% rename from plugins/spanish/hasutl.broken.ts rename to plugins/spanish/hasutl.ts index ff385c6..bd45c37 100644 --- a/plugins/spanish/hasutl.broken.ts +++ b/plugins/spanish/hasutl.ts @@ -6,16 +6,15 @@ import { Filters } from '@libs/filterInputs'; class HasulTL implements Plugin.PluginBase { id = 'HasuTL'; name = 'Hasu Translations'; - icon = 'src/es/hasutl/icon.png'; + icon = 'src/es/hasutl/icon.jpg'; site = 'https://hasutl.wordpress.com/'; - filters?: Filters | undefined; version = '1.0.0'; - baseUrl = this.site; + async popularNovels( pageNo: number, options: Plugin.PopularNovelsOptions, ): Promise { - let url = this.baseUrl + 'light-novels-activas/'; + let url = this.site + 'light-novels-activas/'; const result = await fetch(url); const body = await result.text(); @@ -24,11 +23,11 @@ class HasulTL implements Plugin.PluginBase { let novels: Plugin.NovelItem[] = []; - loadedCheerio('div.wp-block-columns').each(function () { - const novelName = loadedCheerio(this).find('.wp-block-button').text(); - const novelCover = loadedCheerio(this).find('img').attr('src'); + loadedCheerio('div.wp-block-columns').each((idx, ele) => { + const novelName = loadedCheerio(ele).find('.wp-block-button').text(); + const novelCover = loadedCheerio(ele).find('img').attr('src'); - let novelUrl = loadedCheerio(this) + let novelUrl = loadedCheerio(ele) .find('.wp-block-button > a') .attr('href'); @@ -37,16 +36,15 @@ class HasulTL implements Plugin.PluginBase { const novel = { name: novelName, cover: novelCover, - url: novelUrl, + path: novelUrl.replace(this.site, ''), }; - novels.push(novel); }); return novels; } - async parseNovelAndChapters(novelUrl: string): Promise { - const url = novelUrl; + async parseNovel(novelPath: string): Promise { + const url = this.site + novelPath; const result = await fetch(url); const body = await result.text(); @@ -54,13 +52,9 @@ class HasulTL implements Plugin.PluginBase { let loadedCheerio = parseHTML(body); let novel: Plugin.SourceNovel = { - url, + path: novelPath, + name: loadedCheerio('.post-header').text(), }; - - novel.url = novelUrl; - - novel.name = loadedCheerio('.post-header').text(); - novel.cover = loadedCheerio('.featured-media > img').attr('src'); let novelSummary = loadedCheerio('.post-content').find('p').html()!; @@ -70,19 +64,19 @@ class HasulTL implements Plugin.PluginBase { loadedCheerio('.wp-block-media-text__content') .find('a') - .each(function () { - const chapterName = loadedCheerio(this).text().trim(); + .each((idx, ele) => { + const chapterName = loadedCheerio(ele).text().trim(); const releaseDate = null; - let chapterUrl = loadedCheerio(this).attr('href'); + let chapterUrl = loadedCheerio(ele).attr('href'); if (!chapterUrl) return; const chapter = { name: chapterName, releaseTime: releaseDate, - url: chapterUrl, + path: chapterUrl.replace(this.site, ''), }; novelChapters.push(chapter); @@ -92,8 +86,8 @@ class HasulTL implements Plugin.PluginBase { return novel; } - async parseChapter(chapterUrl: string): Promise { - const url = chapterUrl; + async parseChapter(chapterPath: string): Promise { + const url = this.site + chapterPath; const result = await fetch(url); const body = await result.text(); @@ -108,7 +102,7 @@ class HasulTL implements Plugin.PluginBase { searchTerm: string, pageNo: number, ): Promise { - const url = `${this.baseUrl}?s=${searchTerm}&post_type=wp-manga`; + const url = `${this.site}?s=${searchTerm}&post_type=wp-manga`; const result = await fetch(url); const body = await result.text(); @@ -117,23 +111,23 @@ class HasulTL implements Plugin.PluginBase { let novels: Plugin.NovelItem[] = []; - loadedCheerio('.post-container').each(function () { - const novelName = loadedCheerio(this).find('.post-header').text(); + loadedCheerio('.post-container').each((idx, ele) => { + const novelName = loadedCheerio(ele).find('.post-header').text(); if ( !novelName.includes('Cap') && !novelName.includes('Vol') && !novelName.includes('Light Novels') ) { - const novelCover = loadedCheerio(this).find('img').attr('src'); + const novelCover = loadedCheerio(ele).find('img').attr('src'); - let novelUrl = loadedCheerio(this).find('a').attr('href'); + let novelUrl = loadedCheerio(ele).find('a').attr('href'); if (!novelUrl) return; const novel = { name: novelName, cover: novelCover, - url: novelUrl, + path: novelUrl.replace(this.site, ''), }; novels.push(novel); diff --git a/plugins/spanish/novelasligera.broken.ts b/plugins/spanish/novelasligera.ts similarity index 76% rename from plugins/spanish/novelasligera.broken.ts rename to plugins/spanish/novelasligera.ts index 132c5fb..766b63a 100644 --- a/plugins/spanish/novelasligera.broken.ts +++ b/plugins/spanish/novelasligera.ts @@ -4,18 +4,18 @@ import { Plugin } from '@typings/plugin'; import { Filters } from '@libs/filterInputs'; class Ligera implements Plugin.PluginBase { - id = 'ligera.com'; + id = 'novelasligera'; name = 'Novelas Ligera'; icon = 'src/es/novelasligera/icon.png'; site = 'https://novelasligera.com/'; filters?: Filters | undefined; version = '1.0.0'; - baseUrl = this.site; + async popularNovels( pageNo: number, options: Plugin.PopularNovelsOptions, ): Promise { - let url = this.baseUrl; + let url = this.site; const result = await fetch(url); const body = await result.text(); @@ -24,21 +24,21 @@ class Ligera implements Plugin.PluginBase { let novels: Plugin.NovelItem[] = []; - loadedCheerio('.elementor-column').each(function () { - const novelName = loadedCheerio(this) + loadedCheerio('.elementor-column').each((idx, ele) => { + const novelName = loadedCheerio(ele) .find('.widget-image-caption.wp-caption-text') .text(); if (novelName) { - const novelCover = loadedCheerio(this) + const novelCover = loadedCheerio(ele) .find('a > img') .attr('data-lazy-src'); - let novelUrl = loadedCheerio(this).find('a').attr('href'); + let novelUrl = loadedCheerio(ele).find('a').attr('href'); if (!novelUrl) return; const novel = { name: novelName, cover: novelCover, - url: novelUrl, + path: novelUrl.replace(this.site, ''), }; novels.push(novel); @@ -47,8 +47,8 @@ class Ligera implements Plugin.PluginBase { return novels; } - async parseNovelAndChapters(novelUrl: string): Promise { - const url = this.baseUrl + 'novela/' + novelUrl; + async parseNovel(novelPath: string): Promise { + const url = this.site + novelPath; // console.log(url); @@ -57,13 +57,14 @@ class Ligera implements Plugin.PluginBase { let loadedCheerio = parseHTML(body); - let novel: Plugin.SourceNovel = { url }; - - novel.name = loadedCheerio('h1').text(); + let novel: Plugin.SourceNovel = { + path: novelPath, + name: loadedCheerio('h1').text(), + }; novel.cover = loadedCheerio('.elementor-widget-container') .find('img') - .attr('src'); + .attr('data-lazy-src'); loadedCheerio('.elementor-row') .find('p') @@ -97,15 +98,15 @@ class Ligera implements Plugin.PluginBase { loadedCheerio('.elementor-tab-content') .find('li') - .each(function () { - const chapterName = loadedCheerio(this).text(); + .each((idx, ele) => { + const chapterName = loadedCheerio(ele).text(); const releaseDate = null; - const chapterUrl = loadedCheerio(this).find('a').attr('href'); + const chapterUrl = loadedCheerio(ele).find('a').attr('href'); if (!chapterUrl) return; const chapter = { name: chapterName, releaseTime: releaseDate, - url: chapterUrl, + path: chapterUrl.replace(this.site, ''), }; novelChapters.push(chapter); @@ -115,8 +116,8 @@ class Ligera implements Plugin.PluginBase { return novel; } - async parseChapter(chapterUrl: string): Promise { - const url = chapterUrl; + async parseChapter(chapterPath: string): Promise { + const url = this.site + chapterPath; // console.log(url); const result = await fetch(url); @@ -136,7 +137,7 @@ class Ligera implements Plugin.PluginBase { searchTerm: string, pageNo: number, ): Promise { - const url = this.baseUrl + '?s=' + searchTerm + '&post_type=wp-manga'; + const url = this.site + '?s=' + searchTerm + '&post_type=wp-manga'; // console.log(url); const result = await fetch(url); @@ -146,9 +147,9 @@ class Ligera implements Plugin.PluginBase { let novels: Plugin.NovelItem[] = []; - loadedCheerio('.inside-article').each(function () { - const novelCover = loadedCheerio(this).find('img').attr('src'); - let novelUrl = loadedCheerio(this).find('a').attr('href'); + loadedCheerio('.inside-article').each((idx, ele) => { + const novelCover = loadedCheerio(ele).find('img').attr('src'); + let novelUrl = loadedCheerio(ele).find('a').attr('href'); let novelName; @@ -165,7 +166,7 @@ class Ligera implements Plugin.PluginBase { const novel = { name: novelName, cover: novelCover, - url: novelUrl, + path: novelUrl.replace(this.site, ''), }; novels.push(novel); diff --git a/plugins/spanish/novelawuxia.broken.ts b/plugins/spanish/novelawuxia.ts similarity index 77% rename from plugins/spanish/novelawuxia.broken.ts rename to plugins/spanish/novelawuxia.ts index 0b97d68..e160f55 100644 --- a/plugins/spanish/novelawuxia.broken.ts +++ b/plugins/spanish/novelawuxia.ts @@ -5,13 +5,12 @@ import { defaultCover } from '@libs/defaultCover'; import { Filters } from '@libs/filterInputs'; class ReinoWuxia implements Plugin.PluginBase { - id = 'awuxia.com'; + id = 'reinowuxia'; name = 'ReinoWuxia'; - icon = 'src/es/novelawuxia/icon.png'; + icon = 'src/es/reinowuxia/icon.png'; filters?: Filters | undefined; version = '1.0.0'; site = 'http://www.reinowuxia.com/'; - baseUrl = this.site; getNovelName(y: string | undefined) { return y?.replace(/-/g, ' ').replace(/(?:^|\s)\S/g, a => a.toUpperCase()); } @@ -19,7 +18,7 @@ class ReinoWuxia implements Plugin.PluginBase { pageNo: number, options: Plugin.PopularNovelsOptions, ): Promise { - let url = this.baseUrl + 'p/todas-las-novelas.html'; + let url = this.site + 'p/todas-las-novelas.html'; const result = await fetchApi(url, { method: 'GET', @@ -48,7 +47,7 @@ class ReinoWuxia implements Plugin.PluginBase { const novel = { name: novelName, cover: novelCover, - url: novelUrl, + path: novelUrl.replace(this.site, ''), }; novels.push(novel); @@ -56,17 +55,18 @@ class ReinoWuxia implements Plugin.PluginBase { return novels; } - async parseNovelAndChapters(novelUrl: string): Promise { - const url = novelUrl; + async parseNovel(novelPath: string): Promise { + const url = this.site + novelPath; const result = await fetchApi(url); const body = await result.text(); let loadedCheerio = parseHTML(body); - let novel: Plugin.SourceNovel = { url }; - - novel.name = loadedCheerio('h1.post-title').text().trim(); + let novel: Plugin.SourceNovel = { + path: novelPath, + name: loadedCheerio('h1.post-title').text().trim(), + }; novel.cover = loadedCheerio('div.separator').find('a').attr('href'); @@ -94,13 +94,17 @@ class ReinoWuxia implements Plugin.PluginBase { let novelChapters: Plugin.ChapterItem[] = []; - loadedCheerio('div').each(function () { - const detailName = loadedCheerio(this).text(); + loadedCheerio('div').each((idx, rootEle) => { + const detailName = loadedCheerio(rootEle).text(); if (detailName.includes('Sinopsis')) { novel.summary = - loadedCheerio(this).next().text() !== '' - ? loadedCheerio(this).next().text().replace('Sinopsis', '').trim() - : loadedCheerio(this) + loadedCheerio(rootEle).next().text() !== '' + ? loadedCheerio(rootEle) + .next() + .text() + .replace('Sinopsis', '') + .trim() + : loadedCheerio(rootEle) .next() .next() .text() @@ -109,22 +113,25 @@ class ReinoWuxia implements Plugin.PluginBase { } if (detailName.includes('Lista de CapĂ­tulos')) { - loadedCheerio(this) + loadedCheerio(rootEle) .find('a') - .each(function (res) { - const chapterName = loadedCheerio(this).text(); - let chapterUrl = loadedCheerio(this).attr('href'); + .each((idx, ele) => { + const chapterName = loadedCheerio(ele).text(); + const chapterPath = loadedCheerio(ele) + .attr('href') + ?.replace(this.site, ''); const releaseDate = null; if ( chapterName && - chapterUrl && + chapterPath && + chapterPath !== '/' && !novelChapters.some(chap => chap.name === chapterName) ) { const chapter = { name: chapterName, releaseTime: releaseDate, - url: chapterUrl, + path: chapterPath, }; novelChapters.push(chapter); @@ -137,8 +144,8 @@ class ReinoWuxia implements Plugin.PluginBase { return novel; } - async parseChapter(chapterUrl: string): Promise { - const url = chapterUrl; + async parseChapter(chapterPath: string): Promise { + const url = this.site + chapterPath; const result = await fetchApi(url); const body = await result.text(); @@ -153,7 +160,7 @@ class ReinoWuxia implements Plugin.PluginBase { searchTerm: string, pageNo: number, ): Promise { - const url = `${this.baseUrl}search?q=${searchTerm}`; + const url = `${this.site}search?q=${searchTerm}`; const result = await fetchApi(url); const body = await result.text(); @@ -183,7 +190,7 @@ class ReinoWuxia implements Plugin.PluginBase { const novel = { name: novelName, cover: novelCover, - url: novelUrl, + path: novelUrl.replace(this.site, ''), }; novels.push(novel); diff --git a/plugins/spanish/oasistranslations.broken.ts b/plugins/spanish/oasistranslations.ts similarity index 70% rename from plugins/spanish/oasistranslations.broken.ts rename to plugins/spanish/oasistranslations.ts index 4be244c..5d7616d 100644 --- a/plugins/spanish/oasistranslations.broken.ts +++ b/plugins/spanish/oasistranslations.ts @@ -2,17 +2,8 @@ import { fetchFile, fetchApi } from '@libs/fetch'; import { Filters } from '@libs/filterInputs'; import { Plugin } from '@typings/plugin'; import { load as parseHTML } from 'cheerio'; - -export const id = 'oasisTL.wp'; -export const name = 'Oasis Translations'; -export const site = 'https://oasistranslations.wordpress.com/'; -export const version = '1.0.0'; -export const icon = 'src/es/oasistranslations/icon.png'; - -const baseUrl = site; - class Oasis implements Plugin.PluginBase { - id = 'oasisTL.wp'; + id = 'oasistranslations'; name = 'Oasis Translations'; site = 'https://oasistranslations.wordpress.com/'; version = '1.0.0'; @@ -22,7 +13,7 @@ class Oasis implements Plugin.PluginBase { pageNo: number, options: Plugin.PopularNovelsOptions, ): Promise { - let url = baseUrl; + let url = this.site; const result = await fetchApi(url); const body = await result.text(); @@ -33,19 +24,19 @@ class Oasis implements Plugin.PluginBase { loadedCheerio('.menu-item-1819') .find('.sub-menu > li') - .each(function () { - const novelName = loadedCheerio(this).text(); + .each((idx, ele) => { + const novelName = loadedCheerio(ele).text(); if (!novelName.match(/Activas|Finalizadas|Dropeadas/)) { - const novelCover = loadedCheerio(this).find('img').attr('src'); + const novelCover = loadedCheerio(ele).find('img').attr('src'); - let novelUrl = loadedCheerio(this).find('a').attr('href'); + let novelUrl = loadedCheerio(ele).find('a').attr('href'); if (!novelUrl) return; const novel = { name: novelName, cover: novelCover, - url: novelUrl, + path: novelUrl.replace(this.site, ''), }; novels.push(novel); @@ -54,21 +45,21 @@ class Oasis implements Plugin.PluginBase { return novels; } - async parseNovelAndChapters(novelUrl: string): Promise { - const url = novelUrl; + async parseNovel(novelPath: string): Promise { + const url = this.site + novelPath; const result = await fetchApi(url); const body = await result.text(); let loadedCheerio = parseHTML(body); - let novel: Plugin.SourceNovel = { url }; - - novel.name = loadedCheerio('h1.entry-title') - .text() - .replace(/[\t\n]/g, '') - .trim(); - + let novel: Plugin.SourceNovel = { + path: novelPath, + name: loadedCheerio('h1.entry-title') + .text() + .replace(/[\t\n]/g, '') + .trim(), + }; novel.cover = loadedCheerio('img[loading="lazy"]').attr('src'); loadedCheerio('.entry-content > p').each(function (res) { @@ -94,17 +85,17 @@ class Oasis implements Plugin.PluginBase { // if ($(".entry-content").find("li").length) { loadedCheerio('.entry-content') .find('a') - .each(function () { - let chapterUrl = loadedCheerio(this).attr('href'); + .each((idx, ele) => { + let chapterUrl = loadedCheerio(ele).attr('href'); - if (chapterUrl && chapterUrl.includes(baseUrl)) { - const chapterName = loadedCheerio(this).text(); + if (chapterUrl && chapterUrl.includes(this.site)) { + const chapterName = loadedCheerio(ele).text(); const releaseDate = null; const chapter = { name: chapterName, releaseTime: releaseDate, - url: chapterUrl, + path: chapterUrl.replace(this.site, ''), }; novelChapters.push(chapter); @@ -115,8 +106,8 @@ class Oasis implements Plugin.PluginBase { return novel; } - async parseChapter(chapterUrl: string): Promise { - const url = chapterUrl; + async parseChapter(chapterPath: string): Promise { + const url = this.site + chapterPath; const result = await fetchApi(url); const body = await result.text(); @@ -135,7 +126,7 @@ class Oasis implements Plugin.PluginBase { ): Promise { searchTerm = searchTerm.toLowerCase(); - let url = baseUrl; + let url = this.site; const result = await fetchApi(url); const body = await result.text(); @@ -145,19 +136,19 @@ class Oasis implements Plugin.PluginBase { let novels: Plugin.NovelItem[] = []; loadedCheerio('.menu-item-1819') .find('.sub-menu > li') - .each(function () { - const novelName = loadedCheerio(this).text(); + .each((idx, ele) => { + const novelName = loadedCheerio(ele).text(); if (!novelName.match(/Activas|Finalizadas|Dropeadas/)) { - const novelCover = loadedCheerio(this).find('img').attr('src'); + const novelCover = loadedCheerio(ele).find('img').attr('src'); - let novelUrl = loadedCheerio(this).find('a').attr('href'); + let novelUrl = loadedCheerio(ele).find('a').attr('href'); if (!novelUrl) return; const novel = { name: novelName, cover: novelCover, - url: novelUrl, + path: novelUrl.replace(this.site, ''), }; novels.push(novel); diff --git a/plugins/spanish/skynovels.broken.ts b/plugins/spanish/skynovels.ts similarity index 88% rename from plugins/spanish/skynovels.broken.ts rename to plugins/spanish/skynovels.ts index c952dce..d0b8a5b 100644 --- a/plugins/spanish/skynovels.broken.ts +++ b/plugins/spanish/skynovels.ts @@ -3,12 +3,11 @@ import { Filters } from '@libs/filterInputs'; import { Plugin } from '@typings/plugin'; class SkyNovels implements Plugin.PluginBase { - id = 'skynovels.net'; + id = 'skynovels'; name = 'SkyNovels'; site = 'https://www.skynovels.net/'; version = '1.0.0'; icon = 'src/es/skynovels/icon.png'; - baseUrl = this.site; async popularNovels( pageNo: number, @@ -27,18 +26,17 @@ class SkyNovels implements Plugin.PluginBase { 'https://api.skynovels.net/api/get-image/' + res.image + '/novels/false'; - const novelUrl = - this.baseUrl + 'novelas/' + res.id + '/' + res.nvl_name + '/'; + const path = 'novelas/' + res.id + '/' + res.nvl_name + '/'; - const novel = { name: novelName, url: novelUrl, cover: novelCover }; + const novel = { name: novelName, path, cover: novelCover }; novels.push(novel); }); return novels; } - async parseNovelAndChapters(novelUrl: string): Promise { - const novelId = novelUrl.split('/')[4]; + async parseNovel(novelPath: string): Promise { + const novelId = novelPath.split('/')[1]; const url = 'https://api.skynovels.net/api/novel/' + novelId + '/reading?&q'; @@ -47,9 +45,10 @@ class SkyNovels implements Plugin.PluginBase { const item = body?.novel?.[0]; - let novel: Plugin.SourceNovel = { url: novelUrl }; - - novel.name = item?.nvl_title; + let novel: Plugin.SourceNovel = { + path: novelPath, + name: item?.nvl_title || 'Untitled', + }; novel.cover = 'https://api.skynovels.net/api/get-image/' + @@ -69,12 +68,12 @@ class SkyNovels implements Plugin.PluginBase { volume?.chapters?.forEach(chapter => { const chapterName = chapter.chp_index_title; const releaseDate = new Date(chapter.createdAt).toDateString(); - const chapterUrl = novelUrl + chapter.id + '/' + chapter.chp_name; + const chapterPath = novelPath + chapter.id + '/' + chapter.chp_name; const chap = { name: chapterName, releaseTime: releaseDate, - url: chapterUrl, + path: chapterPath, }; novelChapters.push(chap); @@ -85,8 +84,8 @@ class SkyNovels implements Plugin.PluginBase { return novel; } - async parseChapter(chapterUrl: string): Promise { - let chapterId: string = chapterUrl.split('/')[6]; + async parseChapter(chapterPath: string): Promise { + let chapterId: string = chapterPath.split('/')[3]; const url = `https://api.skynovels.net/api/novel-chapter/${chapterId}`; const result = await fetchApi(url); @@ -120,10 +119,9 @@ class SkyNovels implements Plugin.PluginBase { 'https://api.skynovels.net/api/get-image/' + res.image + '/novels/false'; - const novelUrl = - this.baseUrl + 'novelas/' + res.id + '/' + res.nvl_name + '/'; + const path = 'novelas/' + res.id + '/' + res.nvl_name + '/'; - const novel = { name: novelName, url: novelUrl, cover: novelCover }; + const novel = { name: novelName, path, cover: novelCover }; novels.push(novel); }); diff --git a/plugins/spanish/yukitls.broken.ts b/plugins/spanish/yukitls.ts similarity index 69% rename from plugins/spanish/yukitls.broken.ts rename to plugins/spanish/yukitls.ts index befb3ea..439ccc8 100644 --- a/plugins/spanish/yukitls.broken.ts +++ b/plugins/spanish/yukitls.ts @@ -3,28 +3,19 @@ import { Filters } from '@libs/filterInputs'; import { Plugin } from '@typings/plugin'; import { load as parseHTML } from 'cheerio'; -export const id = 'yuukitls.com'; -export const name = 'Yuuki Tls'; -export const site = 'https://yuukitls.com/'; -export const version = '1.0.0'; -export const icon = 'src/es/yuukitls/icon.png'; - -const baseUrl = site; - class Yuuki implements Plugin.PluginBase { - id = 'yuukitls.com'; + id = 'yuukitls'; name = 'Yuuki Tls'; icon = 'src/es/yuukitls/icon.png'; site = 'https://yuukitls.com/'; filters?: Filters | undefined; version = '1.0.0'; - baseUrl = this.site; async popularNovels( pageNo: number, options: Plugin.PopularNovelsOptions, ): Promise { - let url = baseUrl; + let url = this.site; const result = await fetchApi(url); const body = await result.text(); @@ -35,18 +26,18 @@ class Yuuki implements Plugin.PluginBase { loadedCheerio('.quadmenu-navbar-collapse ul li:nth-child(2)') .find('li') - .each(function () { - const novelName = loadedCheerio(this) + .each((idx, ele) => { + const novelName = loadedCheerio(ele) .text() .replace(/[\s\n]+/g, ' '); - const novelCover = loadedCheerio(this).find('img').attr('src'); + const novelCover = loadedCheerio(ele).find('img').attr('src'); - let novelUrl = loadedCheerio(this).find('a').attr('href'); + let novelUrl = loadedCheerio(ele).find('a').attr('href'); if (!novelUrl) return; const novel = { name: novelName, cover: novelCover, - url: novelUrl, + path: novelUrl.replace(this.site, ''), }; novels.push(novel); @@ -54,8 +45,8 @@ class Yuuki implements Plugin.PluginBase { return novels; } - async parseNovelAndChapters(novelUrl: string): Promise { - const url = novelUrl; + async parseNovel(novelPath: string): Promise { + const url = this.site + novelPath; const result = await fetchApi(url); const body = await result.text(); @@ -63,14 +54,13 @@ class Yuuki implements Plugin.PluginBase { let loadedCheerio = parseHTML(body); let novel: Plugin.SourceNovel = { - url, + path: novelPath, + name: loadedCheerio('h1.entry-title') + .text() + .replace(/[\t\n]/g, '') + .trim(), }; - novel.name = loadedCheerio('h1.entry-title') - .text() - .replace(/[\t\n]/g, '') - .trim(); - novel.cover = loadedCheerio('img[loading="lazy"]').attr('src'); loadedCheerio('.entry-content') @@ -98,17 +88,17 @@ class Yuuki implements Plugin.PluginBase { if (loadedCheerio('.entry-content').find('li').length) { loadedCheerio('.entry-content') .find('li') - .each(function () { - let chapterUrl = loadedCheerio(this).find('a').attr('href'); + .each((idx, ele) => { + let chapterUrl = loadedCheerio(ele).find('a').attr('href'); - if (chapterUrl && chapterUrl.includes(baseUrl)) { - const chapterName = loadedCheerio(this).text(); + if (chapterUrl && chapterUrl.includes(this.site)) { + const chapterName = loadedCheerio(ele).text(); const releaseDate = null; const chapter = { name: chapterName, releaseTime: releaseDate, - url: chapterUrl, + path: chapterUrl.replace(this.site, ''), }; novelChapters.push(chapter); @@ -117,17 +107,17 @@ class Yuuki implements Plugin.PluginBase { } else { loadedCheerio('.entry-content') .find('p') - .each(function () { - let chapterUrl = loadedCheerio(this).find('a').attr('href'); + .each((idx, ele) => { + let chapterUrl = loadedCheerio(ele).find('a').attr('href'); - if (chapterUrl && chapterUrl.includes(baseUrl)) { - const chapterName = loadedCheerio(this).text(); + if (chapterUrl && chapterUrl.includes(this.site)) { + const chapterName = loadedCheerio(ele).text(); const releaseDate = null; const chapter = { name: chapterName, releaseTime: releaseDate, - url: chapterUrl, + path: chapterUrl.replace(this.site, ''), }; novelChapters.push(chapter); @@ -139,8 +129,8 @@ class Yuuki implements Plugin.PluginBase { return novel; } - async parseChapter(chapterUrl: string): Promise { - const url = chapterUrl; + async parseChapter(chapterPath: string): Promise { + const url = this.site + chapterPath; const result = await fetchApi(url); const body = await result.text(); @@ -156,7 +146,7 @@ class Yuuki implements Plugin.PluginBase { ): Promise { searchTerm = searchTerm.toLowerCase(); - let url = baseUrl; + let url = this.site; const result = await fetchApi(url); const body = await result.text(); @@ -167,17 +157,17 @@ class Yuuki implements Plugin.PluginBase { loadedCheerio('.menu-item-2869') .find('.menu-item.menu-item-type-post_type.menu-item-object-post') - .each(function () { - const novelName = loadedCheerio(this).text(); - const novelCover = loadedCheerio(this).find('img').attr('src'); + .each((idx, ele) => { + const novelName = loadedCheerio(ele).text(); + const novelCover = loadedCheerio(ele).find('img').attr('src'); - let novelUrl = loadedCheerio(this).find('a').attr('href'); + let novelUrl = loadedCheerio(ele).find('a').attr('href'); if (!novelUrl) return; const novel = { name: novelName, cover: novelCover, - url: novelUrl, + path: novelUrl.replace(this.site, ''), }; novels.push(novel); diff --git a/scripts/icon_reloading.ts b/scripts/icon_reloading.ts index 648abd6..3a21a50 100644 --- a/scripts/icon_reloading.ts +++ b/scripts/icon_reloading.ts @@ -57,7 +57,7 @@ used.add(path.join(root, '..', 'icons', 'coverNotAvailable.webp')); if (!skip[id] && icon && site) { const image = await fetch( - `https://www.google.com/s2/favicons?domain=${site}&sz=${size}`, + `https://www.google.com/s2/favicons?domain=${site}&sz=${size}&type=png`, ) .then(res => res.arrayBuffer()) .then(res => Buffer.from(res));