From 513b937e595d1bfcc62bcb50bc725e1c34f63855 Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Sun, 21 Apr 2024 06:41:51 -0500 Subject: [PATCH] fix: some sorting problems --- .../main/java/ani/dantotsu/media/MediaNameAdapter.kt | 6 +++--- .../java/ani/dantotsu/parsers/OfflineAnimeParser.kt | 11 +++++------ .../java/ani/dantotsu/parsers/OfflineMangaParser.kt | 8 ++------ 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/media/MediaNameAdapter.kt b/app/src/main/java/ani/dantotsu/media/MediaNameAdapter.kt index 07d151a0..a28bc018 100644 --- a/app/src/main/java/ani/dantotsu/media/MediaNameAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/MediaNameAdapter.kt @@ -70,7 +70,7 @@ object MediaNameAdapter { return if (seasonMatcher.find()) { seasonMatcher.group(2)?.toInt() } else { - null + text.toIntOrNull() } } @@ -93,7 +93,7 @@ object MediaNameAdapter { } } } else { - null + text.toFloatOrNull() } } @@ -139,7 +139,7 @@ object MediaNameAdapter { if (failedChapterNumberMatcher.find()) { failedChapterNumberMatcher.group(1)?.toFloat() } else { - null + text.toFloatOrNull() } } } diff --git a/app/src/main/java/ani/dantotsu/parsers/OfflineAnimeParser.kt b/app/src/main/java/ani/dantotsu/parsers/OfflineAnimeParser.kt index e35e8a8c..85d1af90 100644 --- a/app/src/main/java/ani/dantotsu/parsers/OfflineAnimeParser.kt +++ b/app/src/main/java/ani/dantotsu/parsers/OfflineAnimeParser.kt @@ -55,12 +55,11 @@ class OfflineAnimeParser : AnimeParser() { episodes.add(episode) } } - return if (episodes.isNotEmpty()) { - episodes.sortBy { MediaNameAdapter.findEpisodeNumber(it.number) } - episodes - } else { - loadEpisodesCompat(animeLink, extra, sAnime) - } + //episodes.sortBy { MediaNameAdapter.findEpisodeNumber(it.number) } + episodes.addAll(loadEpisodesCompat(animeLink, extra, sAnime)) + //filter those with the same name + return episodes.distinctBy { it.number } + .sortedBy { MediaNameAdapter.findEpisodeNumber(it.number) } } return emptyList() } diff --git a/app/src/main/java/ani/dantotsu/parsers/OfflineMangaParser.kt b/app/src/main/java/ani/dantotsu/parsers/OfflineMangaParser.kt index b943a2fa..113375ae 100644 --- a/app/src/main/java/ani/dantotsu/parsers/OfflineMangaParser.kt +++ b/app/src/main/java/ani/dantotsu/parsers/OfflineMangaParser.kt @@ -43,12 +43,8 @@ class OfflineMangaParser : MangaParser() { chapters.add(chapter) } } - return if (chapters.isNotEmpty()) { - chapters.sortBy { MediaNameAdapter.findChapterNumber(it.number) } - chapters - } else { - loadChaptersCompat(mangaLink, extra, sManga) - } + chapters.addAll(loadChaptersCompat(mangaLink, extra, sManga)) + chapters.distinctBy { it.number }.sortedBy { MediaNameAdapter.findChapterNumber(it.number) } } return emptyList() }