From 4bfb07735f5a69e491df6261a7d907158212620c Mon Sep 17 00:00:00 2001 From: imper1aldev Date: Sat, 7 Oct 2023 04:36:32 -0600 Subject: [PATCH] feat(src/es): New source: MetroSeries (#2320) --- src/es/metroseries/AndroidManifest.xml | 2 + src/es/metroseries/build.gradle | 24 ++ .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2720 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1527 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3172 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 4453 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 5928 bytes .../es/metroseries/MetroSeries.kt | 238 ++++++++++++++++++ 8 files changed, 264 insertions(+) create mode 100644 src/es/metroseries/AndroidManifest.xml create mode 100644 src/es/metroseries/build.gradle create mode 100644 src/es/metroseries/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/es/metroseries/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/es/metroseries/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/es/metroseries/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/es/metroseries/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/es/metroseries/src/eu/kanade/tachiyomi/animeextension/es/metroseries/MetroSeries.kt diff --git a/src/es/metroseries/AndroidManifest.xml b/src/es/metroseries/AndroidManifest.xml new file mode 100644 index 000000000..568741e54 --- /dev/null +++ b/src/es/metroseries/AndroidManifest.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/src/es/metroseries/build.gradle b/src/es/metroseries/build.gradle new file mode 100644 index 000000000..888991033 --- /dev/null +++ b/src/es/metroseries/build.gradle @@ -0,0 +1,24 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlinx-serialization' + +ext { + extName = 'MetroSeries' + pkgNameSuffix = 'es.metroseries' + extClass = '.MetroSeries' + extVersionCode = 1 + libVersion = '13' +} + +dependencies { + implementation(project(':lib-burstcloud-extractor')) + implementation(project(':lib-mp4upload-extractor')) + implementation(project(':lib-streamwish-extractor')) + implementation(project(':lib-voe-extractor')) + implementation(project(':lib-yourupload-extractor')) + implementation(project(':lib-fastream-extractor')) + implementation(project(':lib-upstream-extractor')) + implementation(project(':lib-filemoon-extractor')) +} + +apply from: "$rootDir/common.gradle" diff --git a/src/es/metroseries/res/mipmap-hdpi/ic_launcher.png b/src/es/metroseries/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..9fe6ce8370ce70e18ff1723667ab6542db933292 GIT binary patch literal 2720 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 literal 0 HcmV?d00001 diff --git a/src/es/metroseries/res/mipmap-mdpi/ic_launcher.png b/src/es/metroseries/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0e6e21e7419670179aaeeafdd0b35ae0cf959117 GIT binary patch literal 1527 zcma)+Yd8}M7{^g=n}stx%ziwud`x%y7JUlE-cvx}L z5V%q04-XFrbroUvOQDA&B=C#Q ze7l)EJp9j42)ILx=a=GDYe{FRK6FDN+9SMDGy8EPrfR?+d{kV&o&eBJ;&X1y5^|9g zw-qZsZeG-x15doAl{ETOK45@$Qd8{(jd4;7eWquW7Lwmz5{VTQ zH~>zyPbI;PS3ovQyYpl9|3#Z@4XoapsJyxFCJZuit~ct@*+H$FEno8kP-AHZ<8^OL z7Cb=I7I7aOY8IQ8rgqv8OL|?Rn@&a?%zytFWE{!I6_veWcP%3{f&53fjC__e_2-N2 zhIn=aXr_RN zl{&7d?&3%wkxp&wM4ZSF0ZItVnnWCb(j{6|bvxH`adncl(yEGbe_r>3c<0$(p!*O7~dCl&kBKFuTiePRCNY2gFdR z0UFVJ&H08Ya>$(;Kckp2ym={q=h5|dTt^a~c+Gr$@br{^tAb*%aRWAi&|EhfDUZ39 z#QXxPE!^3gYwwuDf`P}E@!QpB>SklR72ikGg7%#tL!MfDf0x25#Jo}jW!$|9r8y^c zbej6ue#p4=?5B~NhCl9yv1RaKNlTNknHqCb=hnY&?_N$@B1{HE~K$U7E zGZ^FiWJ8EYxa>TVe<-#_!x4koa!bt=cvPqF1yS^TxM^P>rXgK#=RlWa9)yqHoOm0( zPM|%lY$=p$`uJHwQ-ZirPMp0{O!)SWk|^G7J5GBMYqI%K#rCZBYzB?h?7b*v5&^j0 ziIcm_ui}%){)T8vtQRDM>)$3`#pro@b>cv4Ge9Id$wbjGqj#F-wk(X%rsi$Ei<6nj z#|LJ-WeC@`<$f2EM2+1Fu6$M-^Z;P3pl6IOL*ULOaCWZPgBN8A57rkZy>&^dV>6MK zL<#BSUU`m_j_})mG*h9R#ILy)#qo z5+H|&0Z6hvhJ!55rV5i#7O|?07x27^XJv|QE5pn3nUl_Ooh(C0-;Em_*sImB1zy&p z^$+F!YR@$SDz#lcuJE3vNF zvbLk~%aAw8fHd5tfYaU8eaLQ{<+QrcRFazogg4B`Tsb` ucrEjkcg=lp_BHUgf`92-?XJ&jj6L9}w^qP%a{J+1=RuiUA(}6Hr~Ct7+~eZ_ literal 0 HcmV?d00001 diff --git a/src/es/metroseries/res/mipmap-xhdpi/ic_launcher.png b/src/es/metroseries/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1015fa3ea4a8e9285e47ed9d1882a415891dea12 GIT binary patch literal 3172 zcmb7{c{J4BAIHa#%ozLFx9n@kmVGIdT}6tBBs*it62nk~w0Z3E5K%>n8CI`4Hs?Y`!$Yw_(5?Ithd8x09a) z(Q?v@BNYGAr}-pjyOaswL+n2y*d6Kde&>Z>J6CaxjM zwgRtMvmxoCzP3WW4A%7e;_|$uN~N+p&o0J$gK_6m3*ygxp6#`Hbcr8i8m}dCwd4`x z-8o$o`0Wx-J|#ZU^KV((7;HVEzQ}H{CB5S;2lBPyRnOOhQOTSRN)Dp5<%3CvKRIPR z9`4Sh%?a7`nSZOmJoB=eQID9*aJ~`|Dt{jx< z)R~i8_R@R?x0nwft0F!KU~d+90v>9XygxStU=Kb7@sdXTYyLjinD%1-e^0cQv8e*u zmJLC@vEIzaN%lD0;z5H>)QyG|^KbKteRy~l-qAi`{e(U^>OM z^?g}I-AFLDK*Vjf@EoTgh9q-@-MVBnpGn@KhW+wofA6!Kb6t#y0)pjrmpInvy3E5V z^0?SxkCfU_Z(yE&4CZD=>dQq~2E373sHQ0YPS2jD&zb@a26K0RPa?r*Ah%NfJ3lLZ zWUD5_GhzMNo`QAf(oyf%&GyG^r{e#NKo>Z7s>7Dn^{JNVC~AuJT9uWhfzfSMezQ;7 zF8ZV^95WVKSSn+NmJTnOUFpuMs?_2)oD&Lc^(t};6zhoc-z044dGh})){r9Wezh-C z&bED^bR}j4SjtCNyWpPJN?U~rU194l&dqJ654_^sa_@6|0hyUJDPi!PnSoyuw95h^ z_^|x=)>!?By1_lhYVz!Ff#g~z+7!R<|2$b0)uqMr$=O?^fH0G#tkx2_EwpAgcGa@2 z+fqB6UAi3qeV%lqh4$XIAf_+SQ`({9rd(Ji;2>%T~}rH8I*w&7<*R}*4>mRO3eBF})igQIG6kLq;>WITopUFQ1W+;rts z5Ekk=Tyge=@&u~AfHtyP4r?dH?4cn)bIqc-cFNsnQ!C1AE(4gMcB{wrdhTv{U1(M~ z-*ld&rM8#fhCst9M)1=IB^xSKQ5KZ=QlswCHvD&^5`#dJ5VK-09}pIl>T4iETF(!< zIqzT}Tvxc%;~~)FC1{*GOkkERf5gMdRIW!VAa!fedR)=iY)4M6W+7K6l{;MH-RX~U zSmm0{tHe_Tf2v$xC|8yf`rlQn&0|JG4^nq!%7F=k0>w}E6Kk}{fyX=E*+Dod{JmwR9Gw zx8vS-jbIAU31apIEde8jysY^0drf0ffQR}psJh=2s4t@uDRzOQHgk+s{lqKK#T5~T z?Lydr$-;cE3VM+M#kG=NcFBn>uSOK7(sRCT4qpb#Uu&?i_xN2WoSnO3+{ za|`ck?3xx$2tx-iD}|yN%&nRB3ee(M5&Ik_2f9#!f&jIs~UX_L5 z8!+q$;nj_U1Zkoqf7dYGsfIW4o4eL{N|1EG=JkM9eA3#VCNDzfg}q^sd}k?Dt2B{8 zFt!VX2;i}AW7uaP9w3;6fZo!^N4z+oT@d4lA{)F>u2&3}P2U5$lA6l*yxL|Nr#ZLR z4w!vL{A0oC{KUEN-@dPbD-y=!#!froSX6crhYxJuos1OK6>7H&AV*;akQ+{LBm03x zqE=vaVlEKX^jRK#%<*570FMX(U7lQ5?3Y7zN)04Se*9~IYQE!?T=&!F<9e5#Q{$zh z_+av}im3gOUB}Lz{M45dC=whle|sC&e6}-5ELlR;#9rY+%QY329ME{F`siq*h|j>K z^~}l`Z2I5q>_O|YmvIYBF@r@Xi{9-4$2T>y)1lHVE|Ne3Z6R!NBd1#2WA3P*;WR592V7SsBmhaFx?(C zK#9+vJsGLX%afTQrc6_0CD{hbLO{$3)GUAN?g5nHZlO$5kTdtYyqxric^xOG*Kg$f z?h?3`iGQtG#XzOtAJ@NthGVPxY8#yR!6I~_C%-Sw+`1b%XHMTOUIOh`gKLlU& AE&u=k literal 0 HcmV?d00001 diff --git a/src/es/metroseries/res/mipmap-xxhdpi/ic_launcher.png b/src/es/metroseries/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..5b0d38a80cfc9a1c929ce24812934f7a94eddbe0 GIT binary patch literal 4453 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 literal 0 HcmV?d00001 diff --git a/src/es/metroseries/res/mipmap-xxxhdpi/ic_launcher.png b/src/es/metroseries/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ce6069700b44e910cfd81617ed398f06590da501 GIT binary patch literal 5928 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.getSharedPreferences("source_$id", 0x0000) + } + + override fun popularAnimeRequest(page: Int) = GET("$baseUrl/series/page/$page", headers) + + override fun popularAnimeParse(response: Response): AnimesPage { + val document = response.asJsoup() + val elements = document.select(".post-list, .results-post > .post") + val nextPage = document.select(".nav-links .current ~ a").any() + val animeList = elements.map { element -> + SAnime.create().apply { + setUrlWithoutDomain(element.selectFirst(".lnk-blk")?.attr("abs:href") ?: "") + title = element.selectFirst(".entry-header .entry-title")?.text() ?: "" + thumbnail_url = element.selectFirst(".post-thumbnail figure img")?.attr("abs:src") ?: "" + } + } + return AnimesPage(animeList, nextPage) + } + + override fun latestUpdatesRequest(page: Int) = popularAnimeRequest(page) + + override fun latestUpdatesParse(response: Response) = popularAnimeParse(response) + + override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList) = GET("$baseUrl/?s=$query", headers) + + override fun searchAnimeParse(response: Response) = popularAnimeParse(response) + + override fun animeDetailsParse(response: Response): SAnime { + val document = response.asJsoup() + return SAnime.create().apply { + title = document.selectFirst("main .entry-header .entry-title")?.text() ?: "" + description = document.select("main .entry-content p").joinToString { it.text() } + thumbnail_url = document.selectFirst("main .post-thumbnail img")?.attr("abs:src") + genre = document.select("main .entry-content .tagcloud a").joinToString { it.text() } + status = SAnime.UNKNOWN + } + } + + override fun episodeListParse(response: Response): List { + val episodes = mutableListOf() + val document = response.asJsoup() + document.select(".season-list li a") + .sortedByDescending { it.attr("data-season") }.map { + val post = it.attr("data-post") + val season = it.attr("data-season") + val objectNumber = document.select("#aa-season").attr("data-object") + + val formBody = FormBody.Builder() + .add("action", "action_select_season") + .add("season", season) + .add("post", post) + .add("object", objectNumber) + .build() + + val request = Request.Builder() + .url("https://metroseries.net/wp-admin/admin-ajax.php") + .post(formBody) + .header("Origin", baseUrl) + .header("Referer", response.request.url.toString()) + .header("Content-Type", "application/x-www-form-urlencoded") + .build() + val docEpisodes = client.newCall(request).execute().asJsoup() + + docEpisodes.select(".episodes-list li a").reversed().map { + val epNumber = it.ownText().substringAfter("x").substringBefore("–").trim() + val episode = SEpisode.create().apply { + setUrlWithoutDomain(it.attr("abs:href")) + name = "T$season - E$epNumber - ${it.ownText().substringAfter("–").trim()}" + date_upload = try { + SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH).parse(it.select("span").text()).time + } catch (_: Exception) { System.currentTimeMillis() } + } + episodes.add(episode) + } + } + return episodes + } + + override fun videoListParse(response: Response): List