Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
7e5165d
Twst JS compile
Luna712 Jul 2, 2026
d397273
-
Luna712 Jul 2, 2026
d234902
Hlsplaylistparser kotlin
Luna712 Jul 2, 2026
90f9ad9
Refactor Dailymotion extractor to use kotlinx.serialization
Luna712 Jul 2, 2026
e9307b6
Update GDMirrorbot.kt
Luna712 Jul 2, 2026
016bce0
Update
Luna712 Jul 2, 2026
aa84acd
Update
Luna712 Jul 2, 2026
ea40300
Update
Luna712 Jul 2, 2026
d02a7be
Add
Luna712 Jul 2, 2026
d26df14
-
Luna712 Jul 2, 2026
0be0d3a
Update
Luna712 Jul 2, 2026
e789b1a
-
Luna712 Jul 2, 2026
1577994
-
Luna712 Jul 2, 2026
44c3379
-
Luna712 Jul 2, 2026
66070cf
-
Luna712 Jul 2, 2026
6f879c9
Coroutines api
Luna712 Jul 2, 2026
1b5b69e
Improve ContextHelper API for KMP
Luna712 Jul 2, 2026
77a0423
Locale
Luna712 Jul 2, 2026
a667c15
Add reflect
Luna712 Jul 2, 2026
dd7b4fe
Add
Luna712 Jul 2, 2026
e4f5814
add YT web
Luna712 Jul 2, 2026
8849570
add arch webmain
Luna712 Jul 2, 2026
68247e1
Coroutines webmain
Luna712 Jul 2, 2026
7a018a1
Add js
Luna712 Jul 2, 2026
bbaf597
Update
Luna712 Jul 2, 2026
31939e6
-
Luna712 Jul 2, 2026
f24187d
ContextHelper webmain
Luna712 Jul 2, 2026
de69e03
Log webMain
Luna712 Jul 2, 2026
a26f314
add nodejs
Luna712 Jul 2, 2026
a7850b3
Try
Luna712 Jul 2, 2026
6b25f38
Try
Luna712 Jul 2, 2026
250ff54
-
Luna712 Jul 2, 2026
7f4696e
Add yarn
Luna712 Jul 2, 2026
815b49c
Add import
Luna712 Jul 2, 2026
3b64e6a
Fix dehunt
Luna712 Jul 2, 2026
50a11b1
Fix unpack
Luna712 Jul 2, 2026
b16ea90
deleteRange
Luna712 Jul 2, 2026
ee3c94f
import
Luna712 Jul 2, 2026
1f9aaee
setRange
Luna712 Jul 2, 2026
96b3e37
simplename apputils
Luna712 Jul 2, 2026
d894da4
module
Luna712 Jul 2, 2026
19f5c60
Merge branch 'test-kotlinx' into test-js
Luna712 Jul 2, 2026
8df394f
Merge branch 'test-kotlinx' into test-js
Luna712 Jul 2, 2026
822e8e9
update okhttp mainapi
Luna712 Jul 2, 2026
7ce4af6
Update MainActivity
Luna712 Jul 2, 2026
a0f7b5d
Merge branch 'test-kotlinx' into test-js
Luna712 Jul 2, 2026
52ce25a
Update webviewresolver
Luna712 Jul 2, 2026
fe04a3b
Update
Luna712 Jul 2, 2026
1d7e873
Update webviewresolver jvm
Luna712 Jul 2, 2026
a5bc547
Update webviewresolver android
Luna712 Jul 2, 2026
e795894
add WebViewResolver webmain
Luna712 Jul 2, 2026
f25c958
Update
Luna712 Jul 2, 2026
ed8a1cd
Update
Luna712 Jul 3, 2026
6821431
Update
Luna712 Jul 3, 2026
71d4dc1
Try fix
Luna712 Jul 3, 2026
e6054c9
Fix jvm
Luna712 Jul 3, 2026
b8391f9
as? Interceptor
Luna712 Jul 3, 2026
d152631
Update
Luna712 Jul 3, 2026
cfe3a47
as? com.lagradost.nicehttp.Interceptor
Luna712 Jul 3, 2026
7f27f85
as? com.lagradost.nicehttp.Interceptor
Luna712 Jul 3, 2026
51db3dc
as? com.lagradost.nicehttp.Interceptor
Luna712 Jul 3, 2026
c87c1cc
as? com.lagradost.nicehttp.Interceptor
Luna712 Jul 3, 2026
8121fae
as? com.lagradost.nicehttp.Interceptor
Luna712 Jul 3, 2026
8675482
-
Luna712 Jul 3, 2026
ed7acdf
Try
Luna712 Jul 3, 2026
116ae17
Fix
Luna712 Jul 3, 2026
390be50
Fix
Luna712 Jul 3, 2026
da96c2b
Fix
Luna712 Jul 3, 2026
451c268
Fix
Luna712 Jul 3, 2026
60820f6
Fix
Luna712 Jul 3, 2026
a3fd32d
Add expect WorkerThread
Luna712 Jul 3, 2026
9c7e8c4
add actual
Luna712 Jul 3, 2026
3d7ecf2
Add actual
Luna712 Jul 3, 2026
89a25aa
Use our WorkerThread
Luna712 Jul 3, 2026
29670e9
add runOnMainThreadNative webmain
Luna712 Jul 3, 2026
1a2eee4
Add
Luna712 Jul 3, 2026
d49a4ea
-
Luna712 Jul 3, 2026
be76eaa
Fix
Luna712 Jul 3, 2026
780aa23
Bump
Luna712 Jul 3, 2026
5e1894b
Merge branch 'test-kotlinx' into test-js
Luna712 Jul 3, 2026
5ab356b
Test
Luna712 Jul 3, 2026
fc755a3
Fix
Luna712 Jul 3, 2026
f01b5f6
Try
Luna712 Jul 3, 2026
7769e8a
Merge branch 'test-kotlinx' into test-js
Luna712 Jul 3, 2026
d54baec
-
Luna712 Jul 3, 2026
7a3c2ba
Update
Luna712 Jul 3, 2026
30fef28
Test
Luna712 Jul 3, 2026
48a37b8
-
Luna712 Jul 3, 2026
ecf3f16
Test
Luna712 Jul 4, 2026
5f48216
Test
Luna712 Jul 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,6 @@ jobs:
uses: actions/upload-artifact@v7
with:
name: pull-request-build
path: "app/build/outputs/apk/prerelease/debug/*.apk"
path: |
app/build/outputs/apk/prerelease/debug/*.apk
library/build/**

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import android.app.Activity
import android.content.Context
import android.content.Intent
import android.net.Uri
import com.fasterxml.jackson.annotation.JsonProperty
import com.lagradost.cloudstream3.actions.OpenInAppAction
import com.lagradost.cloudstream3.BuildConfig
import com.lagradost.cloudstream3.SkipSerializationTest
Expand Down Expand Up @@ -54,16 +53,15 @@ class CloudStreamPackage : OpenInAppAction(
}

@Serializable
@SkipSerializationTest //.Uri has issues with Jackson
data class MinimalVideoLink(
@JsonProperty("uri") @SerialName("uri")
@SerialName("uri")
@Serializable(with = UriSerializer::class)
val uri: Uri?,
@JsonProperty("url") @SerialName("url") val url: String?,
@JsonProperty("mimeType") @SerialName("mimeType") val mimeType: String = "video/mp4",
@JsonProperty("name") @SerialName("name") val name: String?,
@JsonProperty("headers") @SerialName("headers") var headers: Map<String, String> = mapOf(),
@JsonProperty("quality") @SerialName("quality") val quality: Int?,
@SerialName("url") val url: String?,
@SerialName("mimeType") val mimeType: String = "video/mp4",
@SerialName("name") val name: String?,
@SerialName("headers") var headers: Map<String, String> = mapOf(),
@SerialName("quality") val quality: Int?,
) {
companion object {
fun fromExtractor(link: ExtractorLink): MinimalVideoLink = MinimalVideoLink(
Expand Down Expand Up @@ -101,10 +99,10 @@ class CloudStreamPackage : OpenInAppAction(

@Serializable
data class MinimalSubtitleLink(
@JsonProperty("url") @SerialName("url") val url: String,
@JsonProperty("mimeType") @SerialName("mimeType") val mimeType: String = "text/vtt",
@JsonProperty("name") @SerialName("name") val name: String?,
@JsonProperty("headers") @SerialName("headers") var headers: Map<String, String> = mapOf(),
@SerialName("url") val url: String,
@SerialName("mimeType") val mimeType: String = "text/vtt",
@SerialName("name") val name: String?,
@SerialName("headers") var headers: Map<String, String> = mapOf(),
) {
companion object {
fun fromSubtitle(sub: SubtitleData): MinimalSubtitleLink = MinimalSubtitleLink(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.lagradost.cloudstream3.actions.temp.fcast

import com.fasterxml.jackson.annotation.JsonProperty
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

Expand All @@ -24,12 +23,12 @@ enum class Opcode(val value: Byte) {

@Serializable
data class PlayMessage(
@JsonProperty("container") @SerialName("container") val container: String,
@JsonProperty("url") @SerialName("url") val url: String? = null,
@JsonProperty("content") @SerialName("content") val content: String? = null,
@JsonProperty("time") @SerialName("time") val time: Double? = null,
@JsonProperty("speed") @SerialName("speed") val speed: Double? = null,
@JsonProperty("headers") @SerialName("headers") val headers: Map<String, String>? = null,
@SerialName("container") val container: String,
@SerialName("url") val url: String? = null,
@SerialName("content") val content: String? = null,
@SerialName("time") val time: Double? = null,
@SerialName("speed") val speed: Double? = null,
@SerialName("headers") val headers: Map<String, String>? = null,
)

data class SeekMessage(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import androidx.core.app.ActivityCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.fragment.app.FragmentActivity
import com.fasterxml.jackson.annotation.JsonProperty
import com.lagradost.cloudstream3.APIHolder
import com.lagradost.cloudstream3.APIHolder.removePluginMapping
import com.lagradost.cloudstream3.AllLanguagesName
Expand Down Expand Up @@ -77,11 +76,11 @@ const val EXTENSIONS_CHANNEL_DESCRIPT = "Extension notification channel"
// Data class for internal storage
@Serializable
data class PluginData(
@JsonProperty("internalName") @SerialName("internalName") val internalName: String,
@JsonProperty("url") @SerialName("url") val url: String?,
@JsonProperty("isOnline") @SerialName("isOnline") val isOnline: Boolean,
@JsonProperty("filePath") @SerialName("filePath") val filePath: String,
@JsonProperty("version") @SerialName("version") val version: Int,
@SerialName("internalName") val internalName: String,
@SerialName("url") val url: String?,
@SerialName("isOnline") val isOnline: Boolean,
@SerialName("filePath") val filePath: String,
@SerialName("version") val version: Int,
) {
@WorkerThread
fun toSitePlugin(): SitePlugin {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.plugins

import android.content.Context
import androidx.annotation.WorkerThread
import com.fasterxml.jackson.annotation.JsonProperty
import com.lagradost.cloudstream3.CloudStreamApp.Companion.context
import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey
import com.lagradost.cloudstream3.CloudStreamApp.Companion.setKey
Expand Down Expand Up @@ -32,11 +31,11 @@ import java.util.concurrent.TimeUnit
*/
@Serializable
data class Repository(
@JsonProperty("iconUrl") @SerialName("iconUrl") val iconUrl: String?,
@JsonProperty("name") @SerialName("name") val name: String,
@JsonProperty("description") @SerialName("description") val description: String?,
@JsonProperty("manifestVersion") @SerialName("manifestVersion") val manifestVersion: Int,
@JsonProperty("pluginLists") @SerialName("pluginLists") val pluginLists: List<String>,
@SerialName("iconUrl") val iconUrl: String?,
@SerialName("name") val name: String,
@SerialName("description") val description: String?,
@SerialName("manifestVersion") val manifestVersion: Int,
@SerialName("pluginLists") val pluginLists: List<String>,
)

/**
Expand All @@ -49,37 +48,37 @@ data class Repository(
@Serializable
data class SitePlugin(
// Url to the .cs3 file
@JsonProperty("url") @SerialName("url") val url: String,
@SerialName("url") val url: String,
// Status to remotely disable the provider
@JsonProperty("status") @SerialName("status") val status: Int,
@SerialName("status") val status: Int,
// Integer over 0, any change of this will trigger an auto update
@JsonProperty("version") @SerialName("version") val version: Int,
@SerialName("version") val version: Int,
// Unused currently, used to make the api backwards compatible?
// Set to 1
@JsonProperty("apiVersion") @SerialName("apiVersion") val apiVersion: Int,
@SerialName("apiVersion") val apiVersion: Int,
// Name to be shown in app
@JsonProperty("name") @SerialName("name") val name: String,
@SerialName("name") val name: String,
// Name to be referenced internally. Separate to make name and url changes possible
@JsonProperty("internalName") @SerialName("internalName") val internalName: String,
@JsonProperty("authors") @SerialName("authors") val authors: List<String>,
@JsonProperty("description") @SerialName("description") val description: String?,
@SerialName("internalName") val internalName: String,
@SerialName("authors") val authors: List<String>,
@SerialName("description") val description: String?,
// Might be used to go directly to the plugin repo in the future
@JsonProperty("repositoryUrl") @SerialName("repositoryUrl") val repositoryUrl: String?,
@SerialName("repositoryUrl") val repositoryUrl: String?,
// These types are yet to be mapped and used, ignore for now
@JsonProperty("tvTypes") @SerialName("tvTypes") val tvTypes: List<String>?,
@SerialName("tvTypes") val tvTypes: List<String>?,
// Most often a language tag like "en" or "zh-TW"
@JsonProperty("language") @SerialName("language") val language: String?,
@JsonProperty("iconUrl") @SerialName("iconUrl") val iconUrl: String?,
@SerialName("language") val language: String?,
@SerialName("iconUrl") val iconUrl: String?,
// Automatically generated by the gradle plugin
@JsonProperty("fileSize") @SerialName("fileSize") val fileSize: Long?,
@JsonProperty("fileHash") @SerialName("fileHash") val fileHash: String?,
@SerialName("fileSize") val fileSize: Long?,
@SerialName("fileHash") val fileHash: String?,
)

@Serializable
data class PluginWrapper(
@JsonProperty("repository") @SerialName("repository") val repository: Repository,
@JsonProperty("repositoryData") @SerialName("repositoryData") val repositoryData: RepositoryData,
@JsonProperty("plugin") @SerialName("plugin") val plugin: SitePlugin
@SerialName("repository") val repository: Repository,
@SerialName("repositoryData") val repositoryData: RepositoryData,
@SerialName("plugin") val plugin: SitePlugin
) {
companion object {
private val localRepository = Repository("", "", "", 1, emptyList())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.plugins

import android.util.Log
import android.widget.Toast
import com.fasterxml.jackson.annotation.JsonProperty
import com.lagradost.cloudstream3.CloudStreamApp.Companion.context
import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey
import com.lagradost.cloudstream3.CloudStreamApp.Companion.setKey
Expand Down Expand Up @@ -95,7 +94,7 @@ object VotingApi {

@Serializable
private data class CountifyResult(
@JsonProperty("id") @SerialName("id") val id: String? = null,
@JsonProperty("count") @SerialName("count") val count: Int? = null,
@SerialName("id") val id: String? = null,
@SerialName("count") val count: Int? = null,
)
}
Loading