UNPKG

@yuna0x0/anilist-node

Version:

A lightweight Node.js wrapper for the AniList API

801 lines (767 loc) 58.5 kB
/** * @typedef { Object } InitOptions * @property { Number } timeout - A number in milliseconds which defines a timeout when making requests */ /** * @typedef { Object } MediaTitle * @enum * @property { String } english - The offical English licensed title * @property { String } native - The Japanese title in Japanese * @property { String } romaji - The Japanese romanized title * @property { String } userPreferred - The title as it would be displayed to the user */ /** * @typedef { Object } PersonName * @enum * @property { String } english - The person's first and last name in English * @property { String } native - The person's name in Japanese * @property { String[] } alternative - Any nicknames or titles the person goes by. */ /** * @typedef { Object } CharacterName * @enum * @property { String } english - The person's first and last name in English * @property { String } native - The person's name in Japanese * @property { String[] } alternative - Any nicknames or titles the person goes by. * @property { String[] } alternativeSpoiler - Any nicknames or titles the person goes by but is marked as spoilers * @property { String } userPreferred - The user's preferred name language. Defaults to romaji for non-authenticated */ /** * @typedef { Object } StaffName * @enum * @property { String } english - The person's first and last name in English * @property { String } native - The person's name in Japanese * @property { String[] } alternative - Any nicknames or titles the person goes by. * @property { String } userPreferred - The user's preferred name language. Defaults to romaji for non-authenticated */ /** * @typedef { Object } SearchEntry * @enum * @property { Object } pageInfo - Information about the search result page * @property { Number } pageInfo.total - The total amount of pages in the search * @property { Number } pageInfo.currentPage - The current page of the search result * @property { Number } pageInfo.lastPage - Last page of the searched term * @property { Boolean } pageInfo.hasNextPage - Check if there is another page * @property { Number } pageInfo.perPage - Result count per page. * @property { Object[] } media - Search results * @property { Number } media.id - The ID of the media * @property { MediaTitle } media.title - The media's title (Used for anime and manga searches only) * @property { PersonName } media.name - The media's name (Used for character and staff searches only) * @property { String } media.name - The media's name (Used for studio and user searches only) */ /** * @typedef { Object } ActivityEntry * @property { Object } pageInfo - Information about the search result page * @property { Number } pageInfo.total - The total amount of pages in the search * @property { Number } pageInfo.currentPage - The current page of the search result * @property { Number } pageInfo.lastPage - Last page of the searched term * @property { Boolean } pageInfo.hasNextPage - Check if there is another page * @property { Number } pageInfo.perPage - Result count per page. * @property { Object[] } activities - Search results * @property { Number } id - The ID of the activity * @property { ActivityType } type - The activity type * @property { Number } createdAt - The creation timestamp of the activity * @property { Number } likeCount - The like count of the activity */ /** * @typedef { Object } StaffEntry * @enum * @property { Number } id - The person's ID on AniList * @property { StaffName } name - The person's name * @property { Object } image - The person's cover image. * @property { string } image.large - The large file * @property { string } image.medium - The medium file * @property { String } description - The person's description * @property { string[] } primaryOccupations - The primary occupations that the person does * @property { string } gender - The person's gender * @property { Object | null } dateOfBirth - The person's date of birth * @property { Number } dateOfBirth.year * @property { Number } dateOfBirth.month * @property { Number } dateOfBirth.day * @property { Object | null } dateOfDeath - The person's date of death * @property { Number } dateOfDeath.year * @property { Number } dateOfDeath.month * @property { Number } dateOfDeath.day * @property { number } age - The person's age * @property { number[] } yearsActive - Read as (start, end). If only one year is availible, person is still active. * @property { string } homeTown - Where the person is from * @property { string } bloodType - The person's blood type * @property { Boolean } isFavourite - [Requires Login] Check if the person is favourited * @property { Boolean } isFavouriteBlocked - True if user is not allowed to favourite the person * @property { Number } favourites - The number of users that have favourited the person * @property { String } language - The staff's language * @property { MediaRelation[] } staffMedia - An array of ids and titles of all media that the staff has been apart of. (Up to the first 25 entries) * @property { PersonRelation[] } characters - An array of ids and the english names of all characters that the staff has voiced. (Up to the first 25 entries) * @property { MediaRelation[] } characterMedia - An array of ids and titles of all media that the person voiced characters in. (Up to the first 25 entries) */ /** * @typedef { Object } CharacterEntry * @enum * @property { Number } id - The person's ID on AniList * @property { CharacterName } name - The person's name * @property { Object } image - The person's cover image. * @property { string } image.large - The large file * @property { string } image.medium - The medium file * @property { string } gender - The character's gender. Could be male, female, non-binary, etc... * @property { Object | null } dateOfBirth - The character's date of birth * @property { Number } dateOfBirth.year * @property { Number } dateOfBirth.month * @property { Number } dateOfBirth.day * @property { string } age - The character's age. Listed as a string as it may contain additional text or ranges. * @property { string } bloodType - The character's blood type * @property { String } description - The person's description * @property { Boolean } isFavourite - [Requires Login] Check if the person is favourited * @property { Boolean } isFavouriteBlocked - True if the user is unable to favourite the entry * @property { Number } favourites - The number of users that have favourited the person * @property { MediaRelation[] } media - All media that the character is in. (Up to the first 25 entries) */ /** * @typedef { Object } MediaRelation * @enum * @property { Number } id - The media's AniList ID * @property { MediaTitle } title - The media's titles * @property { String } type - Tells what type of media it is. Returns either ANIME or MANGA */ /** * @typedef { Object } PersonRelation * @enum * @property { Number } id - The person's AniList ID * @property { String } name - The person's name in English */ /** * @typedef { Object } StudioEntry * @enum * @property { Number } id - The studio's ID * @property { String } name - The studio's name * @property { Boolean } isAnimationStudio - Check if the studio is an animation studio * @property { Number } favourites - Number of users who have favourited it. * @property { Object[] } media - A list of all the media the studio has done (Up to the first 25 per AniList's limit). * @property { Number } media.id - The media's ID * @property { MediaTitle } media.title - The media's titles * @property { String } siteUrl - The studio's site URL * @property { Boolean } isFavourite - [Requires Login] Check if the studio is favourited by the user. */ /** * @typedef { Object } AiringEntry * @enum * @property { Number } airingAt - The timestamp that the episode is airing at * @property { Number } timeUntilAiring - The amount of seconds until the episode airs * @property { Number } episode - The episode number to air. */ /** * @typedef { Object } AnimeEntry * @enum * @property { AiringEntry[] } airingSchedule - The media's airing schedule, ordered by episode number (ie: 1, 2, 3, etc...). * @property { Boolean } autoCreateForumThread - Checks if the media gets a thread automatically with each release * @property { Number } averageScore - A weighted average score of the media. * @property { String } bannerImage - The media's banner image * @property { PersonRelation[] } characters - An array of characters * @property { String } countryOfOrigin - The country origin of the media * @property { Object[] } coverImage - The media's cover image * @property { String } coverImage.large - The large sized cover image * @property { String } coverImage.medium - The medium sized cover image * @property { String } coverImage.small - The small sized cover image * @property { String } coverImage.color - Average hex colour of the cover image * @property { String } description - The medias description * @property { Number } duration - General length of an episode * @property { FuzzyDateObj } endDate - Official end date of the media * @property { Number } episodes - Number of episodes * @property { String[] } externalLinks - A list of external links associated with the media * @property { Number } favourites - Number of users who have favourited it. * @property { String } format - The format of the anime. (ie: TV, OVA, etc...) * @property { String[] } genres - The media's genres * @property { String } hashtag - Twitter hashtag associated with the anime * @property { Number } id - The anime's AniList ID * @property { Number } idMal - The anime's MyAnimeList ID * @property { Boolean } isAdult - Check if the media is for adult audiences (ie: Hentai) * @property { Boolean } isFavourite - [Requires Login] Check if the media is favourited * @property { Boolean } isLicensed - Check if the media is licensed * @property { Boolean } isLocked - Check if the media is locked for list additions or favouriting. * @property { Boolean } isRecommendationBlocked - Check if the media is locked for recommendations. * @property { Number } meanScore - Mean score of the media * @property { Object } mediaListEntry - [Requires Login] User's media list entry; required for list edits. * @property { Number } mediaListEntry.id - Id of the media on a user's media list * @property { String } mediaListEntry.status - Status of the media on the user's media list. * @property { String } modNotes - Mod notes for the media * @property { AiringEntry[] | null } nextAiringEpisode - The media's next episode airing schedule. Returns either an AiringEntry object or null depending if there is an episode to air. * @property { Number } popularity - Number of users with the media on their list * @property { Object[] } rankings - Media rankings in a particular category compared to others. * @property { Number } rankings.rank - The rank position * @property { String } rankings.type - What type of ranking it is. (ie: RATED or POPULAR) * @property { String } rankings.context - The category of the ranking. * @property { Number } rankings.year - The year for the ranking * @property { String } rankings.season - The season of the ranking. (ie: WINTER, SPRING, SUMMER, FALL) * @property { MediaRelation[] } recommendations - Recommendations for the media. * @property { MediaRelation[] } relations - All media that relate to the media. * @property { Object[] } reviews - An array of reviews. * @property { Number } reviews.id - The id of the review * @property { Number } reviews.score - The review's media score * @property { String } reviews.summary - The summary of the review. * @property { String } reviews.body - The review content. * @property { String } season - Season that the anime started airing * @property { Number } seasonYear - The season year that the anime started airing * @property { String } siteUrl - The media's AniList page * @property { String } source - Source type that the media was adapted from * @property { PersonRelation[] } staff - An array of credited staff * @property { FuzzyDateObj } startDate - Official release date of the media * @property { Object } stats - Statistics on the media * @property { Object[] } stats.scoreDistribution - An array of how the users have rated the media. Each object contains a score and amount. * @property { Object[] } stats.statusDistribution - An array of the users status with the show. Each object contains a status and amount. * @property { String } status - The current status of the media * @property { Object[] } streamingEpisodes - An ordered array of episodes and where it can be streamed. * @property { String } streamingEpisodes.title - The title of the episode * @property { String } streamingEpisodes.thumbnail - The thumbnail image for the episode * @property { String } streamingEpisodes.url - The URL of the episode * @property { String } streamingEpisodes.site - The name of the site where the episode is provided. * @property { Object[] } studios - An array of studios that produced the anime. * @property { Number } studios.id - The studio's id * @property { String } studios.name - The studio's name * @property { Boolean } studios.isAnimationStudio - Check if the studio is the animation studio for the anime. * @property { String[] } synonyms - The media's alternative titles * @property { Object[] } tags - Tags that describes the media * @property {Number} tags.id - The ID of the tag * @property { String } tags.name - The name of the tag * @property { Boolean } tags.isMediaSpoiler - Checks if the tag is a spoiler for the media. * @property { MediaTitle } title - The manga's titles * @property { String | Object | null } trailer - Returns the trailer URL if the trailer is a Youtube or Dailymotion video. Will return an object if it is a video outside of YouTube and Dailymotion or null if no trailer is found. * @property { Number } trending - Number of related activity in the past week. * @property { Object[] } trends - An array of the media's daily trend status * @property { Number } trends.date - The timestamp of the day the data was recorded * @property { Number } trends.trending - Amount of media acitivity for that day * @property { Number | null } trends.popularity - Number of users with the media on their list * @property { Number | null } trends.inProgress - Number of users watching the media. * @property { Number } updatedAt - Timestamp of when the page was last updated */ /** * @typedef { Object } MangaEntry * @enum * @property { Boolean } autoCreateForumThread - Checks if the media gets a thread automatically with each release * @property { Number } averageScore - A weighted average score of the media. * @property { String } bannerImage - The media's banner image * @property { Number } chapters - Number of chapters * @property { PersonRelation[] } characters - An array of characters * @property { String } countryOfOrigin - The country origin of the media * @property { Object[] } coverImage - The media's cover image * @property { String } coverImage.large - The large sized cover image * @property { String } coverImage.medium - The medium sized cover image * @property { String } coverImage.small - The small sized cover image * @property { String } coverImage.color - Average hex colour of the cover image * @property { String } description - The manga's description * @property { FuzzyDateObj } endDate - Official end date of the media * @property { String[] } externalLinks - A list of external links associated with the media * @property { Number } favourites - Number of users who have favourited it. * @property { String } format - The format of the manga. (ie: Manga, Novel, etc...) * @property { String[] } genres - The media's genres * @property { Number } id - The manga's AniList ID * @property { Number } idMal - The manga's MyAnimeList ID * @property { Boolean } isAdult - Check if the media is for adult audiences (ie: Hentai) * @property { Boolean } isFavourite - [Requires Login] Check if the media is favourited * @property { Boolean } isLicensed - Check if the media is licensed * @property { Boolean } isLocked - Check if the media is locked for list additions or favouriting. * @property { Boolean } isRecommendationBlocked - Check if the media is locked for recommendations. * @property { Number } meanScore - Mean score of the media * @property { Object } mediaListEntry - [Requires Login] User's media list entry; required for list edits. * @property { Number } mediaListEntry.id - Id of the media on a user's media list * @property { String } mediaListEntry.status - Status of the media on the user's media list. * @property { String } modNotes - Mod notes for the media * @property { Number } popularity - Number of users with the media on their list * @property { Object[] } rankings - Media rankings in a particular category compared to others. * @property { Number } rankings.rank - The rank position * @property { String } rankings.type - What type of ranking it is. (ie: RATED or POPULAR) * @property { String } rankings.context - The category of the ranking. * @property { Number } rankings.year - The year for the ranking * @property { String } rankings.season - The season of the ranking. (ie: WINTER, SPRING, SUMMER, FALL) * @property { MediaRelation[] } recommendations - Recommendations for the media. * @property { MediaRelation[] } relations - All media that relate to the media. * @property { Object[] } reviews - An array of reviews. * @property { Number } reviews.id - The id of the review * @property { Number } reviews.score - The review's media score * @property { String } reviews.summary - The summary of the review. * @property { String } reviews.body - The review content. * @property { String } siteUrl - The media's AniList page * @property { PersonRelation[] } staff - An array of credited staff * @property { FuzzyDateObj } startDate - Official release date of the media * @property { Object } stats - Statistics on the media * @property { Object[] } stats.scoreDistribution - An array of how the users have rated the media. Each object contains a score and amount. * @property { Object[] } stats.statusDistribution - An array of the users status with the show. Each object contains a status and amount. * @property { String } status - The current status of the media * @property { String[] } synonyms - The media's alternative titles * @property { Object[] } tags - Tags that describes the media * @property {Number} tags.id - The ID of the tag * @property { String } tags.name - The name of the tag * @property { Boolean } tags.isMediaSpoiler - Checks if the tag is a spoiler for the media. * @property { MediaTitle } title - The manga's titles * @property { Number } trending - Number of related activity in the past week. * @property { Object[] } trends - An array of the media's daily trend status. * @property { Number } trends.date - The timestamp of the day the data was recorded * @property { Number } trends.trending - Amount of media acitivity for that day * @property { Number | null } trends.popularity - Number of users with the media on their list * @property { Number | null } trends.inProgress - Number of users reading the media. * @property { Number } updatedAt - Timestamp of when the page was last updated * @property { Number } volumes - Number of volumes */ /** * @typedef { Object } UserRelation * @enum * @property { Number } id - The user's ID * @property { String } name - The user's name */ /** * @typedef { Object } UserProfile * @enum * @property { Number } id - The user's ID * @property { String } name - The user's username * @property { String } about - The user's about section * @property { Object } avatar - The user's avatar * @property { String } avatar.large - A large version of the avatar * @property { String } avatar.medium - A medium version of the avatar * @property { String } bannerImage - The user's banner image * @property { Boolean } isFollowing - [Requires Login] Check if the authorized user is following this user * @property { Boolean } isBlocked - [Requires Login] Check if the authorized user has blocked this user * @property { Boolean } isFollower - [Requires Login] Check if the user is following the authorized user * @property { String } bans - Record of the user's bans * @property { Object } options - The user's options * @property { String } options.titleLanguage - The language that the user prefers to see (ie: English, Japanese) * @property { Boolean } options.displayAdultContent - Check if the user allows adult content to be displayed * @property { Boolean } options.airingNotifications - Check if the user receives notification about airing episodes * @property { String } options.profileColor - The highlight colour that the user uses. * @property { Number } options.activityMergeTime - Minutes between activity for them to be merged together. 0 is Never, Above 2 weeks (20160 mins) is Always. * @property { StaffNameLanguage } options.staffNameLanguage - The language the user wants to see staff and character names in * @property { NotificationOptions[] } options.notificationOptions - The user's notification options * @property { Object } mediaListOptions - A user's media list settings * @property { String } mediaListOptions.scoreFormat - The scoring format the user uses. * @property { String } mediaListOptions.rowOrder - The default order list rows should be displayed in. * @property { MediaListOptions } mediaListOptions.animeList - Settings pertaining to the user's anime list. * @property { MediaListOptions } mediaListOptions.mangaList - Settings pertaining to the user's manga list. * @property { Object } favourites - An object containing all of the user's favourited entries * @property { MediaRelation[] } favourites.anime - An array of the user's favourite anime * @property { MediaRelation[] } favourites.manga - An array of the user's favourite manga * @property { PersonRelation[] } favourites.characters - An array of the user's favourite characters * @property { PersonRelation[] } favourites.staff - An array of the user's favourite staff * @property { Object[] } favourites.studios - An array of the user's favourite studios * @property { Number } favourites.studios.id - The id of the studio * @property { String } favourites.studios.name - The name of the studio * @property { Number } unreadNotificationCount - Number of notifications that aren't read yet * @property { String } siteUrl - The user's profile link * @property { Number } donatorTier - The donator tier of the user * @property { String } donatorBadge - Custom donation badge text * @property { ModRole[] } moderatorRoles - Check if the user is a moderator. * @property { Number } updatedAt - Timestamp of the last update for the profile. */ /** * @typedef { Object } UserStats * @enum * @property { Object } anime - The user's statistics with anime * @property { Number } anime.meanScore - The mean score of all entries * @property { Number } anime.standardDeviation - The standard deviation of all scores with all entries * @property { Number } anime.count - Total amount of entries * @property { Number } anime.minutesWatched - Total amount of minutes the user has seen * @property { Number } anime.episodesWatched - Total amount of episodes the user watched. * @property { Object[] } anime.statuses - Undocumented * @property { Number } anime.statuses.count - Number of entries * @property { Number } anime.statuses.meanScore - The mean score of all entries * @property { Number } anime.statuses.watchedTime - The total watched time * @property { String } anime.statuses.status - The status of the entries * @property { Object[] } anime.formats - Undocumented * @property { Number } anime.formats.count - Number of entries * @property { Number } anime.formats.meanScore - The mean score of all entries * @property { Number } anime.formats.watchedTime - The total watched time * @property { String } anime.formats.format - The format of the entries * @property { Object[] } anime.lengths - Undocumented * @property { Number } anime.lengths.count - Number of entries * @property { Number } anime.lengths.meanScore - The mean score of all entries * @property { Number } anime.lengths.watchedTime - The total watched time * @property { String } anime.lengths.length - The length of the entries. * @property { Object[] } anime.releaseYears - Undocumented * @property { Number } anime.releaseYears.count - Number of entries * @property { Number } anime.releaseYears.meanScore - The mean score of all entries * @property { Number } anime.releaseYears.watchedTime - The total watched time * @property { String } anime.releaseYears.releaseYear - The release year of the entries. * @property { Object[] } anime.startYears - Undocumented * @property { Number } anime.startYears.count - Number of entries * @property { Number } anime.startYears.meanScore - The mean score of all entries * @property { Number } anime.startYears.watchedTime - The total watched time * @property { String } anime.startYears.startYear - The start year of the entries. * @property { Object[] } anime.genres - Undocumented * @property { Number } anime.genres.count - Number of entries * @property { Number } anime.genres.meanScore - The mean score of all entries * @property { Number } anime.genres.watchedTime - The total watched time * @property { String } anime.genres.genre - The genre of the entries. * @property { Object[] } anime.tags - Undocumented * @property { Number } anime.tags.count - Number of entries * @property { Number } anime.tags.meanScore - The mean score of all entries * @property { Number } anime.tags.watchedTime - The total watched time * @property { Object } anime.tags.tag - The tag of the entries. * @property { Number } anime.tags.tag.id - The id of the tag * @property { String } anime.tags.tag.name - The name of the tag. * @property { Object[] } anime.countries - Undocumented * @property { Number } anime.countries.count - Number of entries * @property { Number } anime.countries.meanScore - The mean score of all entries * @property { Number } anime.countries.watchedTime - The total watched time * @property { String } anime.countries.country - The country of origin of the entries. * @property { Object[] } anime.voiceActors - Undocumented * @property { Number } anime.voiceActors.count - Number of entries * @property { Number } anime.voiceActors.meanScore - The mean score of all entries * @property { Number } anime.voiceActors.watchedTime - The total watched time * @property { PersonRelation } anime.voiceActors.voiceActor - The VA of the entries. * @property { Object[] } anime.staff - Undocumented * @property { Number } anime.staff.count - Number of entries * @property { Number } anime.staff.meanScore - The mean score of all entries * @property { Number } anime.staff.watchedTime - The total watched time * @property { PersonRelation } anime.staff.staff - The staff of the entries. * @property { Object[] } anime.studios - Undocumented * @property { Number } anime.studios.count - Number of entries * @property { Number } anime.studios.meanScore - The mean score of all entries * @property { Number } anime.studios.watchedTime - The total watched time * @property { Object } anime.studios.studio - The studio of the entries. * @property { Number } anime.studios.studio.id - The ID of the studio * @property { String } anime.studios.studio.name - The name of the studio. * @property { Object } manga - The user's statistics with manga * @property { Number } manga.meanScore - The mean score of all entries * @property { Number } manga.standardDeviation - The standard deviation of all scores with all entries * @property { Number } manga.count - Total amount of entries * @property { Number } manga.chaptersRead - Total amount of chapters read * @property { Number } manga.volumesRead - Total amount of volumes read. * @property { Object[] } manga.statuses - Undocumented * @property { Number } manga.statuses.count - Number of entries * @property { Number } manga.statuses.meanScore - The mean score of all entries * @property { Number } manga.statuses.chaptersRead - The total chapters read * @property { String } manga.statuses.status - The status of the entries * @property { Object[] } manga.formats - Undocumented * @property { Number } manga.formats.count - Number of entries * @property { Number } manga.formats.meanScore - The mean score of all entries * @property { Number } manga.formats.chaptersRead - The total chapters read * @property { String } manga.formats.format - The format of the entries * @property { Object[] } manga.lengths - Undocumented * @property { Number } manga.lengths.count - Number of entries * @property { Number } manga.lengths.meanScore - The mean score of all entries * @property { Number } manga.lengths.chaptersRead - The total chapters read * @property { String } manga.lengths.length - The length of the entries. * @property { Object[] } manga.releaseYears - Undocumented * @property { Number } manga.releaseYears.count - Number of entries * @property { Number } manga.releaseYears.meanScore - The mean score of all entries * @property { Number } manga.releaseYears.chaptersRead - The total chapters read * @property { String } manga.releaseYears.releaseYear - The release year of the entries. * @property { Object[] } manga.startYears - Undocumented * @property { Number } manga.startYears.count - Number of entries * @property { Number } manga.startYears.meanScore - The mean score of all entries * @property { Number } manga.startYears.chaptersRead - The total chapters read * @property { String } manga.startYears.startYear - The start year of the entries. * @property { Object[] } manga.genres - Undocumented * @property { Number } manga.genres.count - Number of entries * @property { Number } manga.genres.meanScore - The mean score of all entries * @property { Number } manga.genres.chaptersRead - The total chapters read * @property { String } manga.genres.genre - The genre of the entries. * @property { Object[] } manga.tags - Undocumented * @property { Number } manga.tags.count - Number of entries * @property { Number } manga.tags.meanScore - The mean score of all entries * @property { Number } manga.tags.chaptersRead - The total chapters read * @property { Object } manga.tags.tag - The tag of the entries. * @property { Number } manga.tags.tag.id - The id of the tag * @property { String } manga.tags.tag.name - The name of the tag. * @property { Object[] } manga.countries - Undocumented * @property { Number } manga.countries.count - Number of entries * @property { Number } manga.countries.meanScore - The mean score of all entries * @property { Number } manga.countries.chaptersRead - The total chapters read * @property { String } manga.countries.country - The country of origin of the entries. * @property { Object[] } manga.staff - Undocumented * @property { Number } manga.staff.count - Number of entries * @property { Number } manga.staff.meanScore - The mean score of all entries * @property { Number } manga.staff.chaptersRead - The total chapters read * @property { PersonRelation } manga.staff.staff - The staff of the entries. */ /** * @typedef { Object } UserList * @enum * @property { String } name - The user's list name * @property { Boolean } isCustomList - Checks if the list is a custom one (not created by default) * @property { Boolean } isSplitCompletedList - Checks if the list is a split completed list. (ie: If the user chose to have each media format in a separate list) * @property { EntryStatus } status - The user's list status. Returns either "CURRENT", "PLANNING", "COMPLETED", "PAUSED", "DROPPED", "REPEATING" * @property { ListEntry[] } entries - A list of entries on this list */ /** * @typedef { Object } ListEntry * @enum * @property { Object } media - An object containing various media information * @property { Number } media.id - The id of the media * @property { Number } media.idMAL - The MAL id of the media * @property { MediaTitle } media.title - The media's titles * @property { String } media.description - The media's description * @property { String } media.format - The media's format (ie: TV, OVA, Novel) * @property { Object[] } media.tags - Tags relating to the media * @property { String } media.tags.name - The name of the tag * @property { Boolean } media.tags.isMediaSpoiler - Checks if the tag is a spoiler or not. * @property { FuzzyDateObj } media.startDate - Starting date * @property { FuzzyDateObj } media.endDate - The official end date * @property { String[] } media.genres - The genres of the media * @property { Boolean } media.isFavourite - [Requires Login] Checks if the media is on the user's favourites list * @property { Boolean } media.isAdult - Checks if the media is for adult audiences (ie: Hentai) * @property { String[] } media.synonyms - The media's alternative titles * @property { String } media.siteUrl - The media's AniList page * @property { Number } media.duration - General length of an episode (Anime only) * @property { Number } media.episodes - Number of episodes (Anime only) * @property { Number } media.volumes - Number of volumes (Manga only) * @property { Number } media.chapters - Number of chapters (Manga only) * @property { Number } id - The AniList list ID for the entry * @property { String } status - The user's status ("CURRENT", "PLANNING", "COMPLETED", "PAUSED", "DROPPED", "REPEATING") for that media * @property { Number } score - The user's score for the entry * @property { Number } progress - The user's progress for that entry. (Episode count for anime, chapter count for manga) * @property { Number } progressVolumes - The user's volume progress for that media (Manga only) * @property { Number } repeat - The amount of times the user rewatched or read the media * @property { Number } priority - The user's priority status for that media * @property { Boolean } private - [Requires Login] Check if the entry should only be visible to the authenticated user. * @property { String } notes - The user's notes * @property { Boolean } hiddenFromStatusLists - Checks if the entry should be hidden from non-custom lists * @property { Object } advancedScores - The user's advanced scores for that media (Story, Characters, Visuals, Audio, Enjoyment, …) * @property { Object } dates - Dates related to that entry in ISO 8601 format * @property { String } dates.startedAt - The date the user started the entry * @property { String } dates.completedAt - The date the user finished the entry * @property { String } dates.updatedAt - The time the entry was last updated * @property { String } dates.createdAt - When the entry data was created. */ /** * @typedef { Object } ListActivity * @enum * @property { Number } id - The id of the activity * @property { UserRelation } user - The user of the activity * @property { String } status - The status of the update * @property { String } type - The activity type * @property { Number | null } progress - Progress of the media * @property { MediaRelation } media - The target media * @property { Number } createdAt - The timestamp of the creation time * @property { Object[] } replies - The replies for the activity * @property { Number } replies.id - The id of the reply * @property { String } replies.text - The content of the reply * @property { Number } replies.likeCount - The amount of likes on the reply * @property { Boolean } isLocked - True if the activity cannot receive replies * @property { Boolean } isSubscribed - [Requires Login] True if the authorized user is subscribed. * @property { Boolean } isLiked - [Requires Login] True if authorized user liked it * @property { UserRelation[] } likes - All users who liked the activity */ /** * @typedef { Object } TextActivity * @enum * @property { Number } id - The id of the activity * @property { UserRelation } user - The user of the activity * @property { String } text - The content of the activity * @property { String } type - The activity type * @property { Number } createdAt - The timestamp of the creation time * @property { Object } replies - The replies for the activity * @property { Number } replies.id - The id of the reply * @property { String } replies.text - The content of the reply * @property { Number } replies.likeCount - The amount of likes on the reply * @property { Boolean } isLocked - True if the activity cannot receive replies * @property { Boolean } isSubscribed - [Requires Login] True if the authorized user is subscribed. * @property { Boolean } isLiked - [Requires Login] True if authorized user liked it * @property { UserRelation[] } likes - All users who liked the activity */ /** * @typedef { Object } MessageActivity * @enum * @property { Number } id - The id of the activity * @property { UserRelation } user - The sender of the activity * @property { UserRelation } recipient - The user receiving the message * @property { String } message - The content of the activity * @property { String } type - The activity type * @property { Number } createdAt - The timestamp of the creation time * @property { Boolean } isPrivate - True if message is private and only viewable to sender and recipients * @property { Object } replies - The replies for the activity * @property { Number } replies.id - The id of the reply * @property { String } replies.text - The content of the reply * @property { Number } replies.likeCount - The amount of likes on the reply * @property { Boolean } isLocked - True if the activity cannot receive replies * @property { Boolean } isSubscribed - [Requires Login] True if the authorized user is subscribed. * @property { Boolean } isLiked - [Requires Login] True if authorized user liked it * @property { UserRelation[] } likes - All users who liked the activity */ /** * @typedef {Number} FuzzyDateInt * @example * 6 Jan 2021 = 20210106 * April 2016 = 20160400 * 1969 = 19690000 * @description 8 digit integer (YYYYMMDD). Unknown dates are represented by 0. */ /** * @typedef {Object} FuzzyDateObj * @description An object that contains the year, month, and date of an item. * @property { Number | null } year * @property { Number | null } month * @property { Number | null } day */ /** * @typedef {Number} CountryCode * @description ISO 3166-1 alpha-2 country code */ /** * @typedef MediaFilterTypes * @description An enum for filter types for values * @enum * @readonly * @property {Number} id The AniList ID * @property {Number} idMal The MAL ID * @property {FuzzyDateInt} startDate The start date * @property {FuzzyDateInt} endDate The end date * @property {MediaSeason} season The season the show aired * @property {Number} seasonYear The year of the season * @property {MediaType} type The media type * @property {MediaFormat} format The format of the media * @property {MediaStatus} status Status of the media * @property {Number} episodes Number of episodes * @property {Number} duration Time for each episode * @property {Number} chapters Number of chapters * @property {Number} volumes Number of volumes * @property {boolean} isAdult True if the media is adult * @property {String} genre A genre * @property {String} tag A tag * @property {Number} minimumTagRank The minimum tag rank * @property {String} tagCategory The category of the tag * @property {boolean} onList [Requires Login] True if the media is on the user's list * @property {String} licensedBy The licensor of the media * @property {Number} averageScore The average score of the media * @property {Number} popularity The popularity of the media * @property {MediaFormat} source The source of the media * @property {CountryCode} countryOfOrigin The country code for the country origin * @property {String} search The search term to use * @property {Number} id_not The id to exclude * @property {Number[]} id_in The ids to include * @property {Number[]} id_not_in The ids to exclude * @property {Number} idMal_not The MAL id to exclude * @property {Number[]} idMal_in The MAL ids to include * @property {Number[]} idMal_not_in The MAL ids to exclude * @property {FuzzyDateInt} startDate_greater Include any media with a start date equal to or past that date * @property {FuzzyDateInt} startDate_lesser Include any media with a start date equal to or before that date * @property {String} startDate_like Include any media with a start date similar to the provided value. * @property {FuzzyDateInt} endDate_greater Include any media with an end date equal to or past that date * @property {FuzzyDateInt} endDate_lesser Include any media with an end date equal to or before that date * @property {String} endDate_like Include any media with an end date similar to the provided value * @property {MediaFormat[]} format_in Include any media with these formats * @property {MediaFormat} format_not Exclude any media with this format * @property {MediaFormat[]} format_not_in Exclude any media with these formats * @property {MediaStatus[]} status_in Include any media with these statuses * @property {MediaStatus} status_not Exclude any media with this status * @property {MediaStatus[]} status_not_in Exclude any media with these statuses * @property {Number} episodes_greater Include any media with an episode count equal to or greater than the value * @property {Number} episodes_lesser Include any media with an episode count less than or equal to the value * @property {Number} duration_greater Include any media with a duration equal to or greater than the value * @property {Number} duration_lesser Include any media with a duration less than or equal to the value * @property {Number} chapters_greater Include any media with a chapter count equal to or greater than the value * @property {Number} chapters_lesser Include any media with a chapter count less than or equal to the value * @property {Number} volumes_greater Include any media with a volume count equal to or greater than the value * @property {Number} volumes_lesser Include any media with a volume count less than or equal to the value * @property {String[]} genre_in Include any media with the following genres * @property {String[]} genre_not_in Exclude any media with the following genres * @property {String[]} tag_in Include any media with the following tags * @property {String[]} tag_not_in Exclude any media with the following tags * @property {String[]} tagCategory_in Include any media with the following tag categories * @property {String[]} tagCategory_not_in Exclude any media with the following tag categories * @property {String[]} licensedBy_in Include any media licensed by the following licensors * @property {Number} averageScore_not Exclude any media with an average score provided * @property {Number} averageScore_greater Include any media with an average score equal to or greater than the value * @property {Number} averageScore_lesser Include any media with an average score less than or equal to the value * @property {Number} popularity_not Exclude any media with a popularity count provided * @property {Number} popularity_greater Include any media with a popularity count equal to or greater than the value * @property {Number} popularity_lesser Include any media with a popularity count less than or equal to the value * @property {MediaSource[]} source_in Include any media with the following sources * @property {MediaSort[]} sort Sort the query by the provided MediaSort key. (ie: FAVOURITES will sort the query by the favourites count) */ /** * @typedef ActivityFilterTypes * @description An enum for filter types for values * @enum * @readonly * @property {Number} id The id of the activity * @property {Number} userId The userID of the account with the activity * @property {Number} messengerId The ID of who sent the message * @property {ActivityType} type The type of activity * @property {Boolean} isFollowing [Requires Login] Filter users by who is following the authorized user * @property {Boolean} hasReplies Filter by which activities have replies. * @property {Boolean} hasRepliesOrTypeText Filter by which activities have replies or text * @property {Number} createdAt The time at which the activity was created * @property {Number} id_not Exclude an activity with the given ID * @property {Number[]} id_in Include any activities with the given IDs * @property {Number[]} id_not_in Excludes any activities with the given IDs * @property {Number} userId_not Exclude any activity with the given userID * @property {Number[]} userId_in Includes any activity with the given userIDs * @property {Number[]} userId_not_in Exclude any activity with the given userIDs * @property {Number} messengerId_not Exclude any activity with the given ID * @property {Number[]} messengerId_in Include any activity with the given IDs * @property {Number[]} messengerId_not_in Exclude any activity with the given IDs * @property {Number} mediaId_not Exclude any activity with the given media ID * @property {Number[]} mediaId_in Include any activity with the given media IDs * @property {Number[]} mediaId_not_in Exclude any activity with the given media IDs * @property {ActivityType} type_not Exclude any activity with the same ActivityType * @property {ActivityType[]} type_in Include any activity with the given ActivityTypes * @property {ActivityType[]} type_not_in Exclude any activity with the given ActivityTypes * @property {Number} createdAt_greater Include any activity created at the given date or more recent. * @property {Number} createdAt_lesser Include any activity created at the given date or less recent. * @property {ActivitySort[]} sort Sort the query by the parameters given. */ /** * @typedef RecommendationList * @description A list of recommendations for a given media * @property {MediaRelation} media The given media * @property {RecommendationEntry[]} recommendations The list of recommended medias. */ /** * @typedef RecommendationEntry * @description A recommendation for a given media * @property {Number} id ID of the recommendation * @property {Number} rating User ratings of the recommendation * @property {RecommendationRating} userRating [Requires Login] Rating of the recommendation from the authorized user * @property {UserRelation} user The first user to recommend * @property {MediaRelation} mediaRecommendation The media being recommended. */ /** * @typedef SingleRecommendation * @description A recommendation for a given media * @property {Number} id ID of the recommendation * @property {Number} rating User ratings of the recommendation * @property {RecommendationRating} userRating [Requires Login] Rating of the recommendation from the authorized user * @property {UserRelation} user The first user to recommend * @property {MediaRelation} mediaRecommendation The media being recommended. * @property {MediaRelation} media The given media */ /** * @typedef NotificationOption * @description A user's notification options * @property {NotificationType} type The type of notification * @property {Boolean} enabled Enable the notification or disable it */ /** * @typedef MediaListOptionsInput * @description The options input for a user's media lists * @property {String[]} sectionOrder The order each list should be displayed in * @property {Boolean} splitCompletedSectionByFormat If the completed sections of the list should be separated by format * @property {String[]} customLists The names of the user's custom lists * @property {String[]} advancedScoring The names of the user's advanced scoring sections * @property {Boolean} advancedScoringEnabled If advanced scoring is enabled * @property {String} theme list theme */ /** * @typedef UserOptionsInput * @property {String} about - The user's description * @property {UserTitleLanguage} titleLanguage - The user's preferred title language * @property {Boolean} displayAdultContent - True if the user wants to display adult content * @property {Boolean} airingNotifications - True if the user wants airing notifications * @property {ScoreFormat} scoreFormat - The user's score format * @property {String} rowOrder - The user's default list order * @property {String} profileColor - The user's profile highlight color * @property {String} donatorBadge - The user's donator badge highlight color * @property {NotificationOption[]} notificationOptions - The user's notification options * @property {String} timezone - The user's timezone offset format * @property {Number} activityMergeTime - The minutes between activity for them to be merged together. 0 is Never, Above 2 weeks (20160 mins) is always. * @property {MediaListOptionsInput} animeListOptions - The user's options for anime lists * @property {MediaListOptionsInput} mangaListOptions - The user's options for manga lists * @property {UserStaffNameLanguage} staffNameLanguage - The user's preferred way to see staff and characters */ /** * @typedef UserOptions * @property {String} about - The user's description * @property {String} donatorBadge - The user's donator badge highlight color * @property {Object} options - General settings * @property {UserTitleLanguage} options.titleLanguage - The user's preferred title language * @property {Boolean} options.displayAdultContent - True if the user wants to display adult content * @property {Boolean} options.airingNotifications - True if the user wants airing notifications * @property {String} options.profileColor - The user's profile highlight color * @property {String} options.t