Compare commits

...

4 commits

Author SHA1 Message Date
firelight
ca17a4c7e1
Merge branch 'master' into poststable480 2026-07-10 16:26:19 +00:00
firelight
5a40b036cb
Update ExtractorApi.kt 2026-07-10 16:25:36 +00:00
firelight
2f69f33f1f
Update ExtractorApi.kt 2026-07-10 16:20:49 +00:00
firelight
b7234cbb2b
remove prerelease annotations 2026-07-10 16:09:42 +00:00
17 changed files with 0 additions and 26 deletions

View file

@ -22,7 +22,6 @@ fun Requests.initClient(context: Context) {
} }
/** Only use ignoreSSL if you know what you are doing*/ /** Only use ignoreSSL if you know what you are doing*/
@Prerelease
fun Requests.initClient(context: Context, ignoreSSL: Boolean = false) { fun Requests.initClient(context: Context, ignoreSSL: Boolean = false) {
this.baseClient = buildDefaultClient(context, ignoreSSL) this.baseClient = buildDefaultClient(context, ignoreSSL)
} }
@ -34,7 +33,6 @@ fun buildDefaultClient(context: Context): OkHttpClient {
} }
/** Only use ignoreSSL if you know what you are doing*/ /** Only use ignoreSSL if you know what you are doing*/
@Prerelease
fun buildDefaultClient(context: Context, ignoreSSL: Boolean = false): OkHttpClient { fun buildDefaultClient(context: Context, ignoreSSL: Boolean = false): OkHttpClient {
safe { Security.insertProviderAt(Conscrypt.newProvider(), 1) } safe { Security.insertProviderAt(Conscrypt.newProvider(), 1) }

View file

@ -97,7 +97,6 @@ class ErrorLoadingException(message: String? = null) : Exception(message)
//val baseHeader = mapOf("User-Agent" to USER_AGENT) //val baseHeader = mapOf("User-Agent" to USER_AGENT)
@Prerelease
val json = Json { val json = Json {
encodeDefaults = true encodeDefaults = true
explicitNulls = false explicitNulls = false
@ -1094,7 +1093,6 @@ enum class TvType(value: Int?) {
Audio(16), Audio(16),
Podcast(17), Podcast(17),
@Prerelease
Video(18), Video(18),
} }
@ -2554,12 +2552,10 @@ fun Episode.addDate(date: String?, format: String = "yyyy-MM-dd") {
}.onFailure { logError(it) }.getOrNull() }.onFailure { logError(it) }.getOrNull()
} }
@Prerelease
fun Episode.addDate(date: LocalDate?) { fun Episode.addDate(date: LocalDate?) {
this.date = date?.atStartOfDayIn(TimeZone.currentSystemDefault())?.toEpochMilliseconds() this.date = date?.atStartOfDayIn(TimeZone.currentSystemDefault())?.toEpochMilliseconds()
} }
@Prerelease
fun Episode.addDate(date: Instant?) { fun Episode.addDate(date: Instant?) {
this.date = date?.toEpochMilliseconds() this.date = date?.toEpochMilliseconds()
} }
@ -2706,7 +2702,6 @@ fun fetchUrls(text: String?): List<String> {
return linkRegex.findAll(text).map { it.value.trim().removeSurrounding("\"") }.toList() return linkRegex.findAll(text).map { it.value.trim().removeSurrounding("\"") }.toList()
} }
@Prerelease
fun isUpcoming(dateString: String?): Boolean { fun isUpcoming(dateString: String?): Boolean {
return runCatching { return runCatching {
val fmt = DateTimeComponents.Format { val fmt = DateTimeComponents.Format {

View file

@ -33,7 +33,6 @@ var app = Requests(responseParser = jsonResponseParser).apply {
/** Same as the default app networking helper, but this instance ignores SSL certificates. /** Same as the default app networking helper, but this instance ignores SSL certificates.
* This should NEVER be used for sensitive networking operations such as logins. Only use this when required. */ * This should NEVER be used for sensitive networking operations such as logins. Only use this when required. */
@Prerelease
@UnsafeSSL @UnsafeSSL
var insecureApp = Requests(responseParser = jsonResponseParser).apply { var insecureApp = Requests(responseParser = jsonResponseParser).apply {
defaultHeaders = mapOf("user-agent" to USER_AGENT) defaultHeaders = mapOf("user-agent" to USER_AGENT)

View file

@ -88,7 +88,6 @@ class MyVidPlay : DoodLaExtractor() {
override var mainUrl = "https://myvidplay.com" override var mainUrl = "https://myvidplay.com"
} }
@Prerelease
class Playmogo : DoodLaExtractor() { class Playmogo : DoodLaExtractor() {
override var mainUrl = "https://playmogo.com" override var mainUrl = "https://playmogo.com"
} }

View file

@ -9,7 +9,6 @@ import com.lagradost.cloudstream3.utils.newExtractorLink
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
@Prerelease
class Firestream : ExtractorApi() { class Firestream : ExtractorApi() {
override val name: String = "Firestream" override val name: String = "Firestream"
override val mainUrl: String = "https://firestream.to" override val mainUrl: String = "https://firestream.to"

View file

@ -10,7 +10,6 @@ import com.lagradost.cloudstream3.utils.newExtractorLink
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
@Prerelease
open class Flyfile : ExtractorApi() { open class Flyfile : ExtractorApi() {
override val name: String = "FlyFile" override val name: String = "FlyFile"
override val mainUrl: String = "https://flyfile.app" override val mainUrl: String = "https://flyfile.app"

View file

@ -28,7 +28,6 @@ class Ewish : StreamWishExtractor() {
override val mainUrl = "https://embedwish.com" override val mainUrl = "https://embedwish.com"
} }
@Prerelease
class Hgcloudto : StreamWishExtractor() { class Hgcloudto : StreamWishExtractor() {
override val name = "Hgcloud" override val name = "Hgcloud"
override val mainUrl = "https://Hgcloud.to" override val mainUrl = "https://Hgcloud.to"

View file

@ -7,7 +7,6 @@ import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.ExtractorLinkType import com.lagradost.cloudstream3.utils.ExtractorLinkType
import com.lagradost.cloudstream3.utils.newExtractorLink import com.lagradost.cloudstream3.utils.newExtractorLink
@Prerelease
open class Streamcash: ExtractorApi() { open class Streamcash: ExtractorApi() {
override val name: String = "Streamcash" override val name: String = "Streamcash"
override val mainUrl: String = "https://streamcash.to" override val mainUrl: String = "https://streamcash.to"

View file

@ -7,7 +7,6 @@ import com.lagradost.cloudstream3.utils.ExtractorApi
import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.newExtractorLink import com.lagradost.cloudstream3.utils.newExtractorLink
@Prerelease
open class Vids : ExtractorApi() { open class Vids : ExtractorApi() {
override val name: String = "Vids" override val name: String = "Vids"
override val mainUrl: String = "https://vids.st" override val mainUrl: String = "https://vids.st"

View file

@ -21,7 +21,6 @@ object AesHelper {
private val md5Hasher = provider.get(MD5).hasher() private val md5Hasher = provider.get(MD5).hasher()
@OptIn(DelicateCryptographyApi::class) @OptIn(DelicateCryptographyApi::class)
@Prerelease
suspend fun cryptoAESHandler( suspend fun cryptoAESHandler(
data: String, data: String,
pass: ByteArray, pass: ByteArray,

View file

@ -13,7 +13,6 @@ import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlin.collections.orEmpty import kotlin.collections.orEmpty
@Prerelease
object JwPlayerHelper { object JwPlayerHelper {
private val sourceRegex = Regex(""""?sources"?:\s*(\[.*?\])""") private val sourceRegex = Regex(""""?sources"?:\s*(\[.*?\])""")
private val tracksRegex = Regex(""""?tracks"?:\s*(\[.*?\])""") private val tracksRegex = Regex(""""?tracks"?:\s*(\[.*?\])""")

View file

@ -68,7 +68,6 @@ object Coroutines {
* If you want to iterate over the list then you need to do: * If you want to iterate over the list then you need to do:
* list.withLock { code here } * list.withLock { code here }
*/ */
@Prerelease
fun <T> atomicListOf(vararg items: T): AtomicMutableList<T> { fun <T> atomicListOf(vararg items: T): AtomicMutableList<T> {
return AtomicMutableList(items.toMutableList()) return AtomicMutableList(items.toMutableList())
} }

View file

@ -86,7 +86,6 @@ private const val JS_DEFAULT_MAX_INSTRUCTIONS: Long = 50_000_000L
* Convert any JS runtime value to its JavaScript string representation. * Convert any JS runtime value to its JavaScript string representation.
* Mirrors what JS `String(value)` would produce. * Mirrors what JS `String(value)` would produce.
*/ */
@Prerelease
fun jsValueToString(v: Any?): String = toJsString(v) fun jsValueToString(v: Any?): String = toJsString(v)
/** /**
@ -106,7 +105,6 @@ fun jsValueToString(v: Any?): String = toJsString(v)
* @param scope the [CoroutineScope] this context's cancellation is tied to. Supplied * @param scope the [CoroutineScope] this context's cancellation is tied to. Supplied
* automatically by [newJsContext] from the caller's own coroutine context. * automatically by [newJsContext] from the caller's own coroutine context.
*/ */
@Prerelease
class JsContext internal constructor( class JsContext internal constructor(
var maxExecutionTime: Duration = JS_DEFAULT_MAX_EXECUTION_TIME, var maxExecutionTime: Duration = JS_DEFAULT_MAX_EXECUTION_TIME,
var maxInstructions: Long = JS_DEFAULT_MAX_INSTRUCTIONS, var maxInstructions: Long = JS_DEFAULT_MAX_INSTRUCTIONS,
@ -160,7 +158,6 @@ class JsContext internal constructor(
* eval("x + 1") * eval("x + 1")
* } * }
*/ */
@Prerelease
suspend fun newJsContext( suspend fun newJsContext(
initializer: suspend JsContext.() -> Unit = {}, initializer: suspend JsContext.() -> Unit = {},
): JsContext { ): JsContext {
@ -188,7 +185,6 @@ suspend fun newJsContext(
* Returns [Unit] on evaluation failure, timeout, or when the result is JS undefined. * Returns [Unit] on evaluation failure, timeout, or when the result is JS undefined.
* JS null is represented as Kotlin null. Use [jsValueToString] to convert to a JS string. * JS null is represented as Kotlin null. Use [jsValueToString] to convert to a JS string.
*/ */
@Prerelease
@Throws(CancellationException::class) @Throws(CancellationException::class)
suspend fun evalJs( suspend fun evalJs(
js: String, js: String,

View file

@ -28,7 +28,6 @@ import com.lagradost.cloudstream3.Prerelease
import kotlin.math.round import kotlin.math.round
// Taken from https://github.com/terrakok/FuzzyKot/blob/f794d43/fuzzykot/src/commonMain/kotlin/com/github/terrakok/fuzzykot/Levenshtein.kt // Taken from https://github.com/terrakok/FuzzyKot/blob/f794d43/fuzzykot/src/commonMain/kotlin/com/github/terrakok/fuzzykot/Levenshtein.kt
@Prerelease
object Levenshtein { object Levenshtein {
fun ratio(s1: String, s2: String, processor: (String) -> String = { it }): Int { fun ratio(s1: String, s2: String, processor: (String) -> String = { it }): Int {
val p1 = processor(s1) val p1 = processor(s1)

View file

@ -5,12 +5,10 @@ import io.ktor.http.decodeURLQueryComponent
import io.ktor.http.encodeURLParameter import io.ktor.http.encodeURLParameter
object StringUtils { object StringUtils {
@Prerelease
fun String.decodeUrl(): String { fun String.decodeUrl(): String {
return this.decodeURLQueryComponent() return this.decodeURLQueryComponent()
} }
@Prerelease
fun String.encodeUrl(): String { fun String.encodeUrl(): String {
return this.encodeURLParameter() return this.encodeURLParameter()
} }

View file

@ -28,7 +28,6 @@ import kotlinx.serialization.json.JsonTransformingSerializer
* object Serializer : NonEmptySerializer<MyData>(MyData.generatedSerializer()) * object Serializer : NonEmptySerializer<MyData>(MyData.generatedSerializer())
* } * }
*/ */
@Prerelease
abstract class NonEmptySerializer<T : Any>(tSerializer: KSerializer<T>) : abstract class NonEmptySerializer<T : Any>(tSerializer: KSerializer<T>) :
JsonTransformingSerializer<T>(tSerializer) { JsonTransformingSerializer<T>(tSerializer) {

View file

@ -25,7 +25,6 @@ import kotlinx.serialization.json.JsonTransformingSerializer
* ) * )
* } * }
*/ */
@Prerelease
abstract class WriteOnlySerializer<T : Any>( abstract class WriteOnlySerializer<T : Any>(
tSerializer: KSerializer<T>, tSerializer: KSerializer<T>,
private val keysToIgnore: Set<String>, private val keysToIgnore: Set<String>,