Update Anilist GraphQL schema

This commit is contained in:
Timothy Warren 2022-01-06 12:56:46 -05:00
parent c23001e7b1
commit 7415c3bbd6

View File

@ -12,7 +12,7 @@ union ActivityUnion = ListActivity | MessageActivity | TextActivity
union LikeableUnion = ActivityReply | ListActivity | MessageActivity | TextActivity | Thread | ThreadComment union LikeableUnion = ActivityReply | ListActivity | MessageActivity | TextActivity | Thread | ThreadComment
"Notification union type" "Notification union type"
union NotificationUnion = ActivityLikeNotification | ActivityMentionNotification | ActivityMessageNotification | ActivityReplyLikeNotification | ActivityReplyNotification | ActivityReplySubscribedNotification | AiringNotification | FollowingNotification | RelatedMediaAdditionNotification | ThreadCommentLikeNotification | ThreadCommentMentionNotification | ThreadCommentReplyNotification | ThreadCommentSubscribedNotification | ThreadLikeNotification union NotificationUnion = ActivityLikeNotification | ActivityMentionNotification | ActivityMessageNotification | ActivityReplyLikeNotification | ActivityReplyNotification | ActivityReplySubscribedNotification | AiringNotification | FollowingNotification | MediaDataChangeNotification | MediaDeletionNotification | MediaMergeNotification | RelatedMediaAdditionNotification | ThreadCommentLikeNotification | ThreadCommentMentionNotification | ThreadCommentReplyNotification | ThreadCommentSubscribedNotification | ThreadLikeNotification
"Notification for when a activity is liked" "Notification for when a activity is liked"
type ActivityLikeNotification { type ActivityLikeNotification {
@ -227,6 +227,8 @@ type AniChartUser {
type Character { type Character {
"The character's age. Note this is a string, not an int, it may contain further text and additional ages." "The character's age. Note this is a string, not an int, it may contain further text and additional ages."
age: String age: String
"The characters blood type"
bloodType: String
"The character's birth date" "The character's birth date"
dateOfBirth: FuzzyDate dateOfBirth: FuzzyDate
"A general description of the character" "A general description of the character"
@ -314,15 +316,21 @@ type CharacterName {
middle: String middle: String
"The character's full name in their native language" "The character's full name in their native language"
native: String native: String
"The currently authenticated users preferred name language. Default romaji for non-authenticated"
userPreferred: String
} }
"A submission for a character that features in an anime or manga" "A submission for a character that features in an anime or manga"
type CharacterSubmission { type CharacterSubmission {
"Data Mod assigned to handle the submission"
assignee: User
"Character that the submission is referencing" "Character that the submission is referencing"
character: Character character: Character
createdAt: Int createdAt: Int
"The id of the submission" "The id of the submission"
id: Int! id: Int!
"Whether the submission is locked"
locked: Boolean
"Inner details of submission status" "Inner details of submission status"
notes: String notes: String
source: String source: String
@ -543,6 +551,7 @@ type InternalPage {
sort: [AiringSort] sort: [AiringSort]
): [AiringSchedule] ): [AiringSchedule]
characterSubmissions( characterSubmissions(
assigneeId: Int,
characterId: Int, characterId: Int,
"The order the results will be returned in" "The order the results will be returned in"
sort: [SubmissionSort], sort: [SubmissionSort],
@ -654,6 +663,8 @@ type InternalPage {
id_not_in: [Int], id_not_in: [Int],
"Filter by if the media's intended for 18+ adult audiences" "Filter by if the media's intended for 18+ adult audiences"
isAdult: Boolean, isAdult: Boolean,
"If the media is officially licensed or a self-published doujin release"
isLicensed: Boolean,
"Filter media by sites with a online streaming or reading license" "Filter media by sites with a online streaming or reading license"
licensedBy: String, licensedBy: String,
"Filter media by sites with a online streaming or reading license" "Filter media by sites with a online streaming or reading license"
@ -772,6 +783,7 @@ type InternalPage {
userName: String userName: String
): [MediaList] ): [MediaList]
mediaSubmissions( mediaSubmissions(
assigneeId: Int,
mediaId: Int, mediaId: Int,
"The order the results will be returned in" "The order the results will be returned in"
sort: [SubmissionSort], sort: [SubmissionSort],
@ -864,7 +876,7 @@ type InternalPage {
"Filter by user who created the recommendation" "Filter by user who created the recommendation"
userId: Int userId: Int
): [Recommendation] ): [Recommendation]
reports: [Report] reports(reportedId: Int, reporterId: Int): [Report]
reviews( reviews(
"Filter by Review id" "Filter by Review id"
id: Int, id: Int,
@ -906,6 +918,7 @@ type InternalPage {
sort: [StaffSort] sort: [StaffSort]
): [Staff] ): [Staff]
staffSubmissions( staffSubmissions(
assigneeId: Int,
"The order the results will be returned in" "The order the results will be returned in"
sort: [SubmissionSort], sort: [SubmissionSort],
staffId: Int, staffId: Int,
@ -958,9 +971,15 @@ type InternalPage {
"Filter by the user id of the thread's creator" "Filter by the user id of the thread's creator"
userId: Int userId: Int
): [Thread] ): [Thread]
userBlockSearch(
"Filter by search query"
search: String
): [User]
users( users(
"Filter by the user id" "Filter by the user id"
id: Int, id: Int,
"Filter to moderators only if true"
isModerator: Boolean,
"Filter by the name of the user" "Filter by the name of the user"
name: String, name: String,
"Filter by search query" "Filter by search query"
@ -1073,6 +1092,8 @@ type Media {
isAdult: Boolean isAdult: Boolean
"If the media is marked as favourite by the current authenticated user" "If the media is marked as favourite by the current authenticated user"
isFavourite: Boolean! isFavourite: Boolean!
"If the media is blocked from being added to favourites"
isFavouriteBlocked: Boolean!
"If the media is officially licensed or a self-published doujin release" "If the media is officially licensed or a self-published doujin release"
isLicensed: Boolean isLicensed: Boolean
"Locked media may not be added to lists our favorited. This may be due to the entry pending for deletion or other reasons." "Locked media may not be added to lists our favorited. This may be due to the entry pending for deletion or other reasons."
@ -1120,7 +1141,7 @@ type Media {
siteUrl: String siteUrl: String
"Source type the media was adapted from." "Source type the media was adapted from."
source( source(
"Provide 2 to use new version 2 of sources enum" "Provide 2 or 3 to use new version 2 or 3 of sources enum"
version: Int version: Int
): MediaSource ): MediaSource
"The staff who produced the media" "The staff who produced the media"
@ -1205,6 +1226,40 @@ type MediaCoverImage {
medium: String medium: String
} }
"Notification for when a media entry's data was changed in a significant way impacting users' list tracking"
type MediaDataChangeNotification {
"The reason for the media data change"
context: String
"The time the notification was created at"
createdAt: Int
"The id of the Notification"
id: Int!
"The media that received data changes"
media: Media
"The id of the media that received data changes"
mediaId: Int!
"The reason for the media data change"
reason: String
"The type of notification"
type: NotificationType
}
"Notification for when a media tracked in a user's list is deleted from the site"
type MediaDeletionNotification {
"The reason for the media deletion"
context: String
"The time the notification was created at"
createdAt: Int
"The title of the deleted media"
deletedMediaTitle: String
"The id of the Notification"
id: Int!
"The reason for the media deletion"
reason: String
"The type of notification"
type: NotificationType
}
"Media connection edge" "Media connection edge"
type MediaEdge { type MediaEdge {
"Media specific character name" "Media specific character name"
@ -1352,6 +1407,26 @@ type MediaListTypeOptions {
theme: Json @deprecated(reason: "This field has not yet been fully implemented and may change without warning") theme: Json @deprecated(reason: "This field has not yet been fully implemented and may change without warning")
} }
"Notification for when a media entry is merged into another for a user who had it on their list"
type MediaMergeNotification {
"The reason for the media data change"
context: String
"The time the notification was created at"
createdAt: Int
"The title of the deleted media"
deletedMediaTitles: [String]
"The id of the Notification"
id: Int!
"The media that was merged into"
media: Media
"The id of the media that was merged into"
mediaId: Int!
"The reason for the media merge"
reason: String
"The type of notification"
type: NotificationType
}
"The ranking of a media in a particular time span and format compared to other media" "The ranking of a media in a particular time span and format compared to other media"
type MediaRank { type MediaRank {
"If the ranking is based on all time instead of a season/year" "If the ranking is based on all time instead of a season/year"
@ -1393,12 +1468,16 @@ type MediaStreamingEpisode {
"Media submission" "Media submission"
type MediaSubmission { type MediaSubmission {
"Data Mod assigned to handle the submission"
assignee: User
changes: [String] changes: [String]
characters: [MediaSubmissionComparison] characters: [MediaSubmissionComparison]
createdAt: Int createdAt: Int
externalLinks: [MediaExternalLink] externalLinks: [MediaExternalLink]
"The id of the submission" "The id of the submission"
id: Int! id: Int!
"Whether the submission is locked"
locked: Boolean
media: Media media: Media
notes: String notes: String
relations: [MediaEdge] relations: [MediaEdge]
@ -1458,6 +1537,8 @@ type MediaTag {
name: String! name: String!
"The relevance ranking of the tag out of the 100 for this media" "The relevance ranking of the tag out of the 100 for this media"
rank: Int rank: Int
"The user who submitted the tag"
userId: Int
} }
"The official titles of the media in various languages" "The official titles of the media in various languages"
@ -1738,6 +1819,8 @@ type Mutation {
comment: String, comment: String,
"The comment id, required for updating" "The comment id, required for updating"
id: Int, id: Int,
"If the comment tree should be locked. (Mod Only)"
locked: Boolean,
"The id of thread comment to reply to" "The id of thread comment to reply to"
parentCommentId: Int, parentCommentId: Int,
"The id of thread the comment belongs to" "The id of thread the comment belongs to"
@ -1872,6 +1955,8 @@ type Mutation {
rowOrder: String, rowOrder: String,
"The user's list scoring system" "The user's list scoring system"
scoreFormat: ScoreFormat, scoreFormat: ScoreFormat,
"The language the user wants to see staff and character names in"
staffNameLanguage: UserStaffNameLanguage,
"Timezone offset format: -?HH:MM" "Timezone offset format: -?HH:MM"
timezone: String, timezone: String,
"User's title language" "User's title language"
@ -2094,6 +2179,8 @@ type Page {
id_not_in: [Int], id_not_in: [Int],
"Filter by if the media's intended for 18+ adult audiences" "Filter by if the media's intended for 18+ adult audiences"
isAdult: Boolean, isAdult: Boolean,
"If the media is officially licensed or a self-published doujin release"
isLicensed: Boolean,
"Filter media by sites with a online streaming or reading license" "Filter media by sites with a online streaming or reading license"
licensedBy: String, licensedBy: String,
"Filter media by sites with a online streaming or reading license" "Filter media by sites with a online streaming or reading license"
@ -2368,6 +2455,8 @@ type Page {
users( users(
"Filter by the user id" "Filter by the user id"
id: Int, id: Int,
"Filter to moderators only if true"
isModerator: Boolean,
"Filter by the name of the user" "Filter by the name of the user"
name: String, name: String,
"Filter by search query" "Filter by search query"
@ -2618,6 +2707,8 @@ type Query {
id_not_in: [Int], id_not_in: [Int],
"Filter by if the media's intended for 18+ adult audiences" "Filter by if the media's intended for 18+ adult audiences"
isAdult: Boolean, isAdult: Boolean,
"If the media is officially licensed or a self-published doujin release"
isLicensed: Boolean,
"Filter media by sites with a online streaming or reading license" "Filter media by sites with a online streaming or reading license"
licensedBy: String, licensedBy: String,
"Filter media by sites with a online streaming or reading license" "Filter media by sites with a online streaming or reading license"
@ -2958,6 +3049,8 @@ type Query {
User( User(
"Filter by the user id" "Filter by the user id"
id: Int, id: Int,
"Filter to moderators only if true"
isModerator: Boolean,
"Filter by the name of the user" "Filter by the name of the user"
name: String, name: String,
"Filter by search query" "Filter by search query"
@ -3014,6 +3107,7 @@ type RelatedMediaAdditionNotification {
} }
type Report { type Report {
cleared: Boolean
"When the entry data was created" "When the entry data was created"
createdAt: Int createdAt: Int
id: Int! id: Int!
@ -3179,6 +3273,8 @@ type SiteTrendEdge {
type Staff { type Staff {
"The person's age in years" "The person's age in years"
age: Int age: Int
"The persons blood type"
bloodType: String
"Media the actor voiced characters in. (Same data as characters with media as node instead of characters)" "Media the actor voiced characters in. (Same data as characters with media as node instead of characters)"
characterMedia( characterMedia(
onList: Boolean, onList: Boolean,
@ -3291,6 +3387,8 @@ type StaffName {
middle: String middle: String
"The person's full name in their native language" "The person's full name in their native language"
native: String native: String
"The currently authenticated users preferred name language. Default romaji for non-authenticated"
userPreferred: String
} }
"Voice actor role for a character" "Voice actor role for a character"
@ -3314,9 +3412,13 @@ type StaffStats {
"A submission for a staff that features in an anime or manga" "A submission for a staff that features in an anime or manga"
type StaffSubmission { type StaffSubmission {
"Data Mod assigned to handle the submission"
assignee: User
createdAt: Int createdAt: Int
"The id of the submission" "The id of the submission"
id: Int! id: Int!
"Whether the submission is locked"
locked: Boolean
"Inner details of submission status" "Inner details of submission status"
notes: String notes: String
source: String source: String
@ -3511,6 +3613,8 @@ type ThreadComment {
id: Int! id: Int!
"If the currently authenticated user liked the comment" "If the currently authenticated user liked the comment"
isLiked: Boolean isLiked: Boolean
"If the comment tree is locked and may not receive replies or edits"
isLocked: Boolean
"The amount of likes the comment has" "The amount of likes the comment has"
likeCount: Int! likeCount: Int!
"The users who liked the comment" "The users who liked the comment"
@ -3651,6 +3755,8 @@ type User {
"The user's banner images" "The user's banner images"
bannerImage: String bannerImage: String
bans: Json bans: Json
"When the user's account was created. (Does not exist for accounts created before 2020)"
createdAt: Int
"Custom donation badge text" "Custom donation badge text"
donatorBadge: String donatorBadge: String
"The donation tier of the user" "The donation tier of the user"
@ -3670,12 +3776,16 @@ type User {
isFollowing: Boolean isFollowing: Boolean
"The user's media list options" "The user's media list options"
mediaListOptions: MediaListOptions mediaListOptions: MediaListOptions
"The user's moderator roles if they are a site moderator"
moderatorRoles: [ModRole]
"If the user is a moderator or data moderator" "If the user is a moderator or data moderator"
moderatorStatus: String moderatorStatus: String @deprecated(reason: "Deprecated. Replaced with moderatorRoles field.")
"The name of the user" "The name of the user"
name: String! name: String!
"The user's general options" "The user's general options"
options: UserOptions options: UserOptions
"The user's previously used names."
previousNames: [UserPreviousName]
"The url for the user page on the AniList website" "The url for the user page on the AniList website"
siteUrl: String siteUrl: String
"The users anime & manga list statistics" "The users anime & manga list statistics"
@ -3747,7 +3857,9 @@ type UserModData {
alts: [User] alts: [User]
bans: Json bans: Json
counts: Json counts: Json
email: String
ip: Json ip: Json
privacy: Int
} }
"A user's general options" "A user's general options"
@ -3762,12 +3874,24 @@ type UserOptions {
notificationOptions: [NotificationOption] notificationOptions: [NotificationOption]
"Profile highlight color (blue, purple, pink, orange, red, green, gray)" "Profile highlight color (blue, purple, pink, orange, red, green, gray)"
profileColor: String profileColor: String
"The language the user wants to see staff and character names in"
staffNameLanguage: UserStaffNameLanguage
"The user's timezone offset (Auth user only)" "The user's timezone offset (Auth user only)"
timezone: String timezone: String
"The language the user wants to see media titles in" "The language the user wants to see media titles in"
titleLanguage: UserTitleLanguage titleLanguage: UserTitleLanguage
} }
"A user's previous name"
type UserPreviousName {
"When the user first changed from this name."
createdAt: Int
"A previous name of the user."
name: String
"When the user most recently changed from this name."
updatedAt: Int
}
type UserReleaseYearStatistic { type UserReleaseYearStatistic {
chaptersRead: Int! chaptersRead: Int!
count: Int! count: Int!
@ -4127,24 +4251,36 @@ enum MediaSort {
"Source type the media was adapted from" "Source type the media was adapted from"
enum MediaSource { enum MediaSource {
"Version 2 only. Japanese Anime" "Version 2+ only. Japanese Anime"
ANIME ANIME
"Version 2 only. Self-published works" "Version 3 only. Comics excluding manga"
COMIC
"Version 2+ only. Self-published works"
DOUJINSHI DOUJINSHI
"Version 3 only. Games excluding video games"
GAME
"Written work published in volumes" "Written work published in volumes"
LIGHT_NOVEL LIGHT_NOVEL
"Version 3 only. Live action media such as movies or TV show"
LIVE_ACTION
"Asian comic book" "Asian comic book"
MANGA MANGA
"Version 2 only. Written works not published in volumes" "Version 3 only. Multimedia project"
MULTIMEDIA_PROJECT
"Version 2+ only. Written works not published in volumes"
NOVEL NOVEL
"An original production not based of another work" "An original production not based of another work"
ORIGINAL ORIGINAL
"Other" "Other"
OTHER OTHER
"Version 3 only. Picture book"
PICTURE_BOOK
"Video game" "Video game"
VIDEO_GAME VIDEO_GAME
"Video game driven primary by text and narrative" "Video game driven primary by text and narrative"
VISUAL_NOVEL VISUAL_NOVEL
"Version 3 only. Written works published online"
WEB_NOVEL
} }
"The current releasing status of the media" "The current releasing status of the media"
@ -4198,6 +4334,36 @@ enum ModActionType {
RESET RESET
} }
"Mod role enums"
enum ModRole {
"An AniList administrator"
ADMIN
"An anime data moderator"
ANIME_DATA
"A community moderator"
COMMUNITY
"An AniList developer"
DEVELOPER
"A discord community moderator"
DISCORD_COMMUNITY
"A lead anime data moderator"
LEAD_ANIME_DATA
"A lead community moderator"
LEAD_COMMUNITY
"A head developer of AniList"
LEAD_DEVELOPER
"A lead manga data moderator"
LEAD_MANGA_DATA
"A lead social media moderator"
LEAD_SOCIAL_MEDIA
"A manga data moderator"
MANGA_DATA
"A retired moderator"
RETIRED
"A social media moderator"
SOCIAL_MEDIA
}
"Notification type enum" "Notification type enum"
enum NotificationType { enum NotificationType {
"A user has liked your activity" "A user has liked your activity"
@ -4216,6 +4382,12 @@ enum NotificationType {
AIRING AIRING
"A user has followed you" "A user has followed you"
FOLLOWING FOLLOWING
"An anime or manga has had a data change that affects how a user may track it in their lists"
MEDIA_DATA_CHANGE
"An anime or manga on the user's list has been deleted from the site"
MEDIA_DELETION
"Anime or manga entries on the user's list have been merged into a single entry"
MEDIA_MERGE
"A new anime or manga has been added to the site where its related media is on the user's list" "A new anime or manga has been added to the site where its related media is on the user's list"
RELATED_MEDIA_ADDITION RELATED_MEDIA_ADDITION
"A user has liked your forum comment" "A user has liked your forum comment"
@ -4399,6 +4571,16 @@ enum UserSort {
WATCHED_TIME_DESC WATCHED_TIME_DESC
} }
"The language the user wants to see staff and character names in"
enum UserStaffNameLanguage {
"The staff or character's name in their native language"
NATIVE
"The romanization of the staff or character's native name"
ROMAJI
"The romanization of the staff or character's native name, with western name ordering"
ROMAJI_WESTERN
}
"User statistics sort enum" "User statistics sort enum"
enum UserStatisticsSort { enum UserStatisticsSort {
COUNT COUNT
@ -4427,6 +4609,14 @@ enum UserTitleLanguage {
ROMAJI_STYLISED ROMAJI_STYLISED
} }
"ISO 3166-1 alpha-2 country code"
scalar CountryCode
"8 digit long date integer (YYYYMMDD). Unknown dates represented by 0. E.g. 2016: 20160000, May 1976: 19760500"
scalar FuzzyDateInt
scalar Json
input AiringScheduleInput { input AiringScheduleInput {
airingAt: Int airingAt: Int
episode: Int episode: Int
@ -4521,12 +4711,3 @@ input StaffNameInput {
"The person's full name in their native language" "The person's full name in their native language"
native: String native: String
} }
scalar Json
"ISO 3166-1 alpha-2 country code"
scalar CountryCode
"8 digit long date integer (YYYYMMDD). Unknown dates represented by 0. E.g. 2016: 20160000, May 1976: 19760500"
scalar FuzzyDateInt