diff --git a/Kickassanime/build.gradle.kts b/Kickassanime/build.gradle.kts index fa7088c5..562899be 100644 --- a/Kickassanime/build.gradle.kts +++ b/Kickassanime/build.gradle.kts @@ -1,5 +1,5 @@ // use an integer for version numbers -version = 9 +version = 10 cloudstream { diff --git a/Kickassanime/src/main/kotlin/com/hexated/Kickassanime.kt b/Kickassanime/src/main/kotlin/com/hexated/Kickassanime.kt index 7ca4ce4e..771bbed6 100644 --- a/Kickassanime/src/main/kotlin/com/hexated/Kickassanime.kt +++ b/Kickassanime/src/main/kotlin/com/hexated/Kickassanime.kt @@ -6,6 +6,7 @@ import com.hexated.KickassanimeExtractor.invokeBeta import com.hexated.KickassanimeExtractor.invokeDailymotion import com.hexated.KickassanimeExtractor.invokeGogo import com.hexated.KickassanimeExtractor.invokeMave +import com.hexated.KickassanimeExtractor.invokePinkbird import com.hexated.KickassanimeExtractor.invokeSapphire import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.LoadResponse.Companion.addAniListId @@ -199,6 +200,9 @@ open class Kickassanime : MainAPI() { name?.contains(Regex("(?i)(SAPPHIRE-DUCK)")) == true -> { invokeSapphire(link, isDub, subtitleCallback, callback) } + name?.contains(Regex("(?i)(PINK-BIRD)")) == true -> { + invokePinkbird(sourceName, link, callback) + } else -> return@apmap null } } @@ -351,6 +355,15 @@ open class Kickassanime : MainAPI() { @JsonProperty("subtitles") val subtitles: ArrayList? = arrayListOf(), ) + data class PinkbirdSources( + @JsonProperty("data") val data: ArrayList? = null, + ) + + data class PinkbirdData( + @JsonProperty("eid") val eid: String? = null, + @JsonProperty("lh") val lh: String? = null, + ) + data class SyncTitle( @JsonProperty("romaji") val romaji: String? = null, @JsonProperty("english") val english: String? = null, diff --git a/Kickassanime/src/main/kotlin/com/hexated/KickassanimeExtractor.kt b/Kickassanime/src/main/kotlin/com/hexated/KickassanimeExtractor.kt index d60c5880..255ecb24 100644 --- a/Kickassanime/src/main/kotlin/com/hexated/KickassanimeExtractor.kt +++ b/Kickassanime/src/main/kotlin/com/hexated/KickassanimeExtractor.kt @@ -8,6 +8,29 @@ import com.lagradost.cloudstream3.utils.* import org.jsoup.Jsoup object KickassanimeExtractor : Kickassanime() { + + suspend fun invokePinkbird( + name: String, + url: String? = null, + callback: (ExtractorLink) -> Unit + ) { + val fixUrl = url?.replace(Regex("(player|embed)\\.php"), "pref.php") + app.get(fixUrl ?: return, + ).parsedSafe()?.data?.map { source -> + val eid = base64Decode(source.eid ?: return@map null) + callback.invoke( + ExtractorLink( + name, + name, + "https://pb.kaast1.com/manifest/$eid/master.m3u8", + "$kaast/", + Qualities.P1080.value, + true + ) + ) + } + } + suspend fun invokeAlpha( name: String, url: String? = null,