diff --git a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/MangaDexHelper.kt b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/MangaDexHelper.kt index a85afa7d6..68a6edfe5 100644 --- a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/MangaDexHelper.kt +++ b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/MangaDexHelper.kt @@ -61,21 +61,16 @@ class MangaDexHelper() { fun getLatestChapterOffset(page: Int): String = (MDConstants.latestChapterLimit * (page - 1)).toString() /** - * Remove bbcode tags as well as parses any html characters in description or + * Remove markdown links as well as parse any html characters in description or * chapter name to actual characters for example ♥ will show ♥ */ fun cleanString(string: String): String { - val bbRegex = - """\[(\w+)[^]]*](.*?)\[/\1]""".toRegex() - var intermediate = string - .replace("[list]", "") - .replace("[/list]", "") - .replace("[*]", "") - // Recursively remove nested bbcode - while (bbRegex.containsMatchIn(intermediate)) { - intermediate = intermediate.replace(bbRegex, "$2") - } - return Parser.unescapeEntities(intermediate, false) + val unescapedString = Parser.unescapeEntities(string, false) + + return unescapedString + .substringBefore("---") + .replace(markdownLinksRegex, "$1") + .trim() } /** @@ -112,6 +107,8 @@ class MangaDexHelper() { val USE_CACHE = CacheControl.Builder() .maxStale(Integer.MAX_VALUE, TimeUnit.SECONDS) .build() + + val markdownLinksRegex = "\\[([^]]+)\\]\\(([^)]+)\\)".toRegex() } // Check the token map to see if the md@home host is still valid