diff options
| author | Fuwn <[email protected]> | 2023-09-07 21:05:20 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-09-07 21:05:20 -0700 |
| commit | 724e1d1b642059784e70894fa10647cd1c2b5206 (patch) | |
| tree | 52fe2b02c6c4087192bbd495accf9f2e4f0291d9 /src/lib/AniList | |
| parent | feat(routes): profile page (diff) | |
| download | due.moe-724e1d1b642059784e70894fa10647cd1c2b5206.tar.xz due.moe-724e1d1b642059784e70894fa10647cd1c2b5206.zip | |
feat(media): public media list collection
Diffstat (limited to 'src/lib/AniList')
| -rw-r--r-- | src/lib/AniList/media.ts | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/lib/AniList/media.ts b/src/lib/AniList/media.ts index 1fddbbe5..341e09a4 100644 --- a/src/lib/AniList/media.ts +++ b/src/lib/AniList/media.ts @@ -138,3 +138,35 @@ export const mediaListCollection = async ( return flattenLists(userIdResponse['data']['MediaListCollection']['lists']); }; + +export const publicMediaListCollection = async (userId: number, type: Type): Promise<Media[]> => { + const userIdResponse = await ( + await fetch('https://graphql.anilist.co', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json' + }, + body: JSON.stringify({ + query: `{ MediaListCollection(userId: ${userId}, type: ${ + type === Type.Anime ? 'ANIME' : 'MANGA' + }, status_not_in: [ COMPLETED ]) { + lists { entries { media { + id + status + type + episodes + format + title { romaji english native } + nextAiringEpisode { episode timeUntilAiring } + mediaListEntry { progress status } + startDate { year } + } } } + } + }` + }) + }) + ).json(); + + return flattenLists(userIdResponse['data']['MediaListCollection']['lists']); +}; |