From 15370e9c1407c774847e94785658d306ed3382d5 Mon Sep 17 00:00:00 2001 From: hexated Date: Thu, 2 Feb 2023 21:19:45 +0700 Subject: [PATCH] [test] added lib support in Kickassanime --- Kickassanime/build.gradle.kts | 2 +- .../main/kotlin/com/hexated/Kickassanime.kt | 35 ++++++++++++++++++- .../kotlin/com/hexated/KickassanimeUtils.kt | 4 +++ .../src/main/kotlin/com/hexated/SoraStream.kt | 2 +- 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/Kickassanime/build.gradle.kts b/Kickassanime/build.gradle.kts index 3958229f..1f99a65f 100644 --- a/Kickassanime/build.gradle.kts +++ b/Kickassanime/build.gradle.kts @@ -1,5 +1,5 @@ // use an integer for version numbers -version = 7 +version = 8 cloudstream { diff --git a/Kickassanime/src/main/kotlin/com/hexated/Kickassanime.kt b/Kickassanime/src/main/kotlin/com/hexated/Kickassanime.kt index 632d9317..7ca4ce4e 100644 --- a/Kickassanime/src/main/kotlin/com/hexated/Kickassanime.kt +++ b/Kickassanime/src/main/kotlin/com/hexated/Kickassanime.kt @@ -10,6 +10,7 @@ import com.hexated.KickassanimeExtractor.invokeSapphire import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.LoadResponse.Companion.addAniListId import com.lagradost.cloudstream3.LoadResponse.Companion.addMalId +import com.lagradost.cloudstream3.syncproviders.SyncIdName import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson @@ -20,6 +21,11 @@ open class Kickassanime : MainAPI() { override var lang = "en" override val hasDownloadSupport = true + override val supportedSyncNames = setOf( + SyncIdName.MyAnimeList, + SyncIdName.Anilist + ) + override val supportedTypes = setOf( TvType.Anime, TvType.AnimeMovie, @@ -28,6 +34,8 @@ open class Kickassanime : MainAPI() { companion object { const val kaast = "https://kaast1.com" + private const val consumetAnilist = "https://api.consumet.org/meta/anilist" + private const val consumetMal = "https://api.consumet.org/meta/mal" fun getType(t: String): TvType { return when { t.contains("Ova", true) -> TvType.OVA @@ -87,6 +95,22 @@ open class Kickassanime : MainAPI() { ?: throw ErrorLoadingException() } + override suspend fun getLoadUrl(name: SyncIdName, id: String): String { + val syncId = id.split("/").last() + val url = if (name == SyncIdName.Anilist) { + "$consumetAnilist/info/$syncId" + } else { + "$consumetMal/info/$syncId" + } + + val res = app.get(url).parsedSafe()?.title + + val romanjiUrl = "$mainUrl/anime/${res?.romaji?.createSlug()}" + val englishUrl = "$mainUrl/anime/${res?.english?.createSlug()}" + + return if (app.get(romanjiUrl).url != "$mainUrl/") romanjiUrl else englishUrl + } + override suspend fun load(url: String): LoadResponse? { val document = app.get(url).document @@ -199,7 +223,7 @@ open class Kickassanime : MainAPI() { } private suspend fun searchAnime(title: String?): ArrayList? { - return app.get("https://api.consumet.org/meta/anilist/$title") + return app.get("$consumetAnilist/$title") .parsedSafe()?.results } @@ -327,4 +351,13 @@ open class Kickassanime : MainAPI() { @JsonProperty("subtitles") val subtitles: ArrayList? = arrayListOf(), ) + data class SyncTitle( + @JsonProperty("romaji") val romaji: String? = null, + @JsonProperty("english") val english: String? = null, + ) + + data class SyncInfo( + @JsonProperty("title") val title: SyncTitle? = null, + ) + } \ No newline at end of file diff --git a/Kickassanime/src/main/kotlin/com/hexated/KickassanimeUtils.kt b/Kickassanime/src/main/kotlin/com/hexated/KickassanimeUtils.kt index f4974350..a0832046 100644 --- a/Kickassanime/src/main/kotlin/com/hexated/KickassanimeUtils.kt +++ b/Kickassanime/src/main/kotlin/com/hexated/KickassanimeUtils.kt @@ -38,6 +38,10 @@ fun String.base64Decode(): String { fun decode(input: String): String = URLDecoder.decode(input, "utf-8").replace(" ", "%20") +fun String.createSlug(): String { + return this.replace(Regex("[^\\w ]+"), "").replace(" ", "-").lowercase() +} + fun String.getTrackerTitle(): String { val blacklist = arrayOf( "Dub", diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt b/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt index 94d87bc3..c50a5e0c 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt @@ -66,7 +66,7 @@ open class SoraStream : TmdbProvider() { const val gdbot = "https://gdbot.xyz" const val consumetAnilistAPI = "https://api.consumet.org/meta/anilist" const val kamyrollAPI = "https://api.kamyroll.tech" - var baymovies = "https://opengatewayindex.pages.dev" + const val baymovies = "https://opengatewayindex.pages.dev" private val apiKey = base64DecodeAPI("ZTM=NTg=MjM=MjM=ODc=MzI=OGQ=MmE=Nzk=Nzk=ZjI=NTA=NDY=NDA=MzA=YjA=") // PLEASE DON'T STEAL