dependency and coroutines cleanup
This commit is contained in:
@ -5,13 +5,8 @@ ext {
|
|||||||
extName = 'WIT ANIME'
|
extName = 'WIT ANIME'
|
||||||
pkgNameSuffix = 'ar.witanime'
|
pkgNameSuffix = 'ar.witanime'
|
||||||
extClass = '.WitAnime'
|
extClass = '.WitAnime'
|
||||||
extVersionCode = 6
|
extVersionCode = 7
|
||||||
libVersion = '12'
|
libVersion = '12'
|
||||||
}
|
}
|
||||||
dependencies {
|
|
||||||
ext.coroutinesVersion = "1.4.3"
|
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
|
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion")
|
|
||||||
}
|
|
||||||
|
|
||||||
apply from: "$rootDir/common.gradle"
|
apply from: "$rootDir/common.gradle"
|
||||||
|
@ -6,9 +6,7 @@ import eu.kanade.tachiyomi.animesource.model.SEpisode
|
|||||||
import eu.kanade.tachiyomi.animesource.model.Video
|
import eu.kanade.tachiyomi.animesource.model.Video
|
||||||
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
|
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
import eu.kanade.tachiyomi.network.await
|
|
||||||
import eu.kanade.tachiyomi.util.asJsoup
|
import eu.kanade.tachiyomi.util.asJsoup
|
||||||
import kotlinx.coroutines.runBlocking
|
|
||||||
import okhttp3.Headers.Companion.toHeaders
|
import okhttp3.Headers.Companion.toHeaders
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
@ -64,10 +62,8 @@ class WitAnime : ParsedAnimeHttpSource() {
|
|||||||
val referer = response.request.url.encodedPath
|
val referer = response.request.url.encodedPath
|
||||||
val newHeaderList = mutableMapOf(Pair("referer", baseUrl + referer))
|
val newHeaderList = mutableMapOf(Pair("referer", baseUrl + referer))
|
||||||
headers.forEach { newHeaderList[it.first] = it.second }
|
headers.forEach { newHeaderList[it.first] = it.second }
|
||||||
val iframeResponse = runBlocking {
|
val iframeResponse = client.newCall(GET(iframe, newHeaderList.toHeaders()))
|
||||||
client.newCall(GET(iframe, newHeaderList.toHeaders()))
|
.execute().asJsoup()
|
||||||
.await().asJsoup()
|
|
||||||
}
|
|
||||||
return iframeResponse.select(videoListSelector()).map { videoFromElement(it) }
|
return iframeResponse.select(videoListSelector()).map { videoFromElement(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,13 +5,8 @@ ext {
|
|||||||
extName = 'XS Anime'
|
extName = 'XS Anime'
|
||||||
pkgNameSuffix = 'ar.xsanime'
|
pkgNameSuffix = 'ar.xsanime'
|
||||||
extClass = '.XsAnime'
|
extClass = '.XsAnime'
|
||||||
extVersionCode = 2
|
extVersionCode = 3
|
||||||
libVersion = '12'
|
libVersion = '12'
|
||||||
}
|
}
|
||||||
dependencies {
|
|
||||||
ext.coroutinesVersion = "1.4.3"
|
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
|
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion")
|
|
||||||
}
|
|
||||||
|
|
||||||
apply from: "$rootDir/common.gradle"
|
apply from: "$rootDir/common.gradle"
|
||||||
|
@ -7,9 +7,7 @@ import eu.kanade.tachiyomi.animesource.model.SEpisode
|
|||||||
import eu.kanade.tachiyomi.animesource.model.Video
|
import eu.kanade.tachiyomi.animesource.model.Video
|
||||||
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
|
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
import eu.kanade.tachiyomi.network.await
|
|
||||||
import eu.kanade.tachiyomi.util.asJsoup
|
import eu.kanade.tachiyomi.util.asJsoup
|
||||||
import kotlinx.coroutines.runBlocking
|
|
||||||
import okhttp3.Headers.Companion.toHeaders
|
import okhttp3.Headers.Companion.toHeaders
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
@ -66,10 +64,8 @@ class XsAnime : ParsedAnimeHttpSource() {
|
|||||||
val referer = response.request.url.encodedPath
|
val referer = response.request.url.encodedPath
|
||||||
val newHeaderList = mutableMapOf(Pair("referer", baseUrl + referer))
|
val newHeaderList = mutableMapOf(Pair("referer", baseUrl + referer))
|
||||||
headers.forEach { newHeaderList[it.first] = it.second }
|
headers.forEach { newHeaderList[it.first] = it.second }
|
||||||
val iframeResponse = runBlocking {
|
val iframeResponse = client.newCall(GET(iframe, newHeaderList.toHeaders()))
|
||||||
client.newCall(GET(iframe, newHeaderList.toHeaders()))
|
.execute().asJsoup()
|
||||||
.await().asJsoup()
|
|
||||||
}
|
|
||||||
return iframeResponse.select(videoListSelector()).map { videoFromElement(it) }
|
return iframeResponse.select(videoListSelector()).map { videoFromElement(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,13 +5,8 @@ ext {
|
|||||||
extName = 'AnimePahe'
|
extName = 'AnimePahe'
|
||||||
pkgNameSuffix = 'en.animepahe'
|
pkgNameSuffix = 'en.animepahe'
|
||||||
extClass = '.AnimePahe'
|
extClass = '.AnimePahe'
|
||||||
extVersionCode = 2
|
extVersionCode = 3
|
||||||
libVersion = '12'
|
libVersion = '12'
|
||||||
}
|
}
|
||||||
dependencies {
|
|
||||||
ext.coroutinesVersion = "1.4.3"
|
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
|
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion")
|
|
||||||
}
|
|
||||||
|
|
||||||
apply from: "$rootDir/common.gradle"
|
apply from: "$rootDir/common.gradle"
|
||||||
|
@ -5,13 +5,8 @@ ext {
|
|||||||
extName = 'Gogoanime'
|
extName = 'Gogoanime'
|
||||||
pkgNameSuffix = 'en.gogoanime'
|
pkgNameSuffix = 'en.gogoanime'
|
||||||
extClass = '.GogoAnime'
|
extClass = '.GogoAnime'
|
||||||
extVersionCode = 10
|
extVersionCode = 11
|
||||||
libVersion = '12'
|
libVersion = '12'
|
||||||
}
|
}
|
||||||
dependencies {
|
|
||||||
ext.coroutinesVersion = "1.4.3"
|
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
|
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion")
|
|
||||||
}
|
|
||||||
|
|
||||||
apply from: "$rootDir/common.gradle"
|
apply from: "$rootDir/common.gradle"
|
||||||
|
@ -6,9 +6,7 @@ import eu.kanade.tachiyomi.animesource.model.SEpisode
|
|||||||
import eu.kanade.tachiyomi.animesource.model.Video
|
import eu.kanade.tachiyomi.animesource.model.Video
|
||||||
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
|
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
import eu.kanade.tachiyomi.network.await
|
|
||||||
import eu.kanade.tachiyomi.util.asJsoup
|
import eu.kanade.tachiyomi.util.asJsoup
|
||||||
import kotlinx.coroutines.runBlocking
|
|
||||||
import okhttp3.Headers
|
import okhttp3.Headers
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
@ -55,13 +53,12 @@ class GogoAnime : ParsedAnimeHttpSource() {
|
|||||||
val document = response.asJsoup()
|
val document = response.asJsoup()
|
||||||
val totalEpisodes = document.select(episodeListSelector()).last().attr("ep_end")
|
val totalEpisodes = document.select(episodeListSelector()).last().attr("ep_end")
|
||||||
val id = document.select("input#movie_id").attr("value")
|
val id = document.select("input#movie_id").attr("value")
|
||||||
return runBlocking { episodesRequest(totalEpisodes, id) }
|
return episodesRequest(totalEpisodes, id)
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun episodesRequest(totalEpisodes: String, id: String): List<SEpisode> {
|
private fun episodesRequest(totalEpisodes: String, id: String): List<SEpisode> {
|
||||||
val request = GET("https://ajax.gogo-load.com/ajax/load-list-episode?ep_start=0&ep_end=$totalEpisodes&id=$id", headers)
|
val request = GET("https://ajax.gogo-load.com/ajax/load-list-episode?ep_start=0&ep_end=$totalEpisodes&id=$id", headers)
|
||||||
val epResponse = client.newCall(request)
|
val epResponse = client.newCall(request).execute()
|
||||||
.await()
|
|
||||||
val document = epResponse.asJsoup()
|
val document = epResponse.asJsoup()
|
||||||
return document.select("a").map { episodeFromElement(it) }
|
return document.select("a").map { episodeFromElement(it) }
|
||||||
}
|
}
|
||||||
|
@ -5,14 +5,9 @@ ext {
|
|||||||
extName = 'hanime.tv'
|
extName = 'hanime.tv'
|
||||||
pkgNameSuffix = 'en.hanime'
|
pkgNameSuffix = 'en.hanime'
|
||||||
extClass = '.Hanime'
|
extClass = '.Hanime'
|
||||||
extVersionCode = 7
|
extVersionCode = 8
|
||||||
libVersion = '12'
|
libVersion = '12'
|
||||||
containsNsfw = true
|
containsNsfw = true
|
||||||
}
|
}
|
||||||
dependencies {
|
|
||||||
ext.coroutinesVersion = "1.4.3"
|
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
|
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion")
|
|
||||||
}
|
|
||||||
|
|
||||||
apply from: "$rootDir/common.gradle"
|
apply from: "$rootDir/common.gradle"
|
@ -5,13 +5,8 @@ ext {
|
|||||||
extName = 'twist.moe'
|
extName = 'twist.moe'
|
||||||
pkgNameSuffix = 'en.twistmoe'
|
pkgNameSuffix = 'en.twistmoe'
|
||||||
extClass = '.TwistMoe'
|
extClass = '.TwistMoe'
|
||||||
extVersionCode = 5
|
extVersionCode = 6
|
||||||
libVersion = '12'
|
libVersion = '12'
|
||||||
}
|
}
|
||||||
dependencies {
|
|
||||||
ext.coroutinesVersion = "1.4.3"
|
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
|
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion")
|
|
||||||
}
|
|
||||||
|
|
||||||
apply from: "$rootDir/common.gradle"
|
apply from: "$rootDir/common.gradle"
|
||||||
|
@ -13,8 +13,6 @@ import eu.kanade.tachiyomi.animesource.model.Video
|
|||||||
import eu.kanade.tachiyomi.animesource.online.AnimeHttpSource
|
import eu.kanade.tachiyomi.animesource.online.AnimeHttpSource
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
import eu.kanade.tachiyomi.network.POST
|
import eu.kanade.tachiyomi.network.POST
|
||||||
import eu.kanade.tachiyomi.network.await
|
|
||||||
import kotlinx.coroutines.runBlocking
|
|
||||||
import okhttp3.Headers
|
import okhttp3.Headers
|
||||||
import okhttp3.MediaType.Companion.toMediaType
|
import okhttp3.MediaType.Companion.toMediaType
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
@ -134,16 +132,13 @@ class TwistMoe : AnimeHttpSource() {
|
|||||||
""
|
""
|
||||||
}
|
}
|
||||||
if (malID.isNotEmpty()) {
|
if (malID.isNotEmpty()) {
|
||||||
val coverResponse = runBlocking {
|
val headers = Headers.Builder().apply {
|
||||||
val headers = Headers.Builder().apply {
|
add("Content-Type", "application/json")
|
||||||
add("Content-Type", "application/json")
|
add("Accept", "application/json")
|
||||||
add("Accept", "application/json")
|
}.build()
|
||||||
}.build()
|
val bodyString = "{\"query\":\"query(\$id: Int){Media(type:ANIME,idMal:\$id){coverImage{large}}}\",\"variables\":{\"id\":$malID}}"
|
||||||
val bodyString = "{\"query\":\"query(\$id: Int){Media(type:ANIME,idMal:\$id){coverImage{large}}}\",\"variables\":{\"id\":$malID}}"
|
val body = bodyString.toRequestBody("application/json".toMediaType())
|
||||||
val body = bodyString.toRequestBody("application/json".toMediaType())
|
val coverResponse = client.newCall(POST("https://graphql.anilist.co", headers, body)).execute()
|
||||||
client.newCall(POST("https://graphql.anilist.co", headers, body))
|
|
||||||
.await()
|
|
||||||
}
|
|
||||||
val imageUrl = JsonParser.parseString(coverResponse.body!!.string())
|
val imageUrl = JsonParser.parseString(coverResponse.body!!.string())
|
||||||
.asJsonObject.get("data")
|
.asJsonObject.get("data")
|
||||||
.asJsonObject.get("Media")
|
.asJsonObject.get("Media")
|
||||||
@ -152,16 +147,13 @@ class TwistMoe : AnimeHttpSource() {
|
|||||||
if (imageUrl.isNotEmpty()) anime.thumbnail_url = imageUrl
|
if (imageUrl.isNotEmpty()) anime.thumbnail_url = imageUrl
|
||||||
} else {
|
} else {
|
||||||
val query = anime.title
|
val query = anime.title
|
||||||
val coverResponse = runBlocking {
|
val headers = Headers.Builder().apply {
|
||||||
val headers = Headers.Builder().apply {
|
add("Content-Type", "application/json")
|
||||||
add("Content-Type", "application/json")
|
add("Accept", "application/json")
|
||||||
add("Accept", "application/json")
|
}.build()
|
||||||
}.build()
|
val bodyString = "{\"query\":\"query(\$query: String){Media(type:ANIME,search:\$query){coverImage{large}}}\",\"variables\":{\"query\":\"$query\"}}"
|
||||||
val bodyString = "{\"query\":\"query(\$query: String){Media(type:ANIME,search:\$query){coverImage{large}}}\",\"variables\":{\"query\":\"$query\"}}"
|
val body = bodyString.toRequestBody("application/json".toMediaType())
|
||||||
val body = bodyString.toRequestBody("application/json".toMediaType())
|
val coverResponse = client.newCall(POST("https://graphql.anilist.co", headers, body)).execute()
|
||||||
client.newCall(POST("https://graphql.anilist.co", headers, body))
|
|
||||||
.await()
|
|
||||||
}
|
|
||||||
val imageUrl = JsonParser.parseString(coverResponse.body!!.string())
|
val imageUrl = JsonParser.parseString(coverResponse.body!!.string())
|
||||||
.asJsonObject.get("data")
|
.asJsonObject.get("data")
|
||||||
.asJsonObject.get("Media")
|
.asJsonObject.get("Media")
|
||||||
|
Reference in New Issue
Block a user