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 // use an integer for version numbers
version = 1 version = 2
cloudstream { cloudstream {

View file

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

View file

@ -21,6 +21,7 @@ class AnimeWorldProvider : MainAPI() {
override var name = "AnimeWorld" override var name = "AnimeWorld"
override var lang = "it" override var lang = "it"
override val hasMainPage = true override val hasMainPage = true
override val hasQuickSearch = true
override val supportedTypes = setOf( override val supportedTypes = setOf(
TvType.Anime, TvType.Anime,
@ -30,7 +31,7 @@ class AnimeWorldProvider : MainAPI() {
companion object { companion object {
private var cookies = emptyMap<String, String>() private var cookies = emptyMap<String, String>()
private lateinit var token : String
// Disabled authentication as site did // Disabled authentication as site did
private suspend fun request(url: String): NiceResponse { private suspend fun request(url: String): NiceResponse {
// if (cookies.isEmpty()) { // if (cookies.isEmpty()) {
@ -154,6 +155,38 @@ class AnimeWorldProvider : MainAPI() {
return HomePageResponse(list) 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> { override suspend fun search(query: String): List<SearchResponse> {
val document = request("$mainUrl/search?keyword=$query").document val document = request("$mainUrl/search?keyword=$query").document
return document.select(".film-list > .item").map { return document.select(".film-list > .item").map {

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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