From d3445e54ea3b1acfdd1158a6d3116d3709ace43a Mon Sep 17 00:00:00 2001 From: Basara-Hatake <53382992+Basara-Hatake@users.noreply.github.com> Date: Thu, 21 Dec 2023 13:54:06 +0100 Subject: [PATCH] remove hbrowse (#19363) --- src/en/hbrowse/AndroidManifest.xml | 2 - src/en/hbrowse/build.gradle | 12 - .../hbrowse/res/mipmap-hdpi/ic_launcher.png | Bin 2418 -> 0 bytes .../hbrowse/res/mipmap-mdpi/ic_launcher.png | Bin 1550 -> 0 bytes .../hbrowse/res/mipmap-xhdpi/ic_launcher.png | Bin 3067 -> 0 bytes .../hbrowse/res/mipmap-xxhdpi/ic_launcher.png | Bin 5927 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 8364 -> 0 bytes src/en/hbrowse/res/web_hi_res_512.png | Bin 30003 -> 0 bytes .../tachiyomi/extension/en/hbrowse/HBrowse.kt | 262 ------------------ 9 files changed, 276 deletions(-) delete mode 100644 src/en/hbrowse/AndroidManifest.xml delete mode 100644 src/en/hbrowse/build.gradle delete mode 100644 src/en/hbrowse/res/mipmap-hdpi/ic_launcher.png delete mode 100644 src/en/hbrowse/res/mipmap-mdpi/ic_launcher.png delete mode 100644 src/en/hbrowse/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 src/en/hbrowse/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 src/en/hbrowse/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 src/en/hbrowse/res/web_hi_res_512.png delete mode 100644 src/en/hbrowse/src/eu/kanade/tachiyomi/extension/en/hbrowse/HBrowse.kt diff --git a/src/en/hbrowse/AndroidManifest.xml b/src/en/hbrowse/AndroidManifest.xml deleted file mode 100644 index 8072ee00d..000000000 --- a/src/en/hbrowse/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/en/hbrowse/build.gradle b/src/en/hbrowse/build.gradle deleted file mode 100644 index f298f4b1a..000000000 --- a/src/en/hbrowse/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' - -ext { - extName = 'HBrowse' - pkgNameSuffix = 'en.hbrowse' - extClass = '.HBrowse' - extVersionCode = 7 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/en/hbrowse/res/mipmap-hdpi/ic_launcher.png b/src/en/hbrowse/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index b5a43f854cbef937a0bf588fab4e6827893c0633..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2418 zcmV-&361uNP)KpkV{q^lh}!TKWElWI}6HQ5*2 zLew5Z@3@+E1q32MG~oAsKl1kMM9*a&oyB3HogBi>arx5`#PZy){^ zUi$D;IG0SRBcTXz-MlK;xU9}yK-enlMgd5PI`p0MfRbr>m#cuh*u|KFMg>R{;|u*h zSmmgK)PS&AYTZ)M!j| z3tQU5zQQ6|LF>_^Cjy|k)v&S2Jc`)^sJT7t3uXpLTZ|F~)!85BwF=@#6lya9)W7{m zS4Vb<;=&985tCLDA(EdUpq9E@Y|n!Tpbr!eqKP6_P9ls;K=*4r2&0*7(sj4Mbv7r8 z2M!-)fM|W0iGm(h)na2*kXPQjHUlOu8C2nRt+GfNp4R zSMs3pQfokwXxa!N^&n>z!~??i!6;@8XqZ*=k?cJvGeEmZ9;6-DaT?G_61$jsU@Q|r z!?DQrquH8tMu48(4JwmnW{sr=nzR!h)J;s90a7K3qfpQwRnYLj7ySHkx?Q zeb4SzC5ps2MVctK)H?}?X3~6xW3Hex@Nn0w5E~pOx{Lo;fTY29Da>PqZRdhfj4CJ# zKrikEDN(cskO)vwUP97$qfA;-kTNSlgD(ZNn2gcbxu^hXCJ!tXv|}$s>6rA`733|X zwOA!~F$+LFq*zrFHry`Hw4oVDav3t>jWI$9ax|c4`h0&~+U(^@M1#jJ{o%AUkX!ASc@1#KR$fV3Cp z@d!{lXPXJ*OlbYG%R_zsDQ}8kY-9!AYG0CTJDm9aM}ku!)O$gmItvg|75-W zCjAyhv4h-znWRmYNxKJ#`o0c0Z z=Fr(!cGS?yVi!JPtMa zipEFp3tl*@Q}E;kJ%T`T8o}x@;Itt#&497|uQK%LCOUk4YKXuA5L2mW^wfz}Kfbx= z4FDL-^m#E~arI@hD{i{&6@O9DRkCc-?>W$nAxbynYTKX7uo)3I!RV7l8Wb1tn|blVHQKxhu+py++6oZ2|Eb9I$ft91=;nU9mfOkLP3*q2r6M4aV_7co<(0A}w zv#fqtfDifk_#8chGm(GCgLpFoat;9SW%_#-Rtl0JNl-?+{&-fHsG`1f2FRugKvK#Z#SO5S307*qoM6N<$f)}G{s{jB1 diff --git a/src/en/hbrowse/res/mipmap-mdpi/ic_launcher.png b/src/en/hbrowse/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index b3f8bf5eb30cd0f5247c2de5d3bfca6eeaba3c43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1550 zcmV+p2J!icP)ids1>R)A+~g1rD%6(3l#Lh zh=E7M#E6Mvkq0y}CMYr0g!te~g^+IdLfbLlS!TI2x1G*R(llYx+vUtXXU^~ZzwbNW zcTas-;g@fP&mVUImRrGv6rg*4VA)kt0L%lRpQg(Sz_+caGB)*zP2ICV2^1w>p}zb} zy<{6Tuy%#DX!jNV7r)29srT7f;=X9q_g4GxUnZjc_;T{<*azRA9h?j&umXrKZ0#Ek z&Erk=vFbzA+0cB&1T`}GV8djVGI@0~-6Rj&Y16;oL7iQ-) zpNd@-gU8d?IfA_O`xs{D=2TyaTOEVUj0X*4g#jc1xUo1uQ|~y9Vg>Nhp&?8KL)-}! zV0~%;gYQ&00?2C}z(g=8oeAk_$r#!HswDs!+-PUDeE{lEZ=nDIOa?d@s5pdS-# zEIwz?0J4Pw5dmhzssVT?HGm<<3TObtkdYR^$o|*dE0EpP!%V2YIM?LFFMc%0Oh^V) zQot!dZfn0#lZ)UPz|KYu;HgKAQAh&Fh`2r_fT2ofKEMEGUhG7R91+{l&$(9q4CxS@m; z$S{~kVaHMKc;a#oz#|$(WilaafD7#YCA$hdF8~@X0QPhoHAJEGlmLd`b>;)RnF$5e zOgAFHxeH7qPXT1+nNB|77@&{)fCy>U09Vj|j^{%50qVP$6E~HT4;W2|6yTwcKQ%Ev z4n>y@49Dh!f&kxEXr6cO=HZA=RD^SEfersyR zP#BQ{o&fA11r(sE%o;%3$N=(zWBXolw2|#<=03m*Oc8}nz2|`fJL*2+CRCPhQXroc z&~5(|yN|mBkf}LSz$*Zfzu5|)?TET+%x+TyIKI!A!`qdE6kzp$E(&=9uw5w7T$+!p zjm9XH-!@>_$lL(rH23O~Ilhs7>V*Q^Yq<$A1;POG+6J_ZOyLTg2&?LEw=*Dr@&-F=0e=A31v$k5UDu$4X>h{h0*M$9;hb7YGRKR*mjTuv|0f06j;^+)^)616WZC>V+hIK z0n`Y93bO)L$G*Vy?c3@cA4pmQ%9)&8l|!FnI;4%YHjs#x@_hGByj1|SSpYbhsGB~H zveB(Ioy>&VD)yLsz|CZw^mPuP0Bw6$D8SRzngUxMGj3!~R?$r#M+$5?&~e=t6&0J4 zxe4^io1JU%;|e>YnBVj3-~Zs^)ju&mH#c>;t8T5G^MUxxw+;-iPDm_Ohcg|u@H^&a z^I4j+X`6cmZ;YS*Wu%Lam?joFAE2HwF-b}5Hts5GkGU@)$M5&ws~^siMSq~@)r`eB z%KZFv=+@1z|2TiTHZ(qd9f0f`I(DK-Cjf{CaF54xTIz6j#H!QL(sa1+k=m!T|C^-YUY`u$9{>OV07*qoM6N<$g8z8g AtN;K2 diff --git a/src/en/hbrowse/res/mipmap-xhdpi/ic_launcher.png b/src/en/hbrowse/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index de4b9ad1dcd4bcfb438023c77a7eaf9f6bc61d7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3067 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 JPDHLkV1n}!l(hf= diff --git a/src/en/hbrowse/res/mipmap-xxhdpi/ic_launcher.png b/src/en/hbrowse/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index bd90e5c5018b64eb6a591511b408b61b0d0035ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5927 zcmaKQRaDep*!6E_7?4InQW=pJq)Wn)&;jWZ>F!XvnURo`A*7LE=oSP-Qil>4Y53Df zDBay3?|1QDz8B}5i*xom&)Vzkz0Z20G}T{{lQ5A006?ycP}II%(f>2<5Z=x!FBTgB z;NG^f;&WYJ)2(b$G~HNwcbl}2Z5qlCd=KV|(6_Yt5B_Or>Lu@88b7j{ziix@Dg~m1 ztYz=&^mPe^oba4l58e~xIn_+^nz4WCHGF8)qpz!74gXr#sb4BD9{KQ1B&=ZwMhZD- zJaG*Q>R-F=U-Q`BlABEp(9oDK`vm$yy^IK5h!i}kRG>|gh}#aPMZOGhl(t?jvS6}MiehL;a`E|oj0e)4 z@P9#-MDU{qyE*N(Q8-8TG=Y!u*Xque(U6gTkKkt)OmHNDV#$wWLbxyGUZ_(0&9~i< z&YfeW{wh^N2yL1$QRFrMU4$}#RnbY4_Ho^~Y%>(Ab2~l@85*Cgt0^crO$7vrfar2U z!5nDusQ^$#pBUt!?3h}u4dSLf-LOGCxk|U`Zh|Fq4Oz31bCQ~rJG@@|e7)84YUeei z?5>sEk(sXz+3U>Yy8@)9>8C|Nfl7gUgZ6`)$zq1sIdP;1TNzGK2ex~x41Zo7kF1+HcH1Mz*B~dook#J2D?-!t=hXW zuQ~I#YIDa0Zb@(41k(e_0Klxwt>awx3XDb;9sT>QVJbZ{T>p1@aB|JUe&P}D`o>b* z)nSFUsb4a!qC#2lA>wb*ALSHASVC7o`AY$Tm=j|P*&cVa z7NO|BI2);74LNFBT#1DQUK}MnS}JYL>!j@>>=4C$d|!;zZp5m=wVww~zxTi*8 zP$-k#BwOf|c9x_?=1_%kaDD5CX++6v(mW4Ej>#3S%{hQ^&fh7ySd-7=9z6_1S*o$| z@>z?2SJqkT^}*WEUbszM5b>P6#~L|b_}rA?)cRv|BIVN6qcp)aLo?KJO`2+2^=9<< zp>*f7@2IMK;xP~LvB95~L-heeLz2PSx#NA-R{ZuFM-@T@zQ@)ha11OmgFMTu#IZz4LsX=U(eYdsSr%9T4H7%S{1q-3eWX0NIb* zYJzrleHok9!;(m{{u?1bsbD}l$eJW@Q*e~(U3mM%1%6sTebM?wndaJa9&|eXs>#B$ znHF4}S8=ra%B*!ocsaHVy_&AXt7eRpnI{?}0yxdC{%*azm4?<9`R~o0@G8?buy%1aTz8NW-3{^O4R@L($XY1@bsD55icN~T9`JHUQUm}z&vA@b-@%;@fBcIo2&uGd z?Al@H)pw}QpBKYd2r%3Kb2lxMaw)J3j4?;~o=^hv;<%}rfc8HZQt(xxY#JnI9@yk) z(CWh_*;#dvx!fSRx7^?!4Oh#Y{E>!%Ns*V&&t!_jt<0NH8^sUe{Y0;1T8c;;`Fah= zVU_UT5Gup3>BPYK;>YaW>7^Zn7c)m`z`z>l9xZK)srmGs?x z(7Ctoe=+>{PxKjUbheuhu!ut|qPEZfeOrjjV|eplh^m#TQ;GmeDfQA}v)82q`t8{s zOLOpH!#|D^x$8RbzuF89hwas0`9S%MdQ&5sG=)8y)X-rNEmP7k*_-k=tqk`}+~56w zBnbYzN7c%aE#&m-PcMj}!P9h;PeK50W-W)7@zg=32epjLp#cQB`r;^QRbo#d^n9i% zRUo4CBZxLxXzKK}AyBeaXV>0Hcm`*IovWDt8w``RTvN=X{S^}7+C>XAIN%m}HOE!c zuyFYZS)?HKENck20x8?j2l%UuVas|%V)VPeDT3STV0`m&w4Cuj1=2b}u!QT}* zVknmjiLHJ!X5bbew0LJ#QcR(c#VavRvcBvHaQJ;YkGJQP`eDF?vR8{1JwKlig!sk@U~f*yMVZ;K(P6Acg78o;W*e3hp#Dy*!#V~>*4MzXHSDC>tK{{7AEzoI;`mE35kvWb z;lY0~7JDyeA{8%y5~$922=s~g1@;M`$2$n8c>%Cx=XU@+ONx#&^7MT^17Qxd2p$7j z5H{X13oP4kgznGJCr7`Sg~YA6ZDlykL_u=FEy0Iru`#(DPtw28y|VaIcJ!-Pm<1WOPsHOpQZm5k$c zGP|mOp!zc`e7!C~y;c)8+bDQpnnnoY(CqOZqbhrz#_^UEV>cOAGuTIEy11ob210a( z`2jpfXO4N`s3TzuqEb8}-!`UI?L^WBhXd9i`8B522B_uPhPU!>sG%ev+NoL?i=C%F zN>a*QLx)wbgQr3{d-b2FMc@J3!+4SN0E;{?*gGO$KuOSOT{A*jj!Fl^Ei1s3uSPf+ zBPi4R`n_lpaZ;!WzLgWSy3_jb1UEXD((~PWJnSxX_^A1^P4BIGZ4k?yroHxzHI@le z@{KNmy+yb+U+lLh6oszM3s1|2d|6>Okm6l^75Bp)DH?C~W?qGF;hfpAQ2>XK1qhCc z>bQ`=N15*bNiny0=%7Ky?s{3y0oT~tE%Z>FY#(%>@m_AQWmU4tQ}8246~T{zHC2X8 z{JbRc8U@J@!_t7*RSodum@E+sMbxN}fWv0I+g6Ojc!4dh0lY{4B9jD$XHs85(oSVE@Y{LaH!elLHr`@LVp zE#^b+P8>h6jIk0A0#8@20rE8UJSfVr5!t-JRpwYu=cq@dq;3I=Z+vGV2w{D9u2@w! zI2WdN2?pnbvng#9r(EPXSR;XabqO~ac!sG#2EZ6*$~5ry0ZbcF z1t~pa7qP%H55#|ji6AmbVGp9zX<*8$Aw&X`g^y956{(7>wZv-Ruf%`emiddlph z&9D?Qxc>mhhhO%F#uSykxi&M3wZ=SUIJH^(f@XY*9W_jck$jI{QE7Y?kqQd!9k?}{8A;!Zm-<7V|bdFsM=!w;`o_Ho^=q`zX-m~$1d>nA z&bg18K-7i!zyGN_5xT5H74CMZ0%!#XvaTVIj!UE~7~InI>FCZtT^|V6F@wLssgDFGQSAXC zml9)vPUiQgHn-3DeVSVW3H+`x{W{;$!?sFQ?)D+yBw{O0qv+ssu>@JSyc>i{iMf!exR{vkTwBM z-Nya=YqFhlrWVKP{DTqsdBFoa*+-Se&oRNhW0uikI)Nh+ck>F_*VPibKOW8)0Vey`X#>@6+IV_Gxp8`34y6tUpCuTp(`@Uu zP3oft!yG`uiYLCcL(0fY6E)lgY2@&5Dh=H#Z;UK;rZ{zw4IPawC6y~K&S-|Qo4%H5 zIhi=%lCi!e##JxEvT?171_G1ult=)F573BtMX$QE7SXQm*_l6^EvQpz2(kq7%Sqc2 zp43on%KQrPBYD*_IMlt6ULOK`6L2eRZ#u+UHI>(x8Qt@n1%aaloLlc)L!?h*) ztqaWU>n{!({v~j$yQ=yahy#cXnNeseNs7*O!-R?l02TDJzSLBqB>43WH8Qj%-NQ6c zanAI@Q@DFcvP48YM4bWomV0T4mhP9#!ed{JY{)Oc>_>d7sF$_dQ#O<9T_M9duqy)t zZ6p@1kb2QTfv$e^!uG7H>4^v6B1~q(t_hRr>5>*ubt}a=br`S@Dc$BTzqoY500Ivx zoz3|^D^0>!!bkRf`c**f>{jcHOe^ra)+CNU~go!Gjz#n5;iME&NF$3Gnka&eolu zPi26O@u?)?gP8A?bGcLBTCe|G|p2Iso3LcxtK;?YajSOCDtVPs`R{95MI+REs{X2qkdpzA`tSfnJJJaY1o8- zJ9@Gg6is!JtK4idv*w2dW0+3fkz$H0o~f5g9M-EU{VoRgSXrDhccJRbubIniWEU9# z9gd8^yq}*WS?x_#jhT}!Q@V2^uG}8PNIB5MLID@+GT~$sUpqB53UrU|+H0pj*C+~5 z?R`3KqT&sj6Axsv%gPt}dNC!awn8+@m0-SsM3aRap9MDg2}iJBWaxcwucJqezKA{^$~frT!JrAb;~1h*`OaPvHjklLkxIC?tLA%6e_P9p-5+54QS|x+eu1u)lxn+3_n74nl5uz6|ziS!!u=rKo^- zmfL@>ZKIf^3f|Zp%_LNG9nS=_o@LLhVsi@P+Cx-F!h9 zU%jNFkJ`6g9W6&54Xbh#ClR-E#~1qJ3ALQtsOytLv=L@7V93jvtMKIA)n8aJhtI#X zSRFv}llfl5rVA?vywoVs&zJ^$9Q){sVX_h^aCseoED~!C zl?bHrdz}s_U@F)tnn&kHhsjym){kxu!%FhqAcXK&%?;UrEI@R&%xa z*t~5Ywp-&=KZ(uyFf}q}S@(K`DxcAPd-*1T|B&0 z>{S@2&K+Y2-kFvC;Bz%SyK{XUCjt6HMs#P(_`9hb)zqU}wXM&rqeDYM3*Gn3q^__r z6169XHET#)<~)~B#~!iFx9H!dqNKy8-VL6)8EtQp5d9trcywd@$ZAOv*PPUDU){~Y zR9}<1uYu%Xo-v9FgUFFo7oDTBc_D1IN@~(ze>OJqFWCM|OH)&uCN~p>Uwks_vxF8u zta;Bd4~}ocH{DavtHAhu!bp*N^TozhJj>KkX!eXJ@jR~0#_VuDinE-V)uxVf2bMs~GhB+wG@_GUnX zRrWXlsik{A_5!mMyW649YJ}|YDwbcRB<7IsW(wK$2_tQz=M*riSk!k2Q*x$|fDs)yQ_5_IOUVwQJBKbz9!kGdyIxH{@d3ArUhM1`hh>$F#Z v0{u@k2QQ@HG+$?R9(z$}{$JZiHxS}g=1MIKrQ+KLIH0Vgu2?B={{H^~MGgCx diff --git a/src/en/hbrowse/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/hbrowse/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 251593a90c43ba1715fb2a4365a1a5f0e03f28c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8364 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 Dm}U|( diff --git a/src/en/hbrowse/res/web_hi_res_512.png b/src/en/hbrowse/res/web_hi_res_512.png deleted file mode 100644 index 3a020d8c584c7cd6692ced3e51b13eb6d77610ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30003 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 M?RzcXn7c>(AJM(N+yDRo diff --git a/src/en/hbrowse/src/eu/kanade/tachiyomi/extension/en/hbrowse/HBrowse.kt b/src/en/hbrowse/src/eu/kanade/tachiyomi/extension/en/hbrowse/HBrowse.kt deleted file mode 100644 index f317b2733..000000000 --- a/src/en/hbrowse/src/eu/kanade/tachiyomi/extension/en/hbrowse/HBrowse.kt +++ /dev/null @@ -1,262 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.hbrowse - -import android.app.Application -import android.content.SharedPreferences -import androidx.preference.CheckBoxPreference -import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.POST -import eu.kanade.tachiyomi.source.ConfigurableSource -import eu.kanade.tachiyomi.source.model.Filter -import eu.kanade.tachiyomi.source.model.FilterList -import eu.kanade.tachiyomi.source.model.Page -import eu.kanade.tachiyomi.source.model.SChapter -import eu.kanade.tachiyomi.source.model.SManga -import eu.kanade.tachiyomi.source.online.ParsedHttpSource -import kotlinx.serialization.decodeFromString -import kotlinx.serialization.json.Json -import okhttp3.CookieJar -import okhttp3.FormBody -import okhttp3.OkHttpClient -import okhttp3.Request -import okhttp3.Response -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get -import uy.kohesive.injekt.injectLazy -import java.io.IOException - -class HBrowse : ParsedHttpSource(), ConfigurableSource { - - override val name = "HBrowse" - - override val baseUrl = "https://www.hbrowse.com" - - override val lang = "en" - - override val supportsLatest = true - - private val json: Json by injectLazy() - - // Clients - - private lateinit var phpSessId: String - - private val searchClient = OkHttpClient().newBuilder() - .followRedirects(false) - .cookieJar(CookieJar.NO_COOKIES) - .build() - - override val client: OkHttpClient = network.cloudflareClient.newBuilder() - .followRedirects(false) - .addInterceptor { chain -> - val originalRequest = chain.request() - when { - originalRequest.url.toString() == searchUrl -> { - phpSessId = searchClient.newCall(originalRequest).execute() - .headers("Set-Cookie") - .firstOrNull { it.contains("PHPSESSID") } - ?.toString() - ?.substringBefore(";") - ?: throw IOException("PHPSESSID missing") - - val newHeaders = headersBuilder() - .add("Cookie", phpSessId) - - val contentLength = originalRequest.body!!.contentLength() - - searchClient.newCall(GET("$baseUrl/${if (contentLength > 8000) "result" else "search"}/1", newHeaders.build())).execute() - } - originalRequest.url.toString().contains(nextSearchPageUrlRegex) -> { - searchClient.newCall(originalRequest).execute() - } - else -> chain.proceed(originalRequest) - } - } - .build() - - // Popular - - override fun popularMangaRequest(page: Int): Request { - return GET("$baseUrl/browse/title/rank/DESC/$page", headers) - } - - override fun popularMangaSelector() = "table.thumbTable tbody" - - override fun popularMangaFromElement(element: Element): SManga { - return SManga.create().apply { - element.select("div.thumbDiv a").let { - setUrlWithoutDomain(it.attr("href")) - title = it.attr("title").substringAfter("\'").substringBeforeLast("\'") - } - thumbnail_url = element.select("img.thumbImg").attr("abs:src") - } - } - - override fun popularMangaNextPageSelector() = "a[title^=\"jump to next\"]" - - // Latest - - override fun latestUpdatesRequest(page: Int): Request { - return GET("$baseUrl/browse/title/date/DESC/$page", headers) - } - - override fun latestUpdatesSelector() = popularMangaSelector() - - override fun latestUpdatesFromElement(element: Element): SManga = popularMangaFromElement(element) - - override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector() - - // Search - - private val searchUrl = "$baseUrl/content/process.php" - private val nextSearchPageUrlRegex = Regex("""(/search/|/result/)""") - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - val filterList = if (filters.isEmpty()) getFilterList() else filters - - return if (page == 1) { - val rBody = FormBody.Builder().apply { - if (query.isNotBlank()) { - add("type", "search") - add("needle", query) - } else { - add("type", "advance") - filterList.filterIsInstance() - .flatMap { it.vals } - .forEach { filter -> add(filter.formName, filter.formValue()) } - } - } - POST(searchUrl, headers, rBody.build()) - } else { - val url = "$baseUrl/${if (query.isNotBlank()) "search" else "result"}/$page" - val nextPageHeaders = headersBuilder().add("Cookie", phpSessId).build() - GET(url, nextPageHeaders) - } - } - - override fun searchMangaSelector() = "tbody > tr td.browseTitle a" - - override fun searchMangaFromElement(element: Element): SManga { - return SManga.create().apply { - setUrlWithoutDomain(element.attr("href")) - title = element.text() - thumbnail_url = "$baseUrl/thumbnails/${url.removePrefix("/").substringBefore("/")}_1.jpg" - } - } - - override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() - - // Details - - override fun mangaDetailsRequest(manga: SManga): Request { - return GET("$baseUrl/thumbnails${manga.url}") - } - - override fun mangaDetailsParse(document: Document): SManga { - return SManga.create().apply { - with(document.select("div#main").first()!!) { - title = select("td:contains(title) + td.listLong").first()!!.text() - artist = select("td:contains(artist) + td.listLong").text() - genre = select("td:contains(genre) + td.listLong").joinToString { it.text() } - description = select("tr:has(.listLong)") - .filterNot { it.select("td:first-child").text().contains(Regex("""(Title|Artist|Genre)""")) } - .joinToString("\n") { tr -> tr.select("td").joinToString(": ") { it.text() } } - thumbnail_url = select("tbody img").first()!!.attr("abs:src") - } - } - } - - // Chapters - - override fun chapterListSelector() = if (!hbrowseOnlyChapters()) "h2:contains(read manga online) + table tr" else "h2:contains(read manga online) + table tr:contains(chapter)" - - override fun chapterListParse(response: Response): List { - return super.chapterListParse(response).reversed() - } - - override fun chapterFromElement(element: Element): SChapter { - return SChapter.create().apply { - name = element.select("td:first-of-type").text() - setUrlWithoutDomain(element.select("a.listLink").attr("href")) - } - } - - // Pages - - override fun pageListParse(document: Document): List { - val script = document.select("script:containsData(imageDir)").first()!!.data() - val imageDir = Regex("""imageDir\s*=\s*"(.+?)";""").find(script)?.groupValues!![1] - var images = json.decodeFromString>(Regex("""list\s*=\s*(\[.+?]);""").find(script)?.groupValues!![1]) - images = images.subList(0, images.size - 2) - return images.mapIndexed { index, element -> Page(index, "", baseUrl + imageDir + element) } - } - - override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used") - - // Filters - - override fun getFilterList(): FilterList { - return FilterList( - listOf(Filter.Header("Can't combine with text search!"), Filter.Separator()) + - advFilterMap.map { AdvancedFilter(getAdvTriStateList(it.key, it.value.split(", "))) }, - ) - } - - private class AdvTriStateFilter(val groupName: String, name: String) : Filter.TriState(name) { - val formName = "${groupName[0].lowercase() + groupName.drop(1).replace(" ", "")}_$name" - fun formValue() = when { - this.isIncluded() -> "y" - this.isExcluded() -> "n" - else -> "" - } - } - private class AdvancedFilter(val vals: List) : Filter.Group(vals.first().groupName, vals) - - private val advFilterMap = mapOf( - Pair("Genre", "action, adventure, anime, bizarre, comedy, drama, fantasy, gore, historic, horror, medieval, modern, myth, psychological, romance, school_life, scifi, supernatural, video_game, visual_novel"), - Pair("Type", "anthology, bestiality, dandere, deredere, deviant, fully_colored, furry, futanari, gender_bender, guro, harem, incest, kuudere, lolicon, long_story, netorare, non-con, partly_colored, reverse_harem, ryona, short_story, shotacon, transgender, tsundere, uncensored, vanilla, yandere, yaoi, yuri"), - Pair("Setting", "amusement_park, attic, automobile, balcony, basement, bath, beach, bedroom, cabin, castle, cave, church, classroom, deck, dining_room, doctors, dojo, doorway, dream, dressing_room, dungeon, elevator, festival, gym, haunted_building, hospital, hotel, hot_springs, kitchen, laboratory, library, living_room, locker_room, mansion, office, other, outdoor, outer_space, park, pool, prison, public, restaurant, restroom, roof, sauna, school, school_nurses_office, shower, shrine, storage_room, store, street, teachers_lounge, theater, tight_space, toilet, train, transit, virtual_reality, warehouse, wilderness"), - Pair("Fetish", "androphobia, apron, assertive_girl, bikini, bloomers, breast_expansion, business_suit, chastity_device, chinese_dress, christmas, collar, corset, cosplay_(female), cosplay_(male), crossdressing_(female), crossdressing_(male), eye_patch, food, giantess, glasses, gothic_lolita, gyaru, gynophobia, high_heels, hot_pants, impregnation, kemonomimi, kimono, knee_high_socks, lab_coat, latex, leotard, lingerie, maid_outfit, mother_and_daughter, none, nonhuman_girl, olfactophilia, pregnant, rich_girl, school_swimsuit, shy_girl, sisters, sleeping_girl, sporty, stockings, strapon, student_uniform, swimsuit, tanned, tattoo, time_stop, twins_(coed), twins_(female), twins_(male), uniform, wedding_dress"), - Pair("Role", "alien, android, angel, athlete, bride, bunnygirl, cheerleader, delinquent, demon, doctor, dominatrix, escort, foreigner, ghost, housewife, idol, magical_girl, maid, mamono, massagist, miko, mythical_being, neet, nekomimi, newlywed, ninja, normal, nun, nurse, office_lady, other, police, priest, princess, queen, school_nurse, scientist, sorcerer, student, succubus, teacher, tomboy, tutor, waitress, warrior, witch"), - Pair("Relationship", "acquaintance, anothers_daughter, anothers_girlfriend, anothers_mother, anothers_sister, anothers_wife, aunt, babysitter, childhood_friend, classmate, cousin, customer, daughter, daughter-in-law, employee, employer, enemy, fiance, friend, friends_daughter, friends_girlfriend, friends_mother, friends_sister, friends_wife, girlfriend, landlord, manager, master, mother, mother-in-law, neighbor, niece, none, older_sister, patient, pet, physician, relative, relatives_friend, relatives_girlfriend, relatives_wife, servant, server, sister-in-law, slave, stepdaughter, stepmother, stepsister, stranger, student, teacher, tutee, tutor, twin, underclassman, upperclassman, wife, workmate, younger_sister"), - Pair("Male Body", "adult, animal, animal_ears, bald, beard, dark_skin, elderly, exaggerated_penis, fat, furry, goatee, hairy, half_animal, horns, large_penis, long_hair, middle_age, monster, muscular, mustache, none, short, short_hair, skinny, small_penis, tail, tall, tanned, tan_line, teenager, wings, young"), - Pair("Female Body", "adult, animal_ears, bald, big_butt, chubby, dark_skin, elderly, elf_ears, exaggerated_breasts, fat, furry, hairy, hair_bun, half_animal, halo, hime_cut, horns, large_breasts, long_hair, middle_age, monster_girl, muscular, none, pigtails, ponytail, short, short_hair, skinny, small_breasts, tail, tall, tanned, tan_line, teenager, twintails, wings, young"), - Pair("Grouping", "foursome_(1_female), foursome_(1_male), foursome_(mixed), foursome_(only_female), one_on_one, one_on_one_(2_females), one_on_one_(2_males), orgy_(1_female), orgy_(1_male), orgy_(mainly_female), orgy_(mainly_male), orgy_(mixed), orgy_(only_female), orgy_(only_male), solo_(female), solo_(male), threesome_(1_female), threesome_(1_male), threesome_(only_female), threesome_(only_male)"), - Pair("Scene", "adultery, ahegao, anal_(female), anal_(male), aphrodisiac, armpit_sex, asphyxiation, blackmail, blowjob, bondage, breast_feeding, breast_sucking, bukkake, cheating_(female), cheating_(male), chikan, clothed_sex, consensual, cunnilingus, defloration, discipline, dominance, double_penetration, drunk, enema, exhibitionism, facesitting, fingering_(female), fingering_(male), fisting, footjob, grinding, groping, handjob, humiliation, hypnosis, intercrural, interracial_sex, interspecies_sex, lactation, lotion, masochism, masturbation, mind_break, nonhuman, orgy, paizuri, phone_sex, props, rape, reverse_rape, rimjob, sadism, scat, sex_toys, spanking, squirt, submission, sumata, swingers, tentacles, voyeurism, watersports, x-ray_blowjob, x-ray_sex"), - Pair("Position", "69, acrobat, arch, bodyguard, butterfly, cowgirl, dancer, deck_chair, deep_stick, doggy, drill, ex_sex, jockey, lap_dance, leg_glider, lotus, mastery, missionary, none, other, pile_driver, prison_guard, reverse_piggyback, rodeo, spoons, standing, teaspoons, unusual, victory"), - ) - - private fun getAdvTriStateList(groupName: String, vals: List) = vals.map { AdvTriStateFilter(groupName, it) } - - // Preferences - - private val preferences: SharedPreferences by lazy { - Injekt.get().getSharedPreferences("source_$id", 0x0000) - } - - companion object { - private const val ONLYCHAPTERS_PREF_KEY = "HBROWSE_ONLYCHAPTERS" - private const val ONLYCHAPTERS_PREF_TITLE = "Only show chapters" - private const val ONLYCHAPTERS_PREF_SUMMARY = "Only show chapters and not the cover/final pages" - private const val ONLYCHAPTERS_PREF_DEFAULT_VALUE = false - } - - override fun setupPreferenceScreen(screen: PreferenceScreen) { - val onlychaptersPref = CheckBoxPreference(screen.context).apply { - key = "${ONLYCHAPTERS_PREF_KEY}_$lang" - title = ONLYCHAPTERS_PREF_TITLE - summary = ONLYCHAPTERS_PREF_SUMMARY - setDefaultValue(ONLYCHAPTERS_PREF_DEFAULT_VALUE) - - setOnPreferenceChangeListener { _, newValue -> - val checkValue = newValue as Boolean - preferences.edit().putBoolean("${ONLYCHAPTERS_PREF_KEY}_$lang", checkValue).commit() - } - } - screen.addPreference(onlychaptersPref) - } - - private fun hbrowseOnlyChapters(): Boolean = preferences.getBoolean("${ONLYCHAPTERS_PREF_KEY}_$lang", ONLYCHAPTERS_PREF_DEFAULT_VALUE) -}