From b9013ae3d8efa262eb609bd1b0d9c14e4423dbde Mon Sep 17 00:00:00 2001 From: hexated Date: Sun, 12 Mar 2023 23:12:15 +0700 Subject: [PATCH] sora: fix indexing --- SoraStream/build.gradle.kts | 2 +- .../main/kotlin/com/hexated/SoraExtractor.kt | 8 +------- .../src/main/kotlin/com/hexated/SoraUtils.kt | 18 ++++++------------ 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/SoraStream/build.gradle.kts b/SoraStream/build.gradle.kts index aa277d35..7a874746 100644 --- a/SoraStream/build.gradle.kts +++ b/SoraStream/build.gradle.kts @@ -1,5 +1,5 @@ // use an integer for version numbers -version = 102 +version = 103 cloudstream { diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt index 46db12a4..67947d5b 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt @@ -2521,7 +2521,7 @@ object SoraExtractor : SoraStream() { season, episode, true - ) + ) && media.name?.contains("XXX") == false } files?.map { file -> @@ -2795,12 +2795,6 @@ class FileMoonIn : Filesim() { override val name = "FileMoon" } -data class TitleSlug( - val dotSlug: String? = null, - val spaceSlug: String? = null, - val slashSlug: String? = null, -) - data class FDMovieIFrame( val link: String, val quality: String, diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt b/SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt index 27094bfd..63ea8381 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraUtils.kt @@ -774,13 +774,9 @@ fun getEpisodeSlug( } } -fun getTitleSlug(title: String? = null): TitleSlug { +fun getTitleSlug(title: String? = null): Pair { val slug = title.createSlug() - return TitleSlug( - slug?.replace("-", "."), - slug?.replace("-", " "), - slug?.replace("-", "_"), - ) + return slug?.replace("-", "\\W") to title?.replace(" ", "_") } fun getIndexQuery( @@ -837,17 +833,15 @@ fun matchingIndex( episode: Int?, include720: Boolean = false ): Boolean { - val (dotSlug, spaceSlug, slashSlug) = getTitleSlug(title) + val (wSlug, dwSlug) = getTitleSlug(title) val (seasonSlug, episodeSlug) = getEpisodeSlug(season, episode) return (if (season == null) { - mediaName?.contains("$year") == true + mediaName?.contains(Regex("(?i)(?:$wSlug|$dwSlug).*$year")) == true } else { - mediaName?.contains(Regex("(?i)S${seasonSlug}.?E${episodeSlug}")) == true + mediaName?.contains(Regex("(?i)(?:$wSlug|$dwSlug).*S${seasonSlug}.?E${episodeSlug}")) == true }) && mediaName?.contains( if (include720) Regex("(?i)(2160p|1080p|720p)") else Regex("(?i)(2160p|1080p)") - ) == true && ((mediaMimeType in mimeType) || mediaName.contains(Regex("\\.mkv|\\.mp4|\\.avi"))) && (mediaName.contains( - title?.replace(" ", "_").toString() - ) || mediaName.contains(Regex("(?i)($dotSlug|$spaceSlug|$slashSlug)"))) + ) == true && ((mediaMimeType in mimeType) || mediaName.contains(Regex("\\.mkv|\\.mp4|\\.avi"))) } suspend fun getConfig(): BaymoviesConfig {