From ebf2552a4429f262657a1074508167af54c29230 Mon Sep 17 00:00:00 2001 From: Secozzi <49240133+Secozzi@users.noreply.github.com> Date: Tue, 30 May 2023 17:48:58 +0200 Subject: [PATCH] New extension: Animenosub (#1654) --- .../animestream/animenosub/additional.gradle | 4 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2991 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1695 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3933 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6911 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9927 bytes .../animestream/animenosub/src/Animenosub.kt | 150 ++++++++++++++++++ .../src/extractors/FilemoonExtractor.kt | 34 ++++ .../src/extractors/StreamWishExtractor.kt | 46 ++++++ .../src/extractors/VidMolyExtractor.kt | 29 ++++ .../src/extractors/VtubeExtractor.kt | 49 ++++++ .../src/extractors/WolfstreamExtractor.kt | 19 +++ .../animestream/AnimeStreamGenerator.kt | 1 + 13 files changed, 332 insertions(+) create mode 100644 multisrc/overrides/animestream/animenosub/additional.gradle create mode 100644 multisrc/overrides/animestream/animenosub/res/mipmap-hdpi/ic_launcher.png create mode 100644 multisrc/overrides/animestream/animenosub/res/mipmap-mdpi/ic_launcher.png create mode 100644 multisrc/overrides/animestream/animenosub/res/mipmap-xhdpi/ic_launcher.png create mode 100644 multisrc/overrides/animestream/animenosub/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 multisrc/overrides/animestream/animenosub/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 multisrc/overrides/animestream/animenosub/src/Animenosub.kt create mode 100644 multisrc/overrides/animestream/animenosub/src/extractors/FilemoonExtractor.kt create mode 100644 multisrc/overrides/animestream/animenosub/src/extractors/StreamWishExtractor.kt create mode 100644 multisrc/overrides/animestream/animenosub/src/extractors/VidMolyExtractor.kt create mode 100644 multisrc/overrides/animestream/animenosub/src/extractors/VtubeExtractor.kt create mode 100644 multisrc/overrides/animestream/animenosub/src/extractors/WolfstreamExtractor.kt diff --git a/multisrc/overrides/animestream/animenosub/additional.gradle b/multisrc/overrides/animestream/animenosub/additional.gradle new file mode 100644 index 000000000..df6f51b3a --- /dev/null +++ b/multisrc/overrides/animestream/animenosub/additional.gradle @@ -0,0 +1,4 @@ +dependencies { + implementation(project(':lib-streamsb-extractor')) + implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1" +} diff --git a/multisrc/overrides/animestream/animenosub/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/animestream/animenosub/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1c94a82114176d76f23db6b7f6f1247485957300 GIT binary patch literal 2991 zcmV;g3sCflP)D+1*r&uLfg%s$HvAMRo#=pnE=)H@83VtsQ3JQVPWA@p66~Q^6FlA4e+Oj z|M*AzKl%m#G2ThqENz$fiGL2;^BWD@NbegDAv{lfK6SgIr+#y7#@N!pwt?9{hs_s5@MHTJD;;B=)hLwL!yWTjXGAkm)d{dj44@mc)1 ztO_%of@&Pl?p=GHsnu&w$wa$>Wphlo=A3&WBtU8(M1u1=hnJU^LO>a_&I7asfDX!l zYz7*_w7SBwc^6PmSL#$IiU`p6(B=pDb_d9BTkk=69kw3KJpz=zaIWWa1$7Sy9+Vqm zne4WC8@W3_fdCyMY9XwzPY^BL5H(G=sXbO@0fW}oP|1>`6rf!QvAP5(9by?c4kLHp z=g8alS@O2;AzHmdbnzHDlgEf|UO*z{iNgP6(y@X)Ua3P6jsd0T<0MN!4*_Adu$1b}KWAXSJZPRs#) z8GuG&K+*6$OcOpX2ysXt|4y(1#E61npIC3KyuQl1dtI-=qm^@mn&%G z;n-^=Ekz7q+74IJ#NUW+Uj#Uqc~$DM3NK%~{8I|h$jB~)SUnM9=_?m|D^3Un$$*lD zfy@Ab)ozo+;hcMwoauJ}>OIV}n~M2fwdzUt-|ZmHuXdT{(}0Xhk^t%9NEH<~>*aZ( ztN$hE-6KQ@KU%@WI?6P~;Mjy+x~8iPkP!~=U1-u$i20qC2C51<_>=Sg6{7LK!o>fH zpW#jIwd8S@bxj=G+2sutK+MHTC}?=sK_;1WBAgO=%KwYUJ?P1wB|S(3Ck>9=HhF7H zg7OUXEtf14OH51&qpoI9w*FCgSD zyomyH%3oH=TTaO-5qKqC8K7Jx@j)|$*jHbSLo6+$GH_(G=V1r+&@4)VlfNeig{H?d z9p4_BywZoV;a3SDBbZPC5}ts-J>kPoEIWCgI1lR9r0}4Vb7i0MvZ^Ir0Jp z#huKDrS>2jIM@epYE#FEojpQqZW1O9I2JSiut((p4Gt-1^GRh$1A$3%1%-f=nJmYA zRaadhG-Pw%m^qNz_{+p*&jhuQehQ+?#CHXdcH$ZUQiWLP;|aJ~i%Q)N%EqZE6hF8H z)%=6l<>UT3Qfoz6yRGlYtyTsouNI0!tYH^o3NUH&R4NCH{_N&BHO5{-1$_xBLa}Hl z4%6+XPhASoAVREW%3}Q51*7pz`cQs|8B~+;Bi?uizJkTG`oy1zT|J4r=(pm#A>#b% zV$cMK|NgE3(s^|VNE>2B;qc`S)HH1NG}SI)0qqv)|#Lixs{Wxb;jZ8d-l$tzB& zB8$ZeibBre1Ya;)n4;R5KN6ccEoz&*G}W-F zGPdb!Wodq3U{Jdzts1-^Vm~5pIGl^Al6C6FA-siMAEWxk*O0m=;Wd2C**~r*jG}N# zD<}=f)PWF?yJN4?eG-!g+y`^!-a~eJ1AwrMI*)>nr}N-b6pl?wS9PkCNpnEVF`IPM zIZcQqGZbF-1xSN{VOev8;G+>zi5 z?V51%6`9nX4ZI>?!hK5va+s69U=|KiEZRdskA0Wik3AAUf``;y!}NfiKO!D?an?`? z2lFSLZ0AcLH+#$g|ZmoA&(Z`%c+NqP@wy^; z?^M}kG1G#+Za!9UdlkMTx6!SF`1@j8`nPQRw!_$W@H2lsD)TXims%}46ESRjDZi$6Ex%inS0;7rF^cK4p|#udUr;GstXDDmZs zQ1RolsV>1R#`q~_G&qrS1gd7qF5`J_44G-JFepLQplaM2a6n=Br+5#$Yfj(Nh lZU8b|&kaBufXapZ{{W{<$=}LB=fnU2002ovPDHLkV1j5?sR951 literal 0 HcmV?d00001 diff --git a/multisrc/overrides/animestream/animenosub/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/animestream/animenosub/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0e03ec1670e4c0ee73806577bc7a8f230d211b48 GIT binary patch literal 1695 zcmV;Q24MM#P)j1XU-$()A~i*%El5a6<&_s+5YIdy@xTKDiAzK; zs35hfP$f_WO4C4T2_-63o3^>Mgp%wgo88SOyB^MX?D5z$_S&0BQKVXO?Db{*edqhm znHf78Z1Y9i=J??efvr|BNCA2-X02O=lUNTna7$NdQ4;9u>#N_nqxOU1T5*^VBT1}g zh_w@W3$y`T&2|XeSa1xxP4g7HjvZoKP1DjfH8mr-eD>Y>`T3lefr>!<>8GCgFqhB0 z!`fu%tKKrW7C6>U#ei63#b-7&HheNSH**|YDv2b#1nBR__w9Xhrd%##8+=sIuIm-i4^4n7B`8ntTh3;haFY%q zK$AAr+q37P2t-996tNHlBx~Ba;vqoIkX^~N;Byyo|zR2=sLCHWlzyq2&oMUOo<_rXIBMF9D`50jw2V*Kel(?Wz=sK#&5)i-&+5d=qON z3RYYJxPBhAtEYi1{bMGq7ra|JCooa$L-RH?f$px}Kn09}*MSTkWf7-;46JOK`v7B9 zjZuKrWgDeil}i0dfPH8~p$T+#_HY6!D;X~#fdc{ovs&Pvb+pl)%b;EQ9N@pHO(~zE zdQ}k+tz`Iv}l9a@2o_O3t$2of*`kJ;%VS&0#{haoh{%K-B?LA(3~CixhS zW{Op*Q56BT0!NqvoPy(V3B0Wa-R9Gv-Mol>#|V(j9NuIwqHN3{1i~4Sina?)puMfL zf&xdtKmzt+C$R|LmAKqeY)4z11{nVe;P0QX((4^BW-rnCyN ziytGAQxbTQP-p_Jt?iNmV$Ce=KLn-z!wh3UwApE)8rh(|wkj7PKK3c-e_^ThnE}#U zq7x9aQ?SE2CGgykD2jTY19j?^*Fst$4KV~BpF9i1C!y`e!xLy}3#>xx`-h<1KjiMn zgqrFuuQGU3nYBE`W`2eE?_YzKnK6@Cw2OB?ngSL9Zw0a=!4xZX59))w4q@(9+zhP{8pJ&jFvP`+_elLG11?2>vuqaOvD3czh(d*4&Lm zz{mb(Ly`i*ljME_Ptt+i!Y$CRodg|iL#&~MU&Q^C4^5!CNu_`jZc3os|C(zkp^Q34 z!A#N{KY)JY9B8=(w2SkCE$Fq4H~NtjpalG)K#$W3R6+vW)*iW7c`aj-{s#J=XCU@q zf{lBG>!N~>M4&0v;>rOp8M6vKj|wP(W7L=LgFblH48b?4&-&IU0g_5dJ!wxhZ(acX`gfqM%u9CJEbtp5;JoKyVv^K8 zSRZ%`$j&+}jVC~#9>-bMs;}3*BvijE*(VZ#L?Xo$5XS^g$x)tiC#3u4sL8tFBu?zI z2(VD`_Pl)L>83yMYNIZa37y1=#^gg)@cls8?=HoMZC2Ey5}ruxi1&tca1vJUm}m&Ao@m z@pT5Ua%U|n0`yodu1Q=QaNV&PKsM0EI^K)#@J;K`j}WfUt$yE$>G8O=(yumKxlq9L p%OqW;+VbdM4YpDm`s{75!2gv}D~n7z7p(vQ002ovPDHLkV1nx`Aollx(csp3qa^T6jF&(By)h9sz%l5~$jHdXqeqW^ZLzle zjn%c)BW}~(#{Id8F5SczXwk;g`)B+Ae$&YR6qVDKx)jvYJXi0UtAW@bLSy1LrBxfUQDfE}EV z5$h4B2Q7+9bnI61KtIu*1_lObczF1O>VWge=;-KW^w9{2$Rxpp0B%zm8X6k>$bBDu zd3J90q3l5?#Mi?lD(z|Q%$m3sl%%$25TKR*tZS2+l^`G-=kDDjqt~ZvUszbUdK*(; z)0ra^0xG!4hKC+H_RZOunV)q6rZ1p63AH?*K|s2%xG-7~pCCYWtq_7n_KbXge0=OD z=xrs?1f>?}2;lQod^UajW1oCwX=&**;hmBLkbzqY;8AU|kba4E%GAtG1Z8mW?sq4r zu04!Cmvma7BY;Zhw z4w5z2XLjpLo z%9OD1qz-J|gpJO3)BG4ZV1L}+p9BI9;ve$?0UQlU51j@m3CL@TOu#j1Q=|sy1jgok z=>#OR)+nucOpy`TSy^>k>{>&yalX0w&&X@SzDv;nmDI~7q5e*0#&pgzalVJHI*zZ_th$@9N6(l*QRGwiJt0&IOiY?2%9rpEDKBdyykt(Ln0TwM4E(fHp;oPQJ1 za}6BC6UZVXA0q-f(1yYZII#a7D<6=WU`W6Q5Rf=pLUspU z`m%$q^cPJ)GCJ%E0ahBp1bi#dfT)d6ve8&0_s)Xn6U3zxM6>6J*jd-PtP*n$*}g)z zK%|py!}4=Dh$I%J5s(GCOsZM~gb!#Q|BY{gG6;y_GIs%5fCvfNKr4P})klFDRZ zUuw_Qw!diUm));$0`~7aC^bQGp_DI$dZa-Ek_5-Q7J_$cop{FfDN%O<=tu5XzwiJ;?fRQOm5TFI$v-_TCdl8Yi0pMrPlbAe3boO=l ziWyHE@u+9(Mo#>=D)c4z3EZ+hX_sPvFD zhlLZcZ|{NJKEMN+o$wRSrk$`v9kd$45|3ofU6>(peT>8?lDNs!os4Ja-8AOeV{e_8XNw$%#iOU>(;RNg%+1I%bNSL4~g7TyQ2%Yr})eL`-E$>`aVAVvWeeb&Io98Go57rx6(~&S^JpsWhbf1Z0IZp&bnfh-yF- z7iCDQNSo#6BnSAMC9f=yyEsh_!qV!Q7d`1uF7B9WLpZ1MO^^ZT;b2&8UHE|dW4;C? zkKTdrhoR2(Q{;`?J%tI%8-_;bRXhR1BUU~j6*))<$jk>MBCf6>nMr=kl&vh0 zb8~{6@t4TC`koKGSEQ5dNi}f9NulZ)0jfkTssXmZd%#KTxXK1+7W-J@=drT_We8^) z>&erI{cF?yhA)ZJwKYBEnV<{}Fv*TR0^o#IJ|NQp7Xdy?H%mRhcCMZvX9DHvIqbFz zo=Y$VKg;oU%>ytU*v;b_^(PM)NJQ@_W4qRXiJ@YAF1!!*1! zoqORXXn5CdD<6=QXc+<7H6c0rN)sn*&h~t@PSta-kaOi7NIcd7uu|qd1Y%iQFqQn$ zOpqx7%7`YR0qRPqTI{XBhf@`|u97o*mYmCoZf;(LqeaED!9QXWKTM?GRPuX5fJsE^ zCt^=!`v6Om<4I-QkieM&U=-4vnQ`nBIzg3*H&NGtll6AZ>B|Z>z93_`#g`&N4KM*) zCSkq_dRp!SasZzKKirm5o1)6tAF*}u4S&mGP~Yz+_&m14eZa1rd3-=y;$#GjAzqg^YF%Rm@0)V+yKiI}`A`ssX0XDb#@MJRqBzSnVDl3lz`T$yUZ*!v0VsRRxBY zrt?w}Qkn^}9az}jC*T)Yl$X_l41xCz3MBjvRWF|)ap5)Wj>dBW%g};gdwQ1nGL>@M zIm$>VoPeD>hK=(8=|m+2=q8$?1xtql_Pu%$S?mmUGw?ppJJ=nav5;N_A*N<0+OF#a zXu*sSplchq^`HSe+{FA9fImSMuHSGOVF|mRgZhouX&Z*0Du=x;2`~XMI`Gg0x!9tZ zb;P8eC7YKCQNyX6{2gjI$Y$rEh}gp;3w2Gt%L3VUPFeFPTmyCt?J_n&G2p{Jn5+Sh z!v{##15(jVa03SqY>P=mH|O#6{0%&^%KLT_Qg0Jxb_@Jcq97Xrls-U0K+4YZJ{>%i z?M#iLeuF3FZ{W#DNWH+e!ZIYhNU1N?2j~dUO~f-n5dvg!kEk!ewqslQ{3TE7oom=I z#d~%nhce$#tw~$>fjl-pc}=M%NC&nQuz&z%9sqmqTz(tCzmBEBw;=KOX#xw-iXfy2 z;KO?qPQcLio%wt~xc?qMQB(iYPs!afjGuz#-vJB`JniVf#8k$x7>;^9p@bk1=SM?J zU39YEz%RuI*bpFl=z%H&wD#$*Qgh!?agXIkE+~ zo6c6HHC@$!)-JiMgqDA@Z0Ha*4u77SBcJepvWyqSc{c(}eq?D-2Yg%vb!nurG}wa1n@>I zornbIbpT}npVv7X4y~hR-P3?D)3qG#|0?jMg`u7Xl~D*=YV~xxV;g+^^#|XoT;O;oq9vwRv#s z^N!;@U@}lsz}s4(4_w!)#7FUHy6(BPwfdLwo;7~s2-na%dWTHwElRl2)@rqSKEG)N!hh;Ej@p0~2L8C1dC7863NNceyn*eHkOX;<}B$)a!S!^^dLx;PWf2 zI)0BBPse+cUH~*lM7*zr$zbQquQ&-`?Ahh1uZ!+jI`}s;S;~38JA=+CeZplE)K1KuT6ueHaHyY%BK_eq+m(8OOV2|1D r6VNB1#|ZSe`@RPB3Ft8bJ?{QL7D4tT0+zg700000NkvXXu0mjfN85s1 literal 0 HcmV?d00001 diff --git a/multisrc/overrides/animestream/animenosub/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/animestream/animenosub/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0a031184ead7d93679fc6234d8911d9e64b02fb2 GIT binary patch literal 6911 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 KQ>j<7jr<>*5|>#3 literal 0 HcmV?d00001 diff --git a/multisrc/overrides/animestream/animenosub/src/Animenosub.kt b/multisrc/overrides/animestream/animenosub/src/Animenosub.kt new file mode 100644 index 000000000..cb033d49e --- /dev/null +++ b/multisrc/overrides/animestream/animenosub/src/Animenosub.kt @@ -0,0 +1,150 @@ +package eu.kanade.tachiyomi.animeextension.en.animenosub + +import androidx.preference.ListPreference +import androidx.preference.PreferenceScreen +import eu.kanade.tachiyomi.animeextension.en.animenosub.extractors.FilemoonExtractor +import eu.kanade.tachiyomi.animeextension.en.animenosub.extractors.StreamWishExtractor +import eu.kanade.tachiyomi.animeextension.en.animenosub.extractors.VidMolyExtractor +import eu.kanade.tachiyomi.animeextension.en.animenosub.extractors.VtubeExtractor +import eu.kanade.tachiyomi.animeextension.en.animenosub.extractors.WolfstreamExtractor +import eu.kanade.tachiyomi.animesource.model.SEpisode +import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.lib.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.multisrc.animestream.AnimeStream +import org.jsoup.nodes.Element + +class Animenosub : AnimeStream( + "en", + "Animenosub", + "https://animenosub.com", +) { + // ============================== Popular =============================== + + override fun popularAnimeSelector() = "div.serieslist.wpop-weekly li" + + // ============================== Episodes ============================== + + override fun episodeFromElement(element: Element): SEpisode { + val episodeTitle = element.selectFirst("div.epl-title")?.text() ?: "" + return SEpisode.create().apply { + setUrlWithoutDomain(element.attr("href")) + element.selectFirst("div.epl-num")!!.text().let { + name = "Ep. $it ${if (episodeTitle.contains("Episode $it", true)) "" else episodeTitle}" + episode_number = it.substringBefore(" ").toFloatOrNull() ?: 0F + } + element.selectFirst("div.epl-sub")?.text()?.let { scanlator = it } + date_upload = element.selectFirst("div.epl-date")?.text().toDate() + } + } + + // ============================ Video Links ============================= + + override fun getVideoList(url: String, name: String): List