From edd2fba397154d18c3535f4006c3ea6c109c693e Mon Sep 17 00:00:00 2001 From: Joshua S <88034696+forsyth47@users.noreply.github.com> Date: Fri, 9 May 2025 12:45:07 +0530 Subject: [PATCH] Added new extension JPFilms.kt (#978) --- src/en/jpfilms/build.gradle | 12 + .../jpfilms/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 6940 bytes .../jpfilms/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3654 bytes .../jpfilms/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 10553 bytes .../jpfilms/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 20191 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 32127 bytes .../animeextension/en/jpfilms/JPFilms.kt | 406 ++++++++++++++++++ 7 files changed, 418 insertions(+) create mode 100644 src/en/jpfilms/build.gradle create mode 100644 src/en/jpfilms/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/en/jpfilms/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/en/jpfilms/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/en/jpfilms/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/en/jpfilms/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/en/jpfilms/src/eu/kanade/tachiyomi/animeextension/en/jpfilms/JPFilms.kt diff --git a/src/en/jpfilms/build.gradle b/src/en/jpfilms/build.gradle new file mode 100644 index 00000000..4d0d4e22 --- /dev/null +++ b/src/en/jpfilms/build.gradle @@ -0,0 +1,12 @@ +ext { + extName = 'JPFilms' + extClass = '.JPFilms' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" + +dependencies { + implementation(project(":lib:playlist-utils")) +} diff --git a/src/en/jpfilms/res/mipmap-hdpi/ic_launcher.png b/src/en/jpfilms/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..80d4f02b752443a8cb8b08b3c9c811372a953e33 GIT binary patch literal 6940 zcmV+%8{_1OP)Py4)=5M`RCr$1oC$ms_1VY2GqaoB&2BEpK|&Og5D?|6qE+!lt=i(rOZBZ<-+E%- zTC1hj<5gdvwfbtc9<|o0wP>sLK*ak74-oGIL=Gb$ha}nD$KJCu^M3yS*-19Z=7Q9| z9oSDo@}K`a^PA`SJ?EgXSBC;v|KuHpc=vcW@ z?mCzTNl@0TSyMP|+O*kOSy@#;VC3XX+ewH!m^1@ico?UL;)(c%Czd|()&&<_5FQAq z!8AhrUVZJg*Tx=o)KN<`O`EAGiXU(d8=zrGKkU5+IwA9Qla^(5n5Mb$jW^yn>$u~N z+YJ~4g(3afx%#VL{VMm`Yp;FY<#Nr+yn!u2UpadHWLN+VYw=#;nM~>{pMCbZADw#Y zsX@TZv{`>%O#Ixnb<5V1$5)KMUsctDy^`dcyXRqvX_{vH&Ye3is;H<~1|+-Ff^IVH z&+1jc6AT8gC@wBuxJPC+EK$=Jf1_w78yXsZQ&LiL3lPtwMVSDS+ynT6!Qiioi;I7` z$M>4)#NO6t^`FZrO1gMM2X5#qp`oGS){>HvUjva$T$IVg9Dw|Fb#;r!j2UxT&-)Z1 zxCknS51W+&qwA|+FY(tfu+oxV1qDS_K~Zo(N(amNekec;wx+(m{^IH`kM_-HF;*huPkYj)5s;Gc8mNvhwnwpa^$K z1+J2Ev@D+lEB!NkNxIK)fJ*^%9T4gUsC(T%2%waAOMzmUCPp-h-qJ*5(`V>gH<1W; zqPkRYxo`#i7#iT#Ff0SNrJ(3hlte3DJ&Nhg#w?#icJ;xy3->|I&Oy~&U104EQ2hdw z;^}_~K#sPEuX-pbk)IPRi6G@l={sfFfW{|~(W7VdBup=BBxNf&fhR8n~DLj2!38cS8N z&>^m4hU$pcyhCi;IBu&YxULZr#@i?lw`eG=MgXQ+4DTZW9#ni9_Pgzl{rtP$@e}hDD6YkOj2uwSfth`b*mmTEy^nL@w)f*rM zAWEbo0X^X#tG*#Da~qzP=j0zMi~_u_%qZi6|CDKRgdtP5@Q#OC&=5<(J@k z;yD7kE*(eI=Oa1$SaN=G39bXDqPTog2*YLC=Li5T6H^hwB_Y;MY{z=^4X>cOJSfxV z;VqwvsyQZ??t}XGWy925?WIquL$wW|GGNEHOH4)#kmBeSCVXgawGe}hD%9@q5q$tm3rP17WK4|I%>24%?CQ!$PnkJGk%1<{RPkw2xJ z&d=9T_M_8L#_mhvZ;xOsUMw}m$j(N0yU`RCcS}2M`<9aX>xKA_nFC%QhGt57)RGpo zhtM~FLE9^@5qib^Oi5ABklk$?VNLTeu&YP!*8 zE+D^Pv;=7&(jFlV>XmGyz)2>Pw6EPv`?3{`o>WeBW%m zs8TOX;fk;<6;oA-UHVhEB6o z*PBH5JD=S01IfwF?bp;s$i&iem{hDIw5R3$^@LZvPx0~Jrs1In$*K7QS9=U4)`F*@ z0Z&X6>QwoZQADmKLP2q7mNd6`fgd#*!xfI8%9@^qOK6157X>-nMNd1C6(18tfFgFa z^IWN$h60)hF|ypmesnek|2?1fwGWZ-jUicmDmnRuFwM7veWLVNKZX zDk=&5Lm&_!J3G6F4%OGy-&R^S91XHdAYFlCdaBXIJ&`C4e|?2$G{U5d{v86@ zNLCPX>Jj2^uO@!uE%-nE)aDRVL$eGl#ljSUo@x;J-pSZr)wJigj>Z3e_GOln#*KA8B46eoo8N zZ&Go_@t959iN3uG-u(o%W;32h1WU~#eB9CG|M)y&Yu2FMeIJV3OMJ?7TobE^u6h&o z>#f8NI+RBOIn4jVo#Yo5$_QG3BGk?j1w~ogOL2x}@xgoVuyNCR&OYNmQA`V?tqrrK z8LO_AWMdG0cP-TJ#;9$?IOzlm=N&=h?OW*Z?~gU%G_pJ%>CFU4UauFQ&o>l+`ox(T zP0TSbJ)zU`(tE@|-Aryk$9V8h0r5CiT*q)LxO^te?w64i1O@u`FlJB-p>Zbhl6MAZ}2|Kd`7OP68I zK8F0q|AyuEpoHSoU2z$ou3W*?zdp!5vu4?q;2uT#z6pYONKH*m{O)(ZW5I$2l$4ZY zh;MALWH?}jiLHH*#EvzzOt~6gUU66Y;asb+vGKM^lO|;Z$PP049vMx{0VvYiPSams z#_!dLFI_^x=O0UQwA?C@V~?U>;s4;8bO45;;;Pw7-S_7*YWLTKXUt&K^Dkfqve68c z*0mq8=F!JE`l>7O7ZuwzpFuhS4iBzgy_!v%HgVQjXOWYW(XqMtuY z+vK0)9bF+cD80BAtPkEcdH=~H1CZdKNOK!a54=cTzK4$cZlUa}9WqdBKk9HwuD=0o zzsaC!kWA9~=LfN_y&A8f(>ke&l9yk_9F>o1sC@S6I<{`v#N5;V1I_K0MYF*)$U!0& zi}C2Ak5W)jz{w|{EYC|%N^K3Y!wO@^i*$bc2yGKD##=Z+614-6IIp3hpAFt1xs}ETo@bO#BX-YCR%z2ai4U5a<1PK4si)X0JE*Fl|_pdaneaAapaLl$~Z@y zFFQ-3R3hUquy(yn$NPV?0V=BQ@?`e4EE*d6H?b5zL-S&?lqvvfYNg@+=NaX<2tRNa z{%KPwSa>b2>WP>dGL;ZAM&Es(*pGigVAoC={RWFhGkV#RZ1eb7_12qw@8mg*A3HA9 z{}S295CBT4kdQ?jjg5`md+)u>m@$JnbLPmK7l!~w6BI9EFbU9KX`S@5Zh%}OShXL9 z(4hS$O&X|ZKQw?0(~w?7093o=C5j7u)PC_UlP@@*tjUw5Yc~~g&*jtq8&aR^fv98_FfEVbtT`|sy~0}kNC6Hk;S zSDVd}(*GITo+I|jLo`jg6mQW)va+&zm{>3v9AOh{Yp3?HSIKjE81utpQAC|tW}q%v zpOFDfYYUwVF30=Kld`^(R9)=wd0BD9VH~w+F_WiGk(%QKf_nnc?|=V$mM&e&`RAX{ z^y$-i;DHA?^w2{&W$s)G^72p=Q#evaUztMC_9^fECRaeyMBF!j&9h1L|N z`ln}Nc??+|)m1l|AX)?TFFvE~%nQidUL)1~Yt6&jX_J|8(~VRdawws2n5|p4QeIw8 zQBl#L+#?-#st)9Mvb*oTo2#$BS|-lp#*JgjlquBI)G+hlL%86av-#FR-@@ZFiGBD- zVzrxS+y5&3d4)YRNIX^nP`ZiPU5)M|)nrfm(ExFfP;KEs8drWm^u3Kty8IlJ!fcsy zo494*CcIa8$zL$8UPN{x!Hz61FBIlcdhta>bMo0#vzfJP*V5YB${lyyA)op{AhqZN!#*~WT1<~(H70KdpTGwx(b=jL#oqht@2UcTgqN}BdwmL*ZH2&aR zyl=1ME03245<1T&Vl*i(k}2;ZnuKLz%UJsOQVu-uz%GEq188h)qM#r@%`4eG{TE(% zf%)_2qp2!CIQ?{*8k<=5kuG2g@tM_avAqi4Q*{c;86`_EVYTrn6#1` zREmp6^Wo|j86A9umS6*sX+I?p$dUZxDW@i?6wodh3yl>*Df*mLKwtG$)~z3zHmd+u3UBXJBFGU^y&rbpJLMF~|@ z)a<)D_Sj=N?zrQ)=bn4mzI}U_HaG#Jc+&Ic&Eu0#K4Ht2EwZgGWv~UYiP@RqP5oPN z%fw0h@%Z2Gp(^?@9Xr3IW52V>9$hBO8(n#rXilb58)0HqRaJYhK@LDd&_p6ZTzIq1 z+lVfIi?S2`jk{Mo!5w$rN8Hk70bLgbdeN_!gq`;zoZb`S+_vlNkHh=U!dj3p!v$Pd* z;v?1Z6*X^Foz&CCGc5ra|uCdRt`}iU;owWb{ z+<(ulO!w3f`{EsH$DW3N+zeS>72M-!kIiwm77HyEBt4<3s#hG;oqi43&8Od}Q+gGq zCQPJZ-A1$(ACa|x6?d zpYP((iU^^Po+cPL4EKcZ;`e8FX;1Hxh!dO&fJW5B(z!@Pv4XHgl)L+_ckzC*iJ}9i za>uGyxqsPGIy*XS@=Z$>hN>~?8k_!bdH|?ul#eUt<{K7q%C`!Lf4G!Z??htNr{K>Y z-NSRG*Nf64_skm9eZ{`1Mz6L{zf-QFA!ryjVT<6gxrL_H@8H|Ko$Tocu>8vn{PDph z)YjFdxFa>?>ZDa&y}s`0*FNUh16Z3>O*u>@CSg^k&6vXCt1sio>Rb{Vmea`?!c`~X zA6+KF5rJX1X?2^Ga~;RTDl01oswfUz?igqU&nd$SkVKBw(b7Wws`tqM;w!SN$FZ#_ zz;$=r#i#FmKwNZWQ_W(BZDm6_ZQ!k|;hDz9cEMigpo%5S1{R(yjZ^>qB(Aw?0p*b| zh;Mt32CWpmY7T)>#VK%vTertw`k%G72nHK&>kpuAw(9xlGIljGys^?1y9lqQ>mrej z(%IQb?Ry`Qvu+*v`FXfz9nO6(KhG1(o?=&BJ<)hX&O(cpad#Y(BI_=VQDuk3Hcbhm zoPhQDJdE3SAAWklIsEA4*;t!jlbL$3@L-I}BMIad;PrX&dc0klaL3D9dVPbm) z&|rh)P6{I8l|(#2JP{|<*-693ji~E4kP`~wpHxY$+hWbuuUPf|r@Z&UM>IFL%6UUM ze&B$WVr#oMmKvr~6iSLp`1ZFC=BOiPa?H%hl&dZ1J3b|pfc7ynQOc$h$jz68?4%O{ zn8CmipozxeKNO&J(sugxf|I0o+r68Pni@vcY-W@RW@!oP#7bKH*{oT+j#Y20qGodq z4ULV2qfz@k0HG<~0L4YcOr5$PN6tEgBMv!`QN&SquS09DK~E<5I)6IqzBBO^lt^G4 za2(DV3OGXcVFEO8s?jH?>E)iC7)h9%!%L!%)fx<9ZQDv--A=rTC?0uw zqDW}N(U9zpD5^q^&r6Qmf@l+o#+@XBJJG|P7#zJGX$%(i{aZGSiw4)uXsR>tW6KY2@-gpGX)bT0?9xaLC zvNcEyT_x2d2~{EC$s>_73Nx=1vtTUV+)?;^!jwERIu;+1V-4o5(mhviFE)Ps_(5{9 zo{r1`sGqle`qQKCp&JLJ^ng;7Ekxw)XqTBtkc>spg=s~@;*}q}AD{Z83O>p9r_vE?k-ojLl>XV1RX<#Oc?#6LsfCWoIyUB>|_9YiNW zP6x>0lipv`(*{-e|FqnyKU2!|b6wZlR<2xm>AZRKo=Uw?*XO;}{u)y9mCQ5GJhSqK z8*aF_qM~BJmwJZ+o&$jJbOIzn;*JNjJEEx?k05Hro^9?8mSYw}^-!6$sJoo<_19m2 zbo%M1pYid>AJ-1&l}v}IMVm5r?%cT(fBW0t{-M0QyecazE1)QfG`BrH9IX+gonCP7 zFOchPKK-rB#4niuvMkF;CXRyKb>t~>rrU1eNPx@07*naRA@u3nhSK4<(bES-#7QkTrvq)!=*yywh-85&z8js%3`^cOZBXKV9_Hr zRS;}lYP;*A;?{QS9t9Uq^#BT8-ICIF(Rvn&fXGD(q9O)F!?i_|kc1>NNhXub<-6>8 z-cCX1=B2%C~giHP@^LJ{= zyuB^=% zB-0Ar0SL|)8m8Hlx57G6nn{05`H5*}JB*^FTq*TF5apy{B5*!X(#Q`inFQ!$&R83S(!)U3(3^k$zhTxv?4Xk7T z3X9D#ARyfVq=RFI5oG8rGR^)0NWoiLXg=@`dd)RlGiTzPFcGu9j^JZIf|?pg=on5b z%6%&tyyjsPGe)BBOWH3UA<BAyK)@&-#vlLHz*rKhC#XjC`LNm zU|tdAsm{>M+WUyJKAIGaNj+Nmg)*Tv)1Ew7o>cm4-2G%XI=n= z!$!kx)NbBIz#YeY;iquRU&xH>J9jQ+Z%t}DzHt+t<;#g*{SzJU9z;KQ81v)Pcq8p7 zrj9E3EpmjZ$O1<}Cu*~!Z+RZIq=~Srguv8$a5|hl96JvR(Zh)abu>-m#-8`Ev`2`& z`8xi}OIRZz9IX))ArJ<-BB)}}Q8JR4&x!5wHC(Yc7E?#CKAqPLS;rd^i1@B1?@dC( zhf%n9CoLCVBRcJe3@*7Dhr=P2laa^)2?qSTGHZp^1c)%8(Uh zlFs6D$NI;yEgV5}M+9Z;JroZbgw1B_l&?<2ebY1h87INo{w_#HlcvSxRJEKqjkroa^n%}*S~>JK0=v11@+4>C}?P;-Rc6nLSp`0&d!;SZPW;+PycJ&Za2E3 z%Sa>`-w|x)?T!Dz{9DEoyLt^SR${&KC$#z+w2mmAeSg4+@208vE}TOqNa6i{zkC+} za!{yeEtE`TB5WE&J36TO*=r2)#V}vrg6BpET`_6@)*=F1Hxu6UJeEECactW{?CPJ< zzyAn_zVSEQ_16EQ*esI2sv>+KRoodSzklmZZk>4>LxvV7o!UrXG>6fvYcYlvW864E zC<5x(h1hI%X?3sHE9jJeB9n1n(`l}*C9>lW6dc-x^TJuVNo!p+m%%T;g2myW;m$d@ zqB`D_$1zd4wt5xy)2B0I&6=zzl6FKfZ!{WZ`}XauS+ho#5nXA^Krs{&Rfh;(Jb^J~ z6?S_PfG9Nrfj}<+x{T221Csx`M(EQk#P|FW^;etlH#E?(a4tnJZvlTHiPL9@&znbL zNC5wtPf(n0_P_B4x6PT2r+7%3w>?T6G54iQmpFa;G|QJS7bOCs6p{tGaOkFwY54Ge z(5LkQdC8i)Ko<@3!S6k{c^OakK%H< zI<3^Z1^NKcc=i(Uy~oiT&hxdO{|v=fD7*u;Jw|BOY3ObY5HI%@oDR15J*#~u&}T{3Ux)Hv;`Wk zRnhj_BaD4)1-L{w6PHQ!8k&}%wWWoc=gXP2VHFm) zNdHz;1DYTIS3Fx@;fmGD$t4T;`pO5WIDd}X>$N=l?6W!Rd!dw2Fhomh3ne8tF>>T6 zg2A91D-za}$y3;{;VJGISxtS=#4&zpmJj&-{sBfIU8lXhovLkbar5FkaE&XGEj=^R zPH@I7F4tA@FVPqkhDjooRhKMT!meGrq_#y4IdkR=GiJ9R%rp`4Xv0tbjenXMrp`YX-^gj5QAk+b@6Vu6?qV)Gk%=-wguI$}PEpVrXV|^- zP!)s7kz?#%b}vu2w{lI?0H%(Ss`6K_Ud^UWo2ag?MtnYT;sks5?&a27Z)NAsojmy9 zgR(3akw+-Q(354203aOp^AGk>P`QJazkCv(KOg}l_s=RmpEs8UdP`(UjR_4k*3{Cv zZ4VP3zn`en#^%+l*t+}o1VzMh?m zJ9p90a3dq`XLOVmxOc_9Y+ZK;^|c`^lmDKAf&v+Vk~=l<`F#0PD6JJyiAEw3YTkI4 zqM|~cJ@8w0?EJN?U4(F=R1=|3Q$z)a=&VTlq)NB%z*a|9Ald)J#DkVL4@yZHV$%~}+g=1&7U%Xy#f8})V z`vGBvx{uCc`RD?#)qc*4zuYeO$LXF>X8*Kb!BdN`Bh^T&uw`LUC>BaA|+JjZ2baJ z6jnZPKQBDGkXXfj8Yh-fIBb+mUa9Ics~quoJt+zecu$h96;qaTgs3Wp+ zau1L!L=;8*t&2jr+w1*zB}7;aw}q+x<0<@SD=?;&vhBzr%73?;mgbgJTPLGWDt$z3 zHj@!YWZG}tIfrM~eUGu>Gu&v25T5i86b>5JDSW2mrs*Tz1%S-fVwMx<+L2|EE2Y`A zQwyJ{x_A-e^*v%&nnJwqp^XwuFKNL?+Gw|{21=M{hKVkZ8|r_ zuMw&KoW|iZvE4iaug@oGBb>H3;e{pKZg(C46p9R^_vUVAKQtbfm1O;mdV*K3V!v96 zueAktaRB?^V&bZmgpxq9s`#x2N_#!+O*OO_Hlo8O!iZA*MT2DW65&#CJ}JEHz@@mK z)N#7)*e8ILwzI=%&O;4(Y9e_qa)d~94WhZ*)+Y0X-qeWF+<>*c8B@_vR0YLq!|)ZO z7mvVOSS%xq5L#Smt&4J6wwgu#Eq}7x@#4A5<;p9O1!B?YWxK->$Z@ii#j3P51g%1$ zkhDlbbfQIgHDnr-0*Op2v}?0jv080X+i8ubOXW0BTplt_B%@R`oSX%IqK)uPJHOZFK-Puj?RbSeso z_bZn#zg}8e`lte}=>jBmK9D7ru$*IR>C{oLzWVCZW5$g6w%u;`4+Myyk=U%HUr9bE zwV2*IX13D1pWJl6k0;_S)m7DpR<8W+`U@8-zW`!cD$gODSkVOp0Ivczv3$Pg_{sUQ z3dG*=_cpBSxlq2)MmR;Cj_${;y`3b9=jrWN*I987QMyTxr`-8kG?n^9^(Q*Pnry~q zAHDVUuLe?@fgF|PC)YqhCNplgBg3wxzIp-kgYo|xl>>Y#*yi_tGy_uJfCdl9bF#qy YA6;(~p_-ldN&o-=07*qoM6N<$f@usBiU0rr literal 0 HcmV?d00001 diff --git a/src/en/jpfilms/res/mipmap-xhdpi/ic_launcher.png b/src/en/jpfilms/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f8eeb7f418e08328dcc3c8c5895f8e54018cab30 GIT binary patch literal 10553 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�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�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.getSharedPreferences("source_$id", 0x0000) + } + + // ============================== Popular Anime ============================== + override fun popularAnimeSelector(): String = + "div.item" + + override fun popularAnimeRequest(page: Int): Request = GET("https://jp-films.com/wp-content/themes/halimmovies/halim-ajax.php?action=halim_get_popular_post&showpost=50&type=all") + + override fun popularAnimeFromElement(element: Element): SAnime { + val anime = SAnime.create() + anime.setUrlWithoutDomain(element.select("a").attr("href")) + anime.title = element.select("h3.title").text() + anime.thumbnail_url = element.selectFirst("img")?.attr("abs:data-src") + Log.d("JPFilmsDebug", "Thumbnail URL: ${anime.thumbnail_url}") + return anime + } + + override fun popularAnimeNextPageSelector(): String? = null + + // ============================== Latest Anime ============================== + override fun latestUpdatesSelector(): String = + "#ajax-vertical-widget-movie > div.item, " + + "#ajax-vertical-widget-tv_series > div.item" + + override fun latestUpdatesRequest(page: Int): Request = GET(baseUrl) + + override fun latestUpdatesFromElement(element: Element): SAnime { + val anime = SAnime.create() + anime.setUrlWithoutDomain(element.select("a").attr("href")) + anime.title = element.select("h3.title").text() + anime.thumbnail_url = element.select("img").attr("data-src") + Log.d("JPFilmsDebug", "Poster: ${anime.thumbnail_url}") + return anime + } + + override fun latestUpdatesNextPageSelector(): String? = null + + // ============================== Search Anime ============================== + override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request { + val searchQuery = query.replace(" ", "+") + return GET("$baseUrl/?s=$searchQuery", headers) + } + + override fun searchAnimeSelector(): String = "#main-contents > section > div.halim_box > article" + + override fun searchAnimeFromElement(element: Element): SAnime { + val anime = SAnime.create() + anime.setUrlWithoutDomain(element.select("a.halim-thumb").attr("href")) + anime.title = element.select("a.halim-thumb").attr("title") + anime.thumbnail_url = element.select("img").attr("data-src") + Log.d("JPFilmsDebug", "Poster: ${anime.thumbnail_url}") + return anime + } + + override fun searchAnimeNextPageSelector(): String? = null + + // ============================== Anime Details ============================== + override suspend fun getAnimeDetails(anime: SAnime): SAnime { + val document = client.newCall(GET(baseUrl + anime.url, headers)).execute().asJsoup() + anime.title = document.select("h1.entry-title").text() + anime.genre = document.select("p.category a").joinToString(", ") { it.text() } + anime.description = document.select("#content > div > div.entry-content.htmlwrap.clearfix > div.video-item.halim-entry-box article p").text() + anime.thumbnail_url = document.select("#content > div > div.halim-movie-wrapper.tpl-2 > div > div.movie-poster.col-md-4 > img").attr("data-src") + anime.author = "forsyth47" + return anime + } + + override fun animeDetailsParse(document: Document): SAnime = throw UnsupportedOperationException() + + // ============================== Episode List ============================== + + @Serializable + data class JsonLdData( + @SerialName("@type") val type: String? = null, + ) + + override fun episodeListSelector(): String { + throw UnsupportedOperationException("Not used because we override episodeListParse.") + } + + override fun episodeListParse(response: Response): List { + val document = response.asJsoup() + + // Extract JSON-LD data to determine if it's a Movie or TVSeries + val jsonLdScript = document.selectFirst("script[type=application/ld+json]:not(.rank-math-schema)")?.data() + Log.d("JPFilmsDebug", "JSON-LD Script: $jsonLdScript") + + val jsonLdData = json.decodeFromString(jsonLdScript ?: "{}") + Log.d("JPFilmsDebug", "JSON-LD Data: $jsonLdData") + + val isMovie = jsonLdData.type == "Movie" + Log.d("JPFilmsDebug", "Type: ${if (isMovie) "Movie" else "TVSeries"}") + + val serverAvailable = document.select("#halim-list-server > ul > li") + Log.d("JPFilmsDebug", "Server Available: $serverAvailable") + + var freeServerFound: Boolean = false + val episodeContainerSelector = run { + freeServerFound = false + var selectedContainer: String? = null + + // Iterate through each server div + for (serverDiv in serverAvailable) { + Log.d("JPFilmsDebug", "Server Div: $serverDiv") + + // Log the title of the current server div + val title = serverDiv.select("li > a").text() + Log.d("JPFilmsDebug", "Server Div Title: $title") + + // Check if the current server contains a
  • with a title containing "FREE" + val hasFreeServer = title.contains("FREE") + Log.d("JPFilmsDebug", "Has Free Server: $hasFreeServer") + + if (hasFreeServer) { + // Mark that a FREE server was found + freeServerFound = true + Log.d("JPFilmsDebug", "FREE Server Found") + + // Select this server's container + selectedContainer = "${serverDiv.select("a").attr("href")} > div > ul" + break // Exit the loop once a FREE server is found + } else if (!freeServerFound) { + // If no FREE server is found yet, select the first available server + selectedContainer = "${serverDiv.select("a").attr("href")} > div > ul" + } + } + + // Return the selected container or an empty string if none is found + selectedContainer ?: "" + } + Log.d("JPFilmsDebug", "Episode Container Selector: $episodeContainerSelector") + + // Extract all
  • elements from the selected container + val episodeElements = document.select("$episodeContainerSelector > li") + Log.d("JPFilmsDebug", "Episode Elements: $episodeElements") + + return episodeElements.map { element -> + SEpisode.create().apply { + // Get the href attribute from either the anchor tag or the span tag + var href = if (element.select("a").hasAttr("href")) { + element.select("a").attr("href") + } else { + element.select("span").attr("data-href") + } + if (!freeServerFound) { + href = "$href?svid=2" + } + setUrlWithoutDomain(href) + Log.d("JPFilmsDebug", "Episode URL: $href") + + // Determine if the episode belongs to a FREE or VIP server + val isFreeServer = element.select("a").attr("title").contains("FREE") || + element.select("span").text().contains("FREE") + val serverPrefix = if (isFreeServer) "[FREE] " else "[VIP] " + + // Use the title attribute of the anchor tag as the episode name + name = serverPrefix + ( + element.select("a").attr("title").ifEmpty { + element.select("span").text() + } + ) + Log.d("JPFilmsDebug", "Episode Name: $name") + + // Generate an episode number based on the text content + episode_number = element.text() + .filter { it.isDigit() } + .toFloatOrNull() ?: 1F + Log.d("JPFilmsDebug", "Episode Number: $episode_number") + } + }.reversed() + } + + override fun episodeFromElement(element: Element): SEpisode { + throw UnsupportedOperationException("Not used because we override episodeListParse.") + } + + // ============================== Video List ============================== + + // Define the JSON serializer + private val json = Json { ignoreUnknownKeys = true } + + override fun videoListParse(response: Response): List
  • with a title containing "FREE" + val hasFreeServer = title.contains("FREE") + Log.d("JPFilmsDebug", "Has Free Server: $hasFreeServer") + + if (hasFreeServer) { + // Mark that a FREE server was found + freeServerFound = true + Log.d("JPFilmsDebug", "FREE Server Found") + + // Select this server's container + selectedContainer = "${serverDiv.select("a").attr("href")} > div > ul" + break // Exit the loop once a FREE server is found + } else if (!freeServerFound) { + // If no FREE server is found yet, select the first available server + selectedContainer = "${serverDiv.select("a").attr("href")} > div > ul" + } + } + + // Return the selected container or an empty string if none is found + selectedContainer ?: "" + } + + val episodeElements = document.select("$episodeContainerSelector > li") + Log.d("JPFilmsDebug", "Episode Elements: $episodeElements") + + val targetEpisodeElement = episodeElements.firstOrNull { element -> + element.select("span").attr("data-episode-slug") == episodeSlug + } ?: run { + Log.e("JPFilmsDebug", "No matching episode element found for slug: $episodeSlug") + return emptyList() // Exit early if no matching element is found + } + + // Extract the server ID from the target
  • element + val serverId = targetEpisodeElement.select("span").attr("data-server").toIntOrNull() ?: 0 + + // Debugging: Log the extracted server ID + Log.d("JPFilmsDebug", "Extracted Server ID: $serverId") + + // First attempt with server_id=serverId and no subsvId + var subsvId: String? = null + val playerUrl1 = getPlayerUrl(serverId = serverId, subsvId = subsvId) + val (_, hlsUrl1) = fetchAndParsePlayerResponse(playerUrl1) + + // Retry with subsvId=2 if the first attempt fails + val hlsUrl = if (hlsUrl1.isEmpty()) { + subsvId = "2" + val playerUrl2 = getPlayerUrl(serverId = serverId, subsvId = subsvId) + val (_, hlsUrl2) = fetchAndParsePlayerResponse(playerUrl2) + hlsUrl2 + } else { + hlsUrl1 + } + + // Return the video list if the HLS URL is found, otherwise return an empty list + return if (hlsUrl.isNotEmpty()) { + PlaylistUtils(client).extractFromHls(hlsUrl, referer = baseUrl) + } else { + emptyList() + } + } + + // Data classes for JSON parsing + @Serializable + data class PlayerResponse( + val data: PlayerData? = null, + ) + + @Serializable + data class PlayerData( + val status: Boolean? = null, + val sources: String? = null, + ) + + private fun extractPostId(document: Document): String { + val bodyClass = document.select("body").attr("class") + return Regex("postid-(\\d+)").find(bodyClass)?.groupValues?.get(1) ?: "" + } + + override fun videoListSelector(): String = throw UnsupportedOperationException() + + override fun videoFromElement(element: Element): Video = throw UnsupportedOperationException() + + override fun videoUrlParse(document: Document): String = throw UnsupportedOperationException() + + // ============================== ToDo ============================== + // Plan to add option to change between original title and translated title + // Plan to add backup server too. + // ============================== Preferences ============================== + override fun setupPreferenceScreen(screen: PreferenceScreen) { + ListPreference(screen.context).apply { + key = Companion.PREF_TITLE_STYLE_KEY + title = "Preferred Title Style" + entries = arrayOf("Original", "Translated") + entryValues = arrayOf("original", "translated") + setDefaultValue("translated") + summary = "%s" + + setOnPreferenceChangeListener { _, newValue -> + preferences.edit().putString(key, newValue as String).commit() + } + }.also(screen::addPreference) + } + + private val SharedPreferences.titleStyle + get() = getString(Companion.PREF_TITLE_STYLE_KEY, "translated")!! + + companion object { + private const val PREF_TITLE_STYLE_KEY = "preferred_title_style" + } +}