From 9dfde0448a1da2597f8709e9d1455e4cdf98c0d1 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sat, 6 Jan 2024 06:05:28 -0800 Subject: feat(tools): dump profile tool --- src/lib/AniList/user.ts | 44 +++++++++++++++++++++++++++++++++++++ src/lib/Tools/DumpProfile.svelte | 18 +++++++++++++++ src/lib/Tools/InputTemplate.svelte | 4 ++++ src/lib/Tools/RandomFollower.svelte | 8 +------ 4 files changed, 67 insertions(+), 7 deletions(-) create mode 100644 src/lib/Tools/DumpProfile.svelte (limited to 'src/lib') diff --git a/src/lib/AniList/user.ts b/src/lib/AniList/user.ts index adc00c56..93799480 100644 --- a/src/lib/AniList/user.ts +++ b/src/lib/AniList/user.ts @@ -20,6 +20,28 @@ export interface User { }; } +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; + }[]; +} + export const user = async (username: string): Promise => ( await ( @@ -44,3 +66,25 @@ export const user = async (username: string): Promise => }) ).json() )['data']['User']; + +export const dumpUser = async (username: string): Promise => + ( + 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 + avatar { large medium } + bannerImage bans siteUrl donatorTier donatorBadge moderatorRoles + createdAt updatedAt + previousNames { name createdAt updatedAt } + } }` + }) + }) + ).json() + )['data']['User']; diff --git a/src/lib/Tools/DumpProfile.svelte b/src/lib/Tools/DumpProfile.svelte new file mode 100644 index 00000000..f01814e6 --- /dev/null +++ b/src/lib/Tools/DumpProfile.svelte @@ -0,0 +1,18 @@ + + + + + {#await dumpUser(submission)} + Loading user ... 50% + {:then dump} +
{JSON.stringify(dump, null, 2)}
+ {:catch} + + {/await} +
diff --git a/src/lib/Tools/InputTemplate.svelte b/src/lib/Tools/InputTemplate.svelte index 16b4ec8f..1b677546 100644 --- a/src/lib/Tools/InputTemplate.svelte +++ b/src/lib/Tools/InputTemplate.svelte @@ -19,6 +19,7 @@

+ diff --git a/src/lib/Tools/RandomFollower.svelte b/src/lib/Tools/RandomFollower.svelte index f47a4441..d50cd7d4 100644 --- a/src/lib/Tools/RandomFollower.svelte +++ b/src/lib/Tools/RandomFollower.svelte @@ -7,18 +7,12 @@ let randomSeed = 0; - { - randomSeed = Math.random(); - - // eslint-disable-next-line no-undef - umami.track('Random Follower'); - }} + onSubmit={() => (randomSeed = Math.random())} > {#await followers(submission)} Loading followers ... 50% -- cgit v1.2.3