diff options
Diffstat (limited to 'src/lib/Data/AniList/user.ts')
| -rw-r--r-- | src/lib/Data/AniList/user.ts | 145 |
1 files changed, 74 insertions, 71 deletions
diff --git a/src/lib/Data/AniList/user.ts b/src/lib/Data/AniList/user.ts index 19de8c45..d16b8612 100644 --- a/src/lib/Data/AniList/user.ts +++ b/src/lib/Data/AniList/user.ts @@ -1,60 +1,63 @@ export interface User { - name: string; - id: number; - statistics: { - anime: { - count: number; - meanScore: number; - minutesWatched: number; - episodesWatched: number; - }; - manga: { - count: number; - meanScore: number; - chaptersRead: number; - volumesRead: number; - }; - }; - avatar: { - large: string; - medium: string; - }; - bannerImage: string; + name: string; + id: number; + statistics: { + anime: { + count: number; + meanScore: number; + minutesWatched: number; + episodesWatched: number; + }; + manga: { + count: number; + meanScore: number; + chaptersRead: number; + volumesRead: number; + }; + }; + avatar: { + large: string; + medium: string; + }; + bannerImage: string; } export interface FullUser { - id: number; - name: string; - avatar: { - large: string; - medium: string; - }; - bans: JSON; - bannerImage: string; - siteUrl: string; - donatorTier: number; - donatorBadge: string; - moderatorRoles: string[]; - createAt: number; - updatedAt: number; - previousNames: { - name: string; - createdAt: number; - updatedAt: string; - }[]; - about: string; + id: number; + name: string; + avatar: { + large: string; + medium: string; + }; + bans: JSON; + bannerImage: string; + siteUrl: string; + donatorTier: number; + donatorBadge: string; + moderatorRoles: string[]; + createAt: number; + updatedAt: number; + previousNames: { + name: string; + createdAt: number; + updatedAt: string; + }[]; + about: string; } -export const user = async (username: string, id = false): Promise<User | null> => { - const response = await ( - await fetch('https://graphql.anilist.co', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json' - }, - body: JSON.stringify({ - query: `{ User(${id ? `id: ${username}` : `name: "${username}"`}) { +export const user = async ( + username: string, + id = false, +): Promise<User | null> => { + const response = await ( + await fetch("https://graphql.anilist.co", { + method: "POST", + headers: { + "Content-Type": "application/json", + Accept: "application/json", + }, + body: JSON.stringify({ + query: `{ User(${id ? `id: ${username}` : `name: "${username}"`}) { name id bannerImage avatar { large medium } statistics { anime { count meanScore minutesWatched episodesWatched @@ -63,32 +66,32 @@ export const user = async (username: string, id = false): Promise<User | null> = count meanScore chaptersRead volumesRead } } - } }` - }) - }) - ).json(); + } }`, + }), + }) + ).json(); - return response['data']['User'] === null ? null : response['data']['User']; + return response["data"]["User"] === null ? null : response["data"]["User"]; }; export const dumpUser = async (username: string): Promise<FullUser> => - ( - await ( - await fetch('https://graphql.anilist.co', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - Accept: 'application/json' - }, - body: JSON.stringify({ - query: `{ User(name: "${username}") { + ( + await ( + await fetch("https://graphql.anilist.co", { + method: "POST", + headers: { + "Content-Type": "application/json", + Accept: "application/json", + }, + body: JSON.stringify({ + query: `{ User(name: "${username}") { id name about avatar { large medium } bannerImage bans siteUrl donatorTier donatorBadge moderatorRoles createdAt updatedAt previousNames { name createdAt updatedAt } - } }` - }) - }) - ).json() - )['data']['User']; + } }`, + }), + }) + ).json() + )["data"]["User"]; |