quicksearch Animeworld

This commit is contained in:
antonydp 2022-10-03 15:45:12 +02:00 committed by GitHub
parent 472a087423
commit 91b105ab95
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 44 additions and 11 deletions

View file

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 1
version = 2
cloudstream {

View file

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 1
version = 2
cloudstream {

View file

@ -21,6 +21,7 @@ class AnimeWorldProvider : MainAPI() {
override var name = "AnimeWorld"
override var lang = "it"
override val hasMainPage = true
override val hasQuickSearch = true
override val supportedTypes = setOf(
TvType.Anime,
@ -30,7 +31,7 @@ class AnimeWorldProvider : MainAPI() {
companion object {
private var cookies = emptyMap<String, String>()
private lateinit var token : String
// Disabled authentication as site did
private suspend fun request(url: String): NiceResponse {
// if (cookies.isEmpty()) {
@ -154,6 +155,38 @@ class AnimeWorldProvider : MainAPI() {
return HomePageResponse(list)
}
data class searchJson(
@JsonProperty("animes") val animes: List<animejson>
)
data class animejson(
@JsonProperty("name") val name: String,
@JsonProperty("image") val image: String,
@JsonProperty("link") val link: String,
@JsonProperty("animeTypeName") val type: String,
@JsonProperty("language") val language: String,
@JsonProperty("jtitle") val otherTitle: String
)
override suspend fun quickSearch(query: String): List<SearchResponse>? {
val document = app.post("https://www.animeworld.tv/api/search/v2?keyword=${query}", referer = mainUrl, cookies = cookies, headers = mapOf("csrf-token" to token)).text
return tryParseJson<searchJson>(document)?.animes?.map { anime->
val type = when (anime.type) {
"Movie" -> TvType.AnimeMovie
"OVA" -> TvType.OVA
else -> TvType.Anime
}
val dub = when (anime.language) {
"it" -> true
else -> false
}
newAnimeSearchResponse(anime.name, anime.link, type) {
addDubStatus(dub)
this.otherName = anime.otherTitle
this.posterUrl = anime.image
}
}
}
override suspend fun search(query: String): List<SearchResponse> {
val document = request("$mainUrl/search?keyword=$query").document
return document.select(".film-list > .item").map {

View file

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 1
version = 2
cloudstream {

View file

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 1
version = 2
cloudstream {

View file

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 1
version = 2
cloudstream {

View file

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 1
version = 2
cloudstream {

View file

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 2
version = 3
cloudstream {

View file

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 2
version = 3
cloudstream {

View file

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 1
version = 2
cloudstream {

View file

@ -1,5 +1,5 @@
// use an integer for version numbers
version = 1
version = 2
cloudstream {