diff --git a/src/en/bestdubbedanime/build.gradle b/src/en/bestdubbedanime/build.gradle index 54cc3d905..b6b2bfdca 100644 --- a/src/en/bestdubbedanime/build.gradle +++ b/src/en/bestdubbedanime/build.gradle @@ -1,11 +1,12 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' +apply plugin: 'kotlinx-serialization' ext { extName = 'BestDubbedAnime' pkgNameSuffix = 'en.bestdubbedanime' extClass = '.BestDubbedAnime' - extVersionCode = 2 + extVersionCode = 3 libVersion = '13' } diff --git a/src/en/bestdubbedanime/src/eu/kanade/tachiyomi/animeextension/en/bestdubbedanime/BestDubbedAnime.kt b/src/en/bestdubbedanime/src/eu/kanade/tachiyomi/animeextension/en/bestdubbedanime/BestDubbedAnime.kt index 8302a7d42..2f70f6860 100644 --- a/src/en/bestdubbedanime/src/eu/kanade/tachiyomi/animeextension/en/bestdubbedanime/BestDubbedAnime.kt +++ b/src/en/bestdubbedanime/src/eu/kanade/tachiyomi/animeextension/en/bestdubbedanime/BestDubbedAnime.kt @@ -5,7 +5,6 @@ import android.content.SharedPreferences import android.util.Base64 import androidx.preference.ListPreference import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.animeextension.en.bestdubbedanime.extractors.DailyMotionExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -16,6 +15,11 @@ import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.runBlocking +import kotlinx.serialization.Serializable import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonObject @@ -32,6 +36,7 @@ import org.jsoup.nodes.Document import org.jsoup.nodes.Element import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get +import uy.kohesive.injekt.injectLazy import java.lang.Exception class BestDubbedAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { @@ -46,6 +51,8 @@ class BestDubbedAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override val client: OkHttpClient = network.cloudflareClient + private val json: Json by injectLazy() + private val preferences: SharedPreferences by lazy { Injekt.get().getSharedPreferences("source_$id", 0x0000) } @@ -81,7 +88,6 @@ class BestDubbedAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override fun popularAnimeNextPageSelector(): String = throw Exception("Not used") // Episodes - override fun episodeListSelector() = throw Exception("Not used") override fun episodeListParse(response: Response): List { @@ -161,64 +167,55 @@ class BestDubbedAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { return String(Base64.decode(inputStr.replace("\\x", "").decodeHex(), Base64.DEFAULT)) } + @Serializable + data class ServerResponse( + val result: ResultObject, + ) { + @Serializable + data class ResultObject( + val anime: List, + ) { + @Serializable + data class AnimeObject( + val serversHTML: String, + ) + } + } + override fun videoListParse(response: Response): List