mirror of
				https://github.com/recloudstream/cloudstream.git
				synced 2024-08-15 01:53:11 +00:00 
			
		
		
		
	homepage
This commit is contained in:
		
							parent
							
								
									f5d7da43ed
								
							
						
					
					
						commit
						693edef893
					
				
					 1 changed files with 48 additions and 6 deletions
				
			
		|  | @ -24,6 +24,46 @@ class WcoProvider : MainAPI() { | |||
|         get() = "WCO Stream" | ||||
|     override val hasQuickSearch: Boolean | ||||
|         get() = true | ||||
|     override val hasMainPage: Boolean | ||||
|         get() = true | ||||
| 
 | ||||
|     override fun getMainPage(): HomePageResponse? { | ||||
|         val urls = listOf( | ||||
|             Pair("$mainUrl/ajax/list/recently_updated?type=tv", "Recently Updated Anime"), | ||||
|             Pair("$mainUrl/ajax/list/recently_updated?type=movie", "Recently Updated Movies"), | ||||
|             Pair("$mainUrl/ajax/list/recently_added?type=tv", "Recently Added Anime"), | ||||
|             Pair("$mainUrl/ajax/list/recently_added?type=movie", "Recently Added Movies"), | ||||
|         ) | ||||
| 
 | ||||
|         val items = ArrayList<HomePageList>() | ||||
|         for (i in urls) { | ||||
|             try { | ||||
|                 val response = khttp.get( | ||||
|                     i.first, | ||||
|                 ).jsonObject.getString("html") // I won't make a dataclass for this shit | ||||
|                 val document = Jsoup.parse(response) | ||||
|                 val results = document.select("div.flw-item").map { | ||||
|                     val filmPoster = it.selectFirst("> div.film-poster") | ||||
|                     val filmDetail = it.selectFirst("> div.film-detail") | ||||
|                     val nameHeader = filmDetail.selectFirst("> h3.film-name > a") | ||||
|                     val title = nameHeader.text().replace(" (Dub)", "") | ||||
|                     val href = | ||||
|                         nameHeader.attr("href").replace("/watch/", "/anime/").replace("-episode-.*".toRegex(), "/") | ||||
|                     val isDub = filmPoster.selectFirst("> div.film-poster-quality")?.text()?.contains("DUB") ?: false | ||||
|                     val poster = filmPoster.selectFirst("> img").attr("data-src") | ||||
|                     val set: EnumSet<DubStatus> = | ||||
|                         EnumSet.of(if (isDub) DubStatus.Dubbed else DubStatus.Subbed) | ||||
|                     AnimeSearchResponse(title, href, this.name, TvType.Anime, poster, null, null, set, null, null) | ||||
|                 } | ||||
|                 items.add(HomePageList(i.second, results)) | ||||
|             } catch (e: Exception) { | ||||
|                 e.printStackTrace() | ||||
|             } | ||||
|         } | ||||
|         if(items.size <= 0) throw ErrorLoadingException() | ||||
|         return HomePageResponse(items) | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     private fun fixAnimeLink(url: String): String { | ||||
|         val regex = "watch/([a-zA-Z\\-0-9]*)-episode".toRegex() | ||||
|  | @ -69,7 +109,7 @@ class WcoProvider : MainAPI() { | |||
| 
 | ||||
|     override fun search(query: String): ArrayList<SearchResponse> { | ||||
|         val url = "$mainUrl/search" | ||||
|         val response = khttp.get(url, params=mapOf("keyword" to query)) | ||||
|         val response = khttp.get(url, params = mapOf("keyword" to query)) | ||||
|         var document = Jsoup.parse(response.text) | ||||
|         val returnValue = parseSearchPage(document) | ||||
| 
 | ||||
|  | @ -91,7 +131,7 @@ class WcoProvider : MainAPI() { | |||
| 
 | ||||
|         val response = khttp.post( | ||||
|             "https://wcostream.cc/ajax/search", | ||||
|             data=mapOf("keyword" to query) | ||||
|             data = mapOf("keyword" to query) | ||||
|         ).jsonObject.getString("html") // I won't make a dataclass for this shit | ||||
|         val document = Jsoup.parse(response) | ||||
| 
 | ||||
|  | @ -152,14 +192,16 @@ class WcoProvider : MainAPI() { | |||
|             "Completed" -> ShowStatus.Completed | ||||
|             else -> null | ||||
|         } | ||||
|         val yearText = document.selectFirst("div.elements div.row > div:nth-child(2) > div.row-line:nth-child(4)")?.text() | ||||
|         val yearText = | ||||
|             document.selectFirst("div.elements div.row > div:nth-child(2) > div.row-line:nth-child(4)")?.text() | ||||
|         val year = yearText?.replace("Date release:", "")?.trim()?.split("-")?.get(0)?.toIntOrNull() | ||||
| 
 | ||||
|         val poster = document.selectFirst(".film-poster-img")?.attr("src") | ||||
|         val type = document.selectFirst("span.item.mr-1 > a")?.text()?.trim() | ||||
| 
 | ||||
|         val synopsis = document.selectFirst(".description > p")?.text()?.trim() | ||||
|         val genre = document.select("div.elements div.row > div:nth-child(1) > div.row-line:nth-child(5) > a").map { it?.text()?.trim().toString() } | ||||
|         val genre = document.select("div.elements div.row > div:nth-child(1) > div.row-line:nth-child(5) > a") | ||||
|             .map { it?.text()?.trim().toString() } | ||||
| 
 | ||||
|         return AnimeLoadResponse( | ||||
|             canonicalTitle, | ||||
|  | @ -170,8 +212,8 @@ class WcoProvider : MainAPI() { | |||
|             getType(type ?: ""), | ||||
|             poster, | ||||
|             year, | ||||
|             if(isDubbed) episodes else null, | ||||
|             if(!isDubbed) episodes else null, | ||||
|             if (isDubbed) episodes else null, | ||||
|             if (!isDubbed) episodes else null, | ||||
|             status, | ||||
|             synopsis, | ||||
|             ArrayList(genre), | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue