UNPKG

mal-api-v2

Version:

An awesome library to connect with the new MyAnimeList's API v2!

306 lines (298 loc) 13.6 kB
type animeFullFields = string[] | Array<"id" | "title" | "main_picture" | "alternative_titles" | "start_date" | "end_date" | "synopsis" | "mean" | "rank" | "popularity" | "num_list_users" | "num_scoring_users" | "nsfw" | "genres" | "created_at" | "updated_at" | "media_type" | "status" | "my_list_status" | "num_episodes" | "start_season" | "broadcast" | "source" | "average_episode_duration" | "rating" | "studios" | "pictures" | "background" | "related_anime" | "related_manga" | "recommendations" | "statistics">; type animeInListFields = string[] | Array<"id" | "title" | "main_picture" | "alternative_titles" | "start_date" | "end_date" | "synopsis" | "mean" | "rank" | "popularity" | "num_list_users" | "num_scoring_users" | "nsfw" | "genres" | "created_at" | "updated_at" | "media_type" | "status" | "my_list_status" | "num_episodes" | "start_season" | "broadcast" | "source" | "average_episode_duration" | "rating" | "studios">; type mangaFullFields = string[] | Array<"id" | "title" | "main_picture" | "alternative_titles" | "start_date" | "end_date" | "synopsis" | "mean" | "rank" | "popularity" | "num_list_users" | "num_scoring_users" | "nsfw" | "genres" | "created_at" | "updated_at" | "media_type" | "status" | "my_list_status" | "num_volumes" | "num_chapters" | "authors" | "pictures" | "background" | "related_anime" | "related_manga" | "recommendations" | "serialization">; type mangaInListFields = string[] | Array<"id" | "title" | "main_picture" | "alternative_titles" | "start_date" | "end_date" | "synopsis" | "mean" | "rank" | "popularity" | "num_list_users" | "num_scoring_users" | "nsfw" | "genres" | "created_at" | "updated_at" | "media_type" | "status" | "my_list_status" | "num_volumes" | "num_chapters" | "authors">; type userAnimeFields = string[] | Array<"status" | "score" | "num_watched_episodes" | "is_rewatching" | "start_date" | "finish_date" | "priority" | "num_times_rewatched" | "rewatch_value" | "tags" | "updated_at" | "id" | "title" | "main_picture" | "alternative_titles" | "end_date" | "synopsis" | "mean" | "rank" | "popularity" | "num_list_users" | "num_scoring_users" | "nsfw" | "genres" | "created_at" | "media_type" | "my_list_status" | "num_episodes" | "start_season" | "broadcast" | "source" | "average_episode_duration" | "rating" | "studios">; type userMangaFields = string[] | Array<"status" | "score" | "num_volumes_read" | "num_chapters_read" | "is_rereading" | "start_date" | "finish_date" | "priority" | "num_times_reread" | "reread_value" | "tags" | "updated_at" | "id" | "title" | "main_picture" | "alternative_titles" | "end_date" | "synopsis" | "mean" | "rank" | "popularity" | "num_list_users" | "num_scoring_users" | "nsfw" | "genres" | "created_at" | "media_type" | "my_list_status" | "num_volumes" | "num_chapters" | "authors">; type userFields = string[] | Array<"id" | "name" | "picture" | "gender" | "birthday" | "location" | "joined_at" | "anime_statistics" | "time_zone" | "is_supporter">; interface obj { [key: string]: any; } interface codePair { code_challenge: string; code_verifier: string; } interface animeSearchQuery { /** Query */ q: string; /** Default 100 (optional) */ limit?: number; /** Default 0 (optional) */ offset?: number; /** Array string {@link animeInListFields see} (optional) */ fields?: animeInListFields; } interface animeSearchRanking { /** Default "all" {@link animeSearchRanking.ranking_type see} (optional) */ ranking_type?: "all" | "airing" | "upcoming" | "tv" | "ova" | "movie" | "special" | "bypopularity" | "favorite"; /** Default 100 (optional) */ limit?: number; /** Default 0 (optional) */ offset?: number; /** Array string {@link animeInListFields see} (optional) */ fields?: animeInListFields; } interface animeSearchSeasonal { /** Default current year (optional) */ year?: number; /** Default current season (optional) */ season?: "winter" | "spring" | "summer" | "fall"; /** Default "anime_score" (optional) */ sort?: "anime_score" | "anime_num_list_users"; /** Default 100 (optional) */ limit?: number; /** Default 0 (optional) */ offset?: number; /** Array string {@link animeInListFields see} (optional) */ fields?: animeInListFields; } interface animeSearchSuggested { /** Default 100 (optional) */ limit?: number; /** Default 0 (optional) */ offset?: number; /** Array string {@link animeInListFields see} (optional) */ fields?: animeInListFields; } interface userAnimeList { /** Default "@me" (optional) */ userName?: string; /** String {@link userAnimeList.status see} (optional) */ status?: "watching" | "completed" | "on_hold" | "dropped" | "plan_to_watch"; /** Default "anime_title" {@link userAnimeList.sort see} (optional) */ sort?: "list_score" | "list_updated_at" | "anime_title" | "anime_start_date" | "anime_id"; /** Default 100 (optional) */ limit?: number; /** Default 0 (optional) */ offset?: number; /** Array string {@link userAnimeFields see} (optional) */ fields?: userAnimeFields; } interface userAnimeListUpdate { /** String {@link userAnimeListUpdate.status see} (optional) */ status?: "watching" | "completed" | "on_hold" | "dropped" | "plan_to_watch"; /** Boolean (optional) */ is_rewatching?: boolean; /** Number 0-10 (optional) */ score?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10; /** Number (optional) */ num_watched_episodes?: number; /** Number 0-2 (optional) */ priority?: 0 | 1 | 2; /** Number (optional) */ num_times_rewatched?: number; /** Number 0-5 (optional) */ rewatch_value?: 0 | 1 | 2 | 3 | 4 | 5; /** String (optional) */ tags?: string; /** String (optional) */ comments?: string; } interface mangaSearchQuery { /** Query */ q: string; /** Default 100 (optional) */ limit?: number; /** Default 0 (optional) */ offset?: number; /** Array string {@link mangaInListFields see} (optional) */ fields?: mangaInListFields; } interface mangaSearchRanking { /** Default "all" {@link mangaSearchRanking.ranking_type see} (optional) */ ranking_type: "all" | "manga" | "oneshots" | "doujin" | "lightnovels" | "novels" | "manhwa" | "manhua" | "bypopularity" | "favorite"; /** Default 100 (optional) */ limit?: number; /** Default 0 (optional) */ offset?: number; /** Array string {@link mangaInListFields see} (optional) */ fields?: mangaInListFields; } interface userMangaList { /** Default "@me" (optional) */ userName?: string; /** String {@link userMangaList.status see} (optional) */ status?: "reading" | "completed" | "on_hold" | "dropped" | "plan_to_read"; /** Default "manga_title" {@link userMangaList.sort see} (optional) */ sort?: "list_score" | "list_updated_at" | "manga_title" | "manga_start_date" | "manga_id"; /** Default 100 (optional) */ limit?: number; /** Default 0 (optional) */ offset?: number; /** Array string {@link mangaInListFields see} (optional) */ fields?: userMangaFields; } interface userMangaListUpdate { /** String {@link userMangaListUpdate.status see} (optional) */ status?: "reading" | "completed" | "on_hold" | "dropped" | "plan_to_read"; /** Boolean (optional) */ is_rereading?: boolean; /** Number 0-10 (optional) */ score?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10; /** Number (optional) */ num_volumes_read?: number; /** Number (optional) */ num_chapters_read?: number; /** Number 0-2 (optional) */ priority?: 0 | 1 | 2; /** Number (optional) */ num_times_reread?: number; /** Number 0-5 (optional) */ reread_value?: 0 | 1 | 2 | 3 | 4 | 5; /** String (optional) */ tags?: string; /** String (optional) */ comments?: string; } interface userList { /** Default "@me" (optional) */ userName?: string; /** Array string {@link userFields see} (optional) */ fields?: userFields; } interface Oauth2Options { /** String https://myanimelist.net/apiconfig/create */ clientId: string; /** String (optional) */ clientSecret?: string; /** Optional if you set more than one redirect url from api configuration */ urlRedirect?: string; } export class Oauth2 { /** @param {Oauth2Options} obj Oauth2Options {@link Oauth2Options see} */ constructor (obj: Oauth2Options); /** * @param {number} [length] Default 43 (optional) * @returns {codePair} Object */ pkceGenerate(length?: number): codePair; /** * @param {string} codeVerifier Get this from method pkceGenerate * @param {string} codeChallenge Get this from method pkceGenerate * @returns {boolean} Boolean */ pkceVerifyChallenge (codeVerifier: string, codeChallenge: string): boolean; /** * @param {string} codeChallenge Get this from method pkceGenerate * @param {string} [state] Optional but recommended * @returns {string} Url authorize */ urlAuthorize (codeChallenge: string, state?: string): string; /** * @param {string} code To get code you must access url from method urlAuthorize * @param {string} codeChallenge Get this from method pkceGenerate * @returns {Promise<obj>} Success / error return Promise object */ getToken (code: string, codeChallenge: string): Promise<obj>; /** * @param {string} refreshToken Get this from method getToken * @returns {Promise<obj>} Success / error return Promise object */ refreshToken (refreshToken: string): Promise<obj> } export class Anime { /** @param {string} accessToken access_token */ constructor (accessToken: string); /** * @param {number} id Anime id * @param {animeFullFields} [fields] Array string {@link animeFullFields see} * @returns {Promise<obj>} Success / error return Promise object */ id (id: number, fields: animeFullFields): Promise<obj> /** * @param {animeSearchQuery} obj Anime search by query * @returns {Promise<obj>} Success / error return Promise object */ search(obj: animeSearchQuery): Promise<obj>; /** * @param {animeSearchRanking} obj Anime search by ranking * @returns {Promise<obj>} Success / error return Promise object */ ranking(obj: animeSearchRanking): Promise<obj>; /** * @param {animeSearchSeasonal} obj Anime search by seasonal * @returns {Promise<obj>} Success / error return Promise object */ seasonal(obj: animeSearchSeasonal): Promise<obj>; /** * @param {animeSearchSuggested} obj Anime search by seasonal * @returns {Promise<obj>} Success / error return Promise object */ suggested(obj: animeSearchSuggested): Promise<obj>; } export class Manga { /** @param {string} accessToken access_token */ constructor (accessToken: string); /** * @param {number} id Manga id * @param {mangaFullFields} [fields] Array string {@link mangaFullFields see} * @returns {Promise<obj>} Success / error return Promise object */ id (id: number, fields: mangaFullFields): Promise<obj> /** * @param {mangaSearchQuery} obj Manga search by query * @returns {Promise<obj>} Success / error return Promise object */ search(obj: mangaSearchQuery): Promise<obj>; /** * @param {mangaSearchRanking} obj Manga search by ranking * @returns {Promise<obj>} Success / error return Promise object */ ranking(obj: mangaSearchRanking): Promise<obj>; } export class UserAnimeList { /** @param {string} accessToken access_token */ constructor (accessToken: string); /** * Get user anime list * @param {userAnimeList} [obj] Object {@link userAnimeList see} (optional) * @returns {Promise<obj>} Success / error return Promise object */ getList(obj?: userAnimeList): Promise<obj>; /** * Delete my anime list item * @param {number} id Anime id * @returns {Promise<obj>} Success / error return Promise object */ deleteList(id: number): Promise<obj>; /** * Update my anime list status * @param {number} id Anime id * @param {userAnimeListUpdate} obj Object {@link userAnimeListUpdate see} * @returns {Promise<obj>} Success / error return Promise object */ updateList (id: number, obj: userAnimeListUpdate): Promise<obj>; } export class UserMangaList { /** @param {string} accessToken access_token */ constructor (accessToken: string); /** * Get user manga list * @param {userMangaList} [obj] Object {@link userMangaList see} (optional) * @returns {Promise<obj>} Success / error return Promise object */ getList(obj?: userMangaList): Promise<obj>; /** * Delete my manga list item * @param {number} id Manga id * @returns {Promise<obj>} Success / error return Promise object */ deleteList(id: number): Promise<obj>; /** * Update my Manga list status * @param {number} id Manga id * @param {userMangaListUpdate} obj Object {@link userMangaListUpdate see} * @returns {Promise<obj>} Success / error return Promise object */ updateList (id: number, obj: userMangaListUpdate): Promise<obj>; } export class User { /** @param {string} accessToken access_token */ constructor (accessToken: string); /** * Get my user information * @param {userList} [obj] Object {@link userMangaList see} (optional) * @returns {Promise<obj>} Success / error return Promise object */ get(obj?: userList): Promise<obj>; }