From d8f4f38676d9493fcf28823ce0e5e04c8cb87a23 Mon Sep 17 00:00:00 2001 From: Secozzi <49240133+Secozzi@users.noreply.github.com> Date: Thu, 8 Feb 2024 16:08:09 +0000 Subject: [PATCH] add rawotaku (#1111) --- .../rawotaku/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5507 bytes .../rawotaku/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3119 bytes .../rawotaku/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 7271 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 13257 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 18937 bytes .../mangareader/rawotaku/src/RawOtaku.kt | 251 ++++++++++++++++++ .../rawotaku/src/RawOtakuFilters.kt | 110 ++++++++ .../mangareader/MangaReaderGenerator.kt | 6 + 8 files changed, 367 insertions(+) create mode 100644 multisrc/overrides/mangareader/rawotaku/res/mipmap-hdpi/ic_launcher.png create mode 100644 multisrc/overrides/mangareader/rawotaku/res/mipmap-mdpi/ic_launcher.png create mode 100644 multisrc/overrides/mangareader/rawotaku/res/mipmap-xhdpi/ic_launcher.png create mode 100644 multisrc/overrides/mangareader/rawotaku/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 multisrc/overrides/mangareader/rawotaku/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 multisrc/overrides/mangareader/rawotaku/src/RawOtaku.kt create mode 100644 multisrc/overrides/mangareader/rawotaku/src/RawOtakuFilters.kt diff --git a/multisrc/overrides/mangareader/rawotaku/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/mangareader/rawotaku/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4f174fb9dec61314954bb72485bd7c9bc677bbf5 GIT binary patch literal 5507 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 FV1jo#XzBm} literal 0 HcmV?d00001 diff --git a/multisrc/overrides/mangareader/rawotaku/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/mangareader/rawotaku/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..22d5a1e484f72bdb4f6627b859b265f3eb06fd5a GIT binary patch literal 3119 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 BsZ9U? literal 0 HcmV?d00001 diff --git a/multisrc/overrides/mangareader/rawotaku/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/mangareader/rawotaku/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..77a610baf820f871751b53c1472f643056474d53 GIT binary patch literal 13257 zcma)DRaYELkR2QbclY4IT`~;r?#>{=-Gc-V5Zo=eySux)26qYW&VKs~b|1R>pfUf=MJZGu5fA_Xpvp*#tNwS#{_jDA|IZ#t?zR8`6aX1<5p_?)^FIjw8iTFF z-IX4%bxF+XkP|AqfI@1}x}1aQ5r+zN42dfRcC|Bdwb9h-ZIH-GeJP zod4&?+#Mus7)>@>NtmC976MVn!I6|0G@Gfl3-Ek=H0Vh<^Lp_1DrR-e-n%v_UgrIX zzE|5%G;0e~>V28aZ*OyvO?NBmZ{+5-du5l<)72#c2`toomZEO?wVjMMc2`5MES$k5 zv6ds#HSssEae=mEkl;@po^KmcpeK4PcGW$1OEVd zrHzBOSAH747p@79Hl4jHhzTx7^=XojB4ZGf!(AiIy0K>^Cvn>$ByYCZE+KfrR8UfA zn3w~J@|2-CcEUR!r7p9Gw$hzmbKfh2bko=Je2AP7PxlaGnLHyo5XgwN(gIcMOvca$lMNjAkX?-WO=ZGGL+Nq+S8P>IhBh3BkoW3# ze}ObTa_nl<3K1OIV!L_9V*2q^{7F!v#7u%z$h&dzaYp_NllNjFb7jMOjpzO9B85eS zhS5gVdcZHvh6V^nF>X6a`V(@P8G!%U*2r^Fv4p2iRxE(t`;b5D;;t$R7#StM-b(j% zFcw^r;Ema9Y)1x53gqSG{}no6{?t`_UZ)w?-0EDG3l~74;4xq?0BL1C9R~;Q?{@Pp zHr@k)WV7n;Ve;BtG0oquJEOg>)4no>c*nPxO_Q-zr!yw&pb~(^5Bv}#!B z;}qnjbMYe`{Rs^Sg0!ksMwP#nt7`{gKB(50P3hNF zHQ6U3#VPqIoBu8jn89PhpnU_E?_539+p__Co7V&K49YE4GUofkEFyIe1&54Lc+rGD zeBYl!1Q$yHrv+ z)gHhNqh^DqSAkL|!pL!t-`4W_8#J}00Fy2)Oy`z(OG1H8S_txkx>@`A9f}JKB_7Si z6q~)N@68XN4>p-V{u~KzL|3-x$94_bLGnv)wyCceBUETUL8wXL{5b3;M>g|weyFT&5N zR1%yU*V~7S%(__D@02U`G`u41@arAJxRoKfz?TGV=k6BCA$0iEMAr-7TOkp=YC4-*T6 z3y25=KI{nCPf(@Dzal89G7k(cicR)@_5AqIGrm*=dUiBZ%wyXIoiqVmcXchuN6LK! zP_iE6vxIM`wuKV%2E42(847_M&f_^A-BB~e$8yJ<`*LBA#%%qMnt0{4AS6StH=y?C zYy}!riGiB+dXjH;6)%JZAYigBVr*iP9)LsJUV{UK_k(Hm5SRYdFGQ@D)Z;L!>#f~nXzpO0SHiT-)<--`(RFgqZRc9K`D^>5fZP# z>LAJ(emY>Lqs|Z;sr@(?i$(hz0NF~NGk+enhK_q$hZpSnhG*#GiL{`ZQEw#h-@m{7 zY%7EgK~@yBZCG|(OZ!P$QpctnVHJ?N^8M<|f~c+}916)Z5(@DvPr>&K2^S3nmDw^I zaj2aV9>XFzlKklEYJ~uci)UPQTk-+m5(vQus6EG`i!*$lV?_nc1KJANAGb&> zR>v5D*yme415r))b%e7Wm~1y$wbpev66Tc+=}f z#0bNNmukeO-IDI#Z=i$>SA+z95IYJh2JA?|`hc$k2ZDQxzM`4z77Bg0I%6OPD81i+ zEK3xezqT10BjS;*O8d&Sjb~bF0a_`7gnqjZtLqC)!lIOh(d}UD@7qZj^N3!82$*qg z2V;rz3t{_HcK+T3jGzk@UGAY~dc3>=mIE=*V73jRtgp>Xa#{-$S+JnuDW3autj0^&#Se#o;3RF?}9hQVu4 z%5-3J^1Bu~I2zCjOGo0FS1U}*)1>0MLPJaLpNDzbf92#LYW){fOCF4F+OrK4tVK0> zsnY9X%n4Pu*&eHaFql_~srxJ|zR(--S=_2zEA=YTv z&w&k45AM2+PJTM{$$D&~+FW)i6h(_mS1l+Ch4nmV6%J{LsvE3F+Q@ z2Zed00&o(gOM^z$4{+^+of1Bf#A1B$14N8M-|>g9{>Cy3?|8`RadB}CikjM>G&D%g zH#mpHl(Mx<3)*_z+}I5t!&o{2n7TnnjUqNSUn_n-s%y8OlAICOWz>REWy}pp`g$6< znnl&}XGyn}X95|6N011;d-s)t7UkPo~Q+!fR6& z4+Bs)K|(-$E9LR6*~a>Kg#OeIIx!ywyHP-Y?djjK@Sb(7dJT3(gzX- z032L2CCMERw;ijz@D4jY(MQ)A>cdettTIyBUBs!n=WV~p)u0w!O}P-NwavGg$j;up zEZec18Vtcdh0MBVML!FC6Ov=gS34-gXnJ!^pY%&%Z!!%TtQ?0TIVolnsIaJ69p-{A z2}P+jXvOdRj+SIso+Jp-W{8Sb|K;?{2J}JwlKsliN>nuMg(Dg5Wq_us>KkV$xLnRX zHL$g}F3cAeal3j5?Rht9!l%B6nM7X}#uNc!pcp7*PS^I5Z(C^9e3u=}BlE13svv2b zD@+|pvd#rOW63h-X&H%_!XbHbdO(xX-(@TUij97P z`amEz^I{b@km{P$NUAJ(hV;9<$U+1!!8c392_jDX$r9L+zT``X3$>OPjhydCx|T}5 z$3F}XVK#_FacF@(l-2BfB|03pI;nj3UKO4{_~!hFSrBiSRFqCdpSlQr)9|-Q(8iNv zz+3R7YO1c*y~)D)o1A>fH!DnQH7P#W8m&NBCl}|gLcY4Rco`GV37gY1te&Do$vrq0 zfpe-3zfAK!`I^Nke?~KgSQxP1&UIN33%vB2+vU>E?P`qr>{b6ZguG{6EqPZc!&(sH zr;rj_Ts8$WT}1*{-2oC86_c>{jmi$jruqy9@|XMufY*_CC~nO(njVy3ziw{V+F$v0 zF35{cg-UN^JBPLZ2dW{nXCcb58(T%7F&iz^LHmJ;CUJyd*jTM^u0XJ-QW?CBIhwq8 z1QVPyWJ`6P$+)-ANNnrlUqe~yT^g#^LPKaVn%E6pN=&HM=2tAGZ(&0c;foqn6RB{) z8rfJ}sK6~{K7-vLR4Pi;vLNYH>V9>d9&01H#jcKI0mD}@qTSsc(_ByOaQS?`zvH=@ zW;Tu}YQq5Es!YpjynjPJvkZTrV=dErq4%N5#(JFglKanEV~k_!`rn9E{L9P+%6G7L zBE#@CQG<>QiQrICYc+T39r7tnlp`aw6w6&5X;5^%_7&_tV)DII!Qo#B!Pocd3x(7m zO%W?YtAE+c_=k#_=uYe{+u;)7F6u>Y@(ENpBTy90SFTF_`hjBMbX!N64%Fz^i9^t_rBMXA<|5&gbRdGUw5rpw1!w-`$u1Nw1j|>qyZ+V@W1-jF3 z-LDW&4gBmE9iPVKsB01Mm?oTm@N-#MXfXWZp7}y*&BME!WSzXqmG@=d!r8fmhJ;8h zH0ojOSwWOzKyW-fxmeo(sX){9#zM zMBKuDAZ5WmZQfn(TuCSud>w3CunaS5pU(vH`*>CvX z-_<7mH2v?e6hx@DbU#WpS4W~+$)S##96+U3_~J$YZL@=dNpo^*=@Zp~h3Up1zS3L^ zz9mlk>QkWg*rWkI17(!{>5Qd2&&l&MxE=-l3-2p`7Rbm6Y=3KoN) z#kgPYN!oqS$WuYVE$RoK1Ofimh*VZSHGw4t{?M+qj(e9Ja6lxAB-{W4^(R8h>yh5F*E#LSnK*$Kmkug)xkJG(2Ty}c$5xl4rT1eP zesuFIU#^~)KUVy0!eBJ_Xh1smQ4CwMeCj<89DekyEdjhwWsgp9$~rf)HQFqfvX083 zBODA4DR$It1QrGRXpqhAKwbhF^+(=pN5l4d_+b%VNu^ETiy8W9*zWG0IO10D6&E*;h=SXC;K^xNaq#l#0X6LiisB0ZVpt5Kl(^lDh4x+Lht0Eh7m zw(0!EkyvRn{0RAWY6xh(D?>_W-!lv)92SnimG8dIb+$<*cW5qZ5W=l85I`+M8`3N4 zb55uQODWL@3X*jYU}2x65Ue|RGnH*WK6b%o`_(}8<|Wy8N^UG#f@qi-axvlWEB)&a z{Sfnio%s_O*7kS&VT4i5M_mK%v?k4OXH>p#E0eNRGs~w0k8;S54TndC2c?;Q7ggC| zi-XOrw(aX!kmA6n$!8FQPw!8zk}47Z;HH1r#~V(AVxrJtEJj*ufa=Z;_>Z?9XFk^&!&ItM{D@o~qf^ic z!@c7}$0A$%6S1^XZg#Tc3W;@CkJsmK$knn|vB>kLe3JWAjXk?-wUdM?WIa}fZ$y4J zb;2|;bJ5|?@YPH?8)OsE%4LxG(vL>LvUirL`t-3&6B~USP%()~W!(gz1?TZqCVyoz zl_vnq;*NBDdsxH0Y98L2bIH0Uo7JvGx}J2L&1>Ecmib4?vgD-^1^$iQ*dX4&mL2Uc z%#wkQfKKzm1!%IB2njMCO6C6#BH+@v*H%X;WS(pAANB(Fr};>D0A3dU^2@77hA>{w zTQ3OGmR)bU0CC!i&?0{<@I#HKJbPMA_DgEbWs^ovdv&!$HbQp7aNy;b>}rr2X?o@aB(V+6Rrk=b;{-;Q=ywsfL*8*N;K4k3O>JZhEko z-PYfnQhxX>9T0MIWxBOObK%6Oa~zr*JgCy?r9t9YjYf`oc&g*ZyWvGzgE61p_RkIs zTq(%)$R0IzM9E)XA?@R7-M@$mJQmD=yE~o$y%7zd@qPw>ek@BlKE_)( z4pF^FHpnY>Lv`-_tkQ!WRGZmi<2j9O-)k%0u1qr0PFfar5MKAZ9-qNC>TJI8wYu8* zD^g?S?XaSk1SGU-Wb*+N$`iE0-PEI(^t(Z+s~7dh|C$;M*#0_;xX(LA-iLn*(dDwi zG%Lo}u7^m7)uyqT&tb4M1Dy66eLShDH_#|j{2E3?oyYv1PRxY|#&(k{afcc8G=@|I zih$(Ok)mN!T6Sa78W%oSSmbb2{ujD8Tp+kIZ=2GwXi{E+3$J}Fl-@}RR;VmLGu*f5 z-UDYe)(6jQ?n`Vwi(WdaF^=Zbbl8^1(blVz<#!c>W1=}DDmWs)36_?N?hhoZ(K{yD zANfH24|n#rk7u}3E1HLcf(g~13$;O^eHF8}1O0&})d$Khehh1MObr!x{+c-$3%{yX zm;pd|BE9h4UoO+_&^O54O_vW3Ay<0P$3(El6rtCLVn5cQ2rzPpF(@uBv=|e$Vv!y{ zPE_fSnWTEX^qwCV9jD{FBO>JF%6{2Q>A}(D%h?Uj$oqF!WdfACxd_EP(iP?0$`E8M z_0P_pFZMbGLgt!0UT&Ju8Pt(8OLvjA7M`?{s*5Mghu;xnad6(VJ(b8h&RU zyS2jzYZCw}Sm2Hi({{umZJ?sPoYQ@VpVthQ#cUtxg=z&zVm$>Ua?i!G1ZqM!xFgF5 zKay~c@s%LIlYvx_m{1?+<5{^7Rx|tRkAJ2u|6VKxt3a(9j`K=}0RbV_Q}F^dWwe+V zZ}URApgyg-Kv5Zxgre`v{)XR)5e1!?MB3^4shEu8boO))A>42Yi8kFhHJh)+gb?Zv z3l!tMqN-|zG&2?;EZ7DY+@xP3*9bF>2{jW7x$J#Y`w2&;>pZpIp)O57^G>520{qhN ziJfOjAm|j9kEHipz3BMJIucxpCU^6#rr+TvGS2Z827lYk@0kn1LFv;8_wD2(MdAQe zxJVz6xG`=Y(R4ZHpFsw~?JCcy(Z63M2&!F}P0N}CXk|aLrm~4nK5Fuo3`Y+N3kjne zzB;1xRSX>$cvNK3L!}B?W0CNdXy0XxJ6tJEnwxl9ZdKV?_C>q<*KsuW=hfT$-$ib8 z*-7J6pzT$+lH*FFn%4kFp(Wwc`B40xw?A{x&5W*h8&iZO6Yd%a`f@ahFT?TUR;KN> zQTnCOYc>+1Tc68>`@J1}XsUFDOc2(e5|Z*@X8$Vpb@fRVJG{R`msBXu(uRrp8EmXj zr0>uPYs0w|`#{!%@@lm`e>}@S4gaH=`AR0CS`SqsQWAES8VKds_w;=1VZ}+?9@4Oj zrO`fv@OOfCqWo^X4fnqmS7I!fhE}tmp?C`pCgynnxN5GmLV7v})TFquO3tm0yemLz z|3?WuvWeXZ)BhB+X}}7|+pBl+4hQ8=*q#KXuJJxmNAl`_(4Vd8(J;D?9iP|i?`nyA zvLt-5>nk>T3|b>gqkD06)$%7vOL*s=UFqM1K4SGjR?KdMPYRw&I8x>NZ2qYf)D0P? zVt&|8vbyFc?SH;h7SImkznK4x`DTwfLfZJYetiQsxQ^eY?IYyw zS>rTl)Q%;}(CMbLG2Q()(e#R9CObroMW^v|Uob|$W7ZOe&+hn);tO=7CsbpU*G9Sj zN1*VMaR0vJ4qF1R^_D|jT0OEr{uiHo87M4tPs(RHHSF1SAxyRC1<^oyGap3Bm88nl z!kq%{g+KO;CMZb?hxwtW9C;HL$v2X4K=itVtN~P5nHiF^Gmpl-495sN9PXeDsF}rM z7>#9F{|Yp|Hbyc|P5PNak(iKKYT;K$p|kLz3=sP1lTC^MsfDwy9q_7LHZ^UDUC>&jX*K;?BKn)dAU zm98HuqOYP0TjLE1AfW7p;eJ^*pg0ce^U>9e3M)HKTz!16JyS9CN7gcz-k`vyr9COHWs+BNHlfyk?#E?wt6*0TlHxVS zc^Jl53dX&R##Kp$58Ikes03jDQVd2Cqh)HBh{z{PRNoj?hi`Av>ecKIhC@c*xUPYs zS3WGMx9b})cYH(o+4I%wUb6hhS_IH_a!%$LW;RbnfC{oZr0A-dqrn6UeYN*S+nsIw zn50e-?GEtbAwbMTxYP}0yyI~P%7(2Z-i>deH@~^k+>P%+ki1SmPQSFk;aYACi7ujx z11N>Q7~Zs+&wjeB75?mZIro+3ZbZ8JN2e4LvxJIyRl9yeVr^)g>$&m;)-vAuD^)+1 zCJ1KhY*PfVgXQsL=|X?yYU3X`sl4U)Z+oJ?3cvfRIK8kk4=JY{7o1ngXmtdP1sELe z!F0Y%qwhrj%Lf0<$6Y2Tf?D2srXCrSX*Tdaitcp$#~srf%G$j8o%DOo&D+~>c@3*n znx>nksT!Bi!}Ms)S)-GQ21dCUHl2UCE96iq{f0*WfxP+!B_Q!q?$^KMESUBhDP7h- zbk#jEcq+#1UQaj#f}VN7l4-6`DUdN(u#tu_xfTW_h54umI!Y?dV17sV)$aX!nHmB4 zSFZ1dh?&SN9}fD|PBEKyPojDrlwkB&=+S6#ozxrUwoC0Zgtk|Rk-sJt*u(I%KnG=^M^Xg(H!+P*TnVQ?PYKOV+Vavt8?MtP*Y#b^b_Kg5TtTvcx0@sL_UO= z+z^n_bRg&NIRWe@p0OZb_nhSzna;fcxYz{og0cy&69540;Q!?U2;ljJ02gRA!@09d z%zb;=TaF1*K|cf{k9j4H&G|!6V#fIX+rY8==cxJdZo(_`^>`*#&=>$EQtl`gx8sNT*R%Zp*QhHi&p zOH|3&_fFI77y1nbl3Sv z#K;gY28U0m>|XS#kJb-gpD{p5>O z|9S|G<6?Y$?OM;KO{b|Gzy8l>a(}~T!WRPd+*`$W0t;%tL$+yzY`k9FxiUwyF0>R> zMS06UsYDxg)E103Ex0+KlY`61fUR#o^SHbvDJT&1@860R25_|b4qjv9!@BM1soZhH zN6~l37R+lhGA-39E)NX!>!{HL-vB`4s`)uaqnc&2fslxF~@r zGuexl9VFheJ;gkJerv64#B@6u#P>+E#;2XU!pKpmlbSU1LfM~!pKkPIt^GFx_6xP>H#hrjs6r^eZjj$jLk(zO2;2v|}cYCe7s`&Ha;+ z>K({4xsKGvDJ#75UkFM>NmtFiAzkc45V*k^f%~ecpi{9Va8F3Gb=xkPH`jkpRch=!qOWIioTDmd^wa1UGkk{{24mCy zu2l)4F{($?R=B=rQ3G-?0v%R zxNEc>6rg@mXK0lGkRcEAh=9Oe%LsR~jA?3<^+$1&apFDp%I+0QFmuvRh&M!pmfRGm zm1`9aGnFZCa4?zRaX#qnDSYE|r37QXdY0lp+v3BB%3#?|uG9IDc*#>$;Wjvqq0e|p z3XcL;HP9sPB#`DnDy@ink7S(yem5B9pELYNhT%#!wsW44UQDpCnEwP@)-}7#o@i0T z-12e=Ylx(TP}#0{C!$;5J2Vz6ThgTnTX-p8dJBj+icHCqXB7S> z!nA3^K;Nn)&HOpA8oe}J+3{Jynw4kH0gpb(FC^nKC~mNw;0K?aTy1KJht1#AL} z%|!_$-RTaaN~V=P6N94)s~I?HbwQ?BZQT2hp20;DLt_-omlG!KEjCwRi5vfDQn(|C zo#5I9A1PJWP$z@2K|A9x8)fYRkX!1?_Y~l-=h*T5IdhV&O`41M-R;yB!(W; z{uS8nL?i`KC(5+|C;z^D?w9I-y2W4rja|PVGiBw!??a(UnacqW(ljsocT@ck1{^k3 zaErUAKQxxUYiV4Yh-?#hW~1s;b@BX~v+_%|g@JR#0RH=cxxf^eI$1g!57th2xTxm> z7e;4tV+whJx_p}?pL?hpUz0;g@V8@xkomB7D6p>ZdbbTZpRUgi!tZJXqRpHr9|~29 zhkzB0#m9x(g!N(2uPm2}Z$v>lHqUrGggz4O)-#5NK5CI=3@)Z0@Pu0_{mx^BA8B-H zWE{n-rTlDNC9pS~SFId{(Qo-|qJy?<$R=FtiJWii>kARsr%XB4)xLEZuL7}BWRieJ z^r$qiAG&)DAs#(F0XAR#S-QJdBKq!pC~m*D>y4k9kuizc+v)BnRFd5MqnGddo{H1^ z#k71PMO9Q_N|#xIucL16nJCWz`;l(j>>1NHCMYjZ<>{4xPgxc-M-|75HO+5ao@fl|BmjyTAkJ76=6-4UW;t;=Kl{o5npu8r6~%ENj=vVlVYa6}RqIC8Z2n%RA>BvK zsJ|F~z@#Ji#ZhQshtvy6`YI+-RMKT(`ODT((NW(BXb&^Bi>fRlJPNx!YV_zxb^&5TPaxZM_$;|lK|g&gJ7=Z$m>{mGAI^@sE~@W z&iRy>BMMj^Yq+fQ!u!3(UQ&kYki&;ej{VAy>tF#p1yG7)wc?VA-ujf1J*$*TSL+<6 zik7RtRD$%%%W?kJPAX7f5vLMV&Q-Q+K6N}X6pEKA-Hne%8Vl38WB-c=Y~QbV<69)} zh4+0sp`VOMlvqEx^~|?0=G5db&co!sZ7Qo* z-k0775%tgp?Bfv>FL42iTeDi9j#?(F5unm@HyJj^1exLMcEFF7t}fLQ<$@-Avi-V$)|@bPRRLBEP00>M;1K$22%Y)WfEz%tcK?uFu*> zqNx_07$ysa(6@dw5Him7`_5&SUM@J@{QXh7RWzhYFEOw2`v7Bf64p|v>fQejt+<6h z`PPgF?|6GBR~$|AyY+2+X`Dx%T{v4{J6!QPOlj-oU%*@hgovg1>#CS@7Xo1~Y-BQr ziq0H%{j8ArF4G5%`QC?_Ms9NMd<5004m5;Q=LQie>?&>bD2^ih-KVNxuq~P_D|Wb! zVejAKGEe^n^P;jrX;zv|byMI|*Emjz7~p1}8jMbwoLK`~&=} zUmH1o#nWJRGThSS8q?{vp1%E2rnC|rG*5iqYpWJ>(J=ghVT~@iWSeG7>IVp!iNM0L zHhv2JwUe8K$`Se47Ah_xDR)i4OyjLOOL9Q*wKIe~VfQ4YiapBRg|(W4QWneX_fdrA zpp9l*nIq_TZcU~mGG4owok+n%QlTv#7+yPBXTXW&&ZF#+2YgVaYZ;N#fA&T87Xp|P zZ2CP}^Kyjs2WFN*CobAjni%^2bz@H67g4{z?6H6J5v`C`V@a}Ek>dklcKw2KzCOR2I?S?%1u>YH zZ#zO&dvk$q8^+dPa(a1VAI>fKQJr$gbJ1gNZQ9|ZF)OR20^#u++Q~O4=lK7qjssCN zZszEXuz^fkFI2V>ID%(SV+;{x{n}z?X%zD~4D+S}eJ^ce{D+(NHVp5EzUGb4nN#a+iUCEgwm65TMJ7zfx4o#AS*kN%%)#k&$UoJnWI|SHYeR(# z{C9v5e|6l5hz1h-(KJn(@6!S+0$@qCp+*HZ-wT?m(k0aRW(?!`e7?zJiiB3{vf*wt z9*vJ2p*#SP#JnN*U*!1owb1usEF{_I{oaSLNhS97jw-&1S8Yv_e{)|1p{Z@Yn^`bM zKX#&d`}d(K7-+KKXKrn2K5G4DsUmkL69}OAiF!~2O`ivMo@X-o;{?$$cpEk?TG5!M zMDM>L1C?P5rFt@xV}V4R9>!ys=SN`K3kCWEXWl|3;IsxBHBVJ=PJI=JIhYGh=irZX z3u(^vifL<+%TS*^{mBabR{|Quado&{0n#O~037a7hHD!1yU9&);gYBF7a&C>-uak3 ze<6FAH(B_Va-1t3c%SCVQiypv%lW+Eu`4V_v5wV)2q-P0p2rD8so!(SP{diFpNGLh zF3T={L9!+E)b1{)r*_LKoW(`ZUESM_W?(iC8z#xA=Erlgm=d4w67BZq8c{=h#2P!e zwC=40v2fLm(CsFmk@>ahkW2H`^=;I;@&nR()rd(nY@RWbC+?f6~F3alE;oZm%Zn8-1Kx8$>Y4WVG(pIW34hE zZ;Ot~KmLf+WwBtdZrYO;Bw2}mbeen-5EqDfC=n#|ZVB~ktf{oI>pCN-`r}cUcl|CD zI_&$&t>|8rEQ_|kWojBA51~FD{*EYtxB2tl!<-I9D4f<*!eqWXC z^OJx=D+L{nA~5WYLX|R|FVkn&zx)vYKHc4yRVkZ9*Sv2MkKHoZr=>Ojk{zlS>5|`n z25SMyqOpOeagj^&jI~ndwnt9SKF@0xJ-0R_(K@~P~3V&6Co8_U?ba9l$oKxKV6fkFDPZ{dc?Cwr8ZU8 z^q*#O_pdQs_ZwoD5TX%VOd%3qIP)%1xUhWohY;y-jJ&6Uw}oCEU+ieX@5W2}YHB8& zzfDcBfKFNR`}Dy4n;0HP0_EUh_?^-Uhf>4l*O}(>rn8@qw|3kuv?yFyd}d9EWDmZ& z;tP5B9d;?V|MA{)sc}uzBtI}j#N!CxXDv9KVA06&$9(@P_!N_a6^dNwkV6wB?Covi zOB{ZwD%H%82j%Y|^?4lzhv?SYjv-<(YC?zh>sO`_XHA(mrRM5%zM?$RV-iHsSU2xQefDV{B;=*bO(SNtZm7=cL0uHFar@lF$ne7hAWT z4oIoSd{EdNe56pZ^W5G&NI;viX*327I_17lIxLW~^5DG7Rh$+yY2a&|mi#yV8!hPn jWGywA|36vF+vf`$!9+kMAKrfw9e|94qIi|4ap3;|k`6rC literal 0 HcmV?d00001 diff --git a/multisrc/overrides/mangareader/rawotaku/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/mangareader/rawotaku/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..7302681e85ede1fb2c55b12914d975fc12feb7a6 GIT binary patch literal 18937 zcmV)QK(xP!P)1(*Kj+?i?!7Z_=FPma%P#vKu5b6fnLBsx{l0U)b8eY5NWD@m(1BYZtpneC z>ef>&04V~bK+vIEAVq)<-TkSXPZ1!6fezgQDFSrp?oZu(iU27Lbm$gH5uihNf9mE_ z1V~|^L$^SR03EvfQ#YR?KnepLx&=}M=+NDty7?3VQW)saEs!EWhwlE=&8G;E!a#>^ zfwn||wp5o64GQm@Z^Dn$li4oK$t*11vbF{2w#7B$ZJ*S6+pYy#g&?g3M*BMMYqnM$ zwp~}IuI$$Wejv9$Z&4z&H2AoDuXnF&w{(3{P~7${5CnSqo{wp9BD56XY{1j+-alRO zn?;_Ba$2fh+rIldb`8A1Z-bq|@AXbCmvnE?5yoc8Qw#98u0F#1vY4+1PB6xst_IK*(gEh z2ic_-@&JMD7I(d)pP0yXgU&4|&4j}8OjuLD?8K}8G3GzmC5;vlYdMF6+u z7vR75^pDTagyJjKEU7PHOYc>opazjHBKoatOY0xXgS9~dL~r*52oTs;0kBl(m)GV% zUFOPj|L>{2AHy>mEFvV01j!%(m%&;;lfZw=anFq{%Ix>I4QTmW8vGJ~(ez1>9SG!C z)B^$u8~}b_uM=GD=+ZGEAZ~jC(CwGjWW(BwMJM0z&jZO5*d!oH6v8w{Z^UE~Km@r2 zeEi8Azr(qmChT$k>>$e@%5sLd#g1zI1KY1X62PO*rCqbv&R+J?=*Ql@Sv1QZ*m+#vAZ;CF{lgF_sQD5ClBl5X6#~6S zl)43;n^3(IsB)rMUK=<2NvH03sUOe)h~}c8Nc4@l0r;^n7u%v z1mM9gvi?MXoLdi@KBH-CHcfJfcm;xm&jl$!8BlK;Kx9K zM0I}%e1sSn2r+$QTgjh*8*H%wu!OFwVC(~5@&J?#y5ap{-4p>>25~SPmkde<0Yvai z;1?d?z|VfvSPm&=^gV|-J`nsN&>iA3fdmL7cDu~}1UFvreft~Wgw9n{0dD$mmmYY9 zP09msFdX-oKr#uChn31h0xSr;QLi=%h04UUKEYia-4cZ+cN?|-;{IDI1C&tQ5$pk| z?nr>1iU8yRhydgPSO$eekpW<$1P~*?mIuhcdE967{cV7+e+zX=p!E-N`ymcV-1-Ng zEG`3KwNT*s2?22%>HjE}iR2HzkN~}01mNir+e88}0Vo4R5-2Yw0)#@Ny!AlvhcfMf z*bZ?(kOhryVgtb&Uz`UHBFwPS#7MgR(c=|{u>p$O1U z!5YkA2iS9i-JOB}ZJOKS{a}N+30k#47Ll|}my+k`PW&M3A zoCtBZ4+6vhe2JrwCxkdG#36y;54N77(ot=A*jw@|B=G!%2%KQu6S;Os`9tl3K`_Mt z?Z^X!LZ7qCTOIuE!1{+HplQdw;r-{x4^np)zDCv-E!&Afc8s-xVH6ge+1aZ z;17Z8P|_zH_!6|B0s21-h_drGLUp%!(6#RuP}O}dlvOW+yn+qz?ETlmlKC`+#@Dwb z=D8BF{z2q%>C*P$0pb9DvSm-Jg1?2ef3)H=v+AJ7z*#V8kN-l?oj!%^oK3jfOf#nU zWG6JIrNN8SE{8AP-!DY~j}}Nq8q^sC9}qGPYE>q*pZCK^A&XM{{?O*vH{Z6_A=t8T)q0$NBhEaQ?J-21PJ4~{QXj-C2jj2AVvbTd+@ig z^-s@eM6l0+K7&7j+FoBmQN_>5eyjmF65W2bb>vM-*z0+43FP-H!S>a zum=fJ1PBPfJiq2$AZRo=W(gD%@VAld2?gFHq&?HqnxMGTQmC$-3zc2xLlp+GoqK!- z1tqH?4Zrgha}03CubUM5Z+XD<*N%kOo;;^*5g>;2Cs({(OQ4nleheH*p6(C9kZAlU zuUZU!hI|MEhrWXZSOz(0^)s@!BIqqt2oOg>34L#W?MVW8!0P3-@X*x{LsKJ7-{M#M zvi|K>0>upc7!e&)(kaBjfq`2L;3q)m=50WWz6wgpmqGXbvr*4~1f^9!L3$d^;>A}q z>m5e!FrK3jV9TaL`1@VA!O{hGIy6OqSen;%pP?jBT)=M+;159n0(_SqUqQFNpF^jb zg$Ve?P*l7E(lZt4$#mPT@Akq9q4T2gSbt2liy$>Se*^R%@-FPW=POWE`#q#*Sj$worCr+Gp9F3x6h*%K5sCGY z`kvx|H=g=6G&PY7YJb+hT}Yst_MaVYI<&h#Lr4?*l$Z_=d2lS?&(7NfWt|p71&+2> zcl#c?_WTkmyDWf=44j~7gFOQHWVL<3?aJKvlEcmZDAGr_86LCn`$6!`y*I*^jfE)! zsD??p2Z)&f4scRZDR^;zNIc7140&)E@QYE`J~N@;kPo1$%N)orS_1{eYthov<^<}+ z1w|!6ko@tHK6Y=p?<;}?t^@Ge^7_SPv$AIok(T{Ou0yE8vt z^2V#(qInN)Ks@G!X;;7(AMBeL0a|(R%dYJ9L4Y`bAA>QE+w!NUZBnVj0U%W8x(Nb(6WyeUcf`zM3fhBOmyX; z>g*ptH#B6z@6UY>8XIXZgUDB)6l_83FIy=31=^nnh!gbOH8GzajND}!GENrx9ODwlk6Mr|uKmT|W%$Yr+ z%@H67{KSo$K5F9&Vss1;Gjg5%5!dNHCy}(N>Gmz`w9D&I)p;(IR4fsTMf9j^RPg%9 z7F+j6lPn5!;_m1;&#X{b?+|4EJtUNa1hRo%tr9Jo~jcTxHgEqtiRv)`kpKjIRavJfF1ZoWOJ;B z3G@O!(#I7WES|d~{Qd6RpnfZD52oThMzV^@K#BRMl zhn;tQ3HlFu-=rxySPdmJTw2`o9P1cb5z{2%}am64$Jr^>c{2^0qbg4!(>;AdrTf<4DP34?a|uUHN!0O%!G z{IWUGz+}r8Ty;eo!mnMQ4?ip}gM~ko!Q!PQuzr0W)N_ETOkx^6K0%+Wexc!G^%5b3 z!@8#_wWQW{iSPI`x+AA6z&&HtCIS}w)H(7Jg8AlpOdVj;?1w} zH$Nw2TYr)=b7n7vO&e&}66=*BK3-K$a1y|4-mJ-kJ6Yude4IW#{UV* zD;Guvn(i!(!HMZ0@tNfJ8t`=>*G`7vp@IG+ewwwiy2z^jK#( zFOnt>aspJgg9H`*PL|w6$_lWGAR54Qw3`H$2cgoqTq=+LZqnA@Fuk_28jc-v9Mm^Z zTqMhs#hPREb##Zh3Fpm%q!YjbOuHsPO8}p`pmUe+;E3aIfWqQcvPU@3w1IE+tHU#B zOj@<$&oEWKqOJgbch?vMekJ5&H9-^hE`wgdU&7cTfwtH#%df4z0zS(Q+pfxE_y)*} z$gB7gKv`x6uuT9_5_%*fnM@<3<0Z~J>Rf1OR9D9fM|c6nNAhIm%wQ5k5FjXa2od}; z)!HQi5(Ylqy-y)EUB7_|$KDFX#mk+Nhx6fqz_$v=W62(-V?eufbum2m<^Xu^#U0Vo zH;K=1iv?|=S+YoRVY~p#9zzNXycQt@ur05^z_q22L;7gaD4)SzfC*rckjpaCN+H=Q zqrR~Ljvae2)K&~o0?G0M7NbQSY;veF>}F+f@_Q@<2$TA>%WpRXNDAnq0H40<+~r$1 z^q4!KwCpF-Mxtjtq>ND?(T~Nz_WjR#z#~uY0xMSLvvO7vC0&4>?~OFJ(E3aQ%~NG1 zEw5l}a5-IEo@>hvE?Wk*RIVKr7-=K%Ne3~oE&Hr~HPQz|aDi>-`Ba6jRh4k`KF6aM zP(DHt)UK1RD%aIPL^t&1-wpzJ0>Q*2+Z_RJj3W!=*^B`U%E{dbx z548SH*;C(~0snb>AUyKKFv!ks!a-A6fDQo35(;amK(8z#OCe*`8JH}MeAy>Spn=C^ z;`>Rrax)w&$g;>&WmwY45X`g%-yM}tqRK6W8k-v6+#}DzM-R#I00$Wr39TfhX41>YB=GJIc{YTv~rY z36??@Jf(9mR+bKOdI9NS>Kjl7?Rz+M?bOS0G)o>K=N#PSI&w?fv4KTAJWOYSqV#91 z)}OAh{SqJ~@Tn1c^qvVvpEwyU7tX^Med2L)G^1-vBs{JTZRu?fkAjast%VFk3YSIz zu-8sWz!{5eWQ++kWjx@#I1|7~A0=TdbeXiMTh4e$Atik@{Ort)@J=!n%W#$VgZCnc z!Cpyy|h$Mh4+4<5QV3m~ybsZynEigKcIBWYOKn%dA*2v9U z2S*-vBh+^PQZVoRCX4D3MerYH?`vMLMDM>>BCX3FN-r2!uO_diA z`roqrb}S&lVxQ@>$Wr>)l~aG~K-&hSnLi;wueHCo7hnR&(v9|~%aO-2o5-a>ubQqf zZujw!nU1^LSivsGA2#s)NDvPJ;sHNhfBPXojKF7158Ua0aL|N%aLO`T7YDFCOiaZ0 zF0x>s|NE^0@aKOF)q_^D<0V+xT1vs=WK}xm5gGh+oCsXC&2@SKULzgp8Ej9%*YNfp z`ew0eLYi63wxy7B&@0js$N<|AucWXDjv9R=Fq24%6fcj`6$C7gWIoH;#j% z{CW*tw){Mb%D^Mg890$vV1QUzAVmTVWp#`rj&SRL_5v(xTyjQ0RUBgoXP{~7ARPmH z8TGlUvYojSvd$(e{(kJ3W1v%MXGJM15Ra1t+FYz= zl&q(toz34=i|McXdw`BXfFyyQ+L$fqai?4X-FxD+W;fXFo^beLr`{LmsYm<$`gwdA2?=-w=+It3b_%zp9{~cvuiDMQ zE$ffAFM;+=d_4f)uPq&Du(F6k+JeE3Mf>(AV zgFb_TM)jHKU`M(5H=0xar-NV>L_4LBu9!6fEVPIOjyAJyPoc6pnhrcRz*jZFraIb?z*v5V6w;X?hL=Q3n!^id z@t~}!ZAo2L*~<7tjvq)VBonN5na2LJ&2OP(s%7ylXliS$ry{u0qJk*WZi`=7!qB@+F|tKxh?=R%TIzVpBU|>! zGT5uIHRe%gJFs#9DnlV zke9zsD+tdSpL~MpTZ>1{u(lxwPQL75wK*&UPre&D#GXI_U7Br6h2!ruKLQuT&`WRk z!=uAAv@B1N5aVyQ-$U$aXFDBkmVap*#whKq9v3b z$p#oTcoYooy^G?mA(5G^r*BNQhr=s5?{_+`2xAYBEbC8KXm=7Q9>80u6~9(h&x4bH zc@YM!b=c^Zsjz`%pA_K*WD4Z1&%48oQ%2yzmPRWR!@!g8206~cBUW^ghakbBvMUlb z^r1RWfCFJ>0tQFM$ApfN86YZ3#PX^P4K23Flxa~g<^elHQGf8ey#UpX%c0+P=-wB` z3_C~!_5Lw{?GaR)Nd`Iy9}@vWTK{%KfMkH)#&dPe9605d7l>e3^}G2xDhaHh7-#%m zefKDs{}ihq_D zu&uVt0@10;Ls{-b){kE4Y8r+Cpg7L~s>r=q#5H*aoNCnKf_yk-+^P66-jU_?jKi`# zp>_~f2Us3q`Ww;%B-8r03j*9QHhJR!(i%5Ibv&g~XqHW?EKg=im`eG=J3~m&+rc)Iz#&;w`L?{F zfZJYi#@4`)S(1S2X3u1n_r?t+-|aA%y+CtwBb<8hDNvY8qvLGpEsL)|WAZ8%dIZFw z2@r$z?^pz|Oqd|R=}3T}os}hH3~nuQtiq`eN1i_c@^c%cE*F+pSu`!uogmSe5pYnz zv8*s#U()He?Pp-h+OP(~GOSsoR*6dLnB62Kh#6$oTqA*88_aH*L{l^v;4a`g2ukJi z^<+)xa*a(*u;<|6uv`DV&1_iqPNKNTGL7?6Z6~UphP%(r!O3vZr$f8D%V}`rUv4$g z=3{__J%ERPs_sk@2nj%QfNYEJ{@tApwZ8vuc^RDc+XJAa5aS3XU!)~;fnI?@cC0Bt zTW#G-5{Mii>XBphJ^kH`0!gMTrPY_(OI}sJO^UbnswHf@n} z`fadlae@EOc#$lje*3)eg_5^}TAvRN{LLsJeobMv#| z;KTQT{yTPuE?ql8VM!hoi>j{-P?_BTHI=Jj!?Km-F!P&UF#W53ux1@S28qj1V7Ib0c0(FRmnLM; zzQgu{LA{0x8N{&*gI$!U<(VqqCI(eK3<2V>{&cnWO@J6c&)B8+g2GjBAhW$2*uVQ9nTomRFh4n{uEg)ym+75o^a4^hf4h|RFEZw2<(agx`|Z*OcMHf z#v1`1AP(!_J_!&f=}*e!GT8?Voa0H1b&$q$YcV*paS+YB*( zS9LB!0$iRH0?-xew${UIFU)`kfBynLoQ@=c%tEmY7t^V&Y!p>1Kc^m!+J8D6viE0D zTC_2kd_HZwczFf<=gpDu=8VCx1?7=Sy1L>JBZb%_l^2)6;iHZ~Z;8_)gm;oIOL`{d zu`K4erI3sPq7WcX>)$>IFb2(Cl3&y@`|SG&?7qj-1fAGPfTLA!;ez+;1pyia2yFsL z#UVqzsv7bD$s+(&wyCiRW_&|=;h7O=7P6j_P zFd|LjYWuqSOnCaWJ>l;!k1-NUqS`vr{vGE9WoN@-qYi_L;u?95?FE!H)9uId#|n<4 z5+DKacQ^vrhOKY^58#NSZ$iNEgQivgdG(|IOhszgfp5*Ig~?M#K(6orvRB<+fIh8m z0Rk}6rriE-_|M)`B(Z^8Z}z6xhTLV8zPz%%XH1L382cE{PC zQi7=nRyQJhB++#E#{s+T4}EKQ)Q3sy?=eEGy(#fo8W9l#yfM!^2#!O^M6Qy>yQBC0c1Cs6sC?!(GOJBl)(c}Ug0Z& zHmutOvp<~+E0?c@4I8$Ik}5hCL*E^`LhpWEq5^mB_dmgP7d{G07q2pMgleKj*e2}# zC7f~e+h~EK=zYFINbvKx$c9b1@cX|W!ybYK001BWNklk4n;qpO4M5;Rl(PIx94i{W?3>25pl;X(ORt$u1 zxa=?R;oDzZ3)3YX^Ku*E(d+*LDg;yV|2gux&ef*(U;gS1ZaV$)yx?FJL zTX5*;&pnC5AAa&hFL?6hk?_s@8aYo%S!5a;*nRLkIAZK4(6{SyHDVrVZW~bk{O;k2 z@W~g(3vk`-2BTu@8|vURoEA}>UuEU|O+YO1ZwO<10g^zUx;;P=tp9f50b&Kcjfk9_ zO>q9j6EO~;K$c&sWf|-$b*I0k&p8HoXm=3K{;;?|Pz&b^g3Xo#4uQkH)m7 z^e!fqOHxh}xNrC6aP6=E1)WMDW_ei#sfTBRf|>EnHU4eAQ%Zi17Y~0 zaa#5QwiF6OfXmPWNC~982z9#h1oX*W51$9SjF48={hImFw{ZESsbV>S7^TG%$L;wI zTzv9dzFD6wTeINY-<^n$U@8~D7jPGs=9#I265_*S_Wux0KjJOVYx9R^-+V4CT3TW1 z?;1T8rD1UexJvBQgU-Nvv#&#!<*6MUOKX3sc_cl6+8C=N5#aiLlAi{(dvo;IM`7fi zfA{WSCIElyl0cKE?uIb{4TPB~bG8(s)2eDJ0wvI;XHF5*ALNS)v-buCxc(25VD$b& zJnQ)7XA9srC;w3(j7D0sa76cB0s0So4<;P>JDdmOlPR%D;2=O3xbDH-AP2WSrx(c&xhI6_bh55828bqs zzK2W61K<<~&fe%iQe<7z;DLW!3IlfP?g_t{AAbjzp7DTM@B+9i-B!42(yOrBPCt4c zPi5cx#8`OY9U_#R5T}7Bs&3Vvu8;R{(J3#&{v*HeCBWM=c7i+qe6)^TbQ@S>102}z zGjuQ5vBxkSCF!dP0=ibeaeeS(;Q^v-jmVXYRUveE0?_KPBagivN=lY`cd#b`dcvM6S#K53ZJ>&v7+~gG zDFXOfphUjN&e{aW9)Gp9JG4h>ngqfm%ODu1LR|MCW`Ps|L|1!Aq3SN3lmsgFtmbDk z&;uX=wr)iaz{DXrgWxZ(D1ytbKLJMV>n(qpZ~*L{o1TW}pZ-AB3qjkhY7N|V$#c-D zoF3`wdLa;hUR?y&KX3?qyMR`*nXwBYg|G|}NIPbZrorHTi{Q2kpHRWEU8d9{^A}gc z!Fz*Ere((?NkE8_ZSEhf3YuAR+sqld&SZuhIXU%H(!~Z=C z#RaaNlobjWFE52_?mG+?E-Mws)2`GERI{#`a&)DcZ_S5j1c+7oaQ#vQ zz?SIU_hUF_;x)2O93-$ziv2lxfSHj55T~o-Xm$dDfr8*@1n@<7h%a71%RlATf5BE2 zK-2Yl)vkv7e)|l9)rx5>bSzv}4p-fK7%cgj2q`^)o}6agyqy;9Ub_PByy$U^FPKzL zQ~T5Ma=3BYaj zGf5-cX6cGDB*3xwgnPLqx>&Vl>3*98v_4?uPP@SF{l{R^K#d2m++q78yntYW=nC>o zv!W0nUh7YFO?d!?z@sK!2Yvf0E$xR&7Xe5D<>tsBSkOjbLn(O`48GJwmdH@e(ELv6uS5KLMPp2noB?B5Ed*}fj^q1D< ziU#<1_gW&r6DX@_`gJ4$ga>$NBK){ic>onE*$?=TO(e^#t*nG&_C6U`p5Xwba+!{R zn6Xde1(JtIfCau1C`EvH&8P+~z>b67fC-1+YD)5r2LxttAgl{qJ9Sqi01kmE;M*s& z6p|7sIUb+^=h3|W;tY85kyl~C+-272t-=vrv`5VvxaV?=0km9kHqH{<%k=6ghro|N z$$=~R4pK%zX>xhzR$~S)e~153APF zYBBSz{pcl=;i5seW;pk-3vubCI+(Amybs--m{!4K1LOhTj`RSDg1^HNAXf7m2_P*U^(zg8Jrsoi>(*|BdEYG-gJ314h0wE4jjum@{iPXj z^A(SYHN$LIc?4HX#6Zwglx>2W&wmN}`-}r@+L{eFPa6jx&hDiL!F2vzWPo@^EAuQ3 z#_jPr4u<)S0|0zEr#oDI|A{!AgSPb2g9(m+Sha}Cur>(-h(v+58EiCoPLaI6kaiRU zAOSX7Y0zYVe>*0Cupt6SVH=7T#*E!>D(t%Zvj%`sWDo_x*G(NRMuO#)I1Orf0sNE( z!lDu2^I3CY@`Vqf9B721(gL{uua}6OBfMS&{3*9T3(x%REdevRnoxNGwY0DRM}n`O z^csv9w9vB*+79LZe~yA@UmYgBh?tEg!I##A;1_?gT%q<$gG*1tk>C;h6wSzD-cwq(@CMa@SDhQ3kthawi5y00py1obtdUtt4 zhQ0#h4!Re!K~@UUiv;)?5#U-RK&~c$0*)esEITcb0JEom4;N3m2d6?bh|$=+_8S5> z+n+B%Ou}{YhJ$;9Q{N-iM?1^P39Y4DZeA4U_L5kJqD3 zR*do%;WQd?y-6-2HV1c%`0FiyiX2z4>UQtn55m=9!zJKFd)ZHQzqm$>O};2#}FXi{`G3l?Is3DMx#`B{vM7y;kR8pKX02&Ft=!`$&b|(~I;y@7s|F<{(0uGq4n-yD_>d^AXS6`S8 zcTRpnOrNkbEu3yVU=N%jdg}jt7qrlpCzsrP6wJZVV3GMz3wiYJcETFVl1~`_0sLZu zwRwOGMI>V;U4J$P!1CdM!jniUSVua&Vh%2j`Sl^^;}$TOK@(p|@5!E2oULOL>FH*_ z`=jsx$>?YM7TPTVlHCy0C>a?I@T)T?L0K7ER~z_l5|9UQ5rEE@0Fuqi^`kUsGy=?? z{vBL0i3lJ^S?Rn1gL}ap51flrA-qSA2{_kcK>YsepSuQ)291s)F`xW3t;3{oCWZ)wB?di`!S+UVszLVhAtl9wQopdKG{*flV zu?00uJ?FR&;Mn~+p!XiwoAqs1_}hykaV}2{#6KOx4qQZatf<~_jV(Ji|kK$>0CYTdeh4k!NN5+?!pYs-_rIfDqW3le~XZMh&u z1bS9LN4r8yd-@t*2{h}I@8IGy{($@akOwf60&?=Q;l_K;ggr(N_U+O)UYP-RT>Av> z4}|hbq!1;{Xf;7`(N?(sif5q~C&xv5tzKIIi+?VG)$8+M6Oy0=t$k(bdg#`9wOH@$ z|7ymikbU6hM~=Wfg5<c3;*U*R$&>JxhdUqb=%mC@L4FU9IIr0GSAOQj< z!^Mbwad^iifVWW;jq;m|kA~bl%%giqA2w7(fNO{VYGW+B^Q94!Crb|yM1bFm4X;d4 zE6?qV+bQ1l(D}Yni1rV?<;uUnJFm`?Iej%Iz(6>7)Yov~NpG8J5m6Bmr9mRjYle-u z5dOADC%{Kv^b^Fhy`BtuX{$v#kz)b2>KIpyJsFDgFlMl_O*VmK8yhb`((JPo0pj7e z>zt5%JmK));mGit@?@`AK*Rt@fT_bUTf>`~^WoM``FLDx1dxDXTbhNN=ALohp>X1) zgM4p({+uOn(dmDLH7nN(0`NpK8jUT;uZOdbejg4Q?b`Xm1JL1Hw^_{l|I71x!@pkN zU2Mw5p2v7TwJt)c8wUx>ib~+9J&!|D;uA)cn_%+jcdiVlXYoBnfbc!!JTfHc?UQyK z^g0}R`0XZybCUp5jc}BETe+K(r#vA)(|&i*a!5(PyrLDjZMn zd%g3wbrileKG7^=;s3e67kpz>D_z0Is`mN}SrGc7Z3l5|``rO{|!vBVgO|cln z+EVB+fFIhyZ6p64Slb`=88S}HJ+h^u#5%_VT!?x9oMM2K1PaN5So+kX$j&w2!o=gR z#B`{dPQakzV=-4ANdPAaIHlLQ3(f^X2~_U09zezbQUXZ=DEqJSg7o(eLwdqJk6r}% z1v#D#Kv|(Xa81E~pZ`P!;aCRG#>8@H-SR1i&VYk3Jz7z^!OFaZZ>WaGH28T{G5qtj z-Qkt@b{6{yi90r8U&TKL@LK&_QfTauG0?x;&N^EVVg1=F=;oB9kOc7Gy5ZIm4F#W;(PUl_k(}@POyh z;FeAdS<4NHx3sL0W_e1(XYH*cfKQ*w05e@YM<7FC&rB1xpG`o|7NCJLA-_loiT}%| z;K+=Moco`a)(E}3u7>?ad@I%t_rQ!#DQ17@`2ZwqR;($6AC{EkhFP8AwU2g0%U^;i zOMWy5Rg|TVY97lA$lFl$R&5~f6W0L@90t4g-w)#kvkrizlZ;MK&fW2EG z4XXOl9&gxX*XLl|f%iHo!z6Hc07C%LdDiAutm%!l6Q~qj>~vZrSybn1=|hK^h2tX4 zNmg9}gacl=@=U=-AxJDjSI3Jpu)e(e17BB+{)&3Y60=az1j@pt%lSxRRg&oubv;qOV z2HHARE`T#8P160XnLr(+2_UmT1_|1BS;R4}gFBaCW9N?eNsS^9#LnjcT1z2;35KC6 zkLL@sT;P57iAy$_xF+}^%^a0wn$=&zJ806%IXoF^aSW4<;}UU};Htb&c^b zC(GV*pKY-P49nUZ0?3EYX-lm^q)e&+hqAVEc9^p9(vH))$|hTCMEe1`OP%rt!U7Aj zNEi$FAB`dPF_)h_!MF~ zoM$@;;UX2@KY4(S9Wn+;q6Y{AdK>Ly#!iEgdps5C1wH*?0{J`y{s% zA_?3m7K0coXBMFt4XhJ6N^=V?C>XPs5KyDo!6uP|vchBw0!Z6UvPvwX)Yh90=ease z0%M=$WH~K$=y!e`ljQ+e?#OBwZ_td>9VYB?6x8w}c*!DlnB@gj%XtRI_~Ga8r3et0 z-H#RY_C?A&ErLmBo{s&+%2~ZD33QDjK%|Q>x}2>my^FJj2 z77oAw&}e(Iq7wY(YU(p41r}oLK9fMYut;CUUVwvVp3;m{tQB>nyOG4@m(l(P^!!;p zuK7J+mwlmsElrhH6xETgC6PFe5!ILXz{Y{sI)Cy0qLc>+!+=Bp?=GJf$^824({R_g zB~C9u1mLL&wPxV^soU@>f5*Adg80TL*gfOiuB=Ptq_husc?aAerRjSPa309T<0 z$iqeP^m5rnQxrQ731^-CAsNImKzh0wRFeI!UxFY4J!1Wrb`L_XXpdnmsi=ptrgT|5 zYr|8u#g-)z(Bs>az?4}Uv(A{RWE01|2HH&mO6_*5tbzS@J{%=tp0?_2-5n#qiV&Js zF7Q*?jksahS0DU@kB#l%1ZYXHdmdLEvfY5fzVHOn8>nbOD;+hU(7RYLBd)BZi>@R8jg}gxWDMvw07mUN4o7{n<aKA;*At?$s$p{ zju+_Btqm|5=lS%l*%`+XGL=VDb+*B;JdinGk$^$Zrh|{e_Z5pbz=E$l9tMgr0KdfkF7Ne9D%Buq%_JN#(TcdKE^{OAjN;-y6gAV7Sew;Pn= zfP)Uc$3cMCKdpwV9+cw%3>sDiUL-JGYe2^PXSxAvK+J@aXA8S6osD`aG31aVOaM(4 z33MMRWP)2BX{LkKSg!^pU*AZfW)%B{`310J*CEiq%V10f(56^2c;VBuRAVW`StZN5 zb6{)}L0?VWYZ`p>(ND0U1u{U?F54ji5(m87niLeSg7YpoUf4weNi=G&<3QMzm<6J3 zQ8XMi$lN8^@Rt^!wX`6MOHXTxNEM<9rtG5r#2lxUxjEY91;h}T`iwyz@wcn#M5+3z z848wS@=+5E>oXjN^wz!C~!+9 zK-xJ0k`Hz_bcOZA%bb4tS-84u4r30dLwAPXsw|Lwj*%8lxU$ao4v3vrTVF(CNDZK| zU36-1zKWL=QW`^xBO8#01S%d;63so?nx;HtW@JKsb^-1;S_0iW^@0IihTyb@Lb0gb zow3o9PXJxjl~;`kHKbygFkS$Ung99EuyTq2vyQ#`E0)jN5dm5U>~`bXR%h?M9)rF1 zdCWn8D}9zkYS1bxW@m-Gq);?3!1a-`iqBT)vUR`9lQ6)|oFFBqR4^-ut>Oh-D&W|- zs;RM282*alO6XbH4=Rgmp(w8u3iFDE#h21ef}0(UJ$2j28IBk@d!({LF7QhSU_6K{ zGYvLx!1U)wi`52NvA{a~vF(5WGv|fBoy3pybG6k~bK$hp&%se!xtSAr0LlW%*`UTc z+rS{8xW19Vas1y5j=80fm?cUo1dn$H}_x zQrro4tlb%URqX`1nT1f_h?{TGL^|b(v{mQ3AQIRT$YJ44Fe@dE35Z!XG1zr1pukUM zF8pRSEMI7CQkHo4MwE~ufB->o%N7-_gcDA<3@SQdI#gtVBmpQ0c7sy{kvhu~DTO2n zEJ>rH3kEDtgOIf{^2qiAOf*wEufgSV&AZzR(1Mf<{JJ2g2+9hppgg}4s!D3`rxx;1 z+KAmwbwDej%fk>3%dhJuWsTPF>=u+^w@D-83LhzCd4bIv>tWvPvBW z!hqgxsO;>`aLA!|z`%iTM-YIHbEYhL8iG$+)a3=35Yi&M)0oP7D+}x-k2zLL9sxQD zTAM)hWR}L}dMHCF)2C`6^yoAY2~dhT`z)dHWe$k5IKrfB4KJn`DR9adS9&Hb$+QPx zNo3xYK{s+qc?eNQyDVM4toM)Ku7Z`A|Btnwf=!w8hz>=7L>qI|sK;UN(SLz7+&#_q z0Ag~RvetI^nSu=Dk4FpZwXn3a(Y#km-~R`h@#l{-OE zPMMgBjf)=zfbGd{+Ea*ilM>+eL^d5nTat&>y(8mec>^hRR4l+CmrK;t^%bSfL9lM+ zW|%wc=UA~E*YVpm0TKngyG48V`2>zSdNMvlW2+#*l~af6aRBxLPHAJbx|A>WOa0}! zgwpK=7$ow1mO_$tYJm#gY*TY1TJ?PBT-+6^i@QN-UMI}lRA2_DNDOL`^fBs0rA5VH zmnvTvdIf%bcg*69NL9*X&ACic4=F^dN8PR=oC=8TYhr1eH`c-Y&sK=^XKTE+D*_}N z@a_(v-QvzV8z1qRyB=Pr7~mlp1Mo|Y5;*m}0*RXddKskU1sG02V*~s|0>Xb?V;!!y z&4E6Z{b7fi5m1_6BeFCS>BrU}O)VGDBK45%|R;lbnQ*_o>QMR$W+rOSVaZ zxdLNFDmgZwEWdIMwiKd$Lx22oC9GZHdcfENjD%dU)|br~Zg_(P$+)gKhNW@ThS=aR0_ zy=(xK<#)!>=OSE-oQIj5Ou5B~4N@JT8bV2b5LRd?8{I0{_aT2>uWmxnw$o6an0=8PEZlnRRf{<%h%nX5s^< zT@r|kvIAoFRAB;QnWHC7o{oEGW}=So0{tq7LRC?3{5%U9kPNm=F@Lb(W?RhI)*-4m zATm`cfhn=c0WoKJ%^=vv000T7Nkl0$t1r=w|EYq-k#4V`2*5;;?_zSM0zYSE zq*ad4{~qP}W`!(5*)f45m5LYNvatb{|F9mjKFMF{#l|S;z2g!fM$p?0IclH3LVf-# zo&;cvA1xqmpa(qIlHK~8~ocp9;0Uk1CnOeJfyBGM^N%Y#J31d4U|wsB28ESb9&HwA8; zY>yuiIt~F60KB{Ldi9HgT46dy4uUD;Z7ja+N7xG}O>SF#?FHP{pFyY&V7X&kV@5mce9y4~mC4cG zg=LVtPRf56S!Fy7U32T^Mp(0KGpzc_@3BikHaofBZ@&acBH-OkUQziYl=itF?)qmZ z*Tz`#NRl;V;fryOd`)p5lr~*)0ID1cvWt-j`EpXV+8>iZ!K1%A9Ciho4l%_RTv%jF z8flZw7T9V1SrXYPR-@GgYK;_fjSa~7K$WLG2$!!&tFG@D8_*=dbS(mZ?eeYon4_(@ z6E?O_3-(Ve6xluq(29*on4^KPawNdi*BdnfXi%yNgVe(8Lg-huGxRJU1_fDV`21ho z^%==vzt}no&mmJJ;%mL)N@7X_Ql4u`7&TAF5x~kro|ZvbChZ1j8z3Ge+0*2#zz$Y5aDzxd5vyx+DIE|S&F+v;mM39trIU{? z31g&@B9I!~GG2)-y(Fyk2$Gfp*Z9+jat_Dk@TXZwoz3eTFwn(EKW)Q)3nEV#SD|7HfwX>(SbWcSr)XXlJ)G;0wMaSm)LTZ8ERdAqdba z9h@MD60-Oys~fen+?Z+f5MMs$fqd=p}9wb{TP#Z=1AR z+_i1l6WfIcXcHZlAYPMZ@l#emm=PlV8+;fY(dG$o%^urs93X5XhH2`AEq)64VVXJS zW7<3ct{ypK9&ZX8^WDXILP)C-w%DYAJ^|pTw0>|;wIu?OllwnCa-#A8L;(6B@NY8$(7F(kK$-v(2i<(qfTHoYgu1l^0Tk*Q!Y?NILJ1a^ z0)E(@a~`)~^ZQdC|NOi=ECP@RXcGh=5(p2_yVJ1hqk8@Rlf29lQ~Lw~6Hjv`9rP)w z6HhlJ?VK%*>*1Xh_wD!b4^MwjYDigsoV%@KfPksJ-c?C71|Sc>aR3oOkl>^p9=Nl2 z$%w;~cK0C*YKx%P(rX(SfsoDC<`1LQct36Y@{K=#b?R9P{5Ao|18@)=^S#7N0J;#J zYZD*`|E8b3p2b6|$M?SBgNoc9F;^&-6IulD8nLm|#Q)fo+)2D0S8rXk{_{2e{^dJA zJTlWF09k+fVFJWuViF~QI~7Xl&^-DX)Aj7Vcdk0@q2lb$iMN1NLW_c)t`k=?M&4qZ z1wPqI_hV&}+C#}LY-9Z@n6vh+$uG>i=_w2Rlmcb>6L$d2Ry^Jsb1Ia*00qK49zZ0> zJ)-Xor*|nFa&aP_pv3{7M9_<(l0=|*J7s%0k7Uofx}~se)0`)s{{F(>Dex2U>4&mE zl>g^3fVlL3q6DDx3H&UDhye7%Qb@!Ed)H1HwPVEre=5qZ0!Lu%(NnDgcKflnLTd zVfF-q3#=jiA!ik5SC7xnDuLXLB7CM*7H%pU@*0A+;O6A%g5 z8_@4r)w%u4cdI>NLTPr*-kE7RH5nO64iNl$Jq7wU%LiPRzX5m2-q6^zb;*W?l{0@> zH|wpL%b)%VD@+=nEIki+vE}E$*9L#wJ)EcqaC-qB7-LVsl8EC2_7X%CmQOZ`+H6Oq zDwfn1V8F6=r+1PvJgCJP9tJ(V+gTqw^Ak7tli>mEG8oVVZXO$8Z@}+N01lkp;7oJ{j6^;A^);GA%BbWoL#M?Djibe>eD(S(i4^+pSUw z%C)uL6N;kTQYn77CYD=v%OEcjFd_Imp7Ly;8_P8#j%^9h*|LVMy!)LqM|^Cu;0Apv_)W2bHM|`Qa6oLoy9c@w()}$Z zf!y8cMFjU}ElI=_yxM*Xcm>2>q~JSA8t_{acsA&5snZhjtL=Ars)l|o;HB%6ruF?U z+L|DAUn}lwPsY2UpAPpTIKIQWa{=7Dy4GHCsD%tv1&JDFU>)E=g6WHCy2S Y13z}@bS)UE!2kdN07*qoM6N<$f(%>P#sB~S literal 0 HcmV?d00001 diff --git a/multisrc/overrides/mangareader/rawotaku/src/RawOtaku.kt b/multisrc/overrides/mangareader/rawotaku/src/RawOtaku.kt new file mode 100644 index 000000000..8ac981d98 --- /dev/null +++ b/multisrc/overrides/mangareader/rawotaku/src/RawOtaku.kt @@ -0,0 +1,251 @@ +package eu.kanade.tachiyomi.extension.ja.rawotaku + +import eu.kanade.tachiyomi.multisrc.mangareader.MangaReader +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.asObservableSuccess +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.util.asJsoup +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.jsonObject +import kotlinx.serialization.json.jsonPrimitive +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import okhttp3.Response +import org.jsoup.Jsoup +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import org.jsoup.nodes.TextNode +import org.jsoup.select.Evaluator +import rx.Observable +import java.net.URLEncoder + +class RawOtaku : MangaReader() { + + override val name = "Raw Otaku" + + override val lang = "ja" + + override val baseUrl = "https://rawotaku.com" + + override val client = network.cloudflareClient.newBuilder() + .rateLimit(2) + .build() + + override fun headersBuilder() = super.headersBuilder() + .add("Referer", "$baseUrl/") + + // ============================== Popular =============================== + + override fun popularMangaRequest(page: Int) = + GET("$baseUrl/filter/?type=all&status=all&language=all&sort=most-viewed&p=$page", headers) + + // =============================== Latest =============================== + + override fun latestUpdatesRequest(page: Int) = + GET("$baseUrl/filter/?type=all&status=all&language=all&sort=latest-updated&p=$page", headers) + + // =============================== Search =============================== + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = baseUrl.toHttpUrl().newBuilder().apply { + if (query.isNotBlank()) { + addQueryParameter("q", query) + } else { + addPathSegment("filter") + addPathSegment("") + + filters.ifEmpty(::getFilterList).forEach { filter -> + when (filter) { + is TypeFilter -> { + addQueryParameter(filter.param, filter.selection) + } + is StatusFilter -> { + addQueryParameter(filter.param, filter.selection) + } + + is LanguageFilter -> { + addQueryParameter(filter.param, filter.selection) + } + is SortFilter -> { + addQueryParameter(filter.param, filter.selection) + } + is GenresFilter -> { + filter.state.forEach { + if (it.state) { + addQueryParameter(filter.param, it.id) + } + } + } + else -> { } + } + } + } + + addQueryParameter("p", page.toString()) + }.build() + + return GET(url, headers) + } + + override fun searchMangaSelector() = ".manga_list-sbs .manga-poster" + + override fun searchMangaFromElement(element: Element) = + SManga.create().apply { + setUrlWithoutDomain(element.attr("href")) + element.selectFirst(Evaluator.Tag("img"))!!.let { + title = it.attr("alt") + thumbnail_url = it.imgAttr() + } + } + + override fun searchMangaNextPageSelector() = "ul.pagination > li.active + li" + + // =============================== Filters ============================== + + override fun getFilterList() = + FilterList( + Note, + Filter.Separator(), + TypeFilter(), + StatusFilter(), + LanguageFilter(), + SortFilter(), + GenresFilter(), + ) + + // =========================== Manga Details ============================ + + override fun mangaDetailsParse(document: Document) = SManga.create().apply { + val root = document.selectFirst(Evaluator.Id("ani_detail"))!! + val mangaTitle = root.selectFirst(Evaluator.Class("manga-name"))!!.ownText() + title = mangaTitle + description = buildString { + root.selectFirst(".description")?.ownText()?.let { append(it) } + append("\n\n") + root.selectFirst(".manga-name-or")?.ownText()?.let { + if (it.isNotEmpty() && it != mangaTitle) { + append("Alternative Title: ") + append(it) + } + } + }.trim() + thumbnail_url = root.selectFirst(Evaluator.Tag("img"))!!.imgAttr() + genre = root.selectFirst(Evaluator.Class("genres"))!!.children().joinToString { it.ownText() } + for (item in root.selectFirst(Evaluator.Class("anisc-info"))!!.children()) { + if (item.hasClass("item").not()) continue + when (item.selectFirst(Evaluator.Class("item-head"))!!.ownText()) { + "著者:" -> item.parseAuthorsTo(this) + "地位:" -> status = when (item.selectFirst(Evaluator.Class("name"))!!.ownText().lowercase()) { + "ongoing" -> SManga.ONGOING + "completed" -> SManga.COMPLETED + "on-hold" -> SManga.ON_HIATUS + "canceled" -> SManga.CANCELLED + else -> SManga.UNKNOWN + } + } + } + } + + private fun Element.parseAuthorsTo(manga: SManga) { + val authors = select(Evaluator.Tag("a")) + val text = authors.map { it.ownText().replace(",", "") } + val count = authors.size + when (count) { + 0 -> return + 1 -> { + manga.author = text[0] + return + } + } + val authorList = ArrayList(count) + val artistList = ArrayList(count) + for ((index, author) in authors.withIndex()) { + val textNode = author.nextSibling() as? TextNode + val list = if (textNode != null && "(Art)" in textNode.wholeText) artistList else authorList + list.add(text[index]) + } + if (authorList.isEmpty().not()) manga.author = authorList.joinToString() + if (artistList.isEmpty().not()) manga.artist = artistList.joinToString() + } + + // ============================== Chapters ============================== + + override fun chapterListRequest(mangaUrl: String, type: String): Request = + GET(baseUrl + mangaUrl, headers) + + override fun parseChapterElements(response: Response, isVolume: Boolean): List { + TODO("Not yet implemented") + } + + override val chapterType = "" + override val volumeType = "" + + override fun fetchChapterList(manga: SManga): Observable> { + return client.newCall(chapterListRequest(manga)) + .asObservableSuccess() + .map(::parseChapterList) + } + + private fun parseChapterList(response: Response): List { + val document = response.use { it.asJsoup() } + + return document.select(chapterListSelector()) + .map(::chapterFromElement) + } + + private fun chapterListSelector(): String = "#ja-chaps > .chapter-item" + + private fun chapterFromElement(element: Element): SChapter = SChapter.create().apply { + val id = element.attr("data-id") + element.selectFirst("a")!!.run { + setUrlWithoutDomain(attr("href") + "#$id") + name = selectFirst(".name")?.text() ?: text() + } + } + + // =============================== Pages ================================ + + override fun fetchPageList(chapter: SChapter): Observable> = Observable.fromCallable { + val id = chapter.url.substringAfterLast("#") + + val ajaxHeaders = super.headersBuilder().apply { + add("Accept", "application/json, text/javascript, */*; q=0.01") + add("Referer", URLEncoder.encode(baseUrl + chapter.url.substringBeforeLast("#"), "utf-8")) + add("X-Requested-With", "XMLHttpRequest") + }.build() + + val ajaxUrl = "$baseUrl/json/chapter?mode=vertical&id=$id" + client.newCall(GET(ajaxUrl, ajaxHeaders)).execute().let(::pageListParse) + } + + override fun pageListParse(response: Response): List { + val document = response.use { it.parseHtmlProperty() } + + val pageList = document.select(".container-reader-chapter > div > img").map { + val index = it.attr("alt").toInt() + val imgUrl = it.imgAttr() + + Page(index, imageUrl = imgUrl) + } + + return pageList + } + + // ============================= Utilities ============================== + + private fun Element.imgAttr(): String = when { + hasAttr("data-lazy-src") -> attr("abs:data-lazy-src") + hasAttr("data-src") -> attr("abs:data-src") + else -> attr("abs:src") + } + + private fun Response.parseHtmlProperty(): Document { + val html = Json.parseToJsonElement(body.string()).jsonObject["html"]!!.jsonPrimitive.content + return Jsoup.parseBodyFragment(html) + } +} diff --git a/multisrc/overrides/mangareader/rawotaku/src/RawOtakuFilters.kt b/multisrc/overrides/mangareader/rawotaku/src/RawOtakuFilters.kt new file mode 100644 index 000000000..cc443b5d5 --- /dev/null +++ b/multisrc/overrides/mangareader/rawotaku/src/RawOtakuFilters.kt @@ -0,0 +1,110 @@ +package eu.kanade.tachiyomi.extension.ja.rawotaku + +import eu.kanade.tachiyomi.source.model.Filter + +object Note : Filter.Header("NOTE: Ignored if using text search!") + +sealed class Select( + name: String, + val param: String, + values: Array, +) : Filter.Select(name, values) { + open val selection: String + get() = if (state == 0) "" else state.toString() +} + +class TypeFilter( + values: Array = types.keys.toTypedArray(), +) : Select("タイプ", "type", values) { + override val selection: String + get() = types[values[state]]!! + + companion object { + private val types = mapOf( + "全て" to "all", + "Raw Manga" to "Raw Manga", + "BLコミック" to "BLコミック", + "TLコミック" to "TLコミック", + "オトナコミック" to "オトナコミック", + "女性マンガ" to "女性マンガ", + "少女マンガ" to "少女マンガ", + "少年マンガ" to "少年マンガ", + "青年マンガ" to "青年マンガ", + ) + } +} + +class StatusFilter( + values: Array = statuses.keys.toTypedArray(), +) : Select("地位", "status", values) { + override val selection: String + get() = statuses[values[state]]!! + + companion object { + private val statuses = mapOf( + "全て" to "all", + "Publishing" to "Publishing", + "Finished" to "Finished", + ) + } +} + +class LanguageFilter( + values: Array = languages.keys.toTypedArray(), +) : Select("言語", "language", values) { + override val selection: String + get() = languages[values[state]]!! + + companion object { + private val languages = mapOf( + "全て" to "all", + "Japanese" to "ja", + "English" to "en", + ) + } +} + +class SortFilter( + values: Array = sort.keys.toTypedArray(), +) : Select("選別", "sort", values) { + override val selection: String + get() = sort[values[state]]!! + + companion object { + private val sort = mapOf( + "デフォルト" to "default", + "最新の更新" to "latest-updated", + "最も見られました" to "most-viewed", + "Title [A-Z]" to "title-az", + "Title [Z-A]" to "title-za", + ) + } +} + +class Genre(name: String, val id: String) : Filter.CheckBox(name) + +class GenresFilter( + values: List = genres, +) : Filter.Group("ジャンル", values) { + val param = "genre[]" + + companion object { + private val genres: List + get() = listOf( + Genre("アクション", "55"), + Genre("エッチ", "15706"), + Genre("コメディ", "91"), + Genre("ドラマ", "56"), + Genre("ハーレム", "20"), + Genre("ファンタジー", "1"), + Genre("冒険", "54"), + Genre("悪魔", "6820"), + Genre("武道", "1064"), + Genre("歴史的", "9600"), + Genre("警察・特殊部隊", "6089"), + Genre("車・バイク", "4329"), + Genre("音楽", "473"), + Genre("魔法", "1416"), + ) + } +} diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangareader/MangaReaderGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangareader/MangaReaderGenerator.kt index eaee555b4..ca321e107 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangareader/MangaReaderGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangareader/MangaReaderGenerator.kt @@ -33,6 +33,12 @@ class MangaReaderGenerator : ThemeSourceGenerator { pkgName = "comickiba", overrideVersionCode = 33, ), + SingleLang( + name = "Raw Otaku", + baseUrl = "https://rawotaku.com", + lang = "ja", + isNsfw = true, + ), ) companion object {