From 6bae0246102a7a0c36998dd92c6ac687fe6486ff Mon Sep 17 00:00:00 2001 From: Luis Alberto <37439458+lberoiza@users.noreply.github.com> Date: Sat, 16 Jul 2022 17:11:03 +0200 Subject: [PATCH] Manhwa latino Links Update (#12594) * First commit Mahnwa-Latino Extension. * manhwa-latino: Implementing find function TODO: only works with text, filter not implemented yet * manhwa-latino Add Parser to finde the information of Manhwa-Latino The parser 'ManhwaLatinoSiteParser.kt' make the whole magic to find the information of the Website. Mudularize The code and adding documentation * manhwa-latino: Adding Logos der Extension TODO: I am not to happy, i will check it later. * manhwa-latino: Adding Tags to Genre Combobox * manhwa-latino: Adding Headers to prevent error 404 The headers are necesary to prevent error 403 by downloading images. * manhwa-latino: Tags addded into Manga Description Page Status from Manga readed from Tags * manhwa-latino: Modularize Code * manhwa-latino: Adding Uploaddate for Chapters * manhwa-latino: Bug to get Chapter Number fixed * manhwa-latino: Logo 0.2 * manhwa-latino: Versionb 1.2.10 Adding Comments to ManhwaLatinoSiteParser * manhwa-latino: Remove logo_model directory * manhwa-latino: Show Seconds after Release a new Chapter * manhwa-latino: Fix for Cloudflare * manhwa-latino: Try to fix Cloudflare ByPass Adding isNsfw to build.gradle * manhwa-latino: Update from parser after website update * manhwa-latino: Deactivate lastest manga and new Client The new website from Manhwa-Latino doesnt show lastest mangas. * manhwa-latino: Adding Manifest to load url-adress The extesion will bi able to open and find mangas with the url. TODO: first version. NOT READY YET. * manhwa-latino: Fix to find Manga Status information * Manhwa-Latino: The Extension can open a Link Now the extension can recognize a link from Manhwa-Latino and show the manga from the link in the app. * Manhwa-Latino: Modularize Code and Activity for Url added * Manhwa-Latino: Add Constant-File. This file contain all contants for this extension. * manhwa-latino Url from the Website has changed. from https://manhwa-latino.com => https://manhwa-es.com * manhwa-latino Url update on manifest * manhwa-latino Fix to get ThumbnailUrl and Url from Slider The Slider from Manhwa-Latino was updated and the parser was updated as well. * manhwa-latino: Using Cloudflare Client to connect. Manhwa-Latino now Manhwa-Es are using cloudflare right now. This workaround fix make possible the connection from the app to the Website. * Update the address to every image * Update Manhwa-Latino Address * Updating popularMangaNextPageSelector Co-authored-by: Luis Beroiza <luisalberto.beroizaosses@intern.osp-dd.de> Co-authored-by: AlberyKous <extreme_rvd@hotmail.com> --- src/es/mahnwalatino/build.gradle | 2 +- .../extension/es/manhwalatino/MLConstants.kt | 2 +- .../extension/es/manhwalatino/ManhwaLatino.kt | 3 ++- .../es/manhwalatino/ManhwaLatinoSiteParser.kt | 23 +++++++++++-------- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/es/mahnwalatino/build.gradle b/src/es/mahnwalatino/build.gradle index 7a5351d47..4329e7c3b 100644 --- a/src/es/mahnwalatino/build.gradle +++ b/src/es/mahnwalatino/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Manhwa-Latino' pkgNameSuffix = 'es.manhwalatino' extClass = '.ManhwaLatino' - extVersionCode = 18 + extVersionCode = 19 isNsfw = true } diff --git a/src/es/mahnwalatino/src/eu/kanade/tachiyomi/extension/es/manhwalatino/MLConstants.kt b/src/es/mahnwalatino/src/eu/kanade/tachiyomi/extension/es/manhwalatino/MLConstants.kt index c87da3c4d..e39ba55c4 100644 --- a/src/es/mahnwalatino/src/eu/kanade/tachiyomi/extension/es/manhwalatino/MLConstants.kt +++ b/src/es/mahnwalatino/src/eu/kanade/tachiyomi/extension/es/manhwalatino/MLConstants.kt @@ -7,7 +7,7 @@ object MLConstants { const val searchMangaNextPageSelector = "link[rel=next]" const val latestUpdatesSelector = "div.slider__item" const val searchMangaSelector = "div.page-item-detail.manga" - const val popularMangaNextPageSelector = "a.nextpostslink" + const val popularMangaNextPageSelector = "nav.navigation-ajax" const val latestUpdatesNextPageSelector = "div[role=navigation] a.last" const val popularMangaSelector = "div.page-item-detail.manga" diff --git a/src/es/mahnwalatino/src/eu/kanade/tachiyomi/extension/es/manhwalatino/ManhwaLatino.kt b/src/es/mahnwalatino/src/eu/kanade/tachiyomi/extension/es/manhwalatino/ManhwaLatino.kt index 5efd0b067..03cc96928 100644 --- a/src/es/mahnwalatino/src/eu/kanade/tachiyomi/extension/es/manhwalatino/ManhwaLatino.kt +++ b/src/es/mahnwalatino/src/eu/kanade/tachiyomi/extension/es/manhwalatino/ManhwaLatino.kt @@ -28,8 +28,9 @@ class ManhwaLatino : ParsedHttpSource() { /** * Base url of the website without the trailing slash, like: http://mysite.com + * alternative site "https://manhwa-es.com" */ - override val baseUrl = "https://manhwa-es.com" + override val baseUrl = "https://manhwa-latino.com" /** * Header for Request diff --git a/src/es/mahnwalatino/src/eu/kanade/tachiyomi/extension/es/manhwalatino/ManhwaLatinoSiteParser.kt b/src/es/mahnwalatino/src/eu/kanade/tachiyomi/extension/es/manhwalatino/ManhwaLatinoSiteParser.kt index c01766c2b..aeecd4b16 100644 --- a/src/es/mahnwalatino/src/eu/kanade/tachiyomi/extension/es/manhwalatino/ManhwaLatinoSiteParser.kt +++ b/src/es/mahnwalatino/src/eu/kanade/tachiyomi/extension/es/manhwalatino/ManhwaLatinoSiteParser.kt @@ -38,7 +38,7 @@ class ManhwaLatinoSiteParser( * Type of manga */ enum class MangaType { - ALL, ADULT, GAY; + ALL, ADULT, GAY, FIN; // Static Enum Function companion object { @@ -46,6 +46,7 @@ class ManhwaLatinoSiteParser( for (type in mangaTypes) { when (type) { ADULT, GAY -> return true + else -> {} } } return false @@ -57,6 +58,7 @@ class ManhwaLatinoSiteParser( return when (this) { ADULT -> "adult" GAY -> "gay" + FIN -> "fin" ALL -> "" } } @@ -75,7 +77,7 @@ class ManhwaLatinoSiteParser( manga.url = getUrlWithoutDomain(element.select(MLConstants.latestUpdatesSelectorUrl).first().attr("abs:href")) manga.title = element.select(MLConstants.latestUpdatesSelectorTitle).text().trim() - manga.thumbnail_url = element.select(MLConstants.latestUpdatesSelectorThumbnailUrl).attr("abs:data-src").replace("//", "/") + manga.thumbnail_url = element.select(MLConstants.latestUpdatesSelectorThumbnailUrl).attr("abs:src").replace("//", "/") return manga } @@ -113,7 +115,7 @@ class ManhwaLatinoSiteParser( val manga = SManga.create() manga.url = getUrlWithoutDomain(it.select(MLConstants.searchPageUrlHTMLSelector).attr("abs:href")) manga.title = it.select(MLConstants.searchPageTitleHTMLSelector).text().trim() - manga.thumbnail_url = it.select(MLConstants.searchPageThumbnailUrlMangaHTMLSelector).attr("abs:data-src") + manga.thumbnail_url = it.select(MLConstants.searchPageThumbnailUrlMangaHTMLSelector).attr("abs:src") manga } } @@ -133,7 +135,7 @@ class ManhwaLatinoSiteParser( val manga = SManga.create() manga.url = getUrlWithoutDomain(element.select(MLConstants.popularGenreUrlHTMLSelector).attr("abs:href")) manga.title = element.select(MLConstants.popularGenreTitleHTMLSelector).text().trim() - manga.thumbnail_url = element.select(MLConstants.popularGenreThumbnailUrlMangaHTMLSelector).attr("abs:data-src") + manga.thumbnail_url = element.select(MLConstants.popularGenreThumbnailUrlMangaHTMLSelector).attr("abs:src") return manga } @@ -157,9 +159,9 @@ class ManhwaLatinoSiteParser( manga.title = titleElements.last().ownText().trim() manga.thumbnail_url = - document.select(MLConstants.mangaDetailsThumbnailUrlHTMLSelector).attr("abs:data-src") + document.select(MLConstants.mangaDetailsThumbnailUrlHTMLSelector).attr("abs:src") manga.description = descriptionList.joinToString("\n") - manga.author = if (author.isBlank()) "Autor Desconocido" else author + manga.author = author.ifBlank { "Autor Desconocido" } manga.artist = artist manga.genre = genreTagList.joinToString(", ") manga.status = findMangaStatus(tagList, document.select(MLConstants.mangaDetailsAttributes)) @@ -180,6 +182,8 @@ class ManhwaLatinoSiteParser( types.add(MangaType.ADULT) if (badge.hasClass(MangaType.GAY.getBadge())) types.add(MangaType.GAY) + if (badge.hasClass(MangaType.FIN.getBadge())) + types.add(MangaType.FIN) } return types } @@ -192,7 +196,7 @@ class ManhwaLatinoSiteParser( val key = element.select("div.summary-heading h5")?.text()?.trim() val value = element.select("div.summary-content")?.text()?.trim() - if (key == "Estado") { + if (key == "Estado del comic") { return when (value) { "Publicandose" -> SManga.ONGOING else -> SManga.UNKNOWN @@ -293,7 +297,7 @@ class ManhwaLatinoSiteParser( fun getPageListParse(response: Response): List<Page> { val list = response.asJsoup().select(MLConstants.pageListParseSelector).mapIndexed { index, imgElement -> - Page(index, "", imgElement.attr("abs:data-src")) + Page(index, "", imgElement.attr("abs:src")) } return list } @@ -331,9 +335,8 @@ class ManhwaLatinoSiteParser( fun searchMangaParse(response: Response): MangasPage { val document = response.asJsoup() val hasNextPages = hasNextPages(document) - val mangas: List<SManga> - mangas = when (searchType) { + val mangas: List<SManga> = when (searchType) { SearchType.SEARCH_FREE -> getMangasFromSearchSite(document) SearchType.SEARCH_FILTER ->