From d268be8f13c037fe80c4edd549343369a7b52e28 Mon Sep 17 00:00:00 2001 From: Solitai7e <60846439+Solitai7e@users.noreply.github.com> Date: Mon, 20 Feb 2023 18:14:07 +0000 Subject: [PATCH] New source: Danbooru (#15405) * New source: Danbooru * Requested changes * Slight clean-up * Requested changes * right this isn't needed anymore either * Requested changes --- src/all/danbooru/AndroidManifest.xml | 2 + src/all/danbooru/build.gradle | 13 ++ .../danbooru/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3683 bytes .../danbooru/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2019 bytes .../danbooru/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4703 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 8355 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 11538 bytes src/all/danbooru/res/web_hi_res_512.png | Bin 0 -> 52169 bytes .../extension/all/danbooru/Danbooru.kt | 188 ++++++++++++++++++ .../extension/all/danbooru/Filters.kt | 28 +++ 10 files changed, 231 insertions(+) create mode 100644 src/all/danbooru/AndroidManifest.xml create mode 100644 src/all/danbooru/build.gradle create mode 100644 src/all/danbooru/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/all/danbooru/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/all/danbooru/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/all/danbooru/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/all/danbooru/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/all/danbooru/res/web_hi_res_512.png create mode 100644 src/all/danbooru/src/eu/kanade/tachiyomi/extension/all/danbooru/Danbooru.kt create mode 100644 src/all/danbooru/src/eu/kanade/tachiyomi/extension/all/danbooru/Filters.kt diff --git a/src/all/danbooru/AndroidManifest.xml b/src/all/danbooru/AndroidManifest.xml new file mode 100644 index 000000000..30deb7f79 --- /dev/null +++ b/src/all/danbooru/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/src/all/danbooru/build.gradle b/src/all/danbooru/build.gradle new file mode 100644 index 000000000..345adb676 --- /dev/null +++ b/src/all/danbooru/build.gradle @@ -0,0 +1,13 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlinx-serialization' + +ext { + extName = 'Danbooru' + pkgNameSuffix = 'all.danbooru' + extClass = '.Danbooru' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/all/danbooru/res/mipmap-hdpi/ic_launcher.png b/src/all/danbooru/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..65b32f3734f2f47f526d83095293dc2bc761582f GIT binary patch literal 3683 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 B%JKjJ literal 0 HcmV?d00001 diff --git a/src/all/danbooru/res/mipmap-mdpi/ic_launcher.png b/src/all/danbooru/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..23a1f8ed2a81122a0cc3fb2e85e067e636995934 GIT binary patch literal 2019 zcmV<92ORi`P)Px+ok>JNRA@u(T4`)lRTTbaI#6w;l~Ryhk&+NYLWqg}BjJaM0%23Z9}1-;6wxx( zwk%~+lwd+>p)HFoLFKS`dEE&3T3T9) z;^N{KbOf@y;M{=ebA)S`ZLO`X+v4NnGXS*fW1R%(IxY|hoF~ic7I#yjyF_IF&Iq~9 z8wdoh`+UBk07wPpPHqGq4F-cvPVml21Azd_%gfQ++^m`inA5W1u606g=i|qZ$JnuB znd{QrUavO^!1c}uBw3bqC7gBJ+uN~d(IV{Ly_^bu1@pzH} zG<8ZK7z|!*uNRh3RS~gBXZD9ZPl^*lM0$f|;p&YRT)uWo z86{!@ZVI@8e|6%sm_A{gnP&x3+nL0fI>-~#-OgROirnJ;jD#c^F#$IP$Zd4X6Zjbu z#+jZb!P8OrEz7)}f^Wj|&HHiXdNYy|oV}QWdXT`@ty__so9hnP0mwy!(&ManEBk(W<}*Oo76jSvEHd@aOGeStw!xdKMxAOP4NX3J?KTt2-ERx02i( z?;#>MDm4O|vS%9V`SW-XM@+z}03$GL0M=*n7?9~ux;}R+jyR~ISF3~6Al8G4QuRv% zHkKb^E>!UL%iJ(QUO#1R{1hk8UW}Z8uE6Hao0S4Gh>c7`m8epH&N*-bX%usuwdiZ% z(67f)xaS*2AkRO;DE1Z?ea;9J6cj`s1Cjv6zy}#Kc&-)z)j8M1UZgly(N|WY+CpYo zIQ-j56z}^MBZnko-J8?IRMf}9vf_g{_2;F?2{;v4vSbMhwzUhV+NH57lleo1fqA>a z&f8QeO)Wv*_wbRE*!EcsE63NqK1Ha*+g5C?K;vJRnG0oRW-7OhsF))Kh``7p{jp}j zWNB-TnYn~e#10NS4y4P-6^#E1L8X9U*FpDZNfKlX_*^3$FW1 z&X;*3)ylMMvSJF99QXkvNP%>l0L?`TL`^_Gj|k-C0RKVE1aK7XSQqDM_+tszFQF1`bLLwDce18;sE03_p z@7S>eX=!PZrBUe~%7rKf=1~lU?vpwTHr?tvczu8NyCcGdSQ_OnR8eyjd#gD3IdkS< z`}Xbd`FxQPkfVxQ&Uq>T3Tv= zr%AfCkjX3*LO?7|`ktht-ZbAC#LK-+nx9qIp5j?(a6dfr)Z@zX1iqxC1igCoGK|%2 z0&;X=VWChU8LNd0=?dr;H{Hb!O0JHnoJ^y%QP3Ws?SCK~_-+xPa#{?4BoN!%havqR zHEJ8pmqOl^-Lj8zGXS?*@8HrkdtArXF-1$8=Ha1ZP zvf6=jv2M8U2yWwCrR>7ZwzjsLv9Ylu09@;Ad%aIXL&L_=qestmo3|%Hbpbc)LeH$P zum5<=m@%}^Nc-<9#N57-#ipdB3@s}wTQh3ZsHrhAG4V2>-DK_TOHNlocGU0g-Mcp% z8yhQ9Q&ZnjNM(AxDd<>*LANcZJo-b#6Or!;Zca)BP9$ zp1u{|&tE`%nWUq0&Ajg)v7Oo002ovPDHLkV1h%~ B&!_+Z literal 0 HcmV?d00001 diff --git a/src/all/danbooru/res/mipmap-xhdpi/ic_launcher.png b/src/all/danbooru/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a4bafa84f47930a0ce6fb4f3fc4a23790008f2d0 GIT binary patch literal 4703 zcmV-l5}@sgP)Px{8A(JzRCr$PU2AX@RTe&zfDzb4WXlB$5G*8t5XcW85&{S;kU$be6s>Y05_uG; zRPE2zvetER1TP2__xQej66A&akA}J9T5B-^A@Z2sI^BJ`@4bER z?VicJRx?#8nCbiK?>px^=brAF4nfN+sR)FUI(y6H&_Y0xji7~q76OutK$53#@qiWr zl8iu-r*H9q|6>AL$m7W~qTw=95V1Y|r7{1HX6~Ot9|9f!4FdrFOMijRFA@TuRNS?A@!}mU_fcH2`~)f z+gMrOl`B_Z_Uzg4)mL9RL*hw_X`${t0TpQf&YhlMO=N{aq0RvC zy-fh7rcp@{5pcI*7?@gdfQjA^#L^oY8eqzlDdysX0w97N1fWQWVaE$PcDHWbpsub? znJtAvA(S8_pvlgLVoN|Y-hkjwpFSP7ZQB-+wFdKmIjXsd0HtMzLR|sia!d(O z>8k8=@w2N}ufpWXleLx~DLBb&FC&0G=TNK(2#3QLf=CW)h1CA?<;yT*#tf*ft>p{` zj}OW30hw(v%vdkOET!;L$A92$15Etz?Eej+z1hHRiyzMwm2d671NqgX^9a3c)jv6hX=0K7juxYxa;V24|1Y3lMtViXZrt zXbc0wh5>J`+5wyQ9yK*yCT&Q-$&)8NSs}HJxd(_rSfza|DQNkq`5%A$u?PIgrGub+ zSU(4R>39P8yzRO^BYFsDv4Tgj-Xfdx#*JIBuxb}<5x^${p*~6R0I~*|6p7w|mXDgh zefxIqJk!%cFr|Djj4SF3Oc7O{&WWz?sk-tInrmQg^f1@U>~yT->eubtVOY3kC)9j; z#PkB!ngKFew}$IKx^g5EAfA8BJs^@8fR;aX>Qt%hRFoA$*^s`FmgchulI2U|ITGHk+65o(`dUeV=vOiKfFK(& z)g}vr?9=6iP+Ang@-4B|$-2C@6=m>6@KJU!;Bv9UFkoC!9?Y094DM*%3Kp*32_Nou z3ApdR`{2~6Q%XIH3jw+qpxR`i=1&?o2p)bYKVr*w0-r{DMBR7$xY&r=Pu7pJvuNEO z*!amI50J%!a^blrMnHOcni-$oTC>X`0NNbTRJ2Urj19-$4ZPPcMDgm36Qx# z%n8uN0Mz{T>(_hM(IKlX^zYrxzIIQCZLRQ;3=tGp_I-+W;wlV*4x8lfzP}1z96Rd) zzql|Lo_%~cv}$F6PlOWzv@Y@h(U9nU!U(`c=I7_b`Sa&J8Y;648L-iQ7NnopM)$sS zNMD%o=uijzAOxs_KwJn=#Q>H7spZ<16iY(7Q5vec10*g4sMsa~5(Rz`aD%j=^$y7G4lhqHwRYuffMHTy8375;f>ahP zO3*LwY6th;)85fgDRH7UTZnm@dIPGx0}u;vetnsu+?o3C;7TKw>8;n;!Fllf6T><1 z#bED8K-_o2x>``be*L%@fMtehE&_r0C7ej5kQ6a#QWBYUYNN6b20ix$cZLXBT#`7-Ijk<1ui6F}Zc z9w1u-DIs|P^&tXm@}wg`SK?L?pmOAd z5r8KolOUD=b)XHN?U1E=E@??F+(_@qer}>mfVr_V z>;;-#!|+zsZrHHfy>1{9AjX1(Nf0iN2;gGCgkiG8Q=R(=7u2aCdvTnAbikF~<73tw zNO0^>;(iu30A5N-y+uate{}eWTdPGWq%&lWCL9`E$ z-4i4dfETl;jUVF3fS?GLMY1PK;BrLqAab~{w;L+%Tw`6w1=gDP<-cw;J%C zCJeEhQJlzTWYPM)CIR$fJs=?j1n~fp8YBR3JLD{%@bn_-y;D=TpOfQ?)d(9cFKG76 z)R74q7z6&e=p)ku=ry{aH%uEpn6rM{Uz~y7-LMa8m^&v@h5!Uz^Z+bwJ@arO=gsB@ zma}wMhb-bm-{;HB9^Uv!EV-26N)9_T2K70MH^I@<<`;g<*RKcW!1PCom>}$~hvxm; zhJCPk-!Z2T2H`Vj&d7}4{4C}Yq`NODH#e7y0VRcfU`lx*?*X3cEpmX!YgA<tN+|($se#&)fH5+{UV5aWD5Eg;oW;#=-HjK zJQ4w9WGUqVy?giOVgP0plg16S(mHlqPlC(^V<%Oy+p~6VNdjM1P{uv^wPuqk{>Mbf z16Tqo%Xp8qq{f{K31DMD$`XJUGOC~#{HA!I6e(x-%c-oOE~*Huz@AFY9Cb8?P;|mt z(CbUK!11$}967-tT*<^N+4O7-z>XPN>yGetbfc;JkNGSp+2An&0&Vdp0YS9C%dWl*-#MDx>X63hXgdw#Tee4W| z2%tGfG6Z;Hy{TY^odsDzIH?4w zvwT{=B|#}bfb9HO0w@MNHD*B67Eh!EwR)xGNbZ!t_06@@P&yYRU<$Wyv5v6Dlkx^pgc2r%gEmSS)(=>LtVgmjFND{iI)|^-8_Bw8Jwj z$q63vBS3a{#KNjQu=kLACtOOUp)3LJK0qx&Y~WS>{DBsDVRJ=j>-Gbbfe`^>F%CUI zX89;twV(eJKB)PeD*~n*0c;Eyg=uJsY9FBgK|Ck;DO|%Z%@n(dS(uIhndR5)I|eJZ z9W-xgWM2~}PJ~sfRw*4gZsllEQqY2Pa&kBck`dsi@y!7q`-)o(Rr-rSda@v4Cye8v zSzX4Rx$tqw$VqYhr}_{!)1d_d0|Duf1nolBCz&S#9C_E7v`ikKiv~zC0q! zkGlkkr-y)x668mKvV6b{u8$LHpHVrByA$>jAfpUrr@Fd2V#|*k0qi$qY!`FZ-Lq#; zE(mw+csKOw){#4}pd|@?JK>Hxeg;KgHhqaZcHsDV`0o#mN=d)mgj%N7_En4s-s$v_Zb zWNiix90-dREz;I@A{{$n9uVombY7vW83n2-#cDCl948zOLwb68OuweuzNx9{R7OSy zK1)E6ZMd0+Z}E)@s(x*Czz3OIWA@d6W=ulTzx3Nc$9yvi59SK;Gv<*6c zqT3<(Cr+F=SYBTKbX{E?);g{>_Zc$gGsN&IO86L)va+%V-gx7Ux9`9I{%i^dV%FlP z=>$rwq$trKtLAHJYQk#3i8*uT%wD!^8Ge-ppC5xi%hjx>DB*l4Lw5i`Ta==%UAx}% z$}6utR!~qdAuB7ZTY7pr9{bt8Zr;3kwV|Qm-2VOht6qKe)eRReT=fEi)BY?=tiaN-Ah9$^xAcNbib#jFNJ;pmK@fJ4SVGvP6{MsT1W5sDkd#)s z8>zh1OPaoiBvZ9x7xNO@uvM#cQe>SjWOCf*2_XFb2Wq|VDSSW(JI5mo^F2* zMxuQJT#zjFwKXo2)h%OzU&q*u@suU{1Oz|6Xr;Q1Z;-a zxRQ9F!(it12QM9+0hx?SW4KJ^`h4KY&D!P7?VZJkUu&KsXcQ~|Dq*Oxqq9EdYplLQ3@mSJP?i1Y5r3k zFz-8b(Q7y~yQp6Hji)+Z5rAuzYm|Rkc4ho$YRONMh9zKU)Yb#>O|@2|4Rm#}`=ePmN9OI3UHXfTmz=w?fQ0ehR4~#Nrn2r}$ z(8n(aUuum+77k>{99r4gEr(_*1iBNUdd;AUl8+{+O4N!nT6{{H^r6aljX4KuSzdQxiVQ;ao0xvA3i zFz|4#pM#i$Wd0sLp3IbF0SUK0xrB+4(X6=t-a<8i5(x9`jJO;*QNzn7<*(>h4y~3m<5>N+cc{g4A+1fW3Mzm#9tqtQix^k=)?)iI&0TuNDVCPBww_arOm{Gm|Oi!ffnzOcZ}e znvP`Hwvh^n19Ck0VJx)aNxI9Vepl27dk0 z=6&!WlttmSll=r3-I7d)(z!f-dxZzNW@SW##Q5r7WyF7+92x@R6;5Dx0c+o2nzJ0N z!+EM6W^lGpV5VxuZe41C#fX=a|+0Rrz*GMEzvQ>h0ESK#mzxx>wVq^9ImzIX(oCz z@a_O@bwWuZLZ~X6-O8bz*&nti|0cf$U%$@rKDXthL|p~53NC0!Z%hsIse?5N)4^zj zUkrK(7e@mA2}MlU9v>fzyt(jx8-R^sZxpxdkq9PIOgNCWS+q150eESMnX{eE=oq4M z$uHs@2g$=#YFv$sj6O=X?DvJb1|)}-gR}}oDL`1VC%wHGcA=!Ng;~LjV_(gAlD__m zg)hW!ET0O+x$aF&wJ#j+K8c)PJ~1ayou}^G-ez-B7$s!WS%8DF0~6kiDA``3Hsw2% z25mcI8NRtqOR@P^h>0(pIabFeEiJnD5Th54#v&I$zK_}P%}N6 zd;Kuz-^0ksUw@L0h}zFmtzO^b*2&n=T8K_l{R-OKYkJBEY$9#tCztwT*bcJ?D+3N4b}S=&59-%i@^+J9 z70HxG#G#m6`vcpmr?m_7?U?k4mTQIc4~wYR;gz;{elV*N>yL_AV$kbD2p+dZ3$~o;5iB zQ7XF;b$N0DIBtt?pbB&$-+aEzL+I}>4G;F4R9#m--Mu1lo%8{oJrg}$55ka#y>~hZ zviics_Xh51%WGcg(4Wv}>_900Ul#>T@f(kKPwVGeh@$4grA<*>#qm_{)5VS3H(UgR z@w+U9UCputF>_y02K}|M>QJ~|85a}E=}Xe^@m=|jjndOg7{Y!Pk`ZyX5RHBC?qUwX{o+x^lS@Td5eJ8GQf_?&$KKL`WKFyFhbNDJtIjJDu{1j3)6jWGR-6B|ZJpk# z1+<9o8HDe%ci2TPxL(ZEdF5-W;18bZffvV?@VejKKeQ=c-g@}SHHSv@UmHjWYfA-gOVgj^Qd6nX<7bD_a^FniX}839+%!Xsu4qdu22)go+KBr5?)bVR|A?e zt-ePV;-S(jpV(}Ir~2lAO)e%*v0c|{6~LUNIsu=5x71Tohsbo@TwgBY)LGEm)88K_ zhLOj!zU)rf)t%i`cFyXFlvHdY*TES7k!ndem7W-;6K)T>L!`CpQmyTHw%M*P#mj?_ z6fQ+9=e>aiWxl&F?MX!6NAwo75wcAy;yL6)LHfFoXM=1lj{^EbY9C^cN#-$F6AAp6 zEMzb+f#x!BSUa7Y6yc!mZ_Rn1BX!^Rz?-DOyvZnyvqOy6oP16cU+cosjg!`&Kh9zi(O!OH3;kNon7rvZens6$k^ORV{?A2yh!IK20I|Bp|!aQg8XU+NK04_x~?*EgCj|bo4vhbv1iTL zu8#2X{dJ3JZMl*=-{9oi2Ps}@YqPd5Rltz@u~eO4inZ6B&~3-C-O_lq z4z6i5GPu6`y|37K@VI_@Tid%?%Y@42O%l_aRKdMtz8OgSbvbCo&Xbn!5k>2i9i~0SODF9ODzTB5Y&Dan^h&WU1-E!&r?8-j|lD7({-Vo>nc}=xD zL9%nCEj|faPju!HQ79xUJ7s*giRwa_Ho3S<$p?*#z(g_RaN~p*F(dCT0=y`b1P<2f z{{6fS9q;5j+UYIEMtouWy9aG>$l@32HWT>YdjZu)JB0|LJ;qe zv`n6zhpsZovugalr@0Qs{rHXjw%;BORJiNqH+;^298Hn)W)UwSQZdQRtB5e$VVCXf zr%N&P-r)tJ8=>&ajA?DMTQBISwsomjo)KARJAIB~#^Y2)jP{-n<&I&jL83 z)WM9#S*qOT1=o;ILX%G6?F&SR0>1MDDmnyytR@&9+cu%N9B?iVOzNerB8yortMi|% z=uJ_+^P_1TX1aYZwyYiH>Op3{!XB(g@`emVAv^rf0;V;Ay&0dFj}aP8dRmDq3B&Q9 za@eX}QoRX*GoVDsIiuU0p3x0L%}&4AsOC&ZQ5qn%nH}2D+B7|46x+LXZ{YjApee^u zkgk>%j5%B(7t?lh#SFDIs7Erx&DAQIen_C4_H0C%f%52-3SddqmYwGV0R_MG60^8A zqjaCTka z&2|bHS+w{OOQ@t76`p19+n1@v+#uzJhewO@k3x>67W9`+vJ>g{{tC|_rwIg{NlT1z zWLP0(2|l7BSbJ1~l3Jg}p+!iVb*jmDdmHT)j{y!%#e#69;hq{xC4y6hU!S@ELY^iG zWP4`37^xe9gf|$fN`2=dF2o-Y-u@LMHIPd`O`VgI6E$vL+4WxAhXAqxRuG|!n6VLD z&tBV&J)ihy!cD2N`X?kjb$(Il{va63`!qR;N(~58#Ll@ke9+mTFv$z6aO&eED`s)` z`F$k2I$VFROO+ud%b|v_P%P8@0`2nP?U{ZhD-4`}?L_D~WqY&cPJdHfTF+t??5E%- zqpmN4-AOP`L0jleG_!#%3-^M4FAV#{oTVGep16rjSl4a&f`&!~ymDZ>hF&u2)K}~G z-2oiJ<|Ju4R^8uXJ)KD59En%tWA4|UYlu%FOx)h}+TVa7UIaMcyrvo5_mx-)IGT7p z*Jt&l+at}xwS;$|YT3}?P@`Kpiti&C>x5f%@6bpzqSEadtY~%`|Mqw-QVKkrb7heD zDtsi^WV%ldGBk@bfwh^Y{?P^_cHK~;{a;IuRns&$NmrtY38u1Ws0#3~9AKeAo-T+XZ5O*G{-59`K2JU1YKt4q_fs zwbMTHbcbd8hEU7jj&;q@MpbgdQ3uSy%P_BVCqTE{ExsJIzDeg5DfU`OfG-HHqzCIm zoLEd)K62xk@=uyr#y9ncdOvc}?J&iGGEJFH#cpR`fTKF;Y9 zNms(oR{YVQtIA$N??>6a;A&TB#)1HEy38US@6PmWQS=j7gmb#u?3$#J>ooN7&EDs( zs5Q;B*rrRU_;gjKa#r+wTX${P31 z2v&F`qqhSW{wTR7;qh{D#m2R{sLPh{>f z{RN-FM#n{P#jH%C3yVAIe}%E7PgG_evTJI`-G+|TkbtThn3`la<;Naf{EfO)Q}JM3 z0>7`=jLR0VNIX{}MsyIdyZy9$Hca$E%s!e7#Fa_iuOrcPJZ7!}TyI#v3d;dw(N1G6 z^P4;pjT~+7rXJeH_`hTHd0I)e;rYR6cg%(<1lP_?)?OO%X>VzF24Lrq-)>6JF3SGF zAJyTr!6!AhH)(a&pCvV^BLU4OAfe;DF^q6$*CT|_fV=RqTULIzKNDfSW>|E`&MPwh z32u#lk5+@izAmDF7lkETo$hg1Y@M)%Ti*tMjY0o1XcyU@yYv2i89Y3xL5YC4$3|A};Nm<-n{>Gwvg@BVH5`wknWFR^xMiNmYq z1Ri;x362O^>np>IlXz6~6K6=mK7nO zN}n(JSv_pRT;K245@Hv-h2M@zUNNsVTiS|KKqI<>Mew3uFBU%*EKUf5$yAj)C<$2F z<6#tqS3xUC+ewkt6Dmgo5Dq(e&=M6?`|J@plMxE1veN+Dj+SX(a%X^24I?5!D%uY~ zpsEFCYJ`OU(3#ylD_J-V$~*Jg5!As=l^Bhl=#H7wApRsWLq8=)p8_@Lq;01-Ko-yj zqJ?Dnq$#P+>eXSok}OMN(u%Wmadsr6{lrV;B< z>!Is2 z27f~~82Mb^_aQXMp9t1ZE$vPIIv;|5^PlP6R z(JAxo#5`I?;}}gMD_Y|`hEU-K+7tn!EsF)9ymm)}_Z2kc&rGea(VuF<&Iu@lM>v7! z)-?$gq#ZjrjLuPqX!waN%#rM_oIXKt9#rJ@7rbtj)7mUT2C2&pdJR))r#fz9GOa5I zaq=(S@SGZXaF}&=FfDEEM<>6$wXf#}v28FOMz?$cloKn2h%ih0=V@ljQP1~$Wlj~L z*Lt3)IUPqvhp@y7fo{XWuQ`K;JRn^LEf@j(xpl@e-dR=Wz2(i5yt~Jlp;dYhM*6$U zj6{IduxXyn4#te-?dw*<^^E@KX10C^yny`okdzX{n+(&S3%6y#tRoMBj;Zo|Es@@a z12IJHdg@spv!y-fF=M1*{4;}fYQTd!iWEFa$!gFn{sez-lk61>uQOMy1D%xkJK%$q z+XtRldXNSI<6Igs2R~P%KM4%b&nWyEPU=-oiv0fG9!|N5L&_0C`3T@0HTm2^cF)+!uN;g`86l&qaHdGV%4*Z%R71_7uV> z+rXhW-E^Xn>tnb5cl^{O9AJF0f^L{uPqADtsU$;W@(M_kaL*Xy=fC;Ns~t{kMy0!K z;Y@k#R`!DV{n28%tS0*~K9;)kN9z*{LFwI($-se{?FA5BXDD-&9hRkEK{Mir*PTwp zPTL1?CLG_f;2-^E8>$aHS-YX|WMSrwDK$Sg_(D;vN5Px(DB z&h+FhWoeJ$Q@lhk8BKEdEP?&2rt<<$;zK+QO(H#-p?x3M=Odrh+23$Om^gxgmC_G` zA)F$A;*)37Q|~Blj*ZfDzBbN! z8Sz2k7cbw{eG^sHT@oiY5X`Z^W;fEuo;~_JLnT`54%U5r0sGZ6V>=sq8~Agr%|jPgfwZoVph%jnJ8G_cmXW+(Up?i z7JXs4scq`46v--eocLyodK0{wd~mF~lA#kQmV8=4>x;q(?mcG-x$@ZAVG;nJCqE#c z9_mxz#Nqm7*93Vx@?E0UbfYt~s2IfB{4J>61f6|E+_~lZnv~i!IHNy|j7$+GS3~!v zvd$~QPsGHotI7I-x zRr*8cpvEzn{*L#5^Af>f{>PD#ZH95>021Ou1oPBn!+@-p|y54)cLlu&!4h zLs5wW@R(qj4)--Tm)(Cg*(BR#-`*+&-p)M z3Ku2ijBPXgPWgU1H&-M%vE;t(=Y+sHsl(J43!ZVQ#wE)U3;1^;$nvxG@5UxxiD47a zZuy@-f1>X59_`Lse{x(=rOHGHfqC16^bYatOy3TBuSAvmz&=wPt(Vs z@R)<f72%lp*qT{=sA1WoXi3_SJq6AS2mPZu!FYpzB5dx@XT>sZ1*E7B{b7NyN z$5Hd?DMNqB5AUcyNzVs~H|({M3>BLQ|H()C$bSYQOD+6RVXnD_e5Ip4Td_VeABQ`g zT;>`AL~L4sc`tL>lTEREL~yC+ZM-EVCBM>0Vvac8wb7_e@@oGfWNtaD{`@78iAS^T zXAJ!#Wo6~a9%B_SCOO#@;AJcr0fkxf9l00~-RXiH>TzN8)0|k+N$d6&!t@KJmaZ)UqrS|&dV3+ z{U1#8TGqyy`9UjtGv}A@k;9wmlZ05CSz6L%`T6;G3>Ykdg^abewMH2knfDz^IqP-E zX7Pb^-={sfB7b5fb}c4lGV8>%40xvKlL3OKneqVw!op<`;I7+d!HxQnvfS?Qj4$BN zOWkq*Wqlf;8xO$O{a;5dtE_e@y2({(h^CCuVpcJ>vp`(ti(eg1D}AS$Q@_rxD^AiP zX#Xb%u#oN#f-rOex~i%_N82Nymmcgs8ufw~3KYcQ*#!k_*B~&VybcJ${D;gA9xI4L zdr}~jZqElVpJXXsUpF+!U&$>!l{i3}^iJuOXIVSPoZ(R)bx`x@Fj?1mt`2fP`EW!8 zv>ZyC3Fo^4`IuAHW`wAa7a z)I|LK`&ThT@y*5P>gsAFXd#IJ{(^NEd>R@v>P4K9NQuBCxw6|;Iu5c(`277%aDIM1 zkn~#Yc*ShOIJSZD{{1a_VXLbWoTf3vX59 z6)$+T=w%0atp$^Ue0Wh5NM5^c6)B9vuQbtx0lD3bjI1oBqq}77@9*gmP2nseG)V=n z)bvYUA>TgxK48c@J~u}O$rvqs+P=Tsb$i#~`u4fL{-WKi(&3FODDq5E;?n6{Ni9ol zNYkIJ7q%ZxfwZisto&gaa(z7CbbT@%NY1JlG;_Y5H7_kKeOh570xS2Tfd;C2x#Pb{ z_*Pg|Rdw~LvGLl_z+g0@x3|})*rcqqthiWiZfYvJrL}=vcA#6aDOcFD6^DmO5%VtE zCwdfkAomxBM-;Lo&7bzIeZm>~h+A2vjnz9=v`yt3+^L&fjGQ^Zx$}?3gBb?aq??29sSu3>EaEd*6`vN&0p)wNnNIYJ64=GpFt%4lDtPFdimj5HE_5EHo0}fo7jAMFFA7qWGk? zTzDd`W`zKTkPSp~o(1qjGtTh3Xi?8XhP08lETaGAdgQ9kDvLv*A0$w+vXt!al23=QMgSrtwus%lgU8Yq+4W$JXE9CA`q=-%R7R hmPU+-|JQlr7W9w_ORrLBqPYQ~P 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 J6g@Zc`9D_v*`@#h literal 0 HcmV?d00001 diff --git a/src/all/danbooru/res/web_hi_res_512.png b/src/all/danbooru/res/web_hi_res_512.png new file mode 100644 index 0000000000000000000000000000000000000000..a6586a5fba3c43170e1fdbbac0ee405dd9ffd097 GIT binary patch literal 52169 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 P7=Xaj)z4*}Q$iB}6HiY} literal 0 HcmV?d00001 diff --git a/src/all/danbooru/src/eu/kanade/tachiyomi/extension/all/danbooru/Danbooru.kt b/src/all/danbooru/src/eu/kanade/tachiyomi/extension/all/danbooru/Danbooru.kt new file mode 100644 index 000000000..5ae5b9009 --- /dev/null +++ b/src/all/danbooru/src/eu/kanade/tachiyomi/extension/all/danbooru/Danbooru.kt @@ -0,0 +1,188 @@ +package eu.kanade.tachiyomi.extension.all.danbooru + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.Page +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.source.model.UpdateStrategy +import eu.kanade.tachiyomi.source.online.ParsedHttpSource +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.json.jsonArray +import kotlinx.serialization.json.jsonPrimitive +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.OkHttpClient +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import uy.kohesive.injekt.injectLazy +import java.text.SimpleDateFormat +import java.util.Locale + +class Danbooru : ParsedHttpSource() { + override val name: String = "Danbooru" + override val baseUrl: String = "https://danbooru.donmai.us" + override val lang: String = "all" + override val supportsLatest: Boolean = true + + override val client: OkHttpClient = network.cloudflareClient + private val json: Json by injectLazy() + + private val dateFormat: SimpleDateFormat by lazy { + SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH) + } + + override fun popularMangaRequest(page: Int): Request = + searchMangaRequest(page, "", FilterList()) + + override fun popularMangaFromElement(element: Element): SManga = + searchMangaFromElement(element) + + override fun popularMangaNextPageSelector(): String = + searchMangaNextPageSelector() + + override fun popularMangaSelector(): String = + searchMangaSelector() + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList) = Request( + url = "$baseUrl/pools/gallery".toHttpUrl().newBuilder().run { + setEncodedQueryParameter("search[category]", "series") + + filters.forEach { + when (it) { + is FilterTags -> if (it.state.isNotBlank()) { + addQueryParameter("search[post_tags_match]", it.state) + } + + is FilterDescription -> if (it.state.isNotBlank()) { + addQueryParameter("search[description_matches]", it.state) + } + + is FilterIsDeleted -> if (it.state) { + addEncodedQueryParameter("search[is_deleted]", "true") + } + + is FilterCategory -> { + setEncodedQueryParameter("search[category]", it.selected) + } + + is FilterOrder -> if (it.selected != null) { + addEncodedQueryParameter("search[order]", it.selected) + } + + else -> throw IllegalStateException("Unrecognized filter") + } + } + + addEncodedQueryParameter("page", page.toString()) + + if (query.isNotBlank()) { + addQueryParameter("search[name_contains]", query) + } + + build() + }, + + headers = headers, + ) + + override fun searchMangaSelector(): String = + ".post-preview" + + override fun searchMangaFromElement(element: Element) = SManga.create().apply { + url = element.selectFirst(".post-preview-link")?.attr("href")!! + title = element.selectFirst(".desc")?.text() ?: "" + + thumbnail_url = element.selectFirst("source")?.attr("srcset") + ?.substringAfterLast(',')?.trim() + ?.substringBeforeLast(' ')?.trimStart() + } + + override fun searchMangaNextPageSelector(): String = + "a.paginator-next" + + override fun latestUpdatesRequest(page: Int): Request = + searchMangaRequest(page, "", FilterList(FilterOrder("created_at"))) + + override fun latestUpdatesSelector(): String = + searchMangaSelector() + + override fun latestUpdatesFromElement(element: Element): SManga = + searchMangaFromElement(element) + + override fun latestUpdatesNextPageSelector(): String = + searchMangaNextPageSelector() + + override fun mangaDetailsParse(document: Document) = SManga.create().apply { + setUrlWithoutDomain(document.location()) + + title = document.selectFirst(".pool-category-series, .pool-category-collection")?.text() ?: "" + description = document.getElementById("description")?.wholeText() ?: "" + update_strategy = UpdateStrategy.ONLY_FETCH_ONCE + } + + override fun chapterListRequest(manga: SManga): Request = + GET("$baseUrl${manga.url}.json?only=id,created_at", headers) + + override fun chapterListParse(response: Response): List = listOf( + SChapter.create().apply { + val data = json.decodeFromString(response.body.string()) + + val id = data["id"]!!.jsonPrimitive.content + val createdAt = data["created_at"]?.jsonPrimitive?.content + + url = "/pools/$id" + name = "Oneshot" + date_upload = createdAt?.let(::parseTimestamp) ?: 0 + chapter_number = 0F + }, + ) + + override fun chapterListSelector(): String = + throw IllegalStateException("Not used") + + override fun chapterFromElement(element: Element): SChapter = + throw IllegalStateException("Not used") + + override fun pageListRequest(chapter: SChapter): Request = + GET("$baseUrl${chapter.url}.json?only=post_ids", headers) + + override fun pageListParse(response: Response): List = + json.decodeFromString(response.body.string()) + .get("post_ids")?.jsonArray + ?.map { it.jsonPrimitive.content } + ?.mapIndexed { i, id -> Page(index = i, url = "/posts/$id") } + ?: emptyList() + + override fun pageListParse(document: Document): List = + throw IllegalStateException("Not used") + + override fun imageUrlRequest(page: Page): Request = + GET("$baseUrl${page.url}.json?only=file_url", headers) + + override fun imageUrlParse(response: Response): String = + json.decodeFromString(response.body.string()) + .get("file_url")!!.jsonPrimitive.content + + override fun imageUrlParse(document: Document): String = + throw IllegalStateException("Not used") + + override fun getChapterUrl(chapter: SChapter): String = + baseUrl + chapter.url + + override fun getFilterList() = FilterList( + listOf( + FilterDescription(), + FilterTags(), + FilterIsDeleted(), + FilterCategory(), + FilterOrder(), + ), + ) + + private fun parseTimestamp(string: String): Long? = + runCatching { dateFormat.parse(string)?.time!! }.getOrNull() +} diff --git a/src/all/danbooru/src/eu/kanade/tachiyomi/extension/all/danbooru/Filters.kt b/src/all/danbooru/src/eu/kanade/tachiyomi/extension/all/danbooru/Filters.kt new file mode 100644 index 000000000..9db604004 --- /dev/null +++ b/src/all/danbooru/src/eu/kanade/tachiyomi/extension/all/danbooru/Filters.kt @@ -0,0 +1,28 @@ +package eu.kanade.tachiyomi.extension.all.danbooru +import eu.kanade.tachiyomi.source.model.Filter + +internal class FilterTags : Filter.Text("Tags") +internal class FilterDescription : Filter.Text("Description") +internal class FilterIsDeleted : Filter.CheckBox("Deleted") + +internal class FilterCategory : Filter.Select("Category", values, 1) { + companion object { + val values = arrayOf("", "Series", "Collection") + val keys = arrayOf("", "series", "collection") + } + + val selected: String get() = keys[state] +} + +internal class FilterOrder : Filter.Sort("Order", values, Selection(0, false)) { + companion object { + val values = arrayOf("Last updated", "Name", "Recently created", "Post count") + val keys = arrayOf("updated_at", "name", "created_at", "post_count") + } + + val selected: String? get() = state?.let { keys[it.index] } +} + +internal fun FilterOrder(key: String?, ascending: Boolean = false) = FilterOrder().apply { + state = Filter.Sort.Selection(FilterOrder.keys.indexOf(key), ascending) +}