mirror of
				https://github.com/recloudstream/cloudstream.git
				synced 2024-08-15 01:53:11 +00:00 
			
		
		
		
	Fix VoeExtractor
This commit is contained in:
		
							parent
							
								
									1226426389
								
							
						
					
					
						commit
						cf22ada266
					
				
					 1 changed files with 18 additions and 15 deletions
				
			
		|  | @ -13,39 +13,42 @@ open class VoeExtractor : ExtractorApi() { | |||
|     override val requiresReferer = false | ||||
| 
 | ||||
|     private data class ResponseLinks( | ||||
|         @JsonProperty("hls") val url: String?, | ||||
|         @JsonProperty("hls") val hls: String?, | ||||
|         @JsonProperty("mp4") val mp4: String?, | ||||
|         @JsonProperty("video_height") val label: Int? | ||||
|         //val type: String // Mp4 | ||||
|     ) | ||||
| 
 | ||||
|     override suspend fun getUrl(url: String, referer: String?): List<ExtractorLink> { | ||||
|         val extractedLinksList: MutableList<ExtractorLink> = mutableListOf() | ||||
|         val doc = app.get(url).text | ||||
|         if (doc.isNotBlank()) { | ||||
|             val start = "const sources =" | ||||
|             var src = doc.substring(doc.indexOf(start)) | ||||
|             src = src.substring(start.length, src.indexOf(";")) | ||||
|         val html = app.get(url).text | ||||
|         if (html.isNotBlank()) { | ||||
|             val src = html.substringAfter("const sources =").substringBefore(";") | ||||
|                 // Remove last comma, it is not proper json otherwise | ||||
|                 .replace("0,", "0") | ||||
|                 .trim() | ||||
|                 // Make json use the proper quotes | ||||
|                 .replace("'", "\"") | ||||
| 
 | ||||
|             //Log.i(this.name, "Result => (src) ${src}") | ||||
|             parseJson<ResponseLinks?>(src)?.let { voelink -> | ||||
|                 //Log.i(this.name, "Result => (voelink) ${voelink}") | ||||
|                 val linkUrl = voelink.url | ||||
|                 val linkLabel = voelink.label?.toString() ?: "" | ||||
|             parseJson<ResponseLinks?>(src)?.let { voeLink -> | ||||
|                 //Log.i(this.name, "Result => (voeLink) ${voeLink}") | ||||
| 
 | ||||
|                 // Always defaults to the hls link, but returns the mp4 if null | ||||
|                 val linkUrl = voeLink.hls ?: voeLink.mp4 | ||||
|                 val linkLabel = voeLink.label?.toString() ?: "" | ||||
|                 if (!linkUrl.isNullOrEmpty()) { | ||||
|                     extractedLinksList.add( | ||||
|                     return listOf( | ||||
|                         ExtractorLink( | ||||
|                             name = this.name, | ||||
|                             source = this.name, | ||||
|                             url = linkUrl, | ||||
|                             quality = getQualityFromName(linkLabel), | ||||
|                             referer = url, | ||||
|                             isM3u8 = true | ||||
|                             isM3u8 = voeLink.hls != null | ||||
|                         ) | ||||
|                     ) | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return extractedLinksList | ||||
|         return emptyList() | ||||
|     } | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue