aniql
Version:
A library for interacting with the AniList API.
1,222 lines • 314 kB
TypeScript
//#region lib/genql/schema.d.ts
type Scalars = {
Int: number;
Boolean: boolean;
String: string;
Json: any;
CountryCode: any;
Float: number;
FuzzyDateInt: any;
ID: string;
};
interface Query {
Page: (Page | null);
/** Media query */
Media: (Media | null);
/** Media Trend query */
MediaTrend: (MediaTrend | null);
/** Airing schedule query */
AiringSchedule: (AiringSchedule | null);
/** Character query */
Character: (Character | null);
/** Staff query */
Staff: (Staff | null);
/** Media list query */
MediaList: (MediaList | null);
/** Media list collection query, provides list pre-grouped by status & custom lists. User ID and Media Type arguments required. */
MediaListCollection: (MediaListCollection | null);
/** Collection of all the possible media genres */
GenreCollection: ((Scalars['String'] | null)[] | null);
/** Collection of all the possible media tags */
MediaTagCollection: ((MediaTag | null)[] | null);
/** User query */
User: (User | null);
/** Get the currently authenticated user */
Viewer: (User | null);
/** Notification query */
Notification: (NotificationUnion | null);
/** Studio query */
Studio: (Studio | null);
/** Review query */
Review: (Review | null);
/** Activity query */
Activity: (ActivityUnion | null);
/** Activity reply query */
ActivityReply: (ActivityReply | null);
/** Follow query */
Following: (User | null);
/** Follow query */
Follower: (User | null);
/** Thread query */
Thread: (Thread | null);
/** Comment query */
ThreadComment: ((ThreadComment | null)[] | null);
/** Recommendation query */
Recommendation: (Recommendation | null);
/** Like query */
Like: (User | null);
/** Provide AniList markdown to be converted to html (Requires auth) */
Markdown: (ParsedMarkdown | null);
AniChartUser: (AniChartUser | null);
/** Site statistics query */
SiteStatistics: (SiteStatistics | null);
/** ExternalLinkSource collection query */
ExternalLinkSourceCollection: ((MediaExternalLink | null)[] | null);
__typename: 'Query';
}
/** Page of data */
interface Page {
/** The pagination information */
pageInfo: (PageInfo | null);
users: ((User | null)[] | null);
media: ((Media | null)[] | null);
characters: ((Character | null)[] | null);
staff: ((Staff | null)[] | null);
studios: ((Studio | null)[] | null);
mediaList: ((MediaList | null)[] | null);
airingSchedules: ((AiringSchedule | null)[] | null);
mediaTrends: ((MediaTrend | null)[] | null);
notifications: ((NotificationUnion | null)[] | null);
followers: ((User | null)[] | null);
following: ((User | null)[] | null);
activities: ((ActivityUnion | null)[] | null);
activityReplies: ((ActivityReply | null)[] | null);
threads: ((Thread | null)[] | null);
threadComments: ((ThreadComment | null)[] | null);
reviews: ((Review | null)[] | null);
recommendations: ((Recommendation | null)[] | null);
likes: ((User | null)[] | null);
__typename: 'Page';
}
interface PageInfo {
/** The total number of items. Note: This value is not guaranteed to be accurate, do not rely on this for logic */
total: (Scalars['Int'] | null);
/** The count on a page */
perPage: (Scalars['Int'] | null);
/** The current page */
currentPage: (Scalars['Int'] | null);
/** The last page */
lastPage: (Scalars['Int'] | null);
/** If there is another page */
hasNextPage: (Scalars['Boolean'] | null);
__typename: 'PageInfo';
}
/** User sort enums */
type UserSort = 'ID' | 'ID_DESC' | 'USERNAME' | 'USERNAME_DESC' | 'WATCHED_TIME' | 'WATCHED_TIME_DESC' | 'CHAPTERS_READ' | 'CHAPTERS_READ_DESC' | 'SEARCH_MATCH';
/** A user */
interface User {
/** The id of the user */
id: Scalars['Int'];
/** The name of the user */
name: Scalars['String'];
/** The bio written by user (Markdown) */
about: (Scalars['String'] | null);
/** The user's avatar images */
avatar: (UserAvatar | null);
/** The user's banner images */
bannerImage: (Scalars['String'] | null);
/** If the authenticated user if following this user */
isFollowing: (Scalars['Boolean'] | null);
/** If this user if following the authenticated user */
isFollower: (Scalars['Boolean'] | null);
/** If the user is blocked by the authenticated user */
isBlocked: (Scalars['Boolean'] | null);
bans: (Scalars['Json'] | null);
/** The user's general options */
options: (UserOptions | null);
/** The user's media list options */
mediaListOptions: (MediaListOptions | null);
/** The users favourites */
favourites: (Favourites | null);
/** The users anime & manga list statistics */
statistics: (UserStatisticTypes | null);
/** The number of unread notifications the user has */
unreadNotificationCount: (Scalars['Int'] | null);
/** The url for the user page on the AniList website */
siteUrl: (Scalars['String'] | null);
/** The donation tier of the user */
donatorTier: (Scalars['Int'] | null);
/** Custom donation badge text */
donatorBadge: (Scalars['String'] | null);
/** The user's moderator roles if they are a site moderator */
moderatorRoles: ((ModRole | null)[] | null);
/** When the user's account was created. (Does not exist for accounts created before 2020) */
createdAt: (Scalars['Int'] | null);
/** When the user's data was last updated */
updatedAt: (Scalars['Int'] | null);
/**
* @deprecated Deprecated. Replaced with statistics field.
* The user's statistics
*/
stats: (UserStats | null);
/**
* @deprecated Deprecated. Replaced with moderatorRoles field.
* If the user is a moderator or data moderator
*/
moderatorStatus: (Scalars['String'] | null);
/** The user's previously used names. */
previousNames: ((UserPreviousName | null)[] | null);
__typename: 'User';
}
/** A user's avatars */
interface UserAvatar {
/** The avatar of user at its largest size */
large: (Scalars['String'] | null);
/** The avatar of user at medium size */
medium: (Scalars['String'] | null);
__typename: 'UserAvatar';
}
/** A user's general options */
interface UserOptions {
/** The language the user wants to see media titles in */
titleLanguage: (UserTitleLanguage | null);
/** Whether the user has enabled viewing of 18+ content */
displayAdultContent: (Scalars['Boolean'] | null);
/** Whether the user receives notifications when a show they are watching aires */
airingNotifications: (Scalars['Boolean'] | null);
/** Profile highlight color (blue, purple, pink, orange, red, green, gray) */
profileColor: (Scalars['String'] | null);
/** Notification options */
notificationOptions: ((NotificationOption | null)[] | null);
/** The user's timezone offset (Auth user only) */
timezone: (Scalars['String'] | null);
/** Minutes between activity for them to be merged together. 0 is Never, Above 2 weeks (20160 mins) is Always. */
activityMergeTime: (Scalars['Int'] | null);
/** The language the user wants to see staff and character names in */
staffNameLanguage: (UserStaffNameLanguage | null);
/** Whether the user only allow messages from users they follow */
restrictMessagesToFollowing: (Scalars['Boolean'] | null);
/** The list activity types the user has disabled from being created from list updates */
disabledListActivity: ((ListActivityOption | null)[] | null);
__typename: 'UserOptions';
}
/** The language the user wants to see media titles in */
type UserTitleLanguage = 'ROMAJI' | 'ENGLISH' | 'NATIVE' | 'ROMAJI_STYLISED' | 'ENGLISH_STYLISED' | 'NATIVE_STYLISED';
/** Notification option */
interface NotificationOption {
/** The type of notification */
type: (NotificationType | null);
/** Whether this type of notification is enabled */
enabled: (Scalars['Boolean'] | null);
__typename: 'NotificationOption';
}
/** Notification type enum */
type NotificationType = 'ACTIVITY_MESSAGE' | 'ACTIVITY_REPLY' | 'FOLLOWING' | 'ACTIVITY_MENTION' | 'THREAD_COMMENT_MENTION' | 'THREAD_SUBSCRIBED' | 'THREAD_COMMENT_REPLY' | 'AIRING' | 'ACTIVITY_LIKE' | 'ACTIVITY_REPLY_LIKE' | 'THREAD_LIKE' | 'THREAD_COMMENT_LIKE' | 'ACTIVITY_REPLY_SUBSCRIBED' | 'RELATED_MEDIA_ADDITION' | 'MEDIA_DATA_CHANGE' | 'MEDIA_MERGE' | 'MEDIA_DELETION';
/** The language the user wants to see staff and character names in */
type UserStaffNameLanguage = 'ROMAJI_WESTERN' | 'ROMAJI' | 'NATIVE';
interface ListActivityOption {
disabled: (Scalars['Boolean'] | null);
type: (MediaListStatus | null);
__typename: 'ListActivityOption';
}
/** Media list watching/reading status enum. */
type MediaListStatus = 'CURRENT' | 'PLANNING' | 'COMPLETED' | 'DROPPED' | 'PAUSED' | 'REPEATING';
/** A user's list options */
interface MediaListOptions {
/** The score format the user is using for media lists */
scoreFormat: (ScoreFormat | null);
/** The default order list rows should be displayed in */
rowOrder: (Scalars['String'] | null);
/** @deprecated No longer used */
useLegacyLists: (Scalars['Boolean'] | null);
/** The user's anime list options */
animeList: (MediaListTypeOptions | null);
/** The user's manga list options */
mangaList: (MediaListTypeOptions | null);
/**
* @deprecated No longer used
* The list theme options for both lists
*/
sharedTheme: (Scalars['Json'] | null);
/**
* @deprecated No longer used
* If the shared theme should be used instead of the individual list themes
*/
sharedThemeEnabled: (Scalars['Boolean'] | null);
__typename: 'MediaListOptions';
}
/** Media list scoring type */
type ScoreFormat = 'POINT_100' | 'POINT_10_DECIMAL' | 'POINT_10' | 'POINT_5' | 'POINT_3';
/** A user's list options for anime or manga lists */
interface MediaListTypeOptions {
/** The order each list should be displayed in */
sectionOrder: ((Scalars['String'] | null)[] | null);
/** If the completed sections of the list should be separated by format */
splitCompletedSectionByFormat: (Scalars['Boolean'] | null);
/**
* @deprecated This field has not yet been fully implemented and may change without warning
* The list theme options
*/
theme: (Scalars['Json'] | null);
/** The names of the user's custom lists */
customLists: ((Scalars['String'] | null)[] | null);
/** The names of the user's advanced scoring sections */
advancedScoring: ((Scalars['String'] | null)[] | null);
/** If advanced scoring is enabled */
advancedScoringEnabled: (Scalars['Boolean'] | null);
__typename: 'MediaListTypeOptions';
}
/** User's favourite anime, manga, characters, staff & studios */
interface Favourites {
/** Favourite anime */
anime: (MediaConnection | null);
/** Favourite manga */
manga: (MediaConnection | null);
/** Favourite characters */
characters: (CharacterConnection | null);
/** Favourite staff */
staff: (StaffConnection | null);
/** Favourite studios */
studios: (StudioConnection | null);
__typename: 'Favourites';
}
interface MediaConnection {
edges: ((MediaEdge | null)[] | null);
nodes: ((Media | null)[] | null);
/** The pagination information */
pageInfo: (PageInfo | null);
__typename: 'MediaConnection';
}
/** Media connection edge */
interface MediaEdge {
node: (Media | null);
/** The id of the connection */
id: (Scalars['Int'] | null);
/** The type of relation to the parent model */
relationType: (MediaRelation | null);
/** If the studio is the main animation studio of the media (For Studio->MediaConnection field only) */
isMainStudio: Scalars['Boolean'];
/** The characters in the media voiced by the parent actor */
characters: ((Character | null)[] | null);
/** The characters role in the media */
characterRole: (CharacterRole | null);
/** Media specific character name */
characterName: (Scalars['String'] | null);
/** Notes regarding the VA's role for the character */
roleNotes: (Scalars['String'] | null);
/** Used for grouping roles where multiple dubs exist for the same language. Either dubbing company name or language variant. */
dubGroup: (Scalars['String'] | null);
/** The role of the staff member in the production of the media */
staffRole: (Scalars['String'] | null);
/** The voice actors of the character */
voiceActors: ((Staff | null)[] | null);
/** The voice actors of the character with role date */
voiceActorRoles: ((StaffRoleType | null)[] | null);
/** The order the media should be displayed from the users favourites */
favouriteOrder: (Scalars['Int'] | null);
__typename: 'MediaEdge';
}
/** Anime or Manga */
interface Media {
/** The id of the media */
id: Scalars['Int'];
/** The mal id of the media */
idMal: (Scalars['Int'] | null);
/** The official titles of the media in various languages */
title: (MediaTitle | null);
/** The type of the media; anime or manga */
type: (MediaType | null);
/** The format the media was released in */
format: (MediaFormat | null);
/** The current releasing status of the media */
status: (MediaStatus | null);
/** Short description of the media's story and characters */
description: (Scalars['String'] | null);
/** The first official release date of the media */
startDate: (FuzzyDate | null);
/** The last official release date of the media */
endDate: (FuzzyDate | null);
/** The season the media was initially released in */
season: (MediaSeason | null);
/** The season year the media was initially released in */
seasonYear: (Scalars['Int'] | null);
/** The year & season the media was initially released in */
seasonInt: (Scalars['Int'] | null);
/** The amount of episodes the anime has when complete */
episodes: (Scalars['Int'] | null);
/** The general length of each anime episode in minutes */
duration: (Scalars['Int'] | null);
/** The amount of chapters the manga has when complete */
chapters: (Scalars['Int'] | null);
/** The amount of volumes the manga has when complete */
volumes: (Scalars['Int'] | null);
/** Where the media was created. (ISO 3166-1 alpha-2) */
countryOfOrigin: (Scalars['CountryCode'] | null);
/** If the media is officially licensed or a self-published doujin release */
isLicensed: (Scalars['Boolean'] | null);
/** Source type the media was adapted from. */
source: (MediaSource | null);
/** Official Twitter hashtags for the media */
hashtag: (Scalars['String'] | null);
/** Media trailer or advertisement */
trailer: (MediaTrailer | null);
/** When the media's data was last updated */
updatedAt: (Scalars['Int'] | null);
/** The cover images of the media */
coverImage: (MediaCoverImage | null);
/** The banner image of the media */
bannerImage: (Scalars['String'] | null);
/** The genres of the media */
genres: ((Scalars['String'] | null)[] | null);
/** Alternative titles of the media */
synonyms: ((Scalars['String'] | null)[] | null);
/** A weighted average score of all the user's scores of the media */
averageScore: (Scalars['Int'] | null);
/** Mean score of all the user's scores of the media */
meanScore: (Scalars['Int'] | null);
/** The number of users with the media on their list */
popularity: (Scalars['Int'] | null);
/** Locked media may not be added to lists our favorited. This may be due to the entry pending for deletion or other reasons. */
isLocked: (Scalars['Boolean'] | null);
/** The amount of related activity in the past hour */
trending: (Scalars['Int'] | null);
/** The amount of user's who have favourited the media */
favourites: (Scalars['Int'] | null);
/** List of tags that describes elements and themes of the media */
tags: ((MediaTag | null)[] | null);
/** Other media in the same or connecting franchise */
relations: (MediaConnection | null);
/** The characters in the media */
characters: (CharacterConnection | null);
/** The staff who produced the media */
staff: (StaffConnection | null);
/** The companies who produced the media */
studios: (StudioConnection | null);
/** If the media is marked as favourite by the current authenticated user */
isFavourite: Scalars['Boolean'];
/** If the media is blocked from being added to favourites */
isFavouriteBlocked: Scalars['Boolean'];
/** If the media is intended only for 18+ adult audiences */
isAdult: (Scalars['Boolean'] | null);
/** The media's next episode airing schedule */
nextAiringEpisode: (AiringSchedule | null);
/** The media's entire airing schedule */
airingSchedule: (AiringScheduleConnection | null);
/** The media's daily trend stats */
trends: (MediaTrendConnection | null);
/** External links to another site related to the media */
externalLinks: ((MediaExternalLink | null)[] | null);
/** Data and links to legal streaming episodes on external sites */
streamingEpisodes: ((MediaStreamingEpisode | null)[] | null);
/** The ranking of the media in a particular time span and format compared to other media */
rankings: ((MediaRank | null)[] | null);
/** The authenticated user's media list entry for the media */
mediaListEntry: (MediaList | null);
/** User reviews of the media */
reviews: (ReviewConnection | null);
/** User recommendations for similar media */
recommendations: (RecommendationConnection | null);
stats: (MediaStats | null);
/** The url for the media page on the AniList website */
siteUrl: (Scalars['String'] | null);
/** If the media should have forum thread automatically created for it on airing episode release */
autoCreateForumThread: (Scalars['Boolean'] | null);
/** If the media is blocked from being recommended to/from */
isRecommendationBlocked: (Scalars['Boolean'] | null);
/** If the media is blocked from being reviewed */
isReviewBlocked: (Scalars['Boolean'] | null);
/** Notes for site moderators */
modNotes: (Scalars['String'] | null);
__typename: 'Media';
}
/** The official titles of the media in various languages */
interface MediaTitle {
/** The romanization of the native language title */
romaji: (Scalars['String'] | null);
/** The official english title */
english: (Scalars['String'] | null);
/** Official title in it's native language */
native: (Scalars['String'] | null);
/** The currently authenticated users preferred title language. Default romaji for non-authenticated */
userPreferred: (Scalars['String'] | null);
__typename: 'MediaTitle';
}
/** Media type enum, anime or manga. */
type MediaType = 'ANIME' | 'MANGA';
/** The format the media was released in */
type MediaFormat = 'TV' | 'TV_SHORT' | 'MOVIE' | 'SPECIAL' | 'OVA' | 'ONA' | 'MUSIC' | 'MANGA' | 'NOVEL' | 'ONE_SHOT';
/** The current releasing status of the media */
type MediaStatus = 'FINISHED' | 'RELEASING' | 'NOT_YET_RELEASED' | 'CANCELLED' | 'HIATUS';
/** Date object that allows for incomplete date values (fuzzy) */
interface FuzzyDate {
/** Numeric Year (2017) */
year: (Scalars['Int'] | null);
/** Numeric Month (3) */
month: (Scalars['Int'] | null);
/** Numeric Day (24) */
day: (Scalars['Int'] | null);
__typename: 'FuzzyDate';
}
type MediaSeason = 'WINTER' | 'SPRING' | 'SUMMER' | 'FALL';
/** Source type the media was adapted from */
type MediaSource = 'ORIGINAL' | 'MANGA' | 'LIGHT_NOVEL' | 'VISUAL_NOVEL' | 'VIDEO_GAME' | 'OTHER' | 'NOVEL' | 'DOUJINSHI' | 'ANIME' | 'WEB_NOVEL' | 'LIVE_ACTION' | 'GAME' | 'COMIC' | 'MULTIMEDIA_PROJECT' | 'PICTURE_BOOK';
/** Media trailer or advertisement */
interface MediaTrailer {
/** The trailer video id */
id: (Scalars['String'] | null);
/** The site the video is hosted by (Currently either youtube or dailymotion) */
site: (Scalars['String'] | null);
/** The url for the thumbnail image of the video */
thumbnail: (Scalars['String'] | null);
__typename: 'MediaTrailer';
}
interface MediaCoverImage {
/** The cover image url of the media at its largest size. If this size isn't available, large will be provided instead. */
extraLarge: (Scalars['String'] | null);
/** The cover image url of the media at a large size */
large: (Scalars['String'] | null);
/** The cover image url of the media at medium size */
medium: (Scalars['String'] | null);
/** Average #hex color of cover image */
color: (Scalars['String'] | null);
__typename: 'MediaCoverImage';
}
/** A tag that describes a theme or element of the media */
interface MediaTag {
/** The id of the tag */
id: Scalars['Int'];
/** The name of the tag */
name: Scalars['String'];
/** A general description of the tag */
description: (Scalars['String'] | null);
/** The categories of tags this tag belongs to */
category: (Scalars['String'] | null);
/** The relevance ranking of the tag out of the 100 for this media */
rank: (Scalars['Int'] | null);
/** If the tag could be a spoiler for any media */
isGeneralSpoiler: (Scalars['Boolean'] | null);
/** If the tag is a spoiler for this media */
isMediaSpoiler: (Scalars['Boolean'] | null);
/** If the tag is only for adult 18+ media */
isAdult: (Scalars['Boolean'] | null);
/** The user who submitted the tag */
userId: (Scalars['Int'] | null);
__typename: 'MediaTag';
}
/** Character sort enums */
type CharacterSort = 'ID' | 'ID_DESC' | 'ROLE' | 'ROLE_DESC' | 'SEARCH_MATCH' | 'FAVOURITES' | 'FAVOURITES_DESC' | 'RELEVANCE';
/** The role the character plays in the media */
type CharacterRole = 'MAIN' | 'SUPPORTING' | 'BACKGROUND';
interface CharacterConnection {
edges: ((CharacterEdge | null)[] | null);
nodes: ((Character | null)[] | null);
/** The pagination information */
pageInfo: (PageInfo | null);
__typename: 'CharacterConnection';
}
/** Character connection edge */
interface CharacterEdge {
node: (Character | null);
/** The id of the connection */
id: (Scalars['Int'] | null);
/** The characters role in the media */
role: (CharacterRole | null);
/** Media specific character name */
name: (Scalars['String'] | null);
/** The voice actors of the character */
voiceActors: ((Staff | null)[] | null);
/** The voice actors of the character with role date */
voiceActorRoles: ((StaffRoleType | null)[] | null);
/** The media the character is in */
media: ((Media | null)[] | null);
/** The order the character should be displayed from the users favourites */
favouriteOrder: (Scalars['Int'] | null);
__typename: 'CharacterEdge';
}
/** A character that features in an anime or manga */
interface Character {
/** The id of the character */
id: Scalars['Int'];
/** The names of the character */
name: (CharacterName | null);
/** Character images */
image: (CharacterImage | null);
/** A general description of the character */
description: (Scalars['String'] | null);
/** The character's gender. Usually Male, Female, or Non-binary but can be any string. */
gender: (Scalars['String'] | null);
/** The character's birth date */
dateOfBirth: (FuzzyDate | null);
/** The character's age. Note this is a string, not an int, it may contain further text and additional ages. */
age: (Scalars['String'] | null);
/** The characters blood type */
bloodType: (Scalars['String'] | null);
/** If the character is marked as favourite by the currently authenticated user */
isFavourite: Scalars['Boolean'];
/** If the character is blocked from being added to favourites */
isFavouriteBlocked: Scalars['Boolean'];
/** The url for the character page on the AniList website */
siteUrl: (Scalars['String'] | null);
/** Media that includes the character */
media: (MediaConnection | null);
/** @deprecated No data available */
updatedAt: (Scalars['Int'] | null);
/** The amount of user's who have favourited the character */
favourites: (Scalars['Int'] | null);
/** Notes for site moderators */
modNotes: (Scalars['String'] | null);
__typename: 'Character';
}
/** The names of the character */
interface CharacterName {
/** The character's given name */
first: (Scalars['String'] | null);
/** The character's middle name */
middle: (Scalars['String'] | null);
/** The character's surname */
last: (Scalars['String'] | null);
/** The character's first and last name */
full: (Scalars['String'] | null);
/** The character's full name in their native language */
native: (Scalars['String'] | null);
/** Other names the character might be referred to as */
alternative: ((Scalars['String'] | null)[] | null);
/** Other names the character might be referred to as but are spoilers */
alternativeSpoiler: ((Scalars['String'] | null)[] | null);
/** The currently authenticated users preferred name language. Default romaji for non-authenticated */
userPreferred: (Scalars['String'] | null);
__typename: 'CharacterName';
}
interface CharacterImage {
/** The character's image of media at its largest size */
large: (Scalars['String'] | null);
/** The character's image of media at medium size */
medium: (Scalars['String'] | null);
__typename: 'CharacterImage';
}
/** Media sort enums */
type MediaSort = 'ID' | 'ID_DESC' | 'TITLE_ROMAJI' | 'TITLE_ROMAJI_DESC' | 'TITLE_ENGLISH' | 'TITLE_ENGLISH_DESC' | 'TITLE_NATIVE' | 'TITLE_NATIVE_DESC' | 'TYPE' | 'TYPE_DESC' | 'FORMAT' | 'FORMAT_DESC' | 'START_DATE' | 'START_DATE_DESC' | 'END_DATE' | 'END_DATE_DESC' | 'SCORE' | 'SCORE_DESC' | 'POPULARITY' | 'POPULARITY_DESC' | 'TRENDING' | 'TRENDING_DESC' | 'EPISODES' | 'EPISODES_DESC' | 'DURATION' | 'DURATION_DESC' | 'STATUS' | 'STATUS_DESC' | 'CHAPTERS' | 'CHAPTERS_DESC' | 'VOLUMES' | 'VOLUMES_DESC' | 'UPDATED_AT' | 'UPDATED_AT_DESC' | 'SEARCH_MATCH' | 'FAVOURITES' | 'FAVOURITES_DESC';
/** The primary language of the voice actor */
type StaffLanguage = 'JAPANESE' | 'ENGLISH' | 'KOREAN' | 'ITALIAN' | 'SPANISH' | 'PORTUGUESE' | 'FRENCH' | 'GERMAN' | 'HEBREW' | 'HUNGARIAN';
/** Staff sort enums */
type StaffSort = 'ID' | 'ID_DESC' | 'ROLE' | 'ROLE_DESC' | 'LANGUAGE' | 'LANGUAGE_DESC' | 'SEARCH_MATCH' | 'FAVOURITES' | 'FAVOURITES_DESC' | 'RELEVANCE';
/** Voice actors or production staff */
interface Staff {
/** The id of the staff member */
id: Scalars['Int'];
/** The names of the staff member */
name: (StaffName | null);
/**
* @deprecated Replaced with languageV2
* The primary language the staff member dub's in
*/
language: (StaffLanguage | null);
/** The primary language of the staff member. Current values: Japanese, English, Korean, Italian, Spanish, Portuguese, French, German, Hebrew, Hungarian, Chinese, Arabic, Filipino, Catalan, Finnish, Turkish, Dutch, Swedish, Thai, Tagalog, Malaysian, Indonesian, Vietnamese, Nepali, Hindi, Urdu */
languageV2: (Scalars['String'] | null);
/** The staff images */
image: (StaffImage | null);
/** A general description of the staff member */
description: (Scalars['String'] | null);
/** The person's primary occupations */
primaryOccupations: ((Scalars['String'] | null)[] | null);
/** The staff's gender. Usually Male, Female, or Non-binary but can be any string. */
gender: (Scalars['String'] | null);
dateOfBirth: (FuzzyDate | null);
dateOfDeath: (FuzzyDate | null);
/** The person's age in years */
age: (Scalars['Int'] | null);
/** [startYear, endYear] (If the 2nd value is not present staff is still active) */
yearsActive: ((Scalars['Int'] | null)[] | null);
/** The persons birthplace or hometown */
homeTown: (Scalars['String'] | null);
/** The persons blood type */
bloodType: (Scalars['String'] | null);
/** If the staff member is marked as favourite by the currently authenticated user */
isFavourite: Scalars['Boolean'];
/** If the staff member is blocked from being added to favourites */
isFavouriteBlocked: Scalars['Boolean'];
/** The url for the staff page on the AniList website */
siteUrl: (Scalars['String'] | null);
/** Media where the staff member has a production role */
staffMedia: (MediaConnection | null);
/** Characters voiced by the actor */
characters: (CharacterConnection | null);
/** Media the actor voiced characters in. (Same data as characters with media as node instead of characters) */
characterMedia: (MediaConnection | null);
/** @deprecated No data available */
updatedAt: (Scalars['Int'] | null);
/** Staff member that the submission is referencing */
staff: (Staff | null);
/** Submitter for the submission */
submitter: (User | null);
/** Status of the submission */
submissionStatus: (Scalars['Int'] | null);
/** Inner details of submission status */
submissionNotes: (Scalars['String'] | null);
/** The amount of user's who have favourited the staff member */
favourites: (Scalars['Int'] | null);
/** Notes for site moderators */
modNotes: (Scalars['String'] | null);
__typename: 'Staff';
}
/** The names of the staff member */
interface StaffName {
/** The person's given name */
first: (Scalars['String'] | null);
/** The person's middle name */
middle: (Scalars['String'] | null);
/** The person's surname */
last: (Scalars['String'] | null);
/** The person's first and last name */
full: (Scalars['String'] | null);
/** The person's full name in their native language */
native: (Scalars['String'] | null);
/** Other names the staff member might be referred to as (pen names) */
alternative: ((Scalars['String'] | null)[] | null);
/** The currently authenticated users preferred name language. Default romaji for non-authenticated */
userPreferred: (Scalars['String'] | null);
__typename: 'StaffName';
}
interface StaffImage {
/** The person's image of media at its largest size */
large: (Scalars['String'] | null);
/** The person's image of media at medium size */
medium: (Scalars['String'] | null);
__typename: 'StaffImage';
}
/** Voice actor role for a character */
interface StaffRoleType {
/** The voice actors of the character */
voiceActor: (Staff | null);
/** Notes regarding the VA's role for the character */
roleNotes: (Scalars['String'] | null);
/** Used for grouping roles where multiple dubs exist for the same language. Either dubbing company name or language variant. */
dubGroup: (Scalars['String'] | null);
__typename: 'StaffRoleType';
}
interface StaffConnection {
edges: ((StaffEdge | null)[] | null);
nodes: ((Staff | null)[] | null);
/** The pagination information */
pageInfo: (PageInfo | null);
__typename: 'StaffConnection';
}
/** Staff connection edge */
interface StaffEdge {
node: (Staff | null);
/** The id of the connection */
id: (Scalars['Int'] | null);
/** The role of the staff member in the production of the media */
role: (Scalars['String'] | null);
/** The order the staff should be displayed from the users favourites */
favouriteOrder: (Scalars['Int'] | null);
__typename: 'StaffEdge';
}
/** Studio sort enums */
type StudioSort = 'ID' | 'ID_DESC' | 'NAME' | 'NAME_DESC' | 'SEARCH_MATCH' | 'FAVOURITES' | 'FAVOURITES_DESC';
interface StudioConnection {
edges: ((StudioEdge | null)[] | null);
nodes: ((Studio | null)[] | null);
/** The pagination information */
pageInfo: (PageInfo | null);
__typename: 'StudioConnection';
}
/** Studio connection edge */
interface StudioEdge {
node: (Studio | null);
/** The id of the connection */
id: (Scalars['Int'] | null);
/** If the studio is the main animation studio of the anime */
isMain: Scalars['Boolean'];
/** The order the character should be displayed from the users favourites */
favouriteOrder: (Scalars['Int'] | null);
__typename: 'StudioEdge';
}
/** Animation or production company */
interface Studio {
/** The id of the studio */
id: Scalars['Int'];
/** The name of the studio */
name: Scalars['String'];
/** If the studio is an animation studio or a different kind of company */
isAnimationStudio: Scalars['Boolean'];
/** The media the studio has worked on */
media: (MediaConnection | null);
/** The url for the studio page on the AniList website */
siteUrl: (Scalars['String'] | null);
/** If the studio is marked as favourite by the currently authenticated user */
isFavourite: Scalars['Boolean'];
/** The amount of user's who have favourited the studio */
favourites: (Scalars['Int'] | null);
__typename: 'Studio';
}
/** Media Airing Schedule. NOTE: We only aim to guarantee that FUTURE airing data is present and accurate. */
interface AiringSchedule {
/** The id of the airing schedule item */
id: Scalars['Int'];
/** The time the episode airs at */
airingAt: Scalars['Int'];
/** Seconds until episode starts airing */
timeUntilAiring: Scalars['Int'];
/** The airing episode number */
episode: Scalars['Int'];
/** The associate media id of the airing episode */
mediaId: Scalars['Int'];
/** The associate media of the airing episode */
media: (Media | null);
__typename: 'AiringSchedule';
}
interface AiringScheduleConnection {
edges: ((AiringScheduleEdge | null)[] | null);
nodes: ((AiringSchedule | null)[] | null);
/** The pagination information */
pageInfo: (PageInfo | null);
__typename: 'AiringScheduleConnection';
}
/** AiringSchedule connection edge */
interface AiringScheduleEdge {
node: (AiringSchedule | null);
/** The id of the connection */
id: (Scalars['Int'] | null);
__typename: 'AiringScheduleEdge';
}
/** Media trend sort enums */
type MediaTrendSort = 'ID' | 'ID_DESC' | 'MEDIA_ID' | 'MEDIA_ID_DESC' | 'DATE' | 'DATE_DESC' | 'SCORE' | 'SCORE_DESC' | 'POPULARITY' | 'POPULARITY_DESC' | 'TRENDING' | 'TRENDING_DESC' | 'EPISODE' | 'EPISODE_DESC';
interface MediaTrendConnection {
edges: ((MediaTrendEdge | null)[] | null);
nodes: ((MediaTrend | null)[] | null);
/** The pagination information */
pageInfo: (PageInfo | null);
__typename: 'MediaTrendConnection';
}
/** Media trend connection edge */
interface MediaTrendEdge {
node: (MediaTrend | null);
__typename: 'MediaTrendEdge';
}
/** Daily media statistics */
interface MediaTrend {
/** The id of the tag */
mediaId: Scalars['Int'];
/** The day the data was recorded (timestamp) */
date: Scalars['Int'];
/** The amount of media activity on the day */
trending: Scalars['Int'];
/** A weighted average score of all the user's scores of the media */
averageScore: (Scalars['Int'] | null);
/** The number of users with the media on their list */
popularity: (Scalars['Int'] | null);
/** The number of users with watching/reading the media */
inProgress: (Scalars['Int'] | null);
/** If the media was being released at this time */
releasing: Scalars['Boolean'];
/** The episode number of the anime released on this day */
episode: (Scalars['Int'] | null);
/** The related media */
media: (Media | null);
__typename: 'MediaTrend';
}
/** An external link to another site related to the media or staff member */
interface MediaExternalLink {
/** The id of the external link */
id: Scalars['Int'];
/** The url of the external link or base url of link source */
url: (Scalars['String'] | null);
/** The links website site name */
site: Scalars['String'];
/** The links website site id */
siteId: (Scalars['Int'] | null);
type: (ExternalLinkType | null);
/** Language the site content is in. See Staff language field for values. */
language: (Scalars['String'] | null);
color: (Scalars['String'] | null);
/** The icon image url of the site. Not available for all links. Transparent PNG 64x64 */
icon: (Scalars['String'] | null);
notes: (Scalars['String'] | null);
isDisabled: (Scalars['Boolean'] | null);
__typename: 'MediaExternalLink';
}
type ExternalLinkType = 'INFO' | 'STREAMING' | 'SOCIAL';
/** Data and links to legal streaming episodes on external sites */
interface MediaStreamingEpisode {
/** Title of the episode */
title: (Scalars['String'] | null);
/** Url of episode image thumbnail */
thumbnail: (Scalars['String'] | null);
/** The url of the episode */
url: (Scalars['String'] | null);
/** The site location of the streaming episodes */
site: (Scalars['String'] | null);
__typename: 'MediaStreamingEpisode';
}
/** The ranking of a media in a particular time span and format compared to other media */
interface MediaRank {
/** The id of the rank */
id: Scalars['Int'];
/** The numerical rank of the media */
rank: Scalars['Int'];
/** The type of ranking */
type: MediaRankType;
/** The format the media is ranked within */
format: MediaFormat;
/** The year the media is ranked within */
year: (Scalars['Int'] | null);
/** The season the media is ranked within */
season: (MediaSeason | null);
/** If the ranking is based on all time instead of a season/year */
allTime: (Scalars['Boolean'] | null);
/** String that gives context to the ranking type and time span */
context: Scalars['String'];
__typename: 'MediaRank';
}
/** The type of ranking */
type MediaRankType = 'RATED' | 'POPULAR';
/** List of anime or manga */
interface MediaList {
/** The id of the list entry */
id: Scalars['Int'];
/** The id of the user owner of the list entry */
userId: Scalars['Int'];
/** The id of the media */
mediaId: Scalars['Int'];
/** The watching/reading status */
status: (MediaListStatus | null);
/** The score of the entry */
score: (Scalars['Float'] | null);
/** The amount of episodes/chapters consumed by the user */
progress: (Scalars['Int'] | null);
/** The amount of volumes read by the user */
progressVolumes: (Scalars['Int'] | null);
/** The amount of times the user has rewatched/read the media */
repeat: (Scalars['Int'] | null);
/** Priority of planning */
priority: (Scalars['Int'] | null);
/** If the entry should only be visible to authenticated user */
private: (Scalars['Boolean'] | null);
/** Text notes */
notes: (Scalars['String'] | null);
/** If the entry shown be hidden from non-custom lists */
hiddenFromStatusLists: (Scalars['Boolean'] | null);
/** Map of booleans for which custom lists the entry are in */
customLists: (Scalars['Json'] | null);
/** Map of advanced scores with name keys */
advancedScores: (Scalars['Json'] | null);
/** When the entry was started by the user */
startedAt: (FuzzyDate | null);
/** When the entry was completed by the user */
completedAt: (FuzzyDate | null);
/** When the entry data was last updated */
updatedAt: (Scalars['Int'] | null);
/** When the entry data was created */
createdAt: (Scalars['Int'] | null);
media: (Media | null);
user: (User | null);
__typename: 'MediaList';
}
/** Review sort enums */
type ReviewSort = 'ID' | 'ID_DESC' | 'SCORE' | 'SCORE_DESC' | 'RATING' | 'RATING_DESC' | 'CREATED_AT' | 'CREATED_AT_DESC' | 'UPDATED_AT' | 'UPDATED_AT_DESC';
interface ReviewConnection {
edges: ((ReviewEdge | null)[] | null);
nodes: ((Review | null)[] | null);
/** The pagination information */
pageInfo: (PageInfo | null);
__typename: 'ReviewConnection';
}
/** Review connection edge */
interface ReviewEdge {
node: (Review | null);
__typename: 'ReviewEdge';
}
/** A Review that features in an anime or manga */
interface Review {
/** The id of the review */
id: Scalars['Int'];
/** The id of the review's creator */
userId: Scalars['Int'];
/** The id of the review's media */
mediaId: Scalars['Int'];
/** For which type of media the review is for */
mediaType: (MediaType | null);
/** A short summary of the review */
summary: (Scalars['String'] | null);
/** The main review body text */
body: (Scalars['String'] | null);
/** The total user rating of the review */
rating: (Scalars['Int'] | null);
/** The amount of user ratings of the review */
ratingAmount: (Scalars['Int'] | null);
/** The rating of the review by currently authenticated user */
userRating: (ReviewRating | null);
/** The review score of the media */
score: (Scalars['Int'] | null);
/** If the review is not yet publicly published and is only viewable by creator */
private: (Scalars['Boolean'] | null);
/** The url for the review page on the AniList website */
siteUrl: (Scalars['String'] | null);
/** The time of the thread creation */
createdAt: Scalars['Int'];
/** The time of the thread last update */
updatedAt: Scalars['Int'];
/** The creator of the review */
user: (User | null);
/** The media the review is of */
media: (Media | null);
__typename: 'Review';
}
/** Review rating enums */
type ReviewRating = 'NO_VOTE' | 'UP_VOTE' | 'DOWN_VOTE';
/** Recommendation sort enums */
type RecommendationSort = 'ID' | 'ID_DESC' | 'RATING' | 'RATING_DESC';
interface RecommendationConnection {
edges: ((RecommendationEdge | null)[] | null);
nodes: ((Recommendation | null)[] | null);
/** The pagination information */
pageInfo: (PageInfo | null);
__typename: 'RecommendationConnection';
}
/** Recommendation connection edge */
interface RecommendationEdge {
node: (Recommendation | null);
__typename: 'RecommendationEdge';
}
/** Media recommendation */
interface Recommendation {
/** The id of the recommendation */
id: Scalars['Int'];
/** Users rating of the recommendation */
rating: (Scalars['Int'] | null);
/** The rating of the recommendation by currently authenticated user */
userRating: (RecommendationRating | null);
/** The media the recommendation is from */
media: (Media | null);
/** The recommended media */
mediaRecommendation: (Media | null);
/** The user that first created the recommendation */
user: (User | null);
__typename: 'Recommendation';
}
/** Recommendation rating enums */
type RecommendationRating = 'NO_RATING' | 'RATE_UP' | 'RATE_DOWN';
/** A media's statistics */
interface MediaStats {
scoreDistribution: ((ScoreDistribution | null)[] | null);
statusDistribution: ((StatusDistribution | null)[] | null);
/** @deprecated Replaced by MediaTrends */
airingProgression: ((AiringProgression | null)[] | null);
__typename: 'MediaStats';
}
/** A user's list score distribution. */
interface ScoreDistribution {
score: (Scalars['Int'] | null);
/** The amount of list entries with this score */
amount: (Scalars['Int'] | null);
__typename: 'ScoreDistribution';
}
/** The distribution of the watching/reading status of media or a user's list */
interface StatusDistribution {
/** The day the activity took place (Unix timestamp) */
status: (MediaListStatus | null);
/** The amount of entries with this status */
amount: (Scalars['Int'] | null);
__typename: 'StatusDistribution';
}
/** Score & Watcher stats for airing anime by episode and mid-week */
interface AiringProgression {
/** The episode the stats were recorded at. .5 is the mid point between 2 episodes airing dates. */
episode: (Scalars['Float'] | null);
/** The average score for the media */
score: (Scalars['Float'] | null);
/** The amount of users watching the anime */
watching: (Scalars['Int'] | null);
__typename: 'AiringProgression';
}
/** Type of relation media has to its parent. */
type MediaRelation = 'ADAPTATION' | 'PREQUEL' | 'SEQUEL' | 'PARENT' | 'SIDE_STORY' | 'CHARACTER' | 'SUMMARY' | 'ALTERNATIVE' | 'SPIN_OFF' | 'OTHER' | 'SOURCE' | 'COMPILATION' | 'CONTAINS';
interface UserStatisticTypes {
anime: (UserStatistics | null);
manga: (UserStatistics | null);
__typename: 'UserStatisticTypes';
}
interface UserStatistics {
count: Scalars['Int'];
meanScore: Scalars['Float'];
standardDeviation: Scalars['Float'];
minutesWatched: Scalars['Int'];
episodesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
volumesRead: Scalars['Int'];
formats: ((UserFormatStatistic | null)[] | null);
statuses: ((UserStatusStatistic | null)[] | null);
scores: ((UserScoreStatistic | null)[] | null);
lengths: ((UserLengthStatistic | null)[] | null);
releaseYears: ((UserReleaseYearStatistic | null)[] | null);
startYears: ((UserStartYearStatistic | null)[] | null);
genres: ((UserGenreStatistic | null)[] | null);
tags: ((UserTagStatistic | null)[] | null);
countries: ((UserCountryStatistic | null)[] | null);
voiceActors: ((UserVoiceActorStatistic | null)[] | null);
staff: ((UserStaffStatistic | null)[] | null);
studios: ((UserStudioStatistic | null)[] | null);
__typename: 'UserStatistics';
}
/** User statistics sort enum */
type UserStatisticsSort = 'ID' | 'ID_DESC' | 'COUNT' | 'COUNT_DESC' | 'PROGRESS' | 'PROGRESS_DESC' | 'MEAN_SCORE' | 'MEAN_SCORE_DESC';
interface UserFormatStatistic {
count: Scalars['Int'];
meanScore: Scalars['Float'];
minutesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
mediaIds: (Scalars['Int'] | null)[];
format: (MediaFormat | null);
__typename: 'UserFormatStatistic';
}
interface UserStatusStatistic {
count: Scalars['Int'];
meanScore: Scalars['Float'];
minutesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
mediaIds: (Scalars['Int'] | null)[];
status: (MediaListStatus | null);
__typename: 'UserStatusStatistic';
}
interface UserScoreStatistic {
count: Scalars['Int'];
meanScore: Scalars['Float'];
minutesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
mediaIds: (Scalars['Int'] | null)[];
score: (Scalars['Int'] | null);
__typename: 'UserScoreStatistic';
}
interface UserLengthStatistic {
count: Scalars['Int'];
meanScore: Scalars['Float'];
minutesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
mediaIds: (Scalars['Int'] | null)[];
length: (Scalars['String'] | null);
__typename: 'UserLengthStatistic';
}
interface UserReleaseYearStatistic {
count: Scalars['Int'];
meanScore: Scalars['Float'];
minutesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
mediaIds: (Scalars['Int'] | null)[];
releaseYear: (Scalars['Int'] | null);
__typename: 'UserReleaseYearStatistic';
}
interface UserStartYearStatistic {
count: Scalars['Int'];
meanScore: Scalars['Float'];
minutesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
mediaIds: (Scalars['Int'] | null)[];
startYear: (Scalars['Int'] | null);
__typename: 'UserStartYearStatistic';
}
interface UserGenreStatistic {
count: Scalars['Int'];
meanScore: Scalars['Float'];
minutesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
mediaIds: (Scalars['Int'] | null)[];
genre: (Scalars['String'] | null);
__typename: 'UserGenreStatistic';
}
interface UserTagStatistic {
count: Scalars['Int'];
meanScore: Scalars['Float'];
minutesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
mediaIds: (Scalars['Int'] | null)[];
tag: (MediaTag | null);
__typename: 'UserTagStatistic';
}
interface UserCountryStatistic {
count: Scalars['Int'];
meanScore: Scalars['Float'];
minutesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
mediaIds: (Scalars['Int'] | null)[];
country: (Scalars['CountryCode'] | null);
__typename: 'UserCountryStatistic';
}
interface UserVoiceActorStatistic {
count: Scalars['Int'];
meanScore: Scalars['Float'];
minutesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
mediaIds: (Scalars['Int'] | null)[];
voiceActor: (Staff | null);
characterIds: (Scalars['Int'] | null)[];
__typename: 'UserVoiceActorStatistic';
}
interface UserStaffStatistic {
count: Scalars['Int'];
meanScore: Scalars['Float'];
minutesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
mediaIds: (Scalars['Int'] | null)[];
staff: (Staff | null);
__typename: 'UserStaffStatistic';
}
interface UserStudioStatistic {
count: Scalars['Int'];
meanScore: Scalars['Float'];
minutesWatched: Scalars['Int'];
chaptersRead: Scalars['Int'];
mediaIds: (Scalars['Int'] | null)[];
studio: (Studio | null);
__typename: 'UserStudioStatistic';
}
/** Mod role enums */
type ModRole = 'ADMIN' | 'LEAD_DEVELOPER' | 'DEVELOPER' | 'LEAD_COMMUNITY' | 'COMMUNITY' | 'DISCORD_COMMUNITY' | 'LEAD_ANIME_DATA' | 'ANIME_DATA' | 'LEAD_MANGA_DATA' | 'MANGA_DATA' | 'LEAD_SOCIAL_MEDIA' | 'SOCIAL_MEDIA' | 'RETIRED' | 'CHARACTER_DATA' | 'STAFF_DATA';
/** A user's statistics */
interface UserStats {
/** The amount of anime the user has watched in minutes */
watchedTime: (Scalars['Int'] | null);
/** The amount of manga chapters the user has read */
chaptersRead: (Scalars['Int'] | null);
activityHistory: ((UserActivityHistory | null)[] | null);
animeStatusDistribution: ((StatusDistribution | null)[] | null);
mangaStatusDistribution: ((StatusDistribution | null)[] | null);
animeScoreDistribution: ((ScoreDistribution | null)[] | null);
mangaScoreDistribution: ((ScoreDistribution | null)[] | null);
animeListScores: (ListScoreStats | null);
mangaListScores: (ListScoreStats | null);
favouredGenresOverview: ((GenreStats | null)[] | null);
favouredGenres: ((GenreStats | null)[] | null);
favouredTags: ((TagStats | null)[] | null);
favouredActors: ((StaffStats | null)[] | null);
favouredStaff: ((StaffStats | null)[] | null);
favouredStudios: ((StudioStats | null)[] | null);
favouredYears: ((YearStats | null)[] | null);
favouredFormats: ((FormatStats | null)[] | null);
__typename: 'UserStats';
}
/** A user's activity history stats. */
interface UserActivityHistory {
/** The day the activity took place (Unix timestamp) */
date: (Scalars['Int'] | null);
/** The amount of activity on the day */
amount: (Scalars['Int'] | null);
/** The level of activity represented on a 1-10 scale */
level: (Scalars['Int'] | null);
__typename: 'UserActivityHistory';
}
/** User's list score statistics */
interface ListScoreStats {
meanScore: (Scalars['Int'] | null);
standardDeviation: (Scalars['Int'] | null);
__typename: 'ListScoreStats';
}
/** User's genre statistics */
interface GenreStats {
genre: (Scalars['String'] | null);
amount: (Scalars['Int'] | null);
meanScore: (Scalars['Int'] | null);
/** The amount of time in minutes the genre has been watched by the user */
timeWatched: (Scalars['Int'] | null);
__typename: 'GenreStats';
}
/** User's tag statistics */
interface TagStats {
tag: (MediaTag | null);
amount: (Scalars['Int'] | null);
meanScore: (Scalars['Int'] | null);
/** The amount of time in minutes the tag has been watched by the user */
timeWatched: (Scalars['Int'] | null);
__typename: 'TagStats';
}
/** User'