From 18b6668b547485013b04064d28f875967bd85078 Mon Sep 17 00:00:00 2001 From: Chopper <156493704+choppeh@users.noreply.github.com> Date: Wed, 7 Aug 2024 00:45:07 -0300 Subject: [PATCH] Remove AgiToon (#4465) --- src/ko/agitoon/build.gradle | 8 - .../agitoon/res/mipmap-hdpi/ic_launcher.png | Bin 3886 -> 0 bytes .../agitoon/res/mipmap-mdpi/ic_launcher.png | Bin 2155 -> 0 bytes .../agitoon/res/mipmap-xhdpi/ic_launcher.png | Bin 5013 -> 0 bytes .../agitoon/res/mipmap-xxhdpi/ic_launcher.png | Bin 9211 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 13069 -> 0 bytes .../tachiyomi/extension/ko/agitoon/AgiToon.kt | 218 ------------------ .../tachiyomi/extension/ko/agitoon/Data.kt | 57 ----- .../tachiyomi/extension/ko/agitoon/Dto.kt | 84 ------- .../tachiyomi/extension/ko/agitoon/Filters.kt | 122 ---------- 10 files changed, 489 deletions(-) delete mode 100644 src/ko/agitoon/build.gradle delete mode 100644 src/ko/agitoon/res/mipmap-hdpi/ic_launcher.png delete mode 100644 src/ko/agitoon/res/mipmap-mdpi/ic_launcher.png delete mode 100644 src/ko/agitoon/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 src/ko/agitoon/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 src/ko/agitoon/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/AgiToon.kt delete mode 100644 src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/Data.kt delete mode 100644 src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/Dto.kt delete mode 100644 src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/Filters.kt diff --git a/src/ko/agitoon/build.gradle b/src/ko/agitoon/build.gradle deleted file mode 100644 index 9f7f83f8e..000000000 --- a/src/ko/agitoon/build.gradle +++ /dev/null @@ -1,8 +0,0 @@ -ext { - extName = 'AgiToon' - extClass = '.AgiToon' - extVersionCode = 1 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/ko/agitoon/res/mipmap-hdpi/ic_launcher.png b/src/ko/agitoon/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index ac595ab56a1400f755d76a5c2798816ce4160299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3886 zcmV+}57F?6P)8Gcpq|B*St=b)Bo>mkN zaQyi3ce1myJ0&M4?(;H?FACQdwkhq{u_F@zjlh6MLYY}%0L4OshR4Ol^$pu>qHv&X+qO-tU%x&BbhxAd z)c`=l$_1dqheqdE-F0&MSL@Q z0Xlk=)Ki(HmMlV==E>7M0Fjg=@9sb{xernG>Jb4cY5~$;eMxFyAJY3d+Yg8r9KHl) z5~tTDnVChRNz*?NKu3;{8qk~67ykhWo_f*uyNids?k^zS$gJi}y5`Vhd zx~4x_P3Ew{M0@wTAXceDvU69GkNkrOzlTer3!wGu$?OB|*|yc^m}Q6iN%lrX6BA%k z0G>HvEa?UR_TZo`?U9qGk%(^)E_^6@06KAk)aa3g6 z8a{;7iuZgdh{l(bF@7RZT>a9cgKtI$K+Y0Q94GzFH>5HVp}0WJ-*kay7zpFyq0Vr^ zZf`*UxRz9xhe#h~P74BX1)Q{etOtoMNxxr!^roMY5g)U|a@DHAh3I{INoRoKSoN{% zv>lB)HI|IteMz*t%cn_dY8I*4x&G`Me33ExMG{Pjlu{~AgAT$pMy8Qo`@OYTareC> z&OFOq#{PX|=H?I~*U_l#y&~!%^dppun{EzXR>-_H>NoahF4CIhZLLTShmVRaUAwMg z0AlBgQo$UT0p|*$4%#CxOdye(4sIvGT_7BU@k)vQTI+6WT2wJwzoRSZCTcB52C1%>*FUo+~QNpe66G~*W6d=zT0 zsZWu5X`Vmd!8gSfP2q@9#p8RH?A}Et*Kyyi@kK&$!%bw2979yQkkY|gD;K(gu?O@G&sEb{HAwje*zrUQ!l>RQ5d>=da zA;U?uZC_$7Dt~}b8kn8$C%tP|V4)%Ad&Wbp1j@uy^y0Dv;5=rq=q(0RT}Z~%>|o}sH*O%+s~hP}n_O*WAltS> ziZHa;VZYn}(n$Ku6mUA;oQ5YnaIpR65vG}DRj<5^x9+Lv*@W8MNfJ($PC3Pf57EyY zG7wPo+bFXq9pPFVUgP_uy-5Zr77HJa#$OAxk)0*5 zY4qty%uNS{Iq7ECkTHfAZxd%4K1+2>Bz=Ti=C%l~;+dDmy}|L&88IL4fh|!7eB&9( zC|5W=C_*9+5Y$`0FqhQ7W|L-<@Txm}4VM=ZNu1?411)5|VmYb714ujM8EX>gR+*kb zlA~Hc6xVADV3Hp4o;x3M7+UF0JDMAiaO!FiIwAaQM=P10WiT(euuzC150Le`QCh6| zmh^KVkA2qAfuukB(7gxBX7D|CwsWs>^2h;T z&Me<^IcqnjJxc^%Sdc^xAkIHnTP|xtbO!u}qw>gg)Q|zBcu}67yT#vRP9||XP=x7wXnrwhV>!w0EO9bDfQ&?I?BTau#? z={)y(!HO6_`pws|GXqIp)21XkgXCgP*^$k^SbZ)1^;f=}NH)ES z1pJUA;w<)V?qR}xiM`FtiCz*}_7-Q@N60L3z zsYHgij3Effs&N4DH;7mc8+AGEDM^rP0qNsEx3%bKh z>g?xus#GPT?*KdB!C0DWG-eYK)dB-qNu>nc>U$~tA<_*6l3%^|t`7`(X=C)$5cccU zI|-!l17yP9XU{@tf5u0^3vj~{MI}30OTgJ!8x&T0{0Db2+TR1p16|X=b`}NFj4Sz| zbLD$FbR^jqTEi7Q`xnl2ph-a+#!06SR#Dkqr>ZgSr zAiZI|wQzQ_Ua@R_Fw{Gc4O>d{`DbK4*42$v%q1i28t^d$*3h~q?|U*I1X1txSDX_) z3DBIJ=$R>GPKO_I#NwlSlI#jTI)7J#caEfk_Jnnd@*tBJl-=Nv)UeegQ z>#ik#_b=bH^0k@yQzp=iMR1}{Z3a^?(|Ge#h_MQ|#yelFEZK4PIn&9Uj81DIBJpA* zzZlQXkg#fyvsoM2=&LyZA#j+J zu&u8kIqh^Z(npcFwWaTlumeOWCAdGOb3k!;sECkn-#ZnLa)<^E$yoTB3lRGCyo;ky zfb)T6h3%(VgY4u_&v=GRlrEt}F#p{hf#JT6Cl#*Y2gsTYs(19u_2PwgkDXb>P^Mr{ z-JY`-AT$x>2s9M~qThPM=9deSP-fbw5eRyiWq>@hnu@Q2@(75vHy^EOaml4tLdhBz zYR7(L0P-%x$Nv<(#*;qrCU~CkU4jw(Ng}^AKH3ljC~$nCi0v_D0%*&YEyHjU=8tgN zr&NboV)OFy1|}pVq~OG1cs2x6DBiXeyKLFA#1<`D zWW~h9xQRpL=Ur}3z?s#9IQ`rgYebz?vIBM2k<8}Jo1dGTn>({nqeeHC+pNp+K^rz~ zSk<#<&#p_CF69nFiH>BlhvVJawOX}mbwO5E)V`#S(BQY+JE7~g?YG-TOzz`;-pNqu#;-+ceoi|t68&VXD1~k-3VJvfIo`NxukLe z4&WR`@Y#@)lk)-0iwSWChqWi<+4-W5@;M;!*+_1CGGMGhMSZWFmRsV-u!e9hz^z^8 zWqE5GZ^CA9Le@;hSttX-RU`i}V83e<3joA`aBqr#%Jg4TIIqb0&rOO0Xo+8I1$=?E w#rY}p@&7Liju^(302KjkB|wz`mCgG82YGU-vXb&+6951J07*qoM6N<$f|hStsQ>@~ diff --git a/src/ko/agitoon/res/mipmap-mdpi/ic_launcher.png b/src/ko/agitoon/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 15ea8b9ff8341f10bb5bebb842e6acefe7cc6c80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2155 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 diff --git a/src/ko/agitoon/res/mipmap-xxhdpi/ic_launcher.png b/src/ko/agitoon/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index f41de9c216a3979a841e48a564ac89e59a471e1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9211 zcmV?99UK?mf>l&%*Al=e+aP_xp~LWF#|CzznDY z&P`5DWoQ51yI32 zDh7aD(4?kKo3>-?)~)wz)TmM0I(6#&F_lW~rIgw^-g_rURmKb$V^-nw*@g`p-dw(X z`Tg_f&;PV{@7~{k`st@>+|LWB3f;aC0J&0zk|y=xhaVoc@4owX*>1b-+5j{=R_JMx zlPY@#)&WSf7cE*ezIpTJ|H92&5V=6g`~DRHkb4e+!%wZnix;21#~yp!q_y5J$NtIt zfszv{e+D3tmM>hmuziabEuP2SHf1GIg+NqM0P(yO!83R6+`}>M26&oR{;MZ4H`5!H<3KWTH3949kXuT zx~Fcx{r1j1di40(BZ=}dtSbT_YxCf<{hT>-TDEG{>Iv99J8iYsPHt4R8GtJL5gO#| zqmDZ2MO<`)$0myH;^zY(uk_gtH>(X}Y;fbojk^@>jgkv(^%+>UY}wR3_uR7=Zv10b z3b}@LtY@hRfNJ5&1W=tHe)!?#diCo4Jl36(gGzD+)~{c`ux{PDN8{nv;X_-IscNzMR_={1PgwZOxz^+=)E9$CHsvYr>E4?gvv zLzk4~tRxSW*9^dhZHyCsz-PTjjm5HqDgq#@zVK-P0DYO)lO_k3htsLpmP-xxqt9pt@NJ^hL?fPV#_}GXMbX zlLe4#NLMO=yb`GT0cg`kF<&FDwiM>w_upqGf2W;9?YWo8Pa47h5Kx9v3&02Mm_ zYkv^)kJ)1GoFek|3UQ2&1A^aatwimKrsiJZ_1io9N-cP@$Z0ib4hkk$AkDlFd> zG2eb8a?hQRJWq>R3r8f#dG&xwH*6^Cj59?pyjaxERiEyZ04QJ7xW}(sC(fjaB2PXl z4%C(SNgf{S^Lt&luBbnsE9&wq5Y%8)qw0bIwW1s>O-t;oYx?l}p7Dl)(S{X(2x*N9p4Wkze|A${E2DV(TUv=BXFoXB4A z(yHi40F>{-tz9e5sNrJ%J`1=33WC5B3ardc6}&Nh);VIXz9!?XRl$(}D4#_GSj_9M zirjFmq`&*FLaHmH*0KP?553DSB11=rI;>@tRAmW(@&V9ytHg}DS)3RCDaJwUrvT}* zS(T+yqE2fo`kJ01J2cGaX-eYQ1VDK#gCTH+TrUn{KN(39;J1eYtNabEYk%V~1RIab z<7rCc&;&qn*8wStG!5tfd>9U%7`9LDEv*lB=;4wYF~+7os?taR6l1l_rcGk*o+@VA z9T~$p3?%rQqCwnbZ&9?F=&7wIRc4FrQ|^|GRM&zk>wJx<^DeAXsg49dQ2-(c-hWTb z;DO>SSsbalRK0qlFKs94q*JYmW0YE^-y;qJkAWi#O4Y2H=pi?Y+W&y4rz)AhCjg3C z3cBs%MvHm+iDbDScEe(7i8hFDa<6a&!$|X96P54^9`8Cg(gm ze7rSm^Q@cf!IG zpRsYHI5X}OhrA(rWr2XqczFtHkbqQ;o0NpA3VMhHKz=g=iDT}A=XCF#mRT4!=&DQ0 zBPE4Eprx&b472)7MS159Oh71>d+^?f^Squrxeny-jFv@*_SvIn*S{xv$p-_wa>{9|z@qdH_K)Le* z_2P^lBj(A+g#pCC0We_lptjBw-K`G@^Q;$$F>w9#5V-lX|L!A&asUJpzP{ihQSCdT zAS&kdV?07J4@m%&Gn?j>{}X3WZ!zn#(PO{ab_0KVH$mWUl&Ayp4E!y4SDXP|#aX`6 zb9Mi`nyObIxFQg+91D1Pv7&1y+^ zzEb4h@0V4Xe)ocru1S48|F5NlA373AT^Luye1jUV=inJVi|F%bpCaYpkqTk1ygiwM z2Oe3|eMEJ-IztSr%{E98gW3AmUI9h+I&oNI=8k~->Ai9NF}I4^hig_EBLR?i9ca)l zUoOrA_aXcKWF}S<13cbKs9kpz-MNdXliS3zSJtc%XT(r(K+?DO3X^nHk0+lZsX;fQ zvXwn5w*5!|upV4=zZ*5m5X=5} zR%8&6j74+XtzsUy-#>ide>OTl>eV*ZiN&r#$mZ!xd39Uhiz7B z$0+EdntA0VkqNhogZx;aO0(d~Nk{Cyhv;7L&W=Z}ETXN8^Z28dK2j!67GM)OEt<=A z6Q_!bNZ?jBzG^0bVBcx1`VGsxkPlUlcJ>&&P{){Of=Yq&h!6>j@`HmhqczI(va(*cEYHtbnBmg zPGr~(;y`sqF##<7l?L@8hix;1y5<20#;_ST65Tam*JQutnlYPJzY%ru@CqQAdmFJ4n=C?2H>Qet=t#xR5p6gCvlf%w<(8Nci;l zwpGKb8V4Zre=lW7@~D>Ze#2Q2p<3)O>TFa+{O+_!wO~*iZ|=Wa%){`~P`Tkha_k}A z0|{8&4Z8!-5Dq%)gZIVh+R;kLD1%yoLaRxCrFz^3qh2cBLmyAdrX(8f z2mrN(G`dU#u6XD`+QYdQAi58qai- zd?gYj+X*L#9(hY-xS%rdRdWEuNZf)i`%d0*mo6F|6PS3lwFgh(7q2mgA%L z_0ML&aDUp8Y0l42Dm5@6v zxk7`6FI;fx+C%iOTZPAQR;-Zp$eTo7dNI=Y%>cBPs8dcAH3%RIqN}d_R-E1_NPPRP z;A`??jC|u73NF1yZQ9nPzt#u*JH+uY(*(l z{Q(5SIX!H!$n(!MPk+usDNHIQi<8VC4oG~K;-JUU4clwGw4keU4~f`;JRY@}`C8BzHx_fU`I z(7VB9X3T}1H-d~`dQfaU&Q50Emkky8tru-A1LHT2&GEiC0^#erSU62zsjybb_YKMJ)`d=%mB! z2p_>Us1Xy=h$zbmCk9F(!-nQlCufZG2+j~=LiT##CRO&Rz5wDP!e};k+>QoMS@*gE zQYUu-Y&S937nmhe^iSy|v{Hlj~)^-7{KnQ09Zk}`IwtjxFsOxSF zb(_tHAE5p#Tj5$peU?YEW|W#C113lP;!ZHi%~L3LB>gqlK;Nuxv;Uy?c*vodW)FM7 zi>$;^JpqIXc98HiGeFP^nrwHjAwg6t*bCd$7TZKKq88poqKy;5cF|Xd)P>O=dhB6w zZUtH24KjwQA9_(}>!O z|E)}I`?udle)lvIn`$_|sk=0?eGp~l6XLi%4a=RKOe1wF(FD;Hfks{eAKgs^wFb{;y}enWsT|wAS5}Rf&IkH<+n6q z+Tix4&bkSBS*7x`D3I$g60ub#4 zmgS5YfyK(qqR$*>Uj^f^?i|+VPG`y@iKqV+%a(wNNTOYcdCSq z?y47npt7jCocZ&DC)VZCu%eVU0^925MweHu1c+d_Jck&PHyiE)LjFqC!nMvk8|6HR z5ur<~uYmb#shD2f#QFCJIjYCUpvD%NdMX%`yYKEVAmGZUr`#@b7upVcTju%cG?MU- zN4B1BJt{hiJ*p3Y81{ec5iz%ng4-U@6v`VEWU26|Tm2WDYG?5xajruQ={>}dLR60X zCk^U{^~#Pp-hYi4RzSO7nKB9ci@ANH{ly0jU_nJkssmJOz&@+w3Yn{+7SV#Z{K&D@ z>em-F5ZQXrRElj-R~rDaC7sj$QZfJYu`_avA=b0&eqaWkjy+66hWQL_?s|5yV2aaV zTpxlA`>65Qi4Ys8_zea&dqWC+`0wywAf+04)VJR$im8r(;h)| zN&WQ_f5|}`jZMeLBg7EVyh>AQ^y-I_Ab>n5Z9<1(_z-bWl5I)&Av6+8miz0)P_sz( z#wojw39_mWAgUYERM|Ezho%}f2Mivvv#Ov#FEH-H3$SC^WJI%B?i@x1;juKRnd%sh zrc>Tt(Vhq4Gdfqm?f(P}fiTrbV;YsMDG92hEmtPWdJ-X<_Zj0g}Y0zI4JK=+y zU93^{0mNY4Q>bGnp$oev2NKbJW{f?VX|rfnc?PxT<$0*YVCxsgmx7(1%wMc}WJPKS zFUQQd*Sg~6@?<$ulgV2(?lyq&z~J?UJ!Pd3YRUqKmxTYPvohKGBDwWdA3&~@m_Jv9 zg?V#PvO@-6=-2`SyWppx(-=j2$WA#1wOY<~{n2echK+?7j>gVAs<|gT;FUtCK4s5n zmQIJMT-$r7Yj^ZXyg2-AkghSE+Go^k?#Klt>9nY7<(3S^7}WznS@mH9frumv<1MV3 zC_kINbEdXKK=Go>#6W7OAp3w6Q%X7R+7r?Gg|?8i2Y0Al2Y;`Jg^iQY35~^#w1oof zHJhP3?66Fa#IW{uOx-*Jz7T9R<9c}RoaDT*wS|sEL#$g71_%f_acr;F+m%ZmcT~3ddl6RP}=M_>@#u`7TRqg z14>r(9k|XBM~1H})VD*{B|3e?X%nNn_d?p_qUaj92sBkc0A*j;EI|Bb@&wo|^TIhf z+2d_So*8Tyt$_`kD1}H7VN}_rhy+ZqQV8I6Lic*)%KQLn&`iP7Y~Ot+c!_{{Zk-`0 zG16VShewk6#hEozoRO%lXH{$1ps^1!zoMGmA5ruIMzsYHL=S9?h2jiDGbSujsQht_ zOj1J6{)=do+yo8tCHe*R=!`BJY>pW)m?ojB_$2^Ijxsma%^jfEn!BcmGZ7&7lV+X= z)-78iOOM?Q1Gqw)FU<%#;!NgEbeRo#Hv1>$0U?1@=dJ~9EmbuEL_-!k{0a7`h>EP* zJuhhdqA@}&qI-iK?51yW93sjAyc~xWsS_cEA{s1kFH`}0QM1t$BvS6+_L=6gi?-~+ z>K>4@`nF-!%?J&&{8i-prr&x4HD?G`uJrbx_T1SUjcLP;U9kz&h09#At0z5Y&&pcTh zRN!=iDg_{JU@O?|CheIRTWfwAnthXb7vS;O zIYb8AVU_1YGct=6HUN;+QOAh736c(R6W@VFN?+3no9ZqKy_7M~{QLoQXf!**o!ei9ncB_$Nk$=lSPgZpRgt8oixQR0r zgfDNbgCd^6Ku$2|8S*o*?}EfUY^U_VzG7Y{J1}Rxa>YC1E~G%%&SHLp-BpKNj}jiV z1`b*v8q-WkoClU+4@7_ca&D}F@7@L8*n$86Wh2~V7mk~NeK|s+(w-~W-J(gtC$%MF zaK|B1Q548^LD~PHOH>^IaSJAjWp2UbGi+`P)e@>VC>Y$BBtRUSx8`N&u85n2iFdp3 zFr=;bQ^%*JF4Up}Y37U{E8@qac0D`Z1YGCTbTA100(a;&WNx}a($7FOms4S$h&gPi zRR8Nls8-_)c%ja7Xjau5;53<{fxyAJLsHqQ+B|zuR}BC${xWK~IOu@kuLrUdjfqIH zS_1uYgk3fK2FUFOBzICmZA3Xlyz9Ey!h7;GG+8*<|F)oI*jNte9%V*u`hb~r5X5|Q zT70*=v9TQpVwuJa?#SWv;MeN14u}UK(fDTJ$YQYveJg8ckm`Xo%`cf@^BTnXD~z zcu3J?&b>|sNY#m8RoVT-|tEu@bg0W}p+ zUu94&YWdD#{39+tYU(w&Z1PcKHZ{_EzHH>rYj6=Dse{se?FS1TlWQ`E1N-`R%rYxDx59Y3>vhGHl=J2Obr*TL4!& z=v>6VoNEw0UlQ&y@^rn!4(Q{EjhBA-H&Bj`5naHjLIXh{ybx-v%czPB-=HD(VH; zF(Emv6v6@qJ3HG(Rk;Jkd>Y+6)PwiKWAag9t~4Zod-cbbPpBlxcR-b;J3_THxg2q> zg4ETN@ZnKofVB;x=QpoGl=bq0xciB{+no#kTy`I=09C^(2t9rhHhar6Dad=kLvcV=4I3KC zOiL{daOWNLAYyDOLk{!55?j#eD>~X<)a6txfr8d}=^j^ap`HYh%+P{3#Tu^)5aXGp zce>yU6WEq`%d_i!(1GN>2P5}sEm;8BEc*EX5F0~9k+(oi(Cw}ibvYP-F$}-W)5H#| zV@66E-M<2ptc)fzh&ODMZAR`l%)GhTh4FT2%{da^70wsjrFp8 zL3ZXc=bR_0U%|lK9+`UY2qwn}rHAdV8j`uDNY^Z}VW{74e1vC3KFe8_)9}E1EL~*m z@n!dchhbi3(1=5!V4B4J5I#2#V^~2=oPr#k566hMA|m!>dQ0ORb{sJ;%@KL@5pl3% zbgY5&Q0n0)&_x#eh=h#N1rS}&3(tuSAPXYuYbIA|A4Etk9?u0KaLRZlKId6-7^A>! zZ|5^IBr~K8xOo0Y*x%aj8`yv@H?v@!00tBz5}y`8Z09@qE^NMAz7dsefp^VSVwNo} z`xFeu!utyCmX`C}R^>kYWMoLBbOFR|mCidGlNzEHau+KGXac`XQ5kC(zZ#{>z5~?| z)(!Vfh(`H5*(=6)b~bWQP0$eH&bz@pDBn1WE&T)`1?RtCM0#3LQb_NFj{ScFfWjCK z{8E(arn@Xrb}oU+h%*^6CcmPe9Ht{v=TmOHpL!j+ec0b{eG0J6D1 zba*9&Hcm>Yv;o8kf-S_YkIbWJR_WKeB?wh<7b*fc?w>VX@ClRsB@j1T8PGe^2eHuS ziOA|(8;B~*kNCw+fl2m_`T*ivkOcO^3n-;QerEYn zNe8yM&3D>zrYPieee&;+E*b4_L^GmIVp$O7Brcev0;aTqZ1*xWs%qS%-1^$ao3w#G zTNoQa)~-UF%QS{}*B$L{kVwrZ%3U=8#HnI$9lG{25%hZ%o8Eo{N-87CG_YetRztr{ zF>seU>l{%iefAyPvYU;g&`h)Zs>Zl@On`B*Q}DhFC6G^Ej*YM^wPZ2kQeiL5awEp1 z=wb0XCxQcX22>We;>FG!|TbUOWouAttn8B0?&-Vy-X2T#f%9g~*aPn5OZvBL2Y zLGH~H;2wumxxji8R_QfZy?XV61`QhQST&|8c}l+-*sx*4rrNb@lkZWf0OGx^2bu*C z*zeL{(V|69H*VZGV4ufi!K%UxtXQ$)^WApatu>yNZXdg+SBeDk0*Fj63!qnDeRbfm z#~up`VKS=f49uTD|M8YBTY_RK>}pCC#;z4bS7EsTA|0>(*s)`eYTv&7jQaKK=g{-2 z>U7qu=U%&Z?S>gMW?YUnd@-xSNOg22P^`dKTpP#*5Lr%&%WXwaaS)~{br`-kd_ogt{c!aHsi03b`K z!^gFQNOh|}X3Us2ZQHgT(5zXrpVnfN%OXTatK_Owfrp0IWtJ>ivTDwpITP^3pOKY3 zuJj>*D1BnN@UB|Q=e1n`QH{}^r!h?s)$7@_=V51^bykNaO`06juwldP>!89S0aHFx zTRF#ab6=<{GLK%qlz6hSY)K^6T#n;V2@vgtKqFONGPcnSY}&MG4ZyQ<)v8tRz4OjH z|C}{z);q7g_Sy>kj=-VXB6wWehpLOlb1Vb8q5$G~RAa6xb0ra_5y8a&Q^gTD?s56p zTH9!}OEcl@{jst8!C z-HL9-7xGFF*QOze=%VvOb;XbSe;(r+&atIWA&Z&|A}^2#9QXgO%~Z&}w&J{3t6RB1 zaHR?XLJ8!4yb)*jn7qJK=%TtHazWy%EU)UK1o9qNtyZYSU&gD#Tq)#A8t+fx?u7e%Xv#4_sI$cQ0{fSfJwkpl=Uyl zMZ6&51q+foeiEc8Pw69ViUrVOJzq_|j-Q07u+*tc0M*n5sAc1VF`^ z#~OQ;1VA-*>5KE?34n?-k2Urx34m(s(ii8&695%w9&7AX5&+fMr7zBl|37dzH<0Ss R7s>zt002ovPDHLkV1lR}k#qn6 diff --git a/src/ko/agitoon/res/mipmap-xxxhdpi/ic_launcher.png b/src/ko/agitoon/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 4e666aaa8f264068f65e912d5d07a67c68c0be1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13069 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 biUR)+iCFL&D|v5@00000NkvXXu0mjf$To-_ diff --git a/src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/AgiToon.kt b/src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/AgiToon.kt deleted file mode 100644 index 9033a0604..000000000 --- a/src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/AgiToon.kt +++ /dev/null @@ -1,218 +0,0 @@ -package eu.kanade.tachiyomi.extension.ko.agitoon - -import eu.kanade.tachiyomi.network.GET -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.HttpSource -import eu.kanade.tachiyomi.util.asJsoup -import kotlinx.serialization.decodeFromString -import kotlinx.serialization.json.Json -import okhttp3.HttpUrl.Companion.toHttpUrlOrNull -import okhttp3.Request -import okhttp3.Response -import okio.IOException -import rx.Observable -import uy.kohesive.injekt.injectLazy -import kotlin.math.min -import kotlin.random.Random - -class AgiToon : HttpSource() { - - override val name = "아지툰" - - override val lang = "ko" - - private var currentBaseUrlHost = "" - override val baseUrl = "https://agitoon.in" - - private val cdnUrl = "https://blacktoonimg.com/" - - override val supportsLatest = true - - override val client = network.cloudflareClient.newBuilder().addInterceptor { chain -> - if (currentBaseUrlHost.isBlank()) { - noRedirectClient.newCall(GET(baseUrl, headers)).execute().use { - currentBaseUrlHost = it.headers["location"]?.toHttpUrlOrNull()?.host - ?: throw IOException("unable to get updated url") - } - } - - val request = chain.request().newBuilder().apply { - if (chain.request().url.toString().startsWith(baseUrl)) { - url( - chain.request().url.newBuilder() - .host(currentBaseUrlHost) - .build(), - ) - } - header("Referer", "https://$currentBaseUrlHost/") - header("Origin", "https://$currentBaseUrlHost") - }.build() - - return@addInterceptor chain.proceed(request) - }.build() - - private val noRedirectClient = network.cloudflareClient.newBuilder() - .followRedirects(false) - .build() - - private val json by injectLazy() - - private val db by lazy { - val doc = client.newCall(GET(baseUrl, headers)).execute().asJsoup() - doc.select("script[src*=data/webtoon]").flatMap { scriptEl -> - var listIdx: Int - client.newCall(GET(scriptEl.absUrl("src"), headers)) - .execute().body.string() - .also { - listIdx = it.substringBefore(" = ") - .substringAfter("data") - .toInt() - } - .substringAfter(" = ") - .removeSuffix(";") - .let { json.decodeFromString>(it) } - .onEach { it.listIndex = listIdx } - } - } - - private fun List.getPageChunk(page: Int): MangasPage { - return MangasPage( - mangas = subList((page - 1) * 24, min(page * 24, size)) - .map { it.toSManga(cdnUrl) }, - hasNextPage = (page + 1) * 24 <= size, - ) - } - - override fun fetchPopularManga(page: Int): Observable { - return Observable.just( - db.sortedByDescending { it.hot }.getPageChunk(page), - ) - } - - override fun fetchLatestUpdates(page: Int): Observable { - return Observable.just( - db.sortedByDescending { it.updatedAt }.getPageChunk(page), - ) - } - - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { - var list = db - - if (query.isNotBlank()) { - val stdQuery = query.trim() - list = list.filter { - it.name.contains(stdQuery, true) || - it.author.contains(stdQuery, true) - } - } - - filters.filterIsInstance().forEach { - list = it.applyFilter(list) - } - - return Observable.just( - list.getPageChunk(page), - ) - } - - override fun getFilterList() = getFilters() - - override fun mangaDetailsRequest(manga: SManga): Request { - return GET("$baseUrl/azi_toon/${manga.url}.html#${manga.status}", headers) - } - - override fun getMangaUrl(manga: SManga): String { - return buildString { - if (currentBaseUrlHost.isBlank()) { - append(baseUrl) - } else { - append("https://") - append(currentBaseUrlHost) - } - append("/azi_toon/") - append(manga.url) - append(".html") - } - } - - override fun mangaDetailsParse(response: Response): SManga { - val doc = response.asJsoup() - return SManga.create().apply { - description = doc.select("p.mt-2").last()?.text() - thumbnail_url = doc.selectFirst("script:containsData(+img_domain+)")?.data()?.let { - cdnUrl + it.substringAfter("+'").substringBefore("'+") - } - status = response.request.url.fragment!!.toInt() - } - } - - override fun chapterListRequest(manga: SManga): Request { - val url = "$baseUrl/data/toonlist/${manga.url}.js?v=${"%.17f".format(Random.nextDouble())}" - - return GET(url, headers) - } - - override fun chapterListParse(response: Response): List { - val mangaId = response.request.url.pathSegments.last().removeSuffix(".js") - - val data = response.body.string() - .substringAfter(" = ") - .removeSuffix(";") - .let { json.decodeFromString>(it) } - - return data.map { it.toSChapter(mangaId) }.reversed() - } - - override fun getChapterUrl(chapter: SChapter): String { - return buildString { - if (currentBaseUrlHost.isBlank()) { - append(baseUrl) - } else { - append("https://") - append(currentBaseUrlHost) - } - append("/azi_toons/") - append(chapter.url) - append(".html") - } - } - - override fun pageListRequest(chapter: SChapter): Request { - return GET("$baseUrl/azi_toons/${chapter.url}.html", headers) - } - - override fun pageListParse(response: Response): List { - val document = response.asJsoup() - - return document.select("#toon_content_imgs img").map { - Page(0, imageUrl = cdnUrl + it.attr("o_src")) - } - } - - // unused - override fun popularMangaRequest(page: Int): Request { - throw UnsupportedOperationException() - } - override fun popularMangaParse(response: Response): MangasPage { - throw UnsupportedOperationException() - } - override fun latestUpdatesRequest(page: Int): Request { - throw UnsupportedOperationException() - } - override fun latestUpdatesParse(response: Response): MangasPage { - throw UnsupportedOperationException() - } - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - throw UnsupportedOperationException() - } - override fun searchMangaParse(response: Response): MangasPage { - throw UnsupportedOperationException() - } - override fun imageUrlParse(response: Response): String { - throw UnsupportedOperationException() - } -} diff --git a/src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/Data.kt b/src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/Data.kt deleted file mode 100644 index 04e3b2b00..000000000 --- a/src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/Data.kt +++ /dev/null @@ -1,57 +0,0 @@ -package eu.kanade.tachiyomi.extension.ko.agitoon - -val platformsMap = mapOf( - Pair(1, "네이버"), - Pair(2, "다음"), - Pair(3, "카카오"), - Pair(4, "레진"), - Pair(5, "투믹스"), - Pair(6, "탑툰"), - Pair(7, "코미카"), - Pair(8, "배틀코믹"), - Pair(9, "코믹GT"), - Pair(10, "케이툰"), - Pair(11, "애니툰"), - Pair(12, "폭스툰"), - Pair(13, "피너툰"), - Pair(14, "봄툰"), - Pair(15, "코미코"), - Pair(16, "무툰"), - Pair(17, "지존신마"), - Pair(99, "기타"), -) - -val tagsMap = mapOf( - Pair(1, "학원"), - Pair(2, "액션"), - Pair(3, "SF"), - Pair(4, "스토리"), - Pair(5, "판타지"), - Pair(6, "BL/백합"), - Pair(7, "개그/코미디"), - Pair(8, "연애/순정"), - Pair(9, "드라마"), - Pair(10, "로맨스"), - Pair(11, "시대극"), - Pair(12, "스포츠"), - Pair(13, "일상"), - Pair(14, "추리/미스터리"), - Pair(15, "공포/스릴러"), - Pair(16, "성인"), - Pair(17, "옴니버스"), - Pair(18, "에피소드"), - Pair(19, "무협"), - Pair(20, "소년"), - Pair(99, "기타"), -) - -val publishDayMap = mapOf( - Pair(1, "월"), - Pair(2, "화"), - Pair(3, "수"), - Pair(4, "목"), - Pair(5, "금"), - Pair(6, "토"), - Pair(7, "일"), - Pair(10, "열흘"), -) diff --git a/src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/Dto.kt b/src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/Dto.kt deleted file mode 100644 index ed5fb19b9..000000000 --- a/src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/Dto.kt +++ /dev/null @@ -1,84 +0,0 @@ -package eu.kanade.tachiyomi.extension.ko.agitoon - -import eu.kanade.tachiyomi.source.model.SChapter -import eu.kanade.tachiyomi.source.model.SManga -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable -import java.text.ParseException -import java.text.SimpleDateFormat -import java.util.Locale - -@Serializable -class SeriesItem( - @SerialName("x") - private val id: String, - @SerialName("t") - val name: String, - @SerialName("p") - private val poster: String = "", - @SerialName("au") - val author: String = "", - @SerialName("g") - val updatedAt: Long = 0, - @SerialName("tag") - private val tagIds: String = "", - @SerialName("c") - private val platformId: String = "-1", - @SerialName("d") - private val publishDayId: String = "-1", - @SerialName("h") - val hot: Int = 0, -) { - val tag get() = tagIds.split(",") - .filter(String::isNotBlank) - .map(String::toInt) - - val platform get() = platformId.toInt() - - val publishDay get() = publishDayId.toInt() - - var listIndex = -1 - - fun toSManga(cdnUrl: String) = SManga.create().apply { - url = id - title = name - thumbnail_url = poster.takeIf { it.isNotBlank() }?.let { - cdnUrl + it.replace("_x4", "").replace("_x3", "") - } - genre = buildList { - add(platformsMap[platform]) - add(publishDayMap[publishDay]) - tag.forEach { - add(tagsMap[it]) - } - }.filterNotNull().joinToString() - author = this@SeriesItem.author - status = when (listIndex) { - 0 -> SManga.COMPLETED - 1 -> SManga.ONGOING - else -> SManga.UNKNOWN - } - } -} - -@Serializable -class Chapter( - @SerialName("id") - val id: String, - @SerialName("t") - val title: String, - @SerialName("d") - val date: String = "", -) { - fun toSChapter(mangaId: String) = SChapter.create().apply { - url = "$mangaId/$id" - name = title - date_upload = try { - dateFormat.parse(date)!!.time - } catch (_: ParseException) { - 0L - } - } -} - -private val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH) diff --git a/src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/Filters.kt b/src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/Filters.kt deleted file mode 100644 index 8bf2e462f..000000000 --- a/src/ko/agitoon/src/eu/kanade/tachiyomi/extension/ko/agitoon/Filters.kt +++ /dev/null @@ -1,122 +0,0 @@ -package eu.kanade.tachiyomi.extension.ko.agitoon - -import eu.kanade.tachiyomi.source.model.Filter -import eu.kanade.tachiyomi.source.model.FilterList - -interface ListFilter { - fun applyFilter(list: List): List -} - -class TriFilter(name: String, val id: Int) : Filter.TriState(name) - -abstract class TriFilterGroup( - name: String, - values: Map, -) : Filter.Group(name, values.map { TriFilter(it.value, it.key) }), ListFilter { - private val included get() = state.filter { it.isIncluded() }.map { it.id } - private val excluded get() = state.filter { it.isExcluded() }.map { it.id } - - abstract fun SeriesItem.getAttribute(): List - override fun applyFilter(list: List): List { - return list.filter { series -> - included.all { - it in series.getAttribute() - } and excluded.all { - it !in series.getAttribute() - } - } - } -} - -abstract class SelectFilter( - name: String, - private val options: List>, -) : Filter.Select( - name, - options.map { it.second }.toTypedArray(), -) { - - val selected get() = options[state].first -} - -class TagFilter : TriFilterGroup("Tag", tagsMap) { - override fun SeriesItem.getAttribute(): List { - return tag - } -} - -class PlatformFilter : - SelectFilter( - "Platform", - buildList { - add(-1 to "") - platformsMap.forEach { - add(it.key to it.value) - } - }, - ), - ListFilter { - override fun applyFilter(list: List): List { - return list.filter { selected == -1 || it.platform == selected } - } -} - -class PublishDayFilter : - SelectFilter( - "Publishing Day", - buildList { - add(-1 to "") - publishDayMap.forEach { - add(it.key to it.value) - } - }, - ), - ListFilter { - override fun applyFilter(list: List): List { - return list.filter { selected == -1 || it.publishDay == state } - } -} - -class Status : - SelectFilter( - "Status", - listOf( - -1 to "All", - 1 to "연재", - 0 to "완결", - ), - ), - ListFilter { - override fun applyFilter(list: List): List { - return when (selected) { - 1, 0 -> list.filter { it.listIndex == selected } - else -> list - } - } -} - -class Order : - SelectFilter( - "Order by", - listOf( - 0 to "최신순", - 1 to "인기순", - ), - ), - ListFilter { - override fun applyFilter(list: List): List { - return when (selected) { - 0 -> list.sortedByDescending { it.updatedAt } - 1 -> list.sortedByDescending { it.hot } - else -> list - } - } -} - -fun getFilters() = FilterList( - Order(), - Status(), - PlatformFilter(), - PublishDayFilter(), - TagFilter(), -)