aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Data/AniList/user.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Data/AniList/user.ts')
-rw-r--r--src/lib/Data/AniList/user.ts145
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"];