diff --git a/src/it/animeworld/build.gradle b/src/it/animeworld/build.gradle index f01b0c889..a1b1dfc5b 100644 --- a/src/it/animeworld/build.gradle +++ b/src/it/animeworld/build.gradle @@ -1,11 +1,12 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' +apply plugin: 'kotlinx-serialization' ext { extName = 'ANIMEWORLD.tv' pkgNameSuffix = 'it.animeworld' extClass = '.ANIMEWORLD' - extVersionCode = 24 + extVersionCode = 25 libVersion = '13' } @@ -13,6 +14,7 @@ dependencies { implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-streamsb-extractor')) implementation(project(':lib-dood-extractor')) + implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1" } apply from: "$rootDir/common.gradle" diff --git a/src/it/animeworld/src/eu/kanade/tachiyomi/animeextension/it/animeworld/ANIMEWORLD.kt b/src/it/animeworld/src/eu/kanade/tachiyomi/animeextension/it/animeworld/ANIMEWORLD.kt index af62607fa..e9ca7bfdd 100644 --- a/src/it/animeworld/src/eu/kanade/tachiyomi/animeextension/it/animeworld/ANIMEWORLD.kt +++ b/src/it/animeworld/src/eu/kanade/tachiyomi/animeextension/it/animeworld/ANIMEWORLD.kt @@ -4,6 +4,8 @@ import android.app.Application import android.content.SharedPreferences import androidx.preference.ListPreference import androidx.preference.PreferenceScreen +import eu.kanade.tachiyomi.animeextension.it.animeworld.extractors.FilemoonExtractor +import eu.kanade.tachiyomi.animeextension.it.animeworld.extractors.StreamHideExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -16,7 +18,13 @@ import eu.kanade.tachiyomi.lib.streamsbextractor.StreamSBExtractor import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.Headers +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.runBlocking +import kotlinx.serialization.Serializable +import kotlinx.serialization.json.Json +import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.Response @@ -24,6 +32,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 ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() { @@ -38,6 +47,8 @@ class ANIMEWORLD : 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) } @@ -85,7 +96,10 @@ class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() { return videosFromElement(document) } - override fun videoListSelector() = "center a[href*=dood], center a[href*=streamtape], center a[href*=animeworld.biz], center a[href*=streamingaw.online][id=alternativeDownloadLink]" + override fun videoListSelector() = "center a[href*=https://doo]," + + "center a[href*=streamtape]," + + "center a[href*=animeworld.biz]," + + "center a[href*=streamingaw.online][id=alternativeDownloadLink]" private fun videosFromElement(document: Document): List