From 11100e15773f9cdec6ecc55ef491e57e2d56efbb Mon Sep 17 00:00:00 2001 From: Secozzi <49240133+Secozzi@users.noreply.github.com> Date: Sun, 5 Feb 2023 01:23:59 +0100 Subject: [PATCH] Kuronime: Fix video extraction (#1238) * Fix video extraction * Small fix --- src/id/kuronime/build.gradle | 7 +- .../animeextension/id/kuronime/Kuronime.kt | 100 ++++++++++++------ .../kuronime/extractors/AnimekuExtractor.kt | 42 ++++++++ .../id/kuronime/extractors/HxFileExtractor.kt | 20 ++++ .../kuronime/extractors/LinkBoxExtractor.kt | 36 +++++++ .../kuronime/extractors/Mp4uploadExtractor.kt | 21 ++++ .../extractors/StreamlareExtractor.kt | 31 ++++++ .../extractors/YourUploadExtractor.kt | 28 +++++ 8 files changed, 254 insertions(+), 31 deletions(-) create mode 100644 src/id/kuronime/src/eu/kanade/tachiyomi/animeextension/id/kuronime/extractors/AnimekuExtractor.kt create mode 100644 src/id/kuronime/src/eu/kanade/tachiyomi/animeextension/id/kuronime/extractors/HxFileExtractor.kt create mode 100644 src/id/kuronime/src/eu/kanade/tachiyomi/animeextension/id/kuronime/extractors/LinkBoxExtractor.kt create mode 100644 src/id/kuronime/src/eu/kanade/tachiyomi/animeextension/id/kuronime/extractors/Mp4uploadExtractor.kt create mode 100644 src/id/kuronime/src/eu/kanade/tachiyomi/animeextension/id/kuronime/extractors/StreamlareExtractor.kt create mode 100644 src/id/kuronime/src/eu/kanade/tachiyomi/animeextension/id/kuronime/extractors/YourUploadExtractor.kt diff --git a/src/id/kuronime/build.gradle b/src/id/kuronime/build.gradle index ebaa5d211..77af14c89 100644 --- a/src/id/kuronime/build.gradle +++ b/src/id/kuronime/build.gradle @@ -1,12 +1,17 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' +apply plugin: 'kotlinx-serialization' ext { extName = 'Kuronime' pkgNameSuffix = 'id.kuronime' extClass = '.Kuronime' - extVersionCode = 4 + extVersionCode = 5 libVersion = '13' } +dependencies { + implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1" +} + apply from: "$rootDir/common.gradle" diff --git a/src/id/kuronime/src/eu/kanade/tachiyomi/animeextension/id/kuronime/Kuronime.kt b/src/id/kuronime/src/eu/kanade/tachiyomi/animeextension/id/kuronime/Kuronime.kt index efd3b9cef..37d314420 100644 --- a/src/id/kuronime/src/eu/kanade/tachiyomi/animeextension/id/kuronime/Kuronime.kt +++ b/src/id/kuronime/src/eu/kanade/tachiyomi/animeextension/id/kuronime/Kuronime.kt @@ -2,8 +2,16 @@ package eu.kanade.tachiyomi.animeextension.id.kuronime import android.app.Application import android.content.SharedPreferences +import android.util.Base64 import androidx.preference.ListPreference +import androidx.preference.MultiSelectListPreference import androidx.preference.PreferenceScreen +import eu.kanade.tachiyomi.animeextension.id.kuronime.extractors.AnimekuExtractor +import eu.kanade.tachiyomi.animeextension.id.kuronime.extractors.HxFileExtractor +import eu.kanade.tachiyomi.animeextension.id.kuronime.extractors.LinkBoxExtractor +import eu.kanade.tachiyomi.animeextension.id.kuronime.extractors.Mp4uploadExtractor +import eu.kanade.tachiyomi.animeextension.id.kuronime.extractors.StreamlareExtractor +import eu.kanade.tachiyomi.animeextension.id.kuronime.extractors.YourUploadExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.SAnime @@ -14,6 +22,7 @@ import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.Request import okhttp3.Response +import org.jsoup.Jsoup import org.jsoup.nodes.Document import org.jsoup.nodes.Element import uy.kohesive.injekt.Injekt @@ -76,7 +85,14 @@ class Kuronime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { private fun getAnimeFromAnimeElement(element: Element): SAnime { val anime = SAnime.create() anime.setUrlWithoutDomain(element.select("div > a").first().attr("href")) - anime.thumbnail_url = element.select("div > a > div.limit > img").first().attr("src") + + val thumbnailElement = element.selectFirst("div > a > div.limit > img") + val thumbnail = thumbnailElement.attr("src") + anime.thumbnail_url = if (thumbnail.startsWith("https:")) { + thumbnail + } else { + if (thumbnailElement.hasAttr("data-src")) thumbnailElement.attr("data-src") else "" + } anime.title = element.select("div > a > div.tt > h4").text() return anime } @@ -90,7 +106,7 @@ class Kuronime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override fun popularAnimeNextPageSelector(): String = "div.pagination > a.next" - override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/anime/?page=$page") + override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/anime/page/$page") override fun popularAnimeSelector(): String = "div.listupd > article" @@ -107,39 +123,51 @@ class Kuronime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override fun videoListParse(response: Response): List