From 724e1d1b642059784e70894fa10647cd1c2b5206 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Thu, 7 Sep 2023 21:05:20 -0700 Subject: feat(media): public media list collection --- src/lib/AniList/media.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/lib/AniList/media.ts') 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 => { + 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']); +}; -- cgit v1.2.3