From 642004db5a7adc3ed5666fed3ef47792d4eb6ee9 Mon Sep 17 00:00:00 2001 From: KingLucius Date: Sat, 25 Jan 2025 16:45:03 +0200 Subject: [PATCH] feat(Extensions): Prefer last registered ExtractorAPI (#1506) * feat(Extensions): Prefer last registered ExtractorAPI * Iterate in Reverse * Update ExtractorApi.kt --- .../com/lagradost/cloudstream3/utils/ExtractorApi.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt index 4fb0a5174..fb1d36885 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt @@ -712,7 +712,10 @@ suspend fun loadExtractor( ): Boolean { val currentUrl = unshortenLinkSafe(url) val compareUrl = currentUrl.lowercase().replace(schemaStripRegex, "") - for (extractor in extractorApis) { + + // Iterate in reverse order so the new registered ExtractorApi takes priority + for (index in extractorApis.lastIndex downTo 0) { + val extractor = extractorApis[index] if (compareUrl.startsWith(extractor.mainUrl.replace(schemaStripRegex, ""))) { extractor.getSafeUrl(currentUrl, referer, subtitleCallback, callback) return true @@ -720,7 +723,8 @@ suspend fun loadExtractor( } // this is to match mirror domains - like example.com, example.net - for (extractor in extractorApis) { + for (index in extractorApis.lastIndex downTo 0) { + val extractor = extractorApis[index] if (FuzzySearch.partialRatio( extractor.mainUrl, currentUrl