From f07c10737fc41f171075eecd2d28f418279d7c96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Dussauge?= Date: Sun, 20 Jun 2021 14:35:54 +0200 Subject: [PATCH] Fix ScranTradUnion duplicate pages (#7694) (#7760) --- src/fr/scantradunion/build.gradle | 2 +- .../extension/fr/scantradunion/ScantradUnion.kt | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/fr/scantradunion/build.gradle b/src/fr/scantradunion/build.gradle index 1519d1e5e..7b1f350c0 100644 --- a/src/fr/scantradunion/build.gradle +++ b/src/fr/scantradunion/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Scantrad Union' pkgNameSuffix = 'fr.scantradunion' extClass = '.ScantradUnion' - extVersionCode = 1 + extVersionCode = 2 libVersion = '1.2' } diff --git a/src/fr/scantradunion/src/eu/kanade/tachiyomi/extension/fr/scantradunion/ScantradUnion.kt b/src/fr/scantradunion/src/eu/kanade/tachiyomi/extension/fr/scantradunion/ScantradUnion.kt index a6fa56044..b43f05ca2 100644 --- a/src/fr/scantradunion/src/eu/kanade/tachiyomi/extension/fr/scantradunion/ScantradUnion.kt +++ b/src/fr/scantradunion/src/eu/kanade/tachiyomi/extension/fr/scantradunion/ScantradUnion.kt @@ -89,14 +89,20 @@ class ScantradUnion : ParsedHttpSource() { override fun pageListParse(document: Document): List { return document.select("#webtoon a img") - .mapIndexed { index: Int, imgElem: Element -> + .map { imgElem: Element -> // In webtoon mode, images have an src attribute only. // In manga mode, images have a data-src attribute that contains the src val imgElemDataSrc = imgElem.attr("data-src") val imgElemSrc = imgElem.attr("src") - val imgUrl = if (imgElemDataSrc.isNullOrBlank()) imgElemSrc else imgElemDataSrc - + if (imgElemDataSrc.isNullOrBlank()) imgElemSrc else imgElemDataSrc + } + // Since June 2021, webtoon html has both elements sometimes (data-src and src) + // So there are duplicates when fetching pages + // https://github.com/tachiyomiorg/tachiyomi-extensions/issues/7694 + // The distinct() prevent this problem when it happens + .distinct() + .mapIndexed { index: Int, imgUrl: String -> Page(index, "", imgUrl) } }