diff --git a/src/en/xkcd/build.gradle b/src/en/xkcd/build.gradle index 5e0c39659..5287edba3 100644 --- a/src/en/xkcd/build.gradle +++ b/src/en/xkcd/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'xkcd' pkgNameSuffix = 'en.xkcd' extClass = '.Xkcd' - extVersionCode = 8 + extVersionCode = 9 libVersion = '1.2' } diff --git a/src/en/xkcd/src/eu/kanade/tachiyomi/extension/en/xkcd/Xkcd.kt b/src/en/xkcd/src/eu/kanade/tachiyomi/extension/en/xkcd/Xkcd.kt index 4e7347f21..bb2480f4b 100644 --- a/src/en/xkcd/src/eu/kanade/tachiyomi/extension/en/xkcd/Xkcd.kt +++ b/src/en/xkcd/src/eu/kanade/tachiyomi/extension/en/xkcd/Xkcd.kt @@ -59,12 +59,22 @@ class Xkcd : ParsedHttpSource() { override fun pageListParse(document: Document): List<Page> { val titleWords: Sequence<String> val altTextWords: Sequence<String> + val interactiveText = listOf( + "To experience the", "interactive version of this comic,", + "open it in WebView/browser." + ) + .joinToString(separator = "%0A") + .replace(" ", "%20") // transforming filename from info.0.json isn't guaranteed to work, stick to html // if an HD image is available it'll be the srcset attribute + // if img tag is empty then it is an interactive comic viewable only in browser val image = document.select("div#comic img").let { - if (it.hasAttr("srcset")) it.attr("abs:srcset").substringBefore(" ") - else it.attr("abs:src") + when { + it == null || it.isEmpty() -> baseAltTextUrl + interactiveText + baseAltTextPostUrl + it.hasAttr("srcset") -> it.attr("abs:srcset").substringBefore(" ") + else -> it.attr("abs:src") + } } // create a text image for the alt text