Fixed ihavenotv, closes #1292

This commit is contained in:
Blatzar 2022-07-16 21:35:58 +02:00
parent bb7400638a
commit 30f2b4b782
2 changed files with 16 additions and 3 deletions

View file

@ -5,6 +5,7 @@ import com.lagradost.cloudstream3.mvvm.Resource
import com.lagradost.cloudstream3.mvvm.safeApiCall import com.lagradost.cloudstream3.mvvm.safeApiCall
import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorApi
import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.schemaStripRegex
import org.schabi.newpipe.extractor.ServiceList import org.schabi.newpipe.extractor.ServiceList
import org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor import org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeStreamExtractor
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeStreamLinkHandlerFactory import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeStreamLinkHandlerFactory
@ -35,7 +36,11 @@ open class YoutubeExtractor : ExtractorApi() {
val streams = safeApiCall { val streams = safeApiCall {
val streams = ytVideos[url] ?: let { val streams = ytVideos[url] ?: let {
val link = val link =
YoutubeStreamLinkHandlerFactory.getInstance().fromUrl(url) YoutubeStreamLinkHandlerFactory.getInstance().fromUrl(
url.replace(
schemaStripRegex, ""
)
)
val s = object : YoutubeStreamExtractor( val s = object : YoutubeStreamExtractor(
ServiceList.YouTube, ServiceList.YouTube,

View file

@ -92,6 +92,12 @@ data class ExtractorSubtitleLink(
override val headers: Map<String, String> = mapOf() override val headers: Map<String, String> = mapOf()
) : VideoDownloadManager.IDownloadableMinimum ) : VideoDownloadManager.IDownloadableMinimum
/**
* Removes https:// and www.
* To match urls regardless of schema, perhaps Uri() can be used?
*/
val schemaStripRegex = Regex("""^(https:|)//(www\.|)""")
enum class Qualities(var value: Int) { enum class Qualities(var value: Int) {
Unknown(400), Unknown(400),
P144(144), // 144p P144(144), // 144p
@ -146,7 +152,9 @@ suspend fun loadExtractor(
callback: (ExtractorLink) -> Unit callback: (ExtractorLink) -> Unit
): Boolean { ): Boolean {
for (extractor in extractorApis) { for (extractor in extractorApis) {
if (url.startsWith(extractor.mainUrl)) { if (url.replace(schemaStripRegex, "")
.startsWith(extractor.mainUrl.replace(schemaStripRegex, ""))
) {
extractor.getSafeUrl(url, referer)?.forEach(callback) extractor.getSafeUrl(url, referer)?.forEach(callback)
return true return true
} }