From 0b8668382b2ec2afbe2684feb20b7d0c1c1635ac Mon Sep 17 00:00:00 2001 From: Dark25 Date: Mon, 13 Jan 2025 22:05:06 +0100 Subject: [PATCH] feat(src/es): EstrenosDoramas added & HLA fixes (#191) * feat(src/es): EstrenosDoramas added & HLA fixes * Update extractor header --- src/es/estrenosdoramas/build.gradle | 16 ++ .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3238 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1604 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4964 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 9746 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 15842 bytes .../es/estrenosdoramas/EstrenosDoramas.kt | 220 ++++++++++++++++ .../estrenosdoramas/EstrenosDoramasFilters.kt | 237 ++++++++++++++++++ src/es/hentaila/build.gradle | 3 +- .../animeextension/es/hentaila/Hentaila.kt | 61 ++--- 10 files changed, 501 insertions(+), 36 deletions(-) create mode 100644 src/es/estrenosdoramas/build.gradle create mode 100644 src/es/estrenosdoramas/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/es/estrenosdoramas/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/es/estrenosdoramas/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/es/estrenosdoramas/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/es/estrenosdoramas/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/es/estrenosdoramas/src/eu/kanade/tachiyomi/animeextension/es/estrenosdoramas/EstrenosDoramas.kt create mode 100644 src/es/estrenosdoramas/src/eu/kanade/tachiyomi/animeextension/es/estrenosdoramas/EstrenosDoramasFilters.kt diff --git a/src/es/estrenosdoramas/build.gradle b/src/es/estrenosdoramas/build.gradle new file mode 100644 index 0000000000..6b707d9549 --- /dev/null +++ b/src/es/estrenosdoramas/build.gradle @@ -0,0 +1,16 @@ +ext { + extName = 'EstrenosDoramas' + extClass = '.EstrenosDoramas' + extVersionCode = 1 +} + +apply from: "$rootDir/common.gradle" + +dependencies { + implementation(project(':lib:okru-extractor')) + implementation(project(':lib:streamwish-extractor')) + implementation(project(':lib:streamhidevid-extractor')) + implementation(project(':lib:voe-extractor')) + implementation(project(':lib:yourupload-extractor')) + implementation(project(':lib:vidguard-extractor')) +} \ No newline at end of file diff --git a/src/es/estrenosdoramas/res/mipmap-hdpi/ic_launcher.png b/src/es/estrenosdoramas/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..dc6014a2da130c5ecf334eea89f637042d93db7b GIT binary patch literal 3238 zcmV;X3|aGuP)TD)Q1xM5QFY#oqg__rCVJ@pArib~fgW?d*DX99#I4 zKG}}F^Plt0Isa|WF6Bnze>#%r<-`aHb(*__<10W8dT2Me=twgezmnD89WJXRSaq@#ww3 zIsF;l&bmTxbmZ2c79Z%*k}pVlDTQFt!1gx=tH{ow; zjh-eqTkv<)2Ev3!nS9MBB{lzIP`PkF*y8Q4Sq!LWuj^GucFIQKHQA`91WZIRW*P#S zut+Cfq2GfD@D-6&B9N5>;s_uR6$HeCzk%N|($z)2B3NLDu)grQpvR+$9?kV^6)hnU6N%U)*QbAv z3ln~veg?+Gk8}0WXj~oCr@k3fb8q=E43_y0WP%VNNYmLG700A(+FNL;$*+X4ssd{6 zq^wWwfHCsJUKQ*)bm*F``uGFLm>xl9bsn_@0Ws{YVXqwKnE8o#%gQ{7e&<8@!hJAS ze*B(d56MM>dg5u~Aajxd&UJ=5TU#K;rc;KcPX`PRmY;-oWGj+v@!?`NU?!gG8C<3O z2@HvP^7}|H68-UY1m89c0iaUw>#^^7F4CSujcY=BY@dY71(N7B z!*DbF!WN?2h^-X1a^U+}=fGEy;EzbU0l}hxjMQH5wi|JFTeJ%U5-#N+qCj2(xl1>l zt7jxP3zALIEN1%Dez;zukDJ3r$oK_IJ~3~RAn{QQ>(ROvYPN6{>^N*mW{*AMzP4kI1Vu8)LB z{5jjywr4*4RCs9W2~n@c$qkri^&4x5@t^mCv}va%4=$YkWpS7B-e>(rIYT>lt%@9+ zDy!6aBkhuHF%T%(5(v;gclq@&tkE4WE|B@K}l;j{{O< z^h-!Dz9Z?Ex`J#4fnQ)PQKymi$OIzSiNyEwc6rG9_zuy^9c6yWd97|!!qabx>f{&r zaX28Vi7m2Lnqd7LXof+8*zEDR^b4&O)P_J141dGBRx11 z;>Y2Dprs!baA}4;WnevHyYa=E?#_$1OOcc*bOl9YOKve9;{JDU5QZ{ONJb`w%<{Zf zeo3^dHKb*~&D(cCP*ZyaqdIRt#AB=Hl0a_mU~7vlw zYiA%5XU)< zx9I@VrvD;hTO1}3IB5QYE1|u`P$af!m~RInDS;$q>PduaHEBVM*DaYq)6etv96)OJ z2xQHytg!u0w*;DD0!0%;yxmSAABYb~O75g&)aH3RD4sTY|Ig=; zUOMQ<)uP`hH=ymyavaz~ONry2AbwDpc$gp0l8^?E-GtOa()GUPXg|>uhmy}OvtBX^-ns$Fyv43#%df7<-93l&iE{hmk zZ=^@?l&NRBas&?m2Oj-K>4Z$vey73pM6#Vp!CQKB=l*wZ;OFTIvXa;#8I|+!>e0Gg zNsw0=h4Udbc`rXd_aN2vHe+lcV3f1cFl@I)2C#++sRPN>bG^#g{hk~o2f#7@UM04V zWS>Pi-p>zWty0FM>eovJNlEPU?p1^)AT0Wg_z&R)5g)vN>Y|eNnlyEw*?GATj$Zg~ z+ts>TfJn$pJS7Ylvykk;VCd=9MFx4LNRv>59@5MPjMP5Q-}K=DOLYsWVMwWP4qj1! zSC9BXUP%&h=6lT2*|0Xc%kyouB#5&MYl(aOxOkEYWQ%kq#9Gi6A=}E2ODFu=(Dk-X`kA#$|zW(2jUeAwj%>W!Y?0dhJ`n%sMrR~-QeZRf6x}1}2 zm+Z6ln~v~Aqnzq7Q-=fi!@FI*cd^>&jlO?t*qGcc;mq@*UQEENRFc)~7A`XJwn$H$ z)Y&5*J)b~o`VW3Bwo6{gs|0Haa7a5aH1(*6bH9~v{*+{t#zmu2MMm|a-R@u_)S8Wb z=J07h+NfPbW~GLV%7my_-a&fS3aMj{t^5DnWHIy%9=cXOFmjt{B)0gK)I*|@`jLpU z(apH{JkoQoBAh$g|?BOaK4?07*qoM6N<$g3sqyy#N3J literal 0 HcmV?d00001 diff --git a/src/es/estrenosdoramas/res/mipmap-mdpi/ic_launcher.png b/src/es/estrenosdoramas/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..fb32665b15d0e653258f03e06fea626ed3596741 GIT binary patch literal 1604 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 F{{#8-XUqTq literal 0 HcmV?d00001 diff --git a/src/es/estrenosdoramas/src/eu/kanade/tachiyomi/animeextension/es/estrenosdoramas/EstrenosDoramas.kt b/src/es/estrenosdoramas/src/eu/kanade/tachiyomi/animeextension/es/estrenosdoramas/EstrenosDoramas.kt new file mode 100644 index 0000000000..7a85d1c092 --- /dev/null +++ b/src/es/estrenosdoramas/src/eu/kanade/tachiyomi/animeextension/es/estrenosdoramas/EstrenosDoramas.kt @@ -0,0 +1,220 @@ +package eu.kanade.tachiyomi.animeextension.es.estrenosdoramas + +import android.app.Application +import android.content.SharedPreferences +import androidx.preference.ListPreference +import androidx.preference.PreferenceScreen +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.AnimeHttpSource +import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor +import eu.kanade.tachiyomi.lib.streamhidevidextractor.StreamHideVidExtractor +import eu.kanade.tachiyomi.lib.streamwishextractor.StreamWishExtractor +import eu.kanade.tachiyomi.lib.vidguardextractor.VidGuardExtractor +import eu.kanade.tachiyomi.lib.voeextractor.VoeExtractor +import eu.kanade.tachiyomi.lib.youruploadextractor.YourUploadExtractor +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.util.asJsoup +import eu.kanade.tachiyomi.util.parallelCatchingFlatMapBlocking +import okhttp3.Request +import okhttp3.Response +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get + +class EstrenosDoramas : ConfigurableAnimeSource, AnimeHttpSource() { + + override val name = "EstrenosDoramas" + + override val baseUrl = "https://estrenosdoramas.es" + + override val lang = "es" + + override val supportsLatest = true + + private val preferences: SharedPreferences by lazy { + Injekt.get().getSharedPreferences("source_$id", 0x0000) + } + + companion object { + private const val PREF_QUALITY_KEY = "preferred_quality" + private const val PREF_QUALITY_DEFAULT = "1080" + private val QUALITY_LIST = arrayOf("1080", "720", "480", "360") + + private const val PREF_SERVER_KEY = "preferred_server" + private const val PREF_SERVER_DEFAULT = "Voe" + private val SERVER_LIST = arrayOf( + "StreamWish", + "Voe", + "Okru", + "YourUpload", + "FileLions", + "StreamHideVid", + "VidGuard", + ) + } + + override fun animeDetailsParse(response: Response): SAnime { + val document = response.asJsoup() + return SAnime.create().apply { + title = document.selectFirst(".entry-title")?.text()?.trim() ?: "" + description = document.selectFirst(".mindesc")?.text()?.trim() + genre = document.select(".genxed a").joinToString { it.text() } + thumbnail_url = document.selectFirst(".thumb img")?.attr("abs:src") + document.select(".spe > span").map { + val title = it.select("b").text() + when { + title.contains("Estado") -> status = it.ownText().getStatus() + title.contains("Casts") -> artist = it.select("a").joinToString { it.text() } + title.contains("Network") -> author = it.select("a").joinToString { it.text() } + } + } + } + } + + override fun popularAnimeRequest(page: Int) = GET("$baseUrl/temporadas/?page=$page&order=popular", headers) + + override fun popularAnimeParse(response: Response): AnimesPage { + val document = response.asJsoup() + val elements = document.select(".listupd article a") + val nextPage = document.select(".hpage .r, .pagination .next").any() + val animeList = elements.map { element -> + SAnime.create().apply { + setUrlWithoutDomain(element.attr("abs:href")) + title = element.attr("title") + thumbnail_url = element.selectFirst("img")!!.attr("abs:src") + } + } + return AnimesPage(animeList, nextPage) + } + + override fun latestUpdatesParse(response: Response) = popularAnimeParse(response) + + override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/temporadas/?page=$page&order=latest", headers) + + override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request { + val params = EstrenosDoramasFilters.getSearchParameters(filters) + return when { + query.isNotBlank() -> GET("$baseUrl/page/$page/?s=$query", headers) + params.filter.isNotBlank() -> GET("$baseUrl/temporadas/${params.getQuery()}&page=$page", headers) + else -> popularAnimeRequest(page) + } + } + + override fun searchAnimeParse(response: Response) = popularAnimeParse(response) + + override fun episodeListParse(response: Response): List { + val document = response.asJsoup() + return document.select("#myList li a").mapIndexed { idx, it -> + val title = it.select(".epl-title").text().trim() + val epNumber = try { + """(\d+(\.\d+)?)""".toRegex().find(title)?.groupValues?.get(1)?.toFloat() ?: (idx + 1f) + } catch (_: Exception) { idx + 1f } + + SEpisode.create().apply { + episode_number = epNumber + name = title + scanlator = it.select(".epl-sub span").joinToString { it.text() } + setUrlWithoutDomain(it.attr("abs:href")) + } + } + } + + override fun videoListParse(response: Response): List