MainAPI

abstract class MainAPI(source)

Every provider will not have try catch built in, so handle exceptions when calling these functions

Inheritors

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
Link copied to clipboard
open val hasChromecastSupport: Boolean = true

Set false if links require referer or for some reason cant be played on a chromecast

Link copied to clipboard
open val hasDownloadSupport: Boolean = true

If all links are encrypted then set this to false

Link copied to clipboard
open val hasMainPage: Boolean = false
Link copied to clipboard
open val hasQuickSearch: Boolean = false
Link copied to clipboard
open val instantLinkLoading: Boolean = false

If link is stored in the "data" string, so links can be instantly loaded

Link copied to clipboard
open var lang: String
Link copied to clipboard

used to keep track when last homepage request was in unixtime ms

Link copied to clipboard
Link copied to clipboard
open var mainUrl: String
Link copied to clipboard
open var name: String
Link copied to clipboard
Link copied to clipboard

if this is turned on then it will request the homepage one after the other, used to delay if they block many request at the same time

Link copied to clipboard

in milliseconds, this can be used to add more delay between homepage requests on first load if sequentialMainPage is turned on

Link copied to clipboard

in milliseconds, this can be used to add more delay between homepage requests when scrolling

Link copied to clipboard

Determines which plugin a given provider is from. This is the full path to the plugin.

Link copied to clipboard
Link copied to clipboard

A set of which ids the provider can open with getLoadUrl() If the set contains SyncIdName.Imdb then getLoadUrl() can be started with an Imdb class which inherits from SyncId.

Link copied to clipboard
Link copied to clipboard
open val usesWebView: Boolean = false

Used for testing and can be used to disable the providers if WebView is not available

Link copied to clipboard

Functions

Link copied to clipboard
open suspend fun extractorVerifierJob(extractorData: String?)

Largely redundant feature for most providers.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open suspend fun getLoadUrl(name: SyncIdName, id: String): String?

Get the load() url based on a sync ID like IMDb or MAL. Only contains SyncIds based on supportedSyncUrls.

Link copied to clipboard
open suspend fun getMainPage(page: Int, request: MainPageRequest): HomePageResponse?
Link copied to clipboard
open fun getVideoInterceptor(extractorLink: ExtractorLink): Interceptor?

An okhttp interceptor for used in OkHttpDataSource

Link copied to clipboard
fun init()
Link copied to clipboard
open suspend fun load(url: String): LoadResponse?

Based on data from search() or getMainPage() it generates a LoadResponse, basically opening the info page from a link.

Link copied to clipboard
open suspend fun loadLinks(data: String, isCasting: Boolean, subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit): Boolean

Callback is fired once a link is found, will return true if method is executed successfully

Link copied to clipboard
suspend fun MainAPI.newAnimeLoadResponse(name: String, url: String, type: TvType, comingSoonIfNone: Boolean = true, initializer: suspend AnimeLoadResponse.() -> Unit = { }): AnimeLoadResponse
Link copied to clipboard
fun MainAPI.newAnimeSearchResponse(name: String, url: String, type: TvType = TvType.Anime, fix: Boolean = true, initializer: AnimeSearchResponse.() -> Unit = { }): AnimeSearchResponse
Link copied to clipboard
fun <T> MainAPI.newEpisode(data: T, initializer: Episode.() -> Unit = { }): Episode
fun MainAPI.newEpisode(url: String, initializer: Episode.() -> Unit = { }, fix: Boolean = true): Episode
Link copied to clipboard
suspend fun <T> MainAPI.newMovieLoadResponse(name: String, url: String, type: TvType, data: T?, initializer: suspend MovieLoadResponse.() -> Unit = { }): MovieLoadResponse
suspend fun MainAPI.newMovieLoadResponse(name: String, url: String, type: TvType, dataUrl: String, initializer: suspend MovieLoadResponse.() -> Unit = { }): MovieLoadResponse
Link copied to clipboard
fun MainAPI.newMovieSearchResponse(name: String, url: String, type: TvType = TvType.Movie, fix: Boolean = true, initializer: MovieSearchResponse.() -> Unit = { }): MovieSearchResponse
Link copied to clipboard
suspend fun MainAPI.newTvSeriesLoadResponse(name: String, url: String, type: TvType, episodes: List<Episode>, initializer: suspend TvSeriesLoadResponse.() -> Unit = { }): TvSeriesLoadResponse
Link copied to clipboard
fun MainAPI.newTvSeriesSearchResponse(name: String, url: String, type: TvType = TvType.TvSeries, fix: Boolean = true, initializer: TvSeriesSearchResponse.() -> Unit = { }): TvSeriesSearchResponse
Link copied to clipboard
Link copied to clipboard
open suspend fun quickSearch(query: String): List<SearchResponse>?
Link copied to clipboard
open suspend fun search(query: String): List<SearchResponse>?