From 55e01146e41cff52b8d9c553ea25f1735abe4ed2 Mon Sep 17 00:00:00 2001 From: bapeey <90949336+bapeey@users.noreply.github.com> Date: Wed, 8 May 2024 11:17:21 -0500 Subject: [PATCH] Add Akaya (#2881) * Add Akaya * add formbody in interceptor * Minor change --- src/es/akaya/build.gradle | 8 + src/es/akaya/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2981 bytes src/es/akaya/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1736 bytes src/es/akaya/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3968 bytes .../akaya/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6661 bytes .../akaya/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9073 bytes .../tachiyomi/extension/es/akaya/Akaya.kt | 220 ++++++++++++++++++ .../extension/es/akaya/AkayaFilters.kt | 48 ++++ 8 files changed, 276 insertions(+) create mode 100644 src/es/akaya/build.gradle create mode 100644 src/es/akaya/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/es/akaya/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/es/akaya/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/es/akaya/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/es/akaya/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/es/akaya/src/eu/kanade/tachiyomi/extension/es/akaya/Akaya.kt create mode 100644 src/es/akaya/src/eu/kanade/tachiyomi/extension/es/akaya/AkayaFilters.kt diff --git a/src/es/akaya/build.gradle b/src/es/akaya/build.gradle new file mode 100644 index 000000000..eaa9c7821 --- /dev/null +++ b/src/es/akaya/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = 'AKAYA' + extClass = '.Akaya' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/es/akaya/res/mipmap-hdpi/ic_launcher.png b/src/es/akaya/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bbd945bfd6741d45e81fb6a4cd4854433fe08e4b GIT binary patch literal 2981 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 bA)5Xl0|c;^k{t4o00000NkvXXu0mjf+~2O~ literal 0 HcmV?d00001 diff --git a/src/es/akaya/res/mipmap-mdpi/ic_launcher.png b/src/es/akaya/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2b9deab67bcb4698fa8e7a56952658b75759e280 GIT binary patch literal 1736 zcmV;(1~>VMP)Px*f=NU{RA@uRT5D_+RTTbay6w7S z9(!lD#7UZNcg{WMeCK@U+*dg$9u9z{{KE7z2M&^2-c*6|rTm%xvSu~WB{JIP!v=sE zlWi|74K#8mwJ2&_P$o!zX_TyJ21eMvrI=U|*74JfLgXDU!&94KP6S(Il+o3Uh!&ct zU!H`<+N$7MceJ`HD=W7Nf-o0AmX#o-CQDj~#-%_w9R8%ey}h=&y1JjGh#kRTu+8ao zR;K2RcC@a0OhzPxLO0u8F4qzOk;HzM*hyW(!^4+(o*&JmTO(xOO`h{c0cdN00B}o^=+ogM#l<R#K>9 zQm=Z28MVrBTn+$#vJAK-N%GmF5Bn%(AdG?{V~WM{761;AZcX5N6tWLMX`^hV%~B_(sba1H z?Q}~Tt4R^FxTZ|KmIih?Ml|tO+NkNeK?g_tE1Mvd$PAcgs|JSq{>9bxJCT-~jodX$ zV`c_UoJ3!12Xa;}f-tQZzIS#b;`Je~sTN$O5XC(OHNOUM(TU&JybF;Y zFFc#;08zx1+D#ZWy%g@{FVgqDYqo>f^)%HYEqhGNrY!*e_xGW9Z41EjxbyIb5bl~n z74{!GitYvVDEzDiQXquxmsU|Hvn!vE84P^!J-Qb)&=ugs{Vj0Ko*5nc?a#PawgR4Y z%PC0TmUa|Jj+nCvZH6 zG0#4Z{MJVL>T=B{+}M8z>4o_;JH^L7CFHjUAoSyLTqvtS!F%fvJaQcUUmd~ZKRyRP z+9hY84jILT2%o)(%)6&x(&0UnF60US^$*U?nvc8z-nqP-7y#!rPR3WcvC9)Tnq5t4fbXU{?8R_t>s)G0JoycpfhWpj|)R?znD+v8^ z8>*1?)MGgR&^(M?u@Je9%jo;y;bXY)+;Uno?q%ilJO9qTxKg(n*%ePyxpNQBg>&Y; zn9#A6?n8{bQ2baR20-i&;Zjv2GG|Q3*qViaDB(&?6Zp}Y@NBHb&0qh7ulWPYYxmN5 zw9p67T||D{n>4CDFRw=Wcn>@qYUpO9x3LA0%U3Do!13_Du^ExxJ{0WU04^h)tnlHj zdlwP^briI{MQQ8b@iBrw{DSd&Hi6G_#cF`=2V!-hKCe(^AV%2ONrBD2&eBr* zws}BjA~Usb!MRvFvH8Jz7cvUC(Gusjfr%=P0^s}{q&S5Vf}ukpqj06>Ez43oQO0@( zY^FLs%mPTAC6v-U!&)en)hG*67BFfVqYS9J5DSHC>m%N=i!RF#*uDPNOsaR5AmcIdf)jX=y3BVhWhu4-iPg z)Y7Sw_I7k^oK#da$Kh}|+3p(Eoq$AmB%Vkl66);iJXl^{zWUUuQ(a`Um)Q3c?GS&R zi>V3b0z|5Q#bmT$6xM;`T)`%cw??KOFK8xhqziwcxY`(S$g~ zMv^;Xax)o`bpDltX_~a}gig3ef>#P1OaQ37V(p>FZ)T9Df~Le$LszYZn5`!XpN<}@ es#)ZfGXDWER^wFBTU` literal 0 HcmV?d00001 diff --git a/src/es/akaya/res/mipmap-xhdpi/ic_launcher.png b/src/es/akaya/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..fd55393e58bd7925c1e00616fa2e381ff0879b65 GIT binary patch literal 3968 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 P00000NkvXXu0mjf49C+C literal 0 HcmV?d00001 diff --git a/src/es/akaya/res/mipmap-xxxhdpi/ic_launcher.png b/src/es/akaya/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..9ddac802a8b0d5315ed1d86efcc75951d7c9ae51 GIT binary patch literal 9073 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 + val request = chain.request() + if (!request.url.toString().startsWith("$baseUrl/serie")) return@addInterceptor chain.proceed(request) + val response = chain.proceed(request) + if (response.request.url.toString().removeSuffix("/") == baseUrl) { + throw IOException("Esta serie no se encuentra disponible") + } + return@addInterceptor response + } + .addInterceptor { chain -> + val request = chain.request() + if (!request.url.toString().startsWith("$baseUrl/search")) return@addInterceptor chain.proceed(request) + val query = request.url.fragment!! + if (csrfToken.isEmpty()) getCsrftoken() + val response = chain.proceed(addFormBody(request, query)) + if (response.code == 419) { + response.close() + getCsrftoken() + return@addInterceptor chain.proceed(addFormBody(request, query)) + } + return@addInterceptor response + } + .build() + + private fun addFormBody(request: Request, query: String): Request { + val body = FormBody.Builder() + .add("_token", csrfToken) + .add("search", query) + .build() + + return request.newBuilder() + .url(request.url.toString().substringBefore("#")) + .post(body) + .build() + } + + override fun headersBuilder() = super.headersBuilder() + .set("Referer", "$baseUrl/") + + override fun popularMangaRequest(page: Int): Request = + GET("$baseUrl/collection/bd90cb43-9bf2-4759-b8cc-c9e66a526bc6?page=$page", headers) + + override fun popularMangaSelector() = searchMangaSelector() + + override fun popularMangaNextPageSelector() = searchMangaNextPageSelector() + + override fun popularMangaFromElement(element: Element) = searchMangaFromElement(element) + + override fun latestUpdatesRequest(page: Int): Request = + GET("$baseUrl/collection/0031a504-706c-4666-9782-a4ae30cad973?page=$page", headers) + + override fun latestUpdatesSelector() = popularMangaSelector() + + override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector() + + override fun latestUpdatesFromElement(element: Element) = popularMangaFromElement(element) + + private var csrfToken: String = "" + + override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { + if (query.isEmpty()) return super.fetchSearchManga(page, query, filters) + return client.newCall(querySearchMangaRequest(query)).asObservableSuccess().map { response -> + querySearchMangaParse(response) + } + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = baseUrl.toHttpUrl().newBuilder() + + val order = filters.filterIsInstance().first().toUriPart() + val genres = filters.filterIsInstance().first().state + .filter(Genre::state) + .map(Genre::id) + + url.addPathSegment(order) + if (genres.isNotEmpty()) url.addPathSegment(genres.joinToString(",", "[", "]")) + + url.addQueryParameter("page", page.toString()) + + return GET(url.build(), headers) + } + + private fun getCsrftoken() { + val response = client.newCall(GET(baseUrl, headers)).execute() + val document = response.asJsoup() + csrfToken = document.selectFirst("meta[name=csrf-token]")!!.attr("content") + } + + private fun querySearchMangaRequest(query: String): Request = POST("$baseUrl/search#$query", headers) + + private fun querySearchMangaParse(response: Response): MangasPage { + val document = response.asJsoup() + val mangas = document.select("main > div.search-title > div.rowDiv div.list-search:has(div.inner-img-search)").map { + SManga.create().apply { + setUrlWithoutDomain(it.selectFirst("div.name-serie-search > a")!!.attr("href")) + thumbnail_url = it.selectFirst("div.inner-img-search")!!.attr("style") + .substringAfter("url(").substringBefore(")") + title = it.select("div.name-serie-search").text() + } + } + + return MangasPage(mangas, false) + } + + override fun getFilterList() = FilterList( + Filter.Header("Los filtros se ignorarán al hacer una búsqueda por texto"), + Filter.Separator(), + OrderFilter(), + GenreFilter(), + ) + + override fun searchMangaSelector() = "div.serie_items > div.library-grid-item" + + override fun searchMangaNextPageSelector() = "div.wrapper-navigation ul.pagination > li > a[rel=next]" + + override fun searchMangaFromElement(element: Element) = SManga.create().apply { + setUrlWithoutDomain(element.selectFirst("a")!!.attr("href")) + title = element.selectFirst("span > h5 > strong")!!.text() + thumbnail_url = element.selectFirst("div.inner-img")?.attr("style") + ?.substringAfter("url(")?.substringBefore(")") + ?: element.selectFirst("div.img-fluid")?.attr("abs:src") + } + + override fun mangaDetailsParse(document: Document) = SManga.create().apply { + with(document.selectFirst("header.masthead > div.container > div.row")!!) { + title = selectFirst(".serie-head-title")!!.text() + author = selectFirst("ul.persons")!!.let { element -> + element.select("li").joinToString { it.text() } + .ifEmpty { element.text() } + } + genre = selectFirst("ul.categories")!!.let { element -> + element.select("li").joinToString { it.text() } + .ifEmpty { element.text() } + } + } + thumbnail_url = document.selectFirst("meta[property=og:image]")!!.attr("content") + .replace("/chapters/", "/content/") + description = document.selectFirst("section.main div.container div.sidebar > p")!!.text() + } + + override fun chapterListRequest(manga: SManga): Request = + GET(baseUrl + manga.url + "?order_direction=desc", headers) + + override fun chapterListSelector() = "div.chapter-desktop div.chapter-item" + + override fun chapterFromElement(element: Element) = SChapter.create().apply { + setUrlWithoutDomain(element.selectFirst("div.text-left > .mt-1 > a")!!.attr("href")) + name = element.selectFirst("div.text-left > .mt-1 > a")!!.text() + date_upload = parseDate(element.selectFirst("p.date")!!.text()) + + element.selectFirst("i.ak-lock")?.let { + name = "🔒 $name" + url = "$url#lock" + } + } + + private val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale("es")) + + private fun parseDate(date: String): Long { + return try { + dateFormat.parse(date)?.time ?: 0L + } catch (e: ParseException) { + 0L + } + } + + override fun pageListRequest(chapter: SChapter): Request { + if (chapter.url.substringAfterLast("#") == "lock") { + throw Exception("Capítulo bloqueado") + } + + return super.pageListRequest(chapter) + } + + override fun pageListParse(document: Document): List { + return document.select("main.separatorReading div.container img.img-fluid").mapIndexed { i, img -> + Page(i, imageUrl = img.attr("abs:src")) + } + } + + override fun imageUrlParse(document: Document) = throw UnsupportedOperationException() +} diff --git a/src/es/akaya/src/eu/kanade/tachiyomi/extension/es/akaya/AkayaFilters.kt b/src/es/akaya/src/eu/kanade/tachiyomi/extension/es/akaya/AkayaFilters.kt new file mode 100644 index 000000000..77d1e6555 --- /dev/null +++ b/src/es/akaya/src/eu/kanade/tachiyomi/extension/es/akaya/AkayaFilters.kt @@ -0,0 +1,48 @@ +package eu.kanade.tachiyomi.extension.es.akaya + +import eu.kanade.tachiyomi.source.model.Filter + +class Genre(name: String, val id: Int) : Filter.CheckBox(name) +open class GenreList(genres: List) : Filter.Group("Géneros", genres) + +class GenreFilter : GenreList( + listOf( + Genre("Acción", 9), + Genre("Arte", 34), + Genre("Boylove (yaoi)", 18), + Genre("Comedia", 21), + Genre("Crimen", 25), + Genre("Distópico", 15), + Genre("Drama", 35), + Genre("Fantasía", 8), + Genre("Girllove (yuri)", 27), + Genre("Isekai", 19), + Genre("LGBT", 16), + Genre("Monstruos", 10), + Genre("NSFW", 17), + Genre("Psicológico", 26), + Genre("Romance", 24), + Genre("Sci Fi", 23), + Genre("Slice of life", 13), + Genre("Steampunk", 20), + Genre("Superhéroe", 11), + Genre("Supernatural", 22), + Genre("Suspenso", 14), + Genre("Thriller", 12), + + ), +) + +class OrderFilter() : UriPartFilter( + "Ordenar por", + arrayOf( + Pair("Populares", "genres"), + Pair("Recientes", "genres-bydate"), + Pair("Nombre", "genres-byname"), + ), +) + +open class UriPartFilter(displayName: String, private val vals: Array>) : + Filter.Select(displayName, vals.map { it.first }.toTypedArray()) { + fun toUriPart() = vals[state].second +}