anilink-api-wrapper 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +1 -0
- package/.github/workflows/code_quality.yml +32 -0
- package/.github/workflows/codeql.yml +33 -0
- package/.github/workflows/test.yml +30 -0
- package/LICENSE +21 -0
- package/README.md +1 -0
- package/__tests__/anilist.test.ts +268 -0
- package/babel.config.js +6 -0
- package/dist/AniLink.js +40 -0
- package/dist/apis/anilist/interfaces/ActivityHistory.js +2 -0
- package/dist/apis/anilist/interfaces/CoverImage.js +2 -0
- package/dist/apis/anilist/interfaces/Distribution.js +2 -0
- package/dist/apis/anilist/interfaces/ExternalLink.js +2 -0
- package/dist/apis/anilist/interfaces/Favoured.js +2 -0
- package/dist/apis/anilist/interfaces/FuzzyDate.js +2 -0
- package/dist/apis/anilist/interfaces/Image.js +2 -0
- package/dist/apis/anilist/interfaces/ListScores.js +2 -0
- package/dist/apis/anilist/interfaces/Media.js +2 -0
- package/dist/apis/anilist/interfaces/MediaListEntry.js +2 -0
- package/dist/apis/anilist/interfaces/MediaStatistics.js +2 -0
- package/dist/apis/anilist/interfaces/MediaStats.js +2 -0
- package/dist/apis/anilist/interfaces/Name.js +2 -0
- package/dist/apis/anilist/interfaces/NextAiringEpisode.js +2 -0
- package/dist/apis/anilist/interfaces/Ranking.js +2 -0
- package/dist/apis/anilist/interfaces/ScoreDistribution.js +2 -0
- package/dist/apis/anilist/interfaces/Staff.js +2 -0
- package/dist/apis/anilist/interfaces/Stat.js +2 -0
- package/dist/apis/anilist/interfaces/Statistics.js +2 -0
- package/dist/apis/anilist/interfaces/Stats.js +2 -0
- package/dist/apis/anilist/interfaces/StatusDistribution.js +2 -0
- package/dist/apis/anilist/interfaces/StreamingEpisode.js +2 -0
- package/dist/apis/anilist/interfaces/Studio.js +2 -0
- package/dist/apis/anilist/interfaces/Tag.js +2 -0
- package/dist/apis/anilist/interfaces/Title.js +2 -0
- package/dist/apis/anilist/interfaces/Trailer.js +2 -0
- package/dist/apis/anilist/interfaces/UserStats.js +2 -0
- package/dist/apis/anilist/interfaces/responses/AiringSchedule.js +2 -0
- package/dist/apis/anilist/interfaces/responses/Character.js +2 -0
- package/dist/apis/anilist/interfaces/responses/Media.js +2 -0
- package/dist/apis/anilist/interfaces/responses/MediaList.js +2 -0
- package/dist/apis/anilist/interfaces/responses/MediaListCollectionResponse.js +2 -0
- package/dist/apis/anilist/interfaces/responses/MediaTrend.js +2 -0
- package/dist/apis/anilist/interfaces/responses/Staff.js +2 -0
- package/dist/apis/anilist/interfaces/responses/User.js +2 -0
- package/dist/apis/anilist/mutation/UpdateUser.js +82 -0
- package/dist/apis/anilist/query/AiringSchedule.js +147 -0
- package/dist/apis/anilist/query/Character.js +69 -0
- package/dist/apis/anilist/query/Media.js +232 -0
- package/dist/apis/anilist/query/MediaList.js +170 -0
- package/dist/apis/anilist/query/MediaListCollection.js +650 -0
- package/dist/apis/anilist/query/MediaTrend.js +149 -0
- package/dist/apis/anilist/query/Staff.js +108 -0
- package/dist/apis/anilist/query/User.js +573 -0
- package/dist/base/APIWrapper.js +9 -0
- package/dist/base/RequestHandler.js +33 -0
- package/jest.config.js +11 -0
- package/package.json +31 -0
- package/src/AniLink.ts +80 -0
- package/src/apis/anilist/interfaces/ActivityHistory.ts +5 -0
- package/src/apis/anilist/interfaces/CoverImage.ts +6 -0
- package/src/apis/anilist/interfaces/Distribution.ts +4 -0
- package/src/apis/anilist/interfaces/ExternalLink.ts +5 -0
- package/src/apis/anilist/interfaces/Favoured.ts +15 -0
- package/src/apis/anilist/interfaces/FuzzyDate.ts +5 -0
- package/src/apis/anilist/interfaces/Image.ts +4 -0
- package/src/apis/anilist/interfaces/ListScores.ts +4 -0
- package/src/apis/anilist/interfaces/Media.ts +59 -0
- package/src/apis/anilist/interfaces/MediaListEntry.ts +4 -0
- package/src/apis/anilist/interfaces/MediaStatistics.ts +23 -0
- package/src/apis/anilist/interfaces/MediaStats.ts +7 -0
- package/src/apis/anilist/interfaces/Name.ts +8 -0
- package/src/apis/anilist/interfaces/NextAiringEpisode.ts +5 -0
- package/src/apis/anilist/interfaces/Ranking.ts +10 -0
- package/src/apis/anilist/interfaces/ScoreDistribution.ts +4 -0
- package/src/apis/anilist/interfaces/Staff.ts +6 -0
- package/src/apis/anilist/interfaces/Stat.ts +24 -0
- package/src/apis/anilist/interfaces/Statistics.ts +6 -0
- package/src/apis/anilist/interfaces/StatusDistribution.ts +4 -0
- package/src/apis/anilist/interfaces/StreamingEpisode.ts +6 -0
- package/src/apis/anilist/interfaces/Studio.ts +4 -0
- package/src/apis/anilist/interfaces/Tag.ts +10 -0
- package/src/apis/anilist/interfaces/Title.ts +6 -0
- package/src/apis/anilist/interfaces/Trailer.ts +5 -0
- package/src/apis/anilist/interfaces/UserStats.ts +25 -0
- package/src/apis/anilist/interfaces/responses/AiringSchedule.ts +10 -0
- package/src/apis/anilist/interfaces/responses/Character.ts +26 -0
- package/src/apis/anilist/interfaces/responses/Media.ts +118 -0
- package/src/apis/anilist/interfaces/responses/MediaList.ts +24 -0
- package/src/apis/anilist/interfaces/responses/MediaListCollectionResponse.ts +37 -0
- package/src/apis/anilist/interfaces/responses/MediaTrend.ts +13 -0
- package/src/apis/anilist/interfaces/responses/Staff.ts +53 -0
- package/src/apis/anilist/interfaces/responses/User.ts +72 -0
- package/src/apis/anilist/mutation/UpdateUser.ts +162 -0
- package/src/apis/anilist/query/AiringSchedule.ts +160 -0
- package/src/apis/anilist/query/Character.ts +75 -0
- package/src/apis/anilist/query/Media.ts +295 -0
- package/src/apis/anilist/query/MediaList.ts +192 -0
- package/src/apis/anilist/query/MediaListCollection.ts +673 -0
- package/src/apis/anilist/query/MediaTrend.ts +169 -0
- package/src/apis/anilist/query/Staff.ts +122 -0
- package/src/apis/anilist/query/User.ts +567 -0
- package/src/base/APIWrapper.ts +7 -0
- package/src/base/RequestHandler.ts +21 -0
- package/tsconfig.json +15 -0
package/src/AniLink.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { UserQuery } from './apis/anilist/query/User'
|
|
2
|
+
import { MediaQuery } from './apis/anilist/query/Media'
|
|
3
|
+
import { MediaTrendQuery } from './apis/anilist/query/MediaTrend'
|
|
4
|
+
import { AiringScheduleQuery } from './apis/anilist/query/AiringSchedule'
|
|
5
|
+
import { CharacterQuery } from './apis/anilist/query/Character'
|
|
6
|
+
import { MediaListQuery } from './apis/anilist/query/MediaList'
|
|
7
|
+
import { StaffQuery } from './apis/anilist/query/Staff'
|
|
8
|
+
import { MediaListCollectionQuery } from './apis/anilist/query/MediaListCollection'
|
|
9
|
+
import {
|
|
10
|
+
ListActivityOptionInput,
|
|
11
|
+
MediaListOptionsInput,
|
|
12
|
+
NotificationOptionInput,
|
|
13
|
+
ScoreFormat,
|
|
14
|
+
UpdateUserMutation,
|
|
15
|
+
UserTitleLanguage
|
|
16
|
+
} from './apis/anilist/mutation/UpdateUser'
|
|
17
|
+
|
|
18
|
+
class AniLink {
|
|
19
|
+
public anilist: {
|
|
20
|
+
query: {
|
|
21
|
+
user: () => Promise<any>
|
|
22
|
+
media: () => Promise<any>
|
|
23
|
+
mediaTrend: () => Promise<any>
|
|
24
|
+
airingSchedule: () => Promise<any>
|
|
25
|
+
character: () => Promise<any>
|
|
26
|
+
staff: () => Promise<any>
|
|
27
|
+
mediaList: () => Promise<any>
|
|
28
|
+
mediaListCollection: () => Promise<any>
|
|
29
|
+
}
|
|
30
|
+
mutation: {
|
|
31
|
+
updateUser: (variables: {
|
|
32
|
+
about?: string
|
|
33
|
+
titleLanguage?: UserTitleLanguage
|
|
34
|
+
displayAdultContent?: boolean
|
|
35
|
+
airingNotifications?: boolean
|
|
36
|
+
scoreFormat?: ScoreFormat
|
|
37
|
+
rowOrder?: string
|
|
38
|
+
profileColor?: string
|
|
39
|
+
donatorBadge?: string
|
|
40
|
+
notificationOptions?: NotificationOptionInput[]
|
|
41
|
+
timezone?: string
|
|
42
|
+
activityMergeTime?: number
|
|
43
|
+
animeListOptions?: MediaListOptionsInput
|
|
44
|
+
mangaListOptions?: MediaListOptionsInput
|
|
45
|
+
staffNameLanguage?: UserTitleLanguage
|
|
46
|
+
restrictMessagesToFollowing?: boolean
|
|
47
|
+
disabledListActivity?: ListActivityOptionInput[]
|
|
48
|
+
}) => Promise<any>
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
constructor (authToken: string) {
|
|
53
|
+
const userQueryInstance = new UserQuery(authToken)
|
|
54
|
+
const mediaQueryInstance = new MediaQuery(authToken)
|
|
55
|
+
const mediaTrendQueryInstance = new MediaTrendQuery(authToken)
|
|
56
|
+
const airingScheduleQueryInstance = new AiringScheduleQuery(authToken)
|
|
57
|
+
const characterQueryInstance = new CharacterQuery(authToken)
|
|
58
|
+
const staffQueryInstance = new StaffQuery(authToken)
|
|
59
|
+
const mediaListQueryInstance = new MediaListQuery(authToken)
|
|
60
|
+
const mediaListCollectionQueryInstance = new MediaListCollectionQuery(authToken)
|
|
61
|
+
const updateUserMutationInstance = new UpdateUserMutation(authToken)
|
|
62
|
+
this.anilist = {
|
|
63
|
+
query: {
|
|
64
|
+
user: userQueryInstance.user.bind(userQueryInstance),
|
|
65
|
+
media: mediaQueryInstance.media.bind(mediaQueryInstance),
|
|
66
|
+
mediaTrend: mediaTrendQueryInstance.mediaTrend.bind(mediaTrendQueryInstance),
|
|
67
|
+
airingSchedule: airingScheduleQueryInstance.airingSchedule.bind(airingScheduleQueryInstance),
|
|
68
|
+
character: characterQueryInstance.character.bind(characterQueryInstance),
|
|
69
|
+
staff: staffQueryInstance.staff.bind(staffQueryInstance),
|
|
70
|
+
mediaList: mediaListQueryInstance.mediaList.bind(mediaListQueryInstance),
|
|
71
|
+
mediaListCollection: mediaListCollectionQueryInstance.mediaListCollection.bind(mediaListQueryInstance)
|
|
72
|
+
},
|
|
73
|
+
mutation: {
|
|
74
|
+
updateUser: updateUserMutationInstance.updateUser.bind(updateUserMutationInstance)
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
module.exports = AniLink
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Tag } from './Tag'
|
|
2
|
+
import { Staff } from './Staff'
|
|
3
|
+
import { Studio } from './Studio'
|
|
4
|
+
|
|
5
|
+
export interface Favoured {
|
|
6
|
+
genre?: string
|
|
7
|
+
amount: number
|
|
8
|
+
meanScore: number
|
|
9
|
+
timeWatched: number
|
|
10
|
+
tag?: Tag
|
|
11
|
+
staff?: Staff
|
|
12
|
+
studio?: Studio
|
|
13
|
+
year?: number
|
|
14
|
+
format?: string
|
|
15
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Title } from './Title'
|
|
2
|
+
import { FuzzyDate } from './FuzzyDate'
|
|
3
|
+
import { Trailer } from './Trailer'
|
|
4
|
+
import { CoverImage } from './CoverImage'
|
|
5
|
+
import { Tag } from './Tag'
|
|
6
|
+
import { NextAiringEpisode } from './NextAiringEpisode'
|
|
7
|
+
import { ExternalLink } from './ExternalLink'
|
|
8
|
+
import { StreamingEpisode } from './StreamingEpisode'
|
|
9
|
+
import { Ranking } from './Ranking'
|
|
10
|
+
import { MediaStats } from './MediaStats'
|
|
11
|
+
import { MediaListEntry } from './MediaListEntry'
|
|
12
|
+
|
|
13
|
+
export interface Media {
|
|
14
|
+
id: number
|
|
15
|
+
idMal: number
|
|
16
|
+
title: Title
|
|
17
|
+
type: string
|
|
18
|
+
format: string
|
|
19
|
+
status: string
|
|
20
|
+
description: string
|
|
21
|
+
startDate: FuzzyDate
|
|
22
|
+
endDate: FuzzyDate
|
|
23
|
+
season: string
|
|
24
|
+
seasonYear: number
|
|
25
|
+
seasonInt: number
|
|
26
|
+
episodes?: number
|
|
27
|
+
duration?: number
|
|
28
|
+
chapters?: number
|
|
29
|
+
volumes?: number
|
|
30
|
+
countryOfOrigin: string
|
|
31
|
+
isLicensed: boolean
|
|
32
|
+
source: string
|
|
33
|
+
hashtag: string
|
|
34
|
+
trailer: Trailer
|
|
35
|
+
updatedAt: number
|
|
36
|
+
coverImage: CoverImage
|
|
37
|
+
bannerImage: string
|
|
38
|
+
genres: string[]
|
|
39
|
+
synonyms: string[]
|
|
40
|
+
averageScore: number
|
|
41
|
+
meanScore: number
|
|
42
|
+
popularity: number
|
|
43
|
+
isLocked: boolean
|
|
44
|
+
trending: number
|
|
45
|
+
favourites: number
|
|
46
|
+
tags: Tag[]
|
|
47
|
+
isFavourite: boolean
|
|
48
|
+
isAdult: boolean
|
|
49
|
+
nextAiringEpisode: NextAiringEpisode
|
|
50
|
+
externalLinks: ExternalLink[]
|
|
51
|
+
streamingEpisodes: StreamingEpisode[]
|
|
52
|
+
rankings: Ranking[]
|
|
53
|
+
mediaListEntry: MediaListEntry
|
|
54
|
+
stats: MediaStats
|
|
55
|
+
siteUrl: string
|
|
56
|
+
autoCreateForumThread: boolean
|
|
57
|
+
isRecommendationBlocked: boolean
|
|
58
|
+
modNotes: string
|
|
59
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Stat } from './Stat'
|
|
2
|
+
|
|
3
|
+
export interface MediaStatistics {
|
|
4
|
+
count: number
|
|
5
|
+
meanScore: number
|
|
6
|
+
standardDeviation: number
|
|
7
|
+
minutesWatched?: number
|
|
8
|
+
episodesWatched?: number
|
|
9
|
+
chaptersRead?: number
|
|
10
|
+
volumesRead?: number
|
|
11
|
+
formats: Stat[]
|
|
12
|
+
statuses: Stat[]
|
|
13
|
+
scores: Stat[]
|
|
14
|
+
lengths: Stat[]
|
|
15
|
+
releaseYears: Stat[]
|
|
16
|
+
startYears: Stat[]
|
|
17
|
+
genres: Stat[]
|
|
18
|
+
tags: Stat[]
|
|
19
|
+
countries: Stat[]
|
|
20
|
+
voiceActors?: Stat[]
|
|
21
|
+
staff: Stat[]
|
|
22
|
+
studios: Stat[]
|
|
23
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Tag } from './Tag'
|
|
2
|
+
import { Staff } from './Staff'
|
|
3
|
+
import { Studio } from './Studio'
|
|
4
|
+
|
|
5
|
+
export interface Stat {
|
|
6
|
+
count: number
|
|
7
|
+
meanScore: number
|
|
8
|
+
minutesWatched?: number
|
|
9
|
+
chaptersRead?: number
|
|
10
|
+
mediaIds: number[]
|
|
11
|
+
format?: string
|
|
12
|
+
status?: string
|
|
13
|
+
score?: number
|
|
14
|
+
length?: number
|
|
15
|
+
releaseYear?: number
|
|
16
|
+
startYear?: number
|
|
17
|
+
genre?: string
|
|
18
|
+
tag?: Tag
|
|
19
|
+
country?: string
|
|
20
|
+
voiceActor?: Staff
|
|
21
|
+
characterIds?: number[]
|
|
22
|
+
staff?: Staff
|
|
23
|
+
studio?: Studio
|
|
24
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ActivityHistory } from './ActivityHistory'
|
|
2
|
+
import { Distribution } from './Distribution'
|
|
3
|
+
import { ScoreDistribution } from './ScoreDistribution'
|
|
4
|
+
import { ListScores } from './ListScores'
|
|
5
|
+
import { Favoured } from './Favoured'
|
|
6
|
+
|
|
7
|
+
export interface UserStats {
|
|
8
|
+
watchedTime: number
|
|
9
|
+
chaptersRead: number
|
|
10
|
+
activityHistory: ActivityHistory[]
|
|
11
|
+
animeStatusDistribution: Distribution[]
|
|
12
|
+
mangaStatusDistribution: Distribution[]
|
|
13
|
+
animeScoreDistribution: ScoreDistribution[]
|
|
14
|
+
mangaScoreDistribution: ScoreDistribution[]
|
|
15
|
+
animeListScores: ListScores
|
|
16
|
+
mangaListScores: ListScores
|
|
17
|
+
favouredGenresOverview: Favoured[]
|
|
18
|
+
favouredGenres: Favoured[]
|
|
19
|
+
favouredTags: Favoured[]
|
|
20
|
+
favouredActors: Favoured[]
|
|
21
|
+
favouredStaff: Favoured[]
|
|
22
|
+
favouredStudios: Favoured[]
|
|
23
|
+
favouredYears: Favoured[]
|
|
24
|
+
favouredFormats: Favoured[]
|
|
25
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FuzzyDate } from '../FuzzyDate'
|
|
2
|
+
import { Name } from '../Name'
|
|
3
|
+
import { Image } from '../Image'
|
|
4
|
+
import { Title } from '../Title'
|
|
5
|
+
|
|
6
|
+
export interface CharacterResponse {
|
|
7
|
+
id: number
|
|
8
|
+
name: Name
|
|
9
|
+
image: Image
|
|
10
|
+
description: string
|
|
11
|
+
gender: string
|
|
12
|
+
dateOfBirth: FuzzyDate
|
|
13
|
+
age: string
|
|
14
|
+
bloodType: string
|
|
15
|
+
isFavourite: boolean
|
|
16
|
+
isFavouriteBlocked: boolean
|
|
17
|
+
siteUrl: string
|
|
18
|
+
media: {
|
|
19
|
+
nodes: Array<{
|
|
20
|
+
id: number
|
|
21
|
+
title: Title
|
|
22
|
+
}>
|
|
23
|
+
}
|
|
24
|
+
favourites: number
|
|
25
|
+
modNotes: string
|
|
26
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Title } from '../Title'
|
|
2
|
+
import { FuzzyDate } from '../FuzzyDate'
|
|
3
|
+
import { Trailer } from '../Trailer'
|
|
4
|
+
import { CoverImage } from '../CoverImage'
|
|
5
|
+
import { Tag } from '../Tag'
|
|
6
|
+
import { NextAiringEpisode } from '../NextAiringEpisode'
|
|
7
|
+
import { ExternalLink } from '../ExternalLink'
|
|
8
|
+
import { StreamingEpisode } from '../StreamingEpisode'
|
|
9
|
+
import { Ranking } from '../Ranking'
|
|
10
|
+
import { MediaStats } from '../MediaStats'
|
|
11
|
+
import { MediaListEntry } from '../MediaListEntry'
|
|
12
|
+
import { Name } from '../Name'
|
|
13
|
+
import { Image } from '../Image'
|
|
14
|
+
|
|
15
|
+
export interface MediaResponse {
|
|
16
|
+
id: number
|
|
17
|
+
idMal: number
|
|
18
|
+
title: Title
|
|
19
|
+
type: string
|
|
20
|
+
format: string
|
|
21
|
+
status: string
|
|
22
|
+
description: string
|
|
23
|
+
startDate: FuzzyDate
|
|
24
|
+
endDate: FuzzyDate
|
|
25
|
+
season: string
|
|
26
|
+
seasonYear: number
|
|
27
|
+
seasonInt: number
|
|
28
|
+
episodes?: number
|
|
29
|
+
duration?: number
|
|
30
|
+
chapters?: number
|
|
31
|
+
volumes?: number
|
|
32
|
+
countryOfOrigin: string
|
|
33
|
+
isLicensed: boolean
|
|
34
|
+
source: string
|
|
35
|
+
hashtag: string
|
|
36
|
+
trailer: Trailer
|
|
37
|
+
updatedAt: number
|
|
38
|
+
coverImage: CoverImage
|
|
39
|
+
bannerImage: string
|
|
40
|
+
genres: string[]
|
|
41
|
+
synonyms: string[]
|
|
42
|
+
averageScore: number
|
|
43
|
+
meanScore: number
|
|
44
|
+
popularity: number
|
|
45
|
+
isLocked: boolean
|
|
46
|
+
trending: number
|
|
47
|
+
favourites: number
|
|
48
|
+
tags: Tag[]
|
|
49
|
+
relations: {
|
|
50
|
+
edges: Array<{
|
|
51
|
+
relationType: string
|
|
52
|
+
node: {
|
|
53
|
+
id: number
|
|
54
|
+
title: Title
|
|
55
|
+
}
|
|
56
|
+
}>
|
|
57
|
+
}
|
|
58
|
+
characters: {
|
|
59
|
+
edges: Array<{
|
|
60
|
+
id: number
|
|
61
|
+
role: string
|
|
62
|
+
name: string
|
|
63
|
+
voiceActors: Array<{
|
|
64
|
+
id: number
|
|
65
|
+
name: Name
|
|
66
|
+
image: Image
|
|
67
|
+
}>
|
|
68
|
+
media: {
|
|
69
|
+
id: number
|
|
70
|
+
title: Title
|
|
71
|
+
coverImage: CoverImage
|
|
72
|
+
}
|
|
73
|
+
favouriteOrder: number
|
|
74
|
+
node: {
|
|
75
|
+
id: number
|
|
76
|
+
name: Name
|
|
77
|
+
image: Image
|
|
78
|
+
}
|
|
79
|
+
}>
|
|
80
|
+
}
|
|
81
|
+
staff: {
|
|
82
|
+
edges: Array<{
|
|
83
|
+
id: number
|
|
84
|
+
role: string
|
|
85
|
+
favouriteOrder: number
|
|
86
|
+
node: {
|
|
87
|
+
id: number
|
|
88
|
+
name: Name
|
|
89
|
+
image: Image
|
|
90
|
+
}
|
|
91
|
+
}>
|
|
92
|
+
}
|
|
93
|
+
studios: {
|
|
94
|
+
edges: Array<{
|
|
95
|
+
id: number
|
|
96
|
+
isMain: boolean
|
|
97
|
+
favouriteOrder: number
|
|
98
|
+
node: {
|
|
99
|
+
id: number
|
|
100
|
+
name: string
|
|
101
|
+
isAnimationStudio: boolean
|
|
102
|
+
siteUrl: string
|
|
103
|
+
}
|
|
104
|
+
}>
|
|
105
|
+
}
|
|
106
|
+
isFavourite: boolean
|
|
107
|
+
isAdult: boolean
|
|
108
|
+
nextAiringEpisode: NextAiringEpisode
|
|
109
|
+
externalLinks: ExternalLink[]
|
|
110
|
+
streamingEpisodes: StreamingEpisode[]
|
|
111
|
+
rankings: Ranking[]
|
|
112
|
+
mediaListEntry: MediaListEntry
|
|
113
|
+
stats: MediaStats
|
|
114
|
+
siteUrl: string
|
|
115
|
+
autoCreateForumThread: boolean
|
|
116
|
+
isRecommendationBlocked: boolean
|
|
117
|
+
modNotes: string
|
|
118
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Media } from '../Media'
|
|
2
|
+
|
|
3
|
+
export interface MediaListResponse {
|
|
4
|
+
id: number
|
|
5
|
+
userId: number
|
|
6
|
+
mediaId: number
|
|
7
|
+
status: string
|
|
8
|
+
score: number
|
|
9
|
+
progress: number
|
|
10
|
+
progressVolumes: number
|
|
11
|
+
repeat: number
|
|
12
|
+
priority: number
|
|
13
|
+
private: boolean
|
|
14
|
+
notes: string
|
|
15
|
+
hiddenFromStatusLists: boolean
|
|
16
|
+
customLists: any
|
|
17
|
+
advancedScores: any
|
|
18
|
+
startedAt: any
|
|
19
|
+
completedAt: any
|
|
20
|
+
updatedAt: number
|
|
21
|
+
createdAt: number
|
|
22
|
+
media: Media
|
|
23
|
+
user: any
|
|
24
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { FuzzyDate } from '../FuzzyDate'
|
|
2
|
+
import { Media } from '../Media'
|
|
3
|
+
import { UserResponse } from './User'
|
|
4
|
+
|
|
5
|
+
export interface MediaListCollectionResponse {
|
|
6
|
+
MediaListCollection: {
|
|
7
|
+
lists: Array<{
|
|
8
|
+
entries: Array<{
|
|
9
|
+
id: number
|
|
10
|
+
userId: number
|
|
11
|
+
mediaId: number
|
|
12
|
+
status: string
|
|
13
|
+
score: number
|
|
14
|
+
progress: number
|
|
15
|
+
progressVolumes: number
|
|
16
|
+
repeat: number
|
|
17
|
+
priority: number
|
|
18
|
+
private: boolean
|
|
19
|
+
notes: string
|
|
20
|
+
hiddenFromStatusLists: boolean
|
|
21
|
+
customLists: boolean[]
|
|
22
|
+
advancedScores: number[]
|
|
23
|
+
startedAt: FuzzyDate
|
|
24
|
+
completedAt: FuzzyDate
|
|
25
|
+
updatedAt: number
|
|
26
|
+
createdAt: number
|
|
27
|
+
media: Media
|
|
28
|
+
}>
|
|
29
|
+
name: string
|
|
30
|
+
isCustomList: boolean
|
|
31
|
+
isSplitCompletedList: boolean
|
|
32
|
+
status: string
|
|
33
|
+
}>
|
|
34
|
+
user: UserResponse
|
|
35
|
+
hasNextChunk: boolean
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Name } from '../Name'
|
|
2
|
+
import { Image } from '../Image'
|
|
3
|
+
import { FuzzyDate } from '../FuzzyDate'
|
|
4
|
+
import { Title } from '../Title'
|
|
5
|
+
|
|
6
|
+
export interface StaffResponse {
|
|
7
|
+
id: number
|
|
8
|
+
name: Name
|
|
9
|
+
languageV2: string
|
|
10
|
+
image: Image
|
|
11
|
+
description: string
|
|
12
|
+
primaryOccupations: string[]
|
|
13
|
+
gender: string
|
|
14
|
+
dateOfBirth: FuzzyDate
|
|
15
|
+
dateOfDeath: FuzzyDate
|
|
16
|
+
age: number
|
|
17
|
+
yearsActive: number[]
|
|
18
|
+
homeTown: string
|
|
19
|
+
bloodType: string
|
|
20
|
+
isFavourite: boolean
|
|
21
|
+
isFavouriteBlocked: boolean
|
|
22
|
+
siteUrl: string
|
|
23
|
+
staffMedia: {
|
|
24
|
+
nodes: Array<{
|
|
25
|
+
id: number
|
|
26
|
+
title: Title
|
|
27
|
+
}>
|
|
28
|
+
}
|
|
29
|
+
characters: {
|
|
30
|
+
nodes: Array<{
|
|
31
|
+
id: number
|
|
32
|
+
name: Name
|
|
33
|
+
}>
|
|
34
|
+
}
|
|
35
|
+
characterMedia: {
|
|
36
|
+
nodes: Array<{
|
|
37
|
+
id: number
|
|
38
|
+
title: Title
|
|
39
|
+
}>
|
|
40
|
+
}
|
|
41
|
+
staff: {
|
|
42
|
+
id: number
|
|
43
|
+
name: Name
|
|
44
|
+
}
|
|
45
|
+
submitter: {
|
|
46
|
+
id: number
|
|
47
|
+
name: string
|
|
48
|
+
}
|
|
49
|
+
submissionStatus: number
|
|
50
|
+
submissionNotes: string
|
|
51
|
+
favourites: number
|
|
52
|
+
modNotes: string
|
|
53
|
+
}
|