MALApi

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
data class AlternativeTitles(val synonyms: List<String>, val en: String, val ja: String)
Link copied to clipboard
data class Broadcast(val dayOfTheWeek: String?, val startTime: String?)
Link copied to clipboard
object Companion
Link copied to clipboard
data class Data(val node: MALApi.Node, val listStatus: MALApi.ListStatus?)
Link copied to clipboard
data class Genres(val id: Int, val name: String)
Link copied to clipboard
data class ListStatus(val status: String?, val score: Int, val numEpisodesWatched: Int, val isRewatching: Boolean, val updatedAt: String)
Link copied to clipboard
data class MainPicture(val medium: String, val large: String)
Link copied to clipboard
data class MalAnime(val id: Int?, val title: String?, val mainPicture: MALApi.MainPicture?, val alternativeTitles: MALApi.AlternativeTitles?, val startDate: String?, val endDate: String?, val synopsis: String?, val mean: Double?, val rank: Int?, val popularity: Int?, val numListUsers: Int?, val numScoringUsers: Int?, val nsfw: String?, val createdAt: String?, val updatedAt: String?, val mediaType: String?, val status: String?, val genres: ArrayList<MALApi.Genres>?, val myListStatus: MALApi.MyListStatus?, val numEpisodes: Int?, val startSeason: MALApi.StartSeason?, val broadcast: MALApi.Broadcast?, val source: String?, val averageEpisodeDuration: Int?, val rating: String?, val pictures: ArrayList<MALApi.MainPicture>?, val background: String?, val relatedAnime: ArrayList<MALApi.RelatedAnime>?, val relatedManga: ArrayList<String>?, val recommendations: ArrayList<MALApi.Recommendations>?, val studios: ArrayList<MALApi.Studios>?, val statistics: MALApi.Statistics?)
Link copied to clipboard
data class MalDatum(val node: MALApi.MalNode, val listStatus: MALApi.MalStatus)
Link copied to clipboard
data class MalList(val data: List<MALApi.Data>, val paging: MALApi.Paging)
Link copied to clipboard
data class MalMainPicture(val large: String?, val medium: String?)
Link copied to clipboard
data class MalNode(val id: Int, val title: String)
Link copied to clipboard
data class MalRoot(val data: List<MALApi.MalDatum>)
Link copied to clipboard
data class MalSearch(val data: List<MALApi.MalSearchNode>)
Link copied to clipboard
data class MalSearchNode(val node: MALApi.Node)
Link copied to clipboard
data class MalStatus(val status: String, val score: Int, val numEpisodesWatched: Int, val isRewatching: Boolean, val updatedAt: String)
Link copied to clipboard
data class MalTitleHolder(val status: MALApi.MalStatus, val id: Int, val name: String)
Link copied to clipboard
data class MalUser(val id: Int, val name: String, val location: String, val joinedAt: String, val picture: String?)
Link copied to clipboard
data class MyListStatus(val status: String? = null, val score: Int? = null, val numEpisodesWatched: Int? = null, val isRewatching: Boolean? = null, val updatedAt: String? = null)
Link copied to clipboard
data class Node(val id: Int, val title: String, val mainPicture: MALApi.MainPicture?, val alternativeTitles: MALApi.AlternativeTitles?, val mediaType: String?, val numEpisodes: Int?, val status: String?, val startDate: String?, val endDate: String?, val averageEpisodeDuration: Int?, val synopsis: String?, val mean: Double?, val genres: List<MALApi.Genres>?, val rank: Int?, val popularity: Int?, val numListUsers: Int?, val numFavorites: Int?, val numScoringUsers: Int?, val startSeason: MALApi.StartSeason?, val broadcast: MALApi.Broadcast?, val nsfw: String?, val createdAt: String?, val updatedAt: String?)
Link copied to clipboard
data class Paging(val next: String?)
Link copied to clipboard
data class PayLoad(val requestId: Int, val codeVerifier: String)
Link copied to clipboard
data class Recommendations(val node: MALApi.Node? = null, val numRecommendations: Int? = null)
Link copied to clipboard
data class RelatedAnime(val node: MALApi.Node? = null, val relationType: String? = null, val relationTypeFormatted: String? = null)
Link copied to clipboard
data class ResponseToken(val tokenType: String, val expiresIn: Int, val accessToken: String, val refreshToken: String)
Link copied to clipboard
data class SmallMalAnime(val id: Int, val title: String?, val numEpisodes: Int, val myListStatus: MALApi.MalStatus?, val mainPicture: MALApi.MalMainPicture?)
Link copied to clipboard
data class StartSeason(val year: Int, val season: String)
Link copied to clipboard
data class Statistics(val status: MALApi.Status? = null, val numListUsers: Int? = null)
Link copied to clipboard
data class Status(val watching: String? = null, val completed: String? = null, val onHold: String? = null, val dropped: String? = null, val planToWatch: String? = null)
Link copied to clipboard
data class Studios(val id: Int? = null, val name: String? = null)

Properties

Link copied to clipboard
open override val createAccountUrl: String

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 override val hasOAuth2: Boolean = true

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 override val icon: ERROR CLASS: Unresolved name: mal_logo

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
val key: String
Link copied to clipboard
open override val mainUrl: String
Link copied to clipboard
open override var name: String
Link copied to clipboard
open override val redirectUrlIdentifier: String?

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

Link copied to clipboard

Set this to true if the user updates something on the list like watch status or score

Link copied to clipboard
open val requiresLogin: Boolean = true

If this service requires an account to use

Link copied to clipboard

Currently unused, but will be used to correctly render the UI. This should specify what sync watch types can be used with this service.

Link copied to clipboard
open override val syncIdName: SyncIdName

Allows certain providers to open pages from library links.

Functions

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
open suspend override fun library(auth: AuthData?): SyncAPI.LibraryMetadata?

Get the current library/bookmarks of this service

Link copied to clipboard
open suspend override fun load(auth: AuthData?, id: String): SyncAPI.SyncResult?

Get metadata about an item

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 override 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
open override fun loginRequest(): AuthLoginPage?

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 override fun refreshToken(token: AuthToken): AuthToken?

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

Link copied to clipboard
open suspend override fun search(auth: AuthData?, query: String): List<SyncAPI.SyncSearchResult>?

Search this service for any results for a given query

Link copied to clipboard
open suspend override fun status(auth: AuthData?, id: String): SyncAPI.AbstractSyncStatus?

Get the current status of an item

Link copied to clipboard
Link copied to clipboard
open suspend override fun updateStatus(auth: AuthData?, id: String, newStatus: SyncAPI.AbstractSyncStatus): Boolean

Modify the current status of an item

Link copied to clipboard
open override fun urlToId(url: String): String?

Helper function, may be used in the future

Link copied to clipboard
open suspend override fun user(token: AuthToken?): AuthUser?

Get the visible user account