SubSourceApi

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion
Link copied to clipboard
@Serializable
data class DownloadRoot(var subtitle: SubSourceApi.Subtitle)
Link copied to clipboard
@Serializable
data class ItemRoot(var subtitles: ArrayList<SubSourceApi.Subtitles>)
Link copied to clipboard
@Serializable
data class Results(var id: Int? = null, var title: String? = null, var type: String? = null, var link: String, var releaseYear: Int? = null, var poster: String? = null, var subtitleCount: String? = null, var rating: Double? = null, var cast: ArrayList<String> = arrayListOf(), var genres: ArrayList<String> = arrayListOf(), var score: Double? = null)
Link copied to clipboard
@Serializable
data class SearchRoot(var success: Boolean? = null, var results: ArrayList<SubSourceApi.Results> = arrayListOf(), var users: ArrayList<SubSourceApi.Users> = arrayListOf())
Link copied to clipboard
@Serializable
data class Subtitle(var id: Int? = null, var uploadedAt: String? = null, var language: String? = null, var rating: String? = null, var uploadedBy: Int? = null, var releaseInfo: ArrayList<String> = arrayListOf(), var commentary: String? = null, var files: String? = null, var size: String? = null, var downloads: Int? = null, var comments: Int? = null, var productionType: String? = null, var releaseType: String? = null, var episode: String? = null, var hearingImpaired: Int? = null, var foreignParts: String? = null, var framerate: String? = null, var preview: String? = null, var userUploaded: Boolean? = null, var downloadToken: String)
Link copied to clipboard
@Serializable
data class Subtitles(var id: Int? = null, var language: String, var releaseType: String? = null, var releaseInfo: String, var uploadDate: String? = null, var hearingImpaired: Int? = null, var caption: String? = null, var rating: String? = null, var uploaderId: Int? = null, var uploaderDisplayname: String? = null, var uploaderBadges: ArrayList<String> = arrayListOf(), var link: String, var productionType: String? = null, var lastSubtitle: Boolean? = null)
Link copied to clipboard
@Serializable
data class Users(var id: Int? = null, var displayname: String? = null, var avatar: String? = null, var badges: ArrayList<String> = arrayListOf())

Properties

Link copied to clipboard
open val createAccountUrl: String? = null

Link to a website for creating a new account

Link copied to clipboard
open val hasInApp: Boolean = false

Has in app login support, aka login with a dialog

Link copied to clipboard
open val hasOAuth2: Boolean = false

Has OAuth2 login support, including login, loginRequest and refreshToken

Link copied to clipboard
open val hasPin: Boolean = false

Has on device pin support, aka login with a QR code

Link copied to clipboard
open val icon: Int? = null

Drawable icon of the service

Link copied to clipboard
open override val idPrefix: String
Link copied to clipboard

The requirements to login in app

Link copied to clipboard
open override val name: String
Link copied to clipboard
open val redirectUrlIdentifier: String? = null

The sensitive redirect URL from OAuth should contain "/redirectUrlIdentifier" to trigger the login

Link copied to clipboard
open override val requiresLogin: Boolean = false

If this service requires an account to use

Functions

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open suspend fun invalidateToken(token: AuthToken): Nothing

An optional security measure to make sure that even if an attacker gets ahold of the token, it will be invalid.

Link copied to clipboard

Is this url a valid redirect url for this service?

Link copied to clipboard
@WorkerThread
open suspend fun load(auth: AuthData?, subtitle: AbstractSubtitleEntities.SubtitleEntity): String?
Link copied to clipboard
open suspend fun login(form: AuthLoginResponse): AuthToken?

In app login

open suspend fun login(payload: AuthPinData): AuthToken?

Pin login, this will be called periodically while logging in to check if the pin has been verified by the user

open suspend fun login(redirectUrl: String, payload: String?): AuthToken?

OAuth2 login from a valid redirectUrl, and payload given in loginRequest

Link copied to clipboard
Link copied to clipboard

OAuth2 login request, asking the service to provide a url to open in the browser

Link copied to clipboard
open suspend fun pinRequest(): AuthPinData?

Pin login request, asking the service to provide an verificationUrl to display with a QR code

Link copied to clipboard
open suspend fun refreshToken(token: AuthToken): AuthToken?

OAuth2 token refresh, this ensures that all token passed to other functions will be valid

Link copied to clipboard
@WorkerThread
suspend fun resource(auth: AuthData?, subtitle: AbstractSubtitleEntities.SubtitleEntity): SubtitleResource
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open suspend fun user(token: AuthToken?): AuthUser?

Get the visible user account