From 1fba0902363accf92c57d2a24efe072cea9ccbec Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Sat, 6 May 2023 09:52:33 -0300 Subject: [PATCH] feat(src/pt): New source: Open Animes (#1582) * feat(src/pt): Create OpenAnimes base * feat(src/pt): Add latest updates page * feat: Implement anime details page * feat: Implement episode list page * feat: Implement video extractor * feat: Implement search animes page * feat: Implement popular animes page * fix: Put description in anime details * chore: Add source icons * feat: Add video quality preference * feat: Add fallback extractor --- src/pt/openanimes/AndroidManifest.xml | 23 ++ src/pt/openanimes/build.gradle | 14 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3273 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1832 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4285 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7577 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10420 bytes .../pt/openanimes/OpenAnimes.kt | 304 ++++++++++++++++++ .../pt/openanimes/OpenAnimesFilters.kt | 163 ++++++++++ .../pt/openanimes/OpenAnimesUrlActivity.kt | 45 +++ .../pt/openanimes/dto/OpenAnimesDto.kt | 21 ++ .../openanimes/extractors/BloggerExtractor.kt | 26 ++ 12 files changed, 596 insertions(+) create mode 100644 src/pt/openanimes/AndroidManifest.xml create mode 100644 src/pt/openanimes/build.gradle create mode 100644 src/pt/openanimes/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/pt/openanimes/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/pt/openanimes/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/pt/openanimes/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/pt/openanimes/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/pt/openanimes/src/eu/kanade/tachiyomi/animeextension/pt/openanimes/OpenAnimes.kt create mode 100644 src/pt/openanimes/src/eu/kanade/tachiyomi/animeextension/pt/openanimes/OpenAnimesFilters.kt create mode 100644 src/pt/openanimes/src/eu/kanade/tachiyomi/animeextension/pt/openanimes/OpenAnimesUrlActivity.kt create mode 100644 src/pt/openanimes/src/eu/kanade/tachiyomi/animeextension/pt/openanimes/dto/OpenAnimesDto.kt create mode 100644 src/pt/openanimes/src/eu/kanade/tachiyomi/animeextension/pt/openanimes/extractors/BloggerExtractor.kt diff --git a/src/pt/openanimes/AndroidManifest.xml b/src/pt/openanimes/AndroidManifest.xml new file mode 100644 index 000000000..e03c55856 --- /dev/null +++ b/src/pt/openanimes/AndroidManifest.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + diff --git a/src/pt/openanimes/build.gradle b/src/pt/openanimes/build.gradle new file mode 100644 index 000000000..cf996b524 --- /dev/null +++ b/src/pt/openanimes/build.gradle @@ -0,0 +1,14 @@ +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.serialization) +} + +ext { + extName = 'Open Animes' + pkgNameSuffix = 'pt.openanimes' + extClass = '.OpenAnimes' + extVersionCode = 1 +} + +apply from: "$rootDir/common.gradle" diff --git a/src/pt/openanimes/res/mipmap-hdpi/ic_launcher.png b/src/pt/openanimes/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d551aa633a1d957cc4fdc75f32deedc386f0ccee GIT binary patch literal 3273 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 Hu0mjf8s_~W literal 0 HcmV?d00001 diff --git a/src/pt/openanimes/res/mipmap-mdpi/ic_launcher.png b/src/pt/openanimes/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..37983a230997282399e01df5d95d7ff732f48e4e GIT binary patch literal 1832 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 literal 0 HcmV?d00001 diff --git a/src/pt/openanimes/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/openanimes/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d61327fa4df83d3b380b0b4bac21c743b260aeee GIT binary patch literal 7577 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 literal 0 HcmV?d00001 diff --git a/src/pt/openanimes/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/openanimes/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..7f263370926d9f8ed3e8df42a226dc8b3f83fb8a GIT binary patch literal 10420 zcmb`tWn5J6^FMrO1eQfYU`eGzKuO7^7f?W28U-n7kXq@GMkGFxOM|3zhcpN*-MJtj z(z)b+{r(=`&+Z53oY%Qx=6%gIGiT;p6QQZD3?hOM0RR9}fhlNVo*n-#LVV0!Yw-gC z05Ah83bHz0rh6s?EhdU%S-xie-UDi|04U*O8Ynp-TS6Q;3l`-D4y9%jjUO}YVLpsM zhj2U}mSUQ;e1p65ne#K*7gjPtT)7CS+~DqJ+MMsj=HkgnqoD7{(K2f^!}8F=x4ES` z^ufqECF|ocD3v|4ZjY5lWTp*34zMa|PC;OR=G0Ucr8E}wEskzkATFS5a;vgN0kDev z|Iyht3vhnCioi>Z#lMRBk|YN~h?Z5ZL}drF4zJsH*xy`T1OYi@07A%J{BA|%>`s#M ziAGPw@t={vm4=-a)2@qPW)XpI+Yj@zjajnHMUE#$nd8?nruWVK#DpLcerUQK2PuF{ z3x~L6WJ-D;_rK0n+KX*JNKh}F>B-7HvL9pnb1({aU+_|Q6FGM9;(2Cq>cGfuGVvs=c0=mf!)HDA?XkM#rr6-PX|g-(NsTqr{$BaLqC{d&uR zge(5`8**_8iR{8cg349y>U1m>8!=juBas&4We3X?34W0fO?`cWn3xy=_@y&cVn;!9 zvFdG4B=Od-Zzqrcl#3GM%aC;|WyT@dfR-!RN_?#m}n!{e7;3wrjrH0tl|Oh)Q3U9F>f8 z-sz?_`(8D~Wwt^3DqZZTV8+bTqj6a4EX%g;Lqu+v6X9snOP< z8_-?JCRDfMeB;ua^8G^^TyfLHV@fx>px}LQC^5C)I#!?uzd14BziTGr@n@1^Yc$J0 zr|gLOXM;)J!&|N8G47!|$V37gq*3w_coTL&N* zp*RReeZZn=z9%Q6GAoR`^*HT( zH!V2pu<0rL!ApdT-XF#t;D zEiS|jv$o0GPxjKrrvgIsdckz10%{*m!*H?7l?=D$D(6`xHD^QMa;$Cob5f_v}@ zQ`*H)CWCx*fO9A*9j6-FcwEKOMQDni$$IX#N{tclLc9?orkvXRQj=#WqW?_mO*%cF zX#(m0$<=|o`3VMHwn4QVc~=tBd9!50YsRWX3~(lj9Ks;x!644c<=Voi2qSCrTcCrB z&yiXsp^X@#j!%7n9fBTT9p`@!SHup`E*dV4?>11437b%U(bxCoqG}&YEHp9ls2Tf# zzA1(ySY0Xo$Yqd}$M+3pbmCrOQMV?MlpyN>MPZ6vEEv;_6;J}D4T<0|B*(kOPD z>7c2I0rkfsD4gOC4>E{T<@#60IX5ri z-X$==IqBgAhWrvIE2t2RVXdzo_NoQMpK=k24HR;w>1AnK(mN*RN%CQQXcE2ILtvG= zzh~7THB3!Bf;YBT#1tF8Ahf=*Wtk!jH2e&uZOhX_*^K4mh}+(=Zf@Cpmuln1>d;N) z=}Lj**o&*6jggdc_$f+1P(wsOdet#)Tf~>tno0JW@f)>mF$kY&4j3aXv(G}un}I`2 zJ*X`yN;4npAmwNpi&|3V;t(wey;~CdQ!qz(R7zgg0B87RBmtoRKtwx-oW*5H9yW*y z3j5mGqvnq3Q-Jqiq?hSX!e4AY)64(rD~|*-gtYnbN^i~q@*bBke%lN= z5E)1!^yw#5+e-M=u*mDO7Exy2NtyfbRXger*4!nZ&}p{5~Q)6GwJ6FA>ji}{M*&Sc!4xsxO}+W(j#qz#f+2u z)4IEW{Wvw$D3-?bZ8l?`?=&6K@1hlXJuTVtBh&FODLCP{5%G^ejMzHQBaC{9<*Js| zeYZQK^SpUfcXg^G>s;creh#B&9rR=p*ZLGC9USY+7_gsmhjpvgM)IpXFFG`5ZG3H= zO^S+xMHSwI@%`A=my}tI?W96}2hE!8QOvu!O4{_QX$f%LwW|9FsVi2O0i; z#y4y%x(#QUdNSCEn==(He3&Thqqx}!Ts+L}R2V2+ zULCSRqEiYHCu@C(`=}mT(4xIwn9oLO_=m+dA9RThOBlRM2vW$AkpW5bfqeIB zsp-8pzL1}Br@nCe-2wJH40irR1PpHq+rcqDhNraVeT%DBSsBu6wGAnN+TA{%#2q>Q zyl@)nn>$W1J-bm2XP9O7T!1RMHk3<)!T zy-S|6ZhNl#obt@-E)S%9zu}XJ}L!m#!Em5*X}&7n|({{wI0C{;Dh}Y zP_ESp!8rM2%7M+A@}$ITsU4bju5 zZ^EjDqmo9Ko4uZmpim+Ni#Q4as`aGdr-yp5TGG%{?h>dSjJU}F0wN+WeadCL=D&2Z z9J*ZtI)wHNzSlskKK_23b&0g&d{#KqgEDC1Q5%v9wK?y=f6 zG#V2!Y0KGlJKLnAacur;tF_C&b@1>1jk`FRJhw63e8{rx?Z)Tcddz*=_QD9gn~gQ` zeZiG`@>MEfEnPXd_zMejKK|FW>X+YCM_`juvI|W6p(6_ij5QuXB_AR>H*()l)dxtP z{1QA&s)!%{FSM>sMC`BwXDvIN5n{e^Jk+B$*fmhJ%^1KVxwlZf7c_ z3v|UuXdC(uT$R~OhJGiEfCN7%gjyqD~IfmEl06Qy5-HHxemy2Y{jV=OJ}Z98mhu1iJ-)x4v(CbU5Ga7m z;754rpU&r;(VHpNPa1Aqk94ts2=ZgwrlV~ZgiG@d?N(~WxI9X^y&bitoQ;aRD3L9) zy|OsnIYJ@OpP6L$uEhAvPrkS?TpfOpy=K}E9=T?!6Jd||adVu~9+Gu`vz2obYW3MT zE1b!X=KV=G=PVv4EG~?PvsAssS)Y3m z4DK0#MMv4#xkw`6hk;_+lSH;3hnc@-#ad?ui~Pj{Zg(r0r}U+p4C!;@ub=yz+T^+t zJe_oUZVdGmiMQ80N zBN7%{8J@iZC5L;D-{v!~-CnGK`l;Q48!^BFpx%XxAz~+NIe>0ig41|IRcz*Yi4HeGQwdc7A%4l$ypNwY> zlM|{5T{~ZJ(s#R0IC@Y)8*s7gtAVxJNx<~$amsddZUmWGqZG90x%0I3Y;Aim#5iO4 z;NH4U2-)I$JzS5f*)p5E+T;!poa|*{!hY58l%;>R=ExpEj-LB61;j4w57H9APMEVL z_G%_p3uSJ(GC>e-?q*!p8ur7ql^cA%mP0v%A8!>OA^+0TOYAUnX#lURu%J01liV!k zvsBdbO^q+WfZqPr&bJHF8WT^7(-Ci;iifcAb0Wf=ii{%=jnB*XC4n>lwe%j~LANM0 zo`@Z2Ds$$SH6=R!o&Di_Hl^PcO)Kd9IR|`AP!cdGH<7pC*!+~3@(JQrL5L<(%D0Yl zg?!0X=<(4e7${%8gQ%d6dM&o@w3apm8VC&L$ZZ>!s_$?dW{l(XzriUD8w?HoK7RVG8FeO&_PeifG8RU#3~v?Fh~E+`Xwr1w{l=U!aF+kw3wqc7$Ib_> z7ggrjaLpkNBNiJ&oeGjIc~Xp?N`tqDD1Zd)aITv7T_E%AZ-vmvk3ys`Uy$wx=|V2Y zq_gUHD*AA^%t**-*_gb&kyA7-*9XP7`clyNqY5F*^wirKd%KU{si}KeWmC;m)1tFP z+Qy*&5ziRAfzti&(1(j|qn-afdne|KH(gTRL^LA4%gcN?OVggGJfyvUj1^FGEVefh zn36og(DW!ToOlkaJq> zDcgz3!?m=t63V~|?Omi29i?xo6P^4II|bD2K<2U=8_i@f9WAOgg`*j)*}&*uXLv1_b97rdG=a*}!^rT~2h zU}HI?#E#p*2KCN>L!N;BlMk&oIlmrlOAeR*-tD~h){9SjCVJ1SnMibslfO?lf!Msv z`oS3A_9EwGz#4H|u;8q3w;$tL0G$4@Io=p>9(r2e5k}|O4|#SpMyk;|nswtZE+j7% z$cn^oEUTL*TK2X+ERY^)X!KGwgKA@}(`IdK)UowWwPnVQbN79G_8H$*#q;M)ecBM* z$kB)SJ9O{&!Nb1$nWAPw#xti37g9xzU$sRw2ykts@yGj?GB>&==vyr}Q*JI8JQp8I zUouzAnZ{A$Gx=<1+m*Gy(1=WDFN68^jJMLeBoFH+B}8 zEE9b^8fmX2#i~)(u>Q&+qhTAjmFM7;q{QGgV-Pppi7=&a!MuxoI5u=tw^+#8)9RYR zKOnYw-{tKMYsg|2om0ze+FDkmNJMU&G^FjcR32#vfDmj_g!#|>@8AYZoRA3j2l3H7+M*dX?yT#FHZWwlx-s1%iB&QgG64V z=V@QeMk+|XH%)YX_xivZspK1otyh%qeKhgq;O=;cKT5Q1Z1LWqeyQO1ac$`X3icw# z0QGnk>?3j;Q}|I&pi(#rHQ3kVyOF{KkPuOS?=zIdS#(_-`@{V5eVddd=R2b|xnW$7 z_JAZxXTu&Ljo@utQO zn&p<}JBHo2yS7bciEGxr+sl+Ur9$Ye5w+UwVc~B{15aUa%dVNL@N-rF+q5PgLX8xf zEe=@WaD%Yr{$gY0yj@Aer1y-8C)OU7&;4zZ^;cn*B|3#xpiv~Dk|r*Be7>u&p-b2- zel{qi;DZm49{#b76fv*yp(joK1ta7r8J|d!a9hk0T(ja0c9%ZoJgxVH{qZ1srMa0m zO;e^GGWBZNV2S*T8=n|6)f7vu2b5z^v*%d=7flyQNS!nc+&ZBbrmZ1GWrO#hNIe>- zj2J1lYP9lmD6|m|WVzo#cVOd0wkL)8os@l~t@VFKtS?)8ewT6d_D1TAp?2luR(*wT>92VRZptv8G{Ma>FpV|z*fQ;?#QhMXsyq6+;3JWCDVSp=XA2akr!1%$XSDA`=aJZ1^T&jLZI?V)rK1ayrztY2&}+#-F^Ispf~yWMy`gJk&4m4f}0%YUg#y;DqQk<&c7V zoxgARRiHC+=`p_-ck^JrqVe(Jz!bBBvkz@hE4a349E)dZSH4VUiJ}|5n_}$x;AUG{ zhJ1-l6%AhvB%mZ~4YuIBH{@TRW=^Su`vMVfSyhWOs=lQLmD)0h999*F@Z-e)3fuH+ zVJV{KFWbAC;oU}W$z-QY6FXx)4ZU*$?Mr>{dXw1{K?k+#<`x@nboKo)dFY{f>&5DJ zBrP~s_%-jT%-C4$%cdi5s+Rgh;ykwz{R;?d23rBw$m>}o40{RU^78>l2gWCfBWIoA z$saYPfl6MR2F5WMU0XA;(BB_)dArX~rW5!UR*p$(R=AB*0yRSy4cOlA!7a_LyIe z;|D0KRXlQIOy3p3Q;S76{&iS#OpQLLE1t1%l z>xTVG5F9cOLdp~hRwfj`E)T>)GHe>pqxc zNcZMvDDfJH3_7Ao_(@ivgn-|m>lqNBO9O%L{Z1>&M37!ohtwLPW4T8|+VbMz`K7OH*@UO4xN#chkxI0 zOesnu16S88_vLj~6Vck50$e;_^)}A{zQnJPR&k;I>Xar){rY+Qt|0mhHKSX4RNs)N z1fvhDU~B4DWt4h<-Y*5UddZ1m{w9QKlSPc6VaidBaL}WkZA8p{L!QbTJn!!$fS6w7 zxRJ~V>6E`)n2(6ANsd}8mZ$nyt_w@ojA#54{{yW>N0&~gYyz|BQO~0?YJs50k)uKm z_4K0s?YyqP>^M3q;(Rtm(mTf3Wun{F_ywC(zjGzA$ih1b>IzQ7XiT$bYwk_|T)8gt z#8;d5?k#{zaQ*MDZDpj&+1zjTn2;_Y^=Iqn_I&?scW9`EFITi2tBz%R@-eyeOuU^< zHgfz{y)c>g>nA)(8hFcD(`XjaD!X)Qs~N}ldiYPtX6d?}g&hx$=Wt|wxaN#F6315! zalM2_x{L-RmA7KMk`cEpKOyJ4PTij${>dg1|D_dK)?RN=6InV#|F$Z493R+cg6=5#lGnmgi1XKOh`KLR)({;B(sZ%8W z$SHEpR7GIeZPk##)J5GWwxW4o93!JaYKAv?Q!68c8gkx4iotta+6BO#WD>q1h&|IE zlYMJF(r)^L6;O<|Ibj*gYbccK+56|{mRH;&tYQ?9@=-1)F}YMwyRwvYuN9ZBoQcb_ z6&UuVk=h$>$DA}xhSqCcgh$7XT=1POMRQDRB*z0#K?$KtkvE`RnpC@TAn|=Xi8c#6ZO{*Ab*)cc!YX}bp1*6q2#!ip zsK3Cg2&Ej^O1Q3`P?zYO(2&`)d&WxA?8W@eG*O| z0e*`*QvPc0aLFFwZSyK7ORv~g;ygtVJe0O>o%IR-az9l}AER)Q&!wB1!-*4`5T3pL z881-Lg5At{?mOun`^^Uz6o0j<~L@P4r9vi2pMF_~ZOLr>diva;f_s zem|_JM^A}(Eh$kmLEB0%T+8xOoF6iobgRvjBCp?)%6k9^$8ZOW{?|f;jPN~kN~=d* zhqrujGAptGGfO`8@<7ZS{A9T2PNtFGT{EngM7E?-q*nv|@3eR=lBXQ-(SSnw*>aU7 zw&nN+n%~MbCJ_e&s*b+{2mnsSF0fmmJ9@{Du_+@kfSCc9*o`@b;i@=#@M4)92y%zvs84UqYDGZiTdh0OAb4FA1FlHY(#;5MB*c@xkacAtbG)!K8%xwOL;KdV2Yf70U z7IPV)t`;$%Q1d2hOreCmc+J;0fK5hHh~tMt-JFt%x11pV_;l7H)B0m3DLxcO<0-(@ zsvs|_1UpeG2M^~8ax zFZ*_lr3Hm-*Zz7XGN-Tvd%TDBIpxu&jV$lBg;cpC_Ie2}@Hq90Ub(^#44vcD;~qt) zCo>^>Ii6~%f3TtSgY`+Yp)!t)6lj+*Lr7g>>oJzOmaJBpce4uxBfrBWTyafsjSFwS zNIa%P-y0AphH8g4#xv+DQA%qwQd~9IyxQ$fXuH8odiXkN^9hKK_O;h5@0Z)CoESry zNAOKNfTG8UQ}IWW>X4GUj;Xfvzc~)OJWu>F;lozs(#v3oO{H0F3L-`79NM>9yO$c3xTaSuT?Qm?8#dk}P@nx&8mg-G{<3BDD9VwiNKW)}ba)L>LJqr(a1((_4=`%W4 zouhmZAlYq#^Z>M3R%;wFh}!>krDsOcWC0yD$81SfJc9p+Qrjn@EfS`kfx$@busMII zye7Q)ET2EeLhWlgDbW4Kh0k)K|MO4#!FQ_swQb~xl9vEw&QIe!3lq+4 z|4c7LjioY)DoKXOj56~Hq|#yh0Z@aFD)OR!o;&#YCv|AwGV8BJMj(ASwdCsBInv2yZHs-=(EHY2L<^(4e4sIu%HgW-D{WnFt0A-b&Nxs$p z+NAaM^yOR!sezs%g%sQQ!N@_Tq>7N}X)8TdI>4*&(^!ElDwUy1xTEOiHQLzF=)s^W zK&HdxLK9W?lFpBAnOw*)ik=WN9*E`U;5MW8;j{SW@Lzq*k$qnUPP_Vz&*5%QMch39L`&gI+N#rTWwRIp z;4&3YXl>Yebe$*EUO6$XOOG(uIVmiLp3aoohmV?e$NfqQ?iyjb%MQdJrQiaGTq#LX zKpUmMzNhC!^6NxHPI>2Vu`#@K%bZtFJsB6R&-H7{aH`5=&H$61KUlDojXO;+0t+ey zMIp20^j zGnG^q1zb6IxA92ldt2zNp)c2kxb>?{1|sDBt=OxX9CixDu1~~%ry2S!T^WG`OaN$b zfDh2hC;(u)hsJidGp)(3xzHu@pvyNJkZ(f!5h>kHAOSyYVEBH5+7|dg3=AJ+fyUoq zVawt0MehY}OELK3U`KFL4t_Q+KxrkzRFX6l@co|q31!Qj+%6}Z)!)?+D)llA+6zVEJok#z}RGUtV+}VISp~kqB>Q$}VT)f*mcr&4rqx5X(jInkSAQadmG6bt|X( z^_|a|=r~d3NW?I+!4RezB{;y)TZ(yFQ2xrA;T)gkhv+P$tN;$knq)k-yFw-Jk=m1) zus?>GR!4*1GW0y|qgDtmr9xLGE}wSB;WwOqIr0UqNSxVDU40!l2B1z+$nyAQ#%y0~ zrwZsQ!t3f3Fx=`?G##8H`~LL6wB1DGon2O@G2L_brTN{JorAkpnJ@4Cjn4rHY#!07 zor|dl3Mlm@xGL_<>HHdiX!>PFSB4+xIB*Lf%UbVLdMi5LZeBIu0|OJ~@%TZ@?Aai* z`-KG@R-lNl>mqsD{>Bd=BXhSua5}49Q)ayM5nP+!Loy@ZVOJRCfmROgY{N zih2%5z=q6giLSyoFYpVEKX#A+=8e9+WJAZ^rLJi?u#B2SHjK$yI-Q&M;csJ{ATmKPbLj< zWX&rd4L*R8#7}6Fn~nV|&KsLbql}$^Vgu^(DsV-6W-O?pzLS=iI?e+?48(Rs^{-@) z%A{3gO$@{etO_M|>(}6u13K!2 F`hSF&3xEIs literal 0 HcmV?d00001 diff --git a/src/pt/openanimes/src/eu/kanade/tachiyomi/animeextension/pt/openanimes/OpenAnimes.kt b/src/pt/openanimes/src/eu/kanade/tachiyomi/animeextension/pt/openanimes/OpenAnimes.kt new file mode 100644 index 000000000..3c21fe081 --- /dev/null +++ b/src/pt/openanimes/src/eu/kanade/tachiyomi/animeextension/pt/openanimes/OpenAnimes.kt @@ -0,0 +1,304 @@ +package eu.kanade.tachiyomi.animeextension.pt.openanimes + +import android.app.Application +import android.content.SharedPreferences +import androidx.preference.ListPreference +import androidx.preference.PreferenceScreen +import eu.kanade.tachiyomi.animeextension.pt.openanimes.OpenAnimesFilters.FilterSearchParams +import eu.kanade.tachiyomi.animeextension.pt.openanimes.dto.SearchResultDto +import eu.kanade.tachiyomi.animeextension.pt.openanimes.extractors.BloggerExtractor +import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource +import eu.kanade.tachiyomi.animesource.model.AnimeFilterList +import eu.kanade.tachiyomi.animesource.model.AnimesPage +import eu.kanade.tachiyomi.animesource.model.SAnime +import eu.kanade.tachiyomi.animesource.model.SEpisode +import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.POST +import eu.kanade.tachiyomi.network.asObservableSuccess +import eu.kanade.tachiyomi.util.asJsoup +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json +import okhttp3.FormBody +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import rx.Observable +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get +import uy.kohesive.injekt.injectLazy +import java.text.SimpleDateFormat +import java.util.Locale + +class OpenAnimes : ConfigurableAnimeSource, ParsedAnimeHttpSource() { + + override val name = "Open Animes" + + override val baseUrl = "https://openanimes.com" + + override val lang = "pt-BR" + + override val supportsLatest = true + + override fun headersBuilder() = super.headersBuilder().add("Referer", baseUrl) + + private val json: Json by injectLazy() + + private val preferences: SharedPreferences by lazy { + Injekt.get().getSharedPreferences("source_$id", 0x0000) + } + + // ============================== Popular =============================== + override fun popularAnimeFromElement(element: Element): SAnime { + throw UnsupportedOperationException("Not used.") + } + + override fun popularAnimeNextPageSelector(): String? { + throw UnsupportedOperationException("Not used.") + } + + override fun popularAnimeRequest(page: Int) = searchAnimeRequest(page, "", FilterSearchParams()) + + override fun popularAnimeParse(response: Response) = searchAnimeParse(response) + + override fun popularAnimeSelector(): String { + throw UnsupportedOperationException("Not used.") + } + + // ============================== Episodes ============================== + override fun episodeListParse(response: Response) = + super.episodeListParse(response).reversed() + + override fun episodeFromElement(element: Element): SEpisode { + return SEpisode.create().apply { + setUrlWithoutDomain(element.attr("href")) + val title = element.selectFirst("div.tituloEP > h3")!!.text().trim() + name = title + date_upload = element.selectFirst("span.data")?.text().toDate() + episode_number = title.substringAfterLast(" ").toFloatOrNull() ?: 0F + } + } + + override fun episodeListSelector() = "div.listaEp div.episodioItem > a" + + // =========================== Anime Details ============================ + override fun animeDetailsParse(document: Document): SAnime { + val doc = getRealDoc(document) + return SAnime.create().apply { + setUrlWithoutDomain(doc.location()) + artist = doc.getInfo("Estúdio") + author = doc.getInfo("Autor") ?: doc.getInfo("Diretor") + description = doc.selectFirst("div.sinopseEP > p")?.text() + genre = doc.select("div.info span.cat > a").eachText().joinToString() + title = doc.selectFirst("div.tituloPrincipal > h1")!!.text() + .removePrefix("Assistir ") + .removeSuffix(" Temporada Online") + thumbnail_url = doc.selectFirst("div.thumb > img")!!.attr("data-lazy-src") + + val statusStr = doc.selectFirst("li:contains(Status) > span[data]")?.text() + status = when (statusStr) { + "Completo" -> SAnime.COMPLETED + "Lançamento" -> SAnime.ONGOING + else -> SAnime.UNKNOWN + } + } + } + + // ============================ Video Links ============================= + override fun videoListParse(response: Response): List