From 61b0ab972dabeeedabe7c73981fc683404ab5e21 Mon Sep 17 00:00:00 2001 From: Chopper <156493704+ttony2chopper@users.noreply.github.com> Date: Tue, 4 Jun 2024 02:17:56 -0300 Subject: [PATCH] Add LadronCorps (#3367) * Add LadronCorps * Cleanup * Rename source * Add rateLimit * Add support for deep linking * Fix searchManga * Add icons * Cleanup * Add update_strategy * Add chapter date * Add status * Fix package name * Cleanup * Rename function * Cleanup * Fix days parser * Change to kotlinx serialization * Resolve url paths in DTO * Remove JSONObject * Throws error field missing --- src/es/ladroncorps/AndroidManifest.xml | 22 ++ src/es/ladroncorps/build.gradle | 7 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 6357 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3282 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 9722 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 18723 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 29601 bytes .../extension/es/ladroncorps/LadronCorps.kt | 189 ++++++++++++++++++ .../es/ladroncorps/LadronCorpsDto.kt | 100 +++++++++ .../es/ladroncorps/LadronCorpsUrlActivity.kt | 37 ++++ 10 files changed, 355 insertions(+) create mode 100644 src/es/ladroncorps/AndroidManifest.xml create mode 100644 src/es/ladroncorps/build.gradle create mode 100644 src/es/ladroncorps/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/es/ladroncorps/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/es/ladroncorps/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/es/ladroncorps/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/es/ladroncorps/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/es/ladroncorps/src/eu/kanade/tachiyomi/extension/es/ladroncorps/LadronCorps.kt create mode 100644 src/es/ladroncorps/src/eu/kanade/tachiyomi/extension/es/ladroncorps/LadronCorpsDto.kt create mode 100644 src/es/ladroncorps/src/eu/kanade/tachiyomi/extension/es/ladroncorps/LadronCorpsUrlActivity.kt diff --git a/src/es/ladroncorps/AndroidManifest.xml b/src/es/ladroncorps/AndroidManifest.xml new file mode 100644 index 000000000..a043e272b --- /dev/null +++ b/src/es/ladroncorps/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + diff --git a/src/es/ladroncorps/build.gradle b/src/es/ladroncorps/build.gradle new file mode 100644 index 000000000..fb7785ca5 --- /dev/null +++ b/src/es/ladroncorps/build.gradle @@ -0,0 +1,7 @@ +ext { + extName = 'Ladron Corps' + extClass = '.LadronCorps' + extVersionCode = 1 +} + +apply from: "$rootDir/common.gradle" diff --git a/src/es/ladroncorps/res/mipmap-hdpi/ic_launcher.png b/src/es/ladroncorps/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d8364bfa037bdb67eb70702c3f1c5bdaf9783ee0 GIT binary patch literal 6357 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 XJuk@p$6f`200000NkvXXu0mjfL{Q4$ literal 0 HcmV?d00001 diff --git a/src/es/ladroncorps/res/mipmap-mdpi/ic_launcher.png b/src/es/ladroncorps/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a1edef3087d90e7dfe6f80dea1ae088232c45d6f GIT binary patch literal 3282 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 V-7k3R->WwPsh{# literal 0 HcmV?d00001 diff --git a/src/es/ladroncorps/src/eu/kanade/tachiyomi/extension/es/ladroncorps/LadronCorps.kt b/src/es/ladroncorps/src/eu/kanade/tachiyomi/extension/es/ladroncorps/LadronCorps.kt new file mode 100644 index 000000000..607b7552e --- /dev/null +++ b/src/es/ladroncorps/src/eu/kanade/tachiyomi/extension/es/ladroncorps/LadronCorps.kt @@ -0,0 +1,189 @@ +package eu.kanade.tachiyomi.extension.es.ladroncorps + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.interceptor.rateLimit +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.MangasPage +import eu.kanade.tachiyomi.source.model.Page +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.source.model.UpdateStrategy +import eu.kanade.tachiyomi.source.online.HttpSource +import eu.kanade.tachiyomi.util.asJsoup +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json +import okhttp3.Headers +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.OkHttpClient +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Element +import rx.Observable +import uy.kohesive.injekt.injectLazy +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Locale + +class LadronCorps : HttpSource() { + override val name: String = "Ladron Corps" + + override val baseUrl: String = "https://www.ladroncorps.com" + + override val lang: String = "es" + + override val supportsLatest: Boolean = false + + override val client: OkHttpClient = network.cloudflareClient.newBuilder() + .rateLimit(3) + .build() + + private val json by injectLazy() + + private val authorization: String by lazy { + val response = client.newCall(GET("$baseUrl/_api/v2/dynamicmodel", headers)).execute() + val authDto = response.parseAs() + authDto.randomToken() + } + + private val apiHeaders: Headers by lazy { + headers.newBuilder() + .set("Authorization", authorization) + .build() + } + + override fun latestUpdatesRequest(page: Int): Request = + throw UnsupportedOperationException() + + override fun latestUpdatesParse(response: Response): MangasPage = + throw UnsupportedOperationException() + + override fun popularMangaParse(response: Response): MangasPage { + val posts = response.parseAs().posts + + val mangas = posts.map { + SManga.create().apply { + title = it.title + thumbnail_url = "${it.cover.url}" + url = "${it.url}" + } + } + return MangasPage(mangas, mangas.isNotEmpty()) + } + + override fun popularMangaRequest(page: Int): Request { + val url = "$baseUrl/blog-frontend-adapter-public/v2/post-feed-page".toHttpUrl().newBuilder() + .addQueryParameter("includeContent", "false") + .addQueryParameter("languageCode", lang) + .addQueryParameter("page", "$page") + .addQueryParameter("pageSize", "20") + .addQueryParameter("type", "ALL_POSTS") + .build() + return GET(url, apiHeaders) + } + + override fun searchMangaParse(response: Response): MangasPage { + val posts = response.parseAs().posts + + val mangas = posts.map { + SManga.create().apply { + title = it.title + thumbnail_url = it.cover.url + url = it.url + } + } + return MangasPage(mangas, false) + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = "$baseUrl/_api/communities-blog-node-api/_api/search".toHttpUrl().newBuilder() + .addQueryParameter("q", query) + .build() + return GET(url, apiHeaders) + } + + override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { + if (query.startsWith(URL_SEARCH_PREFIX)) { + val manga = SManga.create().apply { + url = "/post/${query.substringAfter(URL_SEARCH_PREFIX)}" + } + return fetchMangaDetails(manga).asObservable().map { + MangasPage(listOf(it), false) + } + } + + return super.fetchSearchManga(page, query, filters) + } + + override fun mangaDetailsParse(response: Response) = SManga.create().apply { + val document = response.asJsoup() + title = document.selectFirst("h1")!!.text() + description = document.select("div[data-hook='post-description'] p > span") + .joinToString("\n".repeat(2)) { it.text() } + + genre = document.select("#post-footer li a") + .joinToString { it.text() } + + update_strategy = UpdateStrategy.ONLY_FETCH_ONCE + + status = SManga.COMPLETED + + setUrlWithoutDomain(document.location()) + } + + override fun chapterListParse(response: Response): List { + val document = response.asJsoup() + return listOf( + SChapter.create().apply { + name = "Capitulo único" + date_upload = parseDate(document.selectFirst("span[data-hook='time-ago']")?.text() ?: "") + setUrlWithoutDomain(document.location()) + }, + ) + } + + override fun pageListParse(response: Response): List { + val document = response.asJsoup() + val selectors = "figure[data-hook='imageViewer'] img, img[data-hook='gallery-item-image-img']" + return document.select(selectors).mapIndexed { index, element -> + Page(index, document.location(), imageUrl = element.imgAttr()) + } + } + + override fun imageUrlParse(response: Response): String = + throw UnsupportedOperationException() + + private fun Element.imgAttr(): String = when { + hasAttr("data-pin-media") -> absUrl("data-pin-media") + else -> absUrl("src") + } + + private fun parseDate(date: String): Long = + try { dateFormat.parse(dateSanitize(date))!!.time } catch (_: Exception) { parseRelativeDate(date) } + + private fun parseRelativeDate(date: String): Long { + val number = RELATIVE_DATE_REGEX.find(date)?.value?.toIntOrNull() ?: return 0 + val cal = Calendar.getInstance() + return when { + date.contains("día", ignoreCase = true) -> cal.apply { add(Calendar.DATE, -number) }.timeInMillis + date.contains("mes", ignoreCase = true) -> cal.apply { add(Calendar.MONTH, -number) }.timeInMillis + date.contains("año", ignoreCase = true) -> cal.apply { add(Calendar.YEAR, -number) }.timeInMillis + else -> 0 + } + } + + private fun dateSanitize(date: String): String = + if (D_MMM_REGEX.matches(date)) "$date ${Calendar.getInstance().get(Calendar.YEAR)}" else date + + private inline fun Response.parseAs(): T = use { + json.decodeFromString(body.string()) + } + + companion object { + const val URL_SEARCH_PREFIX = "slug:" + + val RELATIVE_DATE_REGEX = """(\d+)""".toRegex() + val D_MMM_REGEX = """\d+ \w+$""".toRegex() + + val dateFormat = SimpleDateFormat("d MMM yyyy", Locale("es")) + } +} diff --git a/src/es/ladroncorps/src/eu/kanade/tachiyomi/extension/es/ladroncorps/LadronCorpsDto.kt b/src/es/ladroncorps/src/eu/kanade/tachiyomi/extension/es/ladroncorps/LadronCorpsDto.kt new file mode 100644 index 000000000..139e6714e --- /dev/null +++ b/src/es/ladroncorps/src/eu/kanade/tachiyomi/extension/es/ladroncorps/LadronCorpsDto.kt @@ -0,0 +1,100 @@ +package eu.kanade.tachiyomi.extension.es.ladroncorps + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +class AuthDto( + @SerialName("apps") + val tokens: Map, +) { + fun randomToken(): String { + return tokens.values.random().value + } + + @Serializable + class TokenDto( + @SerialName("instance") + val value: String, + ) +} + +@Serializable +class PopularMangaContainerDto(val postFeedPage: Post) { + val posts: List get() = postFeedPage.posts.posts + + @Serializable + class Post(val posts: Posts) + + @Serializable + class Posts(val posts: List) +} + +@Serializable +class PopularMangaDto( + var title: String, + @SerialName("coverMedia") + val cover: CoverDto, + val url: UrlDto, +) { + @Serializable + class CoverDto( + @SerialName("image") + val url: UrlDto, + ) + + /* + * There are two fields available to get the url; when the url field is missing, + * the path field contains the url path + * */ + @Serializable + class UrlDto( + private val url: String?, + private val path: String?, + ) { + override fun toString(): String { + return url ?: path!! + } + } +} + +@Serializable +class SearchDto( + val posts: List, +) + +@Serializable +class SearchMangaDto( + var title: String, + @SerialName("coverImage") + val cover: CoverDto, + private val slugs: List, +) { + val slug: String get() = slugs.first() + val url: String get() = "/post/$slug" + + @Serializable + class CoverDto( + private val src: SrcDto, + ) { + val url: String get() = "$STATIC_MEDIA_URL/$src" + } + + /* + * There are two fields available to get src data; when id is missing, + * file_name contains the src path + * */ + @Serializable + class SrcDto( + private val id: String?, + private val file_name: String?, + ) { + override fun toString(): String { + return id ?: file_name!! + } + } + + companion object { + const val STATIC_MEDIA_URL = "https://static.wixstatic.com/media" + } +} diff --git a/src/es/ladroncorps/src/eu/kanade/tachiyomi/extension/es/ladroncorps/LadronCorpsUrlActivity.kt b/src/es/ladroncorps/src/eu/kanade/tachiyomi/extension/es/ladroncorps/LadronCorpsUrlActivity.kt new file mode 100644 index 000000000..b5d7aa21c --- /dev/null +++ b/src/es/ladroncorps/src/eu/kanade/tachiyomi/extension/es/ladroncorps/LadronCorpsUrlActivity.kt @@ -0,0 +1,37 @@ +package eu.kanade.tachiyomi.extension.es.ladroncorps + +import android.app.Activity +import android.content.ActivityNotFoundException +import android.content.Intent +import android.os.Bundle +import android.util.Log +import kotlin.system.exitProcess + +class LadronCorpsUrlActivity : Activity() { + + private val tag = javaClass.simpleName + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val pathSegments = intent?.data?.pathSegments + if (pathSegments != null && pathSegments.size > 1) { + val item = pathSegments[1] + val mainIntent = Intent().apply { + action = "eu.kanade.tachiyomi.SEARCH" + putExtra("query", "${LadronCorps.URL_SEARCH_PREFIX}$item") + putExtra("filter", packageName) + } + + try { + startActivity(mainIntent) + } catch (e: ActivityNotFoundException) { + Log.e(tag, e.toString()) + } + } else { + Log.e(tag, "could not parse uri from intent $intent") + } + + finish() + exitProcess(0) + } +}