forked from recloudstream/cloudstream
		
	fixed json pair and next episode
This commit is contained in:
		
							parent
							
								
									030f0e98c3
								
							
						
					
					
						commit
						9f9251108a
					
				
					 5 changed files with 44 additions and 33 deletions
				
			
		|  | @ -172,7 +172,7 @@ class SflixProvider(providerUrl: String, providerName: String) : MainAPI() { | ||||||
|                                     episodeTitle.removePrefix("Episode $episodeNum: "), |                                     episodeTitle.removePrefix("Episode $episodeNum: "), | ||||||
|                                     season + 1, |                                     season + 1, | ||||||
|                                     episodeNum, |                                     episodeNum, | ||||||
|                                     "$url:::$episodeData", |                                     Pair(url, episodeData).toJson(), | ||||||
|                                     fixUrl(episodePosterUrl) |                                     fixUrl(episodePosterUrl) | ||||||
|                                 ) |                                 ) | ||||||
|                             ) |                             ) | ||||||
|  | @ -249,9 +249,10 @@ class SflixProvider(providerUrl: String, providerName: String) : MainAPI() { | ||||||
|                 mapped.sources1 to "source 2", |                 mapped.sources1 to "source 2", | ||||||
|                 mapped.sources2 to "source 3", |                 mapped.sources2 to "source 3", | ||||||
|                 mapped.sourcesBackup to "source backup" |                 mapped.sourcesBackup to "source backup" | ||||||
|             ).forEach { subList -> |             ).forEach { (sources, sourceName) -> | ||||||
|                 subList.first?.forEach { |                 println("SOURCE:::: $sourceName $sources") | ||||||
|                     it?.toExtractorLink(this, subList.second)?.forEach(callback) |                 sources?.forEach { | ||||||
|  |                     it?.toExtractorLink(this, sourceName)?.forEach(callback) | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -50,9 +50,10 @@ class DownloadFileGenerator( | ||||||
|         clearCache: Boolean, |         clearCache: Boolean, | ||||||
|         isCasting: Boolean, |         isCasting: Boolean, | ||||||
|         callback: (Pair<ExtractorLink?, ExtractorUri?>) -> Unit, |         callback: (Pair<ExtractorLink?, ExtractorUri?>) -> Unit, | ||||||
|         subtitleCallback: (SubtitleData) -> Unit |         subtitleCallback: (SubtitleData) -> Unit, | ||||||
|  |         offset: Int, | ||||||
|     ): Boolean { |     ): Boolean { | ||||||
|         val meta = episodes[currentIndex] |         val meta = episodes[currentIndex + offset] | ||||||
|         callback(Pair(null, meta)) |         callback(Pair(null, meta)) | ||||||
| 
 | 
 | ||||||
|         context?.let { ctx -> |         context?.let { ctx -> | ||||||
|  |  | ||||||
|  | @ -20,6 +20,7 @@ interface IGenerator { | ||||||
|         clearCache: Boolean, |         clearCache: Boolean, | ||||||
|         isCasting: Boolean, |         isCasting: Boolean, | ||||||
|         callback: (Pair<ExtractorLink?, ExtractorUri?>) -> Unit, |         callback: (Pair<ExtractorLink?, ExtractorUri?>) -> Unit, | ||||||
|         subtitleCallback: (SubtitleData) -> Unit |         subtitleCallback: (SubtitleData) -> Unit, | ||||||
|  |         offset : Int = 0, | ||||||
|     ): Boolean |     ): Boolean | ||||||
| } | } | ||||||
|  | @ -9,6 +9,7 @@ import com.lagradost.cloudstream3.mvvm.normalSafeApiCall | ||||||
| import com.lagradost.cloudstream3.mvvm.safeApiCall | import com.lagradost.cloudstream3.mvvm.safeApiCall | ||||||
| import com.lagradost.cloudstream3.utils.ExtractorLink | import com.lagradost.cloudstream3.utils.ExtractorLink | ||||||
| import com.lagradost.cloudstream3.utils.ExtractorUri | import com.lagradost.cloudstream3.utils.ExtractorUri | ||||||
|  | import kotlinx.coroutines.Job | ||||||
| import kotlinx.coroutines.launch | import kotlinx.coroutines.launch | ||||||
| 
 | 
 | ||||||
| class PlayerGeneratorViewModel : ViewModel() { | class PlayerGeneratorViewModel : ViewModel() { | ||||||
|  | @ -50,12 +51,13 @@ class PlayerGeneratorViewModel : ViewModel() { | ||||||
|         return generator?.hasNext() |         return generator?.hasNext() | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     fun preLoadNextLinks() = viewModelScope.launch { |     fun preLoadNextLinks() { | ||||||
|         safeApiCall { |         currentJob?.cancel() | ||||||
|  |         currentJob = viewModelScope.launch { | ||||||
|             if (generator?.hasCache == true && generator?.hasNext() == true) { |             if (generator?.hasCache == true && generator?.hasNext() == true) { | ||||||
|                 generator?.next() |                 safeApiCall { | ||||||
|                 generator?.generateLinks(clearCache = false, isCasting = false, {}, {}) |                     generator?.generateLinks(clearCache = false, isCasting = false, {}, {}, offset = 1) | ||||||
|                 generator?.prev() |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | @ -86,7 +88,11 @@ class PlayerGeneratorViewModel : ViewModel() { | ||||||
|         _currentSubs.postValue(subs) |         _currentSubs.postValue(subs) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     fun loadLinks(clearCache: Boolean = false, isCasting: Boolean = false) = viewModelScope.launch { |     private var currentJob: Job? = null | ||||||
|  | 
 | ||||||
|  |     fun loadLinks(clearCache: Boolean = false, isCasting: Boolean = false) { | ||||||
|  |         currentJob?.cancel() | ||||||
|  |         currentJob = viewModelScope.launch { | ||||||
|             val currentLinks = mutableSetOf<Pair<ExtractorLink?, ExtractorUri?>>() |             val currentLinks = mutableSetOf<Pair<ExtractorLink?, ExtractorUri?>>() | ||||||
|             val currentSubs = mutableSetOf<SubtitleData>() |             val currentSubs = mutableSetOf<SubtitleData>() | ||||||
| 
 | 
 | ||||||
|  | @ -107,3 +113,4 @@ class PlayerGeneratorViewModel : ViewModel() { | ||||||
|             _currentSubs.postValue(currentSubs) |             _currentSubs.postValue(currentSubs) | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | } | ||||||
|  | @ -50,10 +50,11 @@ class RepoLinkGenerator(private val episodes: List<ResultEpisode>, private var c | ||||||
|         clearCache: Boolean, |         clearCache: Boolean, | ||||||
|         isCasting: Boolean, |         isCasting: Boolean, | ||||||
|         callback: (Pair<ExtractorLink?, ExtractorUri?>) -> Unit, |         callback: (Pair<ExtractorLink?, ExtractorUri?>) -> Unit, | ||||||
|         subtitleCallback: (SubtitleData) -> Unit |         subtitleCallback: (SubtitleData) -> Unit, | ||||||
|  |         offset : Int, | ||||||
|     ): Boolean { |     ): Boolean { | ||||||
|         val index = currentIndex |         val index = currentIndex | ||||||
|         val current = episodes[index] |         val current = episodes[index + offset] | ||||||
| 
 | 
 | ||||||
|         val currentLinkCache = if (clearCache) mutableSetOf() else linkCache[index].toMutableSet() |         val currentLinkCache = if (clearCache) mutableSetOf() else linkCache[index].toMutableSet() | ||||||
|         val currentSubsCache = if (clearCache) mutableSetOf() else subsCache[index].toMutableSet() |         val currentSubsCache = if (clearCache) mutableSetOf() else subsCache[index].toMutableSet() | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue