diff --git a/app/src/main/java/ani/dantotsu/media/anime/AnimeNameAdapter.kt b/app/src/main/java/ani/dantotsu/media/anime/AnimeNameAdapter.kt index f64f2dc4..6e69a17c 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/AnimeNameAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/AnimeNameAdapter.kt @@ -6,7 +6,9 @@ import java.util.regex.Pattern class AnimeNameAdapter { companion object { const val episodeRegex = - "(episode|ep|e)[\\s:.\\-]*([\\d]+\\.?[\\d]*)[\\s:.\\-]*\\(?\\s*(sub|subbed|dub|dubbed)*\\s*\\)?\\s*|(\\b\\d+\\b)" + "(episode|ep|e)[\\s:.\\-]*([\\d]+\\.?[\\d]*)[\\s:.\\-]*\\(?\\s*(sub|subbed|dub|dubbed)*\\s*\\)?\\s*" + const val failedEpisodeNumberRegex = + "(? + mr.value.replaceFirst(mr.groupValues[1], "") + }.ifEmpty { removedNumber } + } else { + removedNumber + } } fun removeEpisodeNumberCompletely(text: String): String { val regexPattern = Regex(episodeRegex, RegexOption.IGNORE_CASE) - return text.replace(regexPattern, "") + val removedNumber = text.replace(regexPattern, "").ifEmpty { + text + } + return if (removedNumber.equals(text, true)) { + val failedEpisodeNumberPattern: Regex = Regex(failedEpisodeNumberRegex, RegexOption.IGNORE_CASE) + failedEpisodeNumberPattern.replace(removedNumber) { mr -> + mr.value.replaceFirst(mr.groupValues[1], "") + }.ifEmpty { removedNumber } + } else { + removedNumber + } } } }