diff options
| author | Fuwn <[email protected]> | 2024-01-14 22:19:59 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-01-14 22:19:59 -0800 |
| commit | d210d464ac22e4dcbe9c19d18c46ef3e2e10147f (patch) | |
| tree | af76a7a2df110beb0a7450594d1806c6766304f6 /src/lib/AniList | |
| parent | fix(wrapped): limit activities to year (diff) | |
| download | due.moe-d210d464ac22e4dcbe9c19d18c46ef3e2e10147f.tar.xz due.moe-d210d464ac22e4dcbe9c19d18c46ef3e2e10147f.zip | |
feat(tools): likes
Diffstat (limited to 'src/lib/AniList')
| -rw-r--r-- | src/lib/AniList/activity.ts | 25 | ||||
| -rw-r--r-- | src/lib/AniList/forum.ts | 16 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/lib/AniList/activity.ts b/src/lib/AniList/activity.ts index 926e8fe6..5eafcf2c 100644 --- a/src/lib/AniList/activity.ts +++ b/src/lib/AniList/activity.ts @@ -1,4 +1,5 @@ import { database } from '$lib/Database/activities'; +import type { User } from './follow'; import type { AniListAuthorisation, UserIdentity } from './identity'; export interface ActivityHistoryEntry { @@ -251,3 +252,27 @@ export const fullActivityHistory = async ( return fullLocalActivityHistory; }; + +export const activityLikes = async (id: number): Promise<Partial<User>[]> => { + const activityResponse = await ( + await fetch('https://graphql.anilist.co', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json' + }, + body: JSON.stringify({ + query: `{ + Activity(id: ${id}) { + __typename + ... on TextActivity { likes { name } } + ... on ListActivity { likes { name } } + ... on MessageActivity { likes { name } } + } + }` + }) + }) + ).json(); + + return activityResponse['data']['Activity']['likes']; +}; diff --git a/src/lib/AniList/forum.ts b/src/lib/AniList/forum.ts index e13528b5..46d569b4 100644 --- a/src/lib/AniList/forum.ts +++ b/src/lib/AniList/forum.ts @@ -1,3 +1,4 @@ +import type { User } from './follow'; import { user } from './user'; export interface Thread { @@ -57,3 +58,18 @@ export const threads = async (username: string): Promise<Thread[]> => { return allThreads; }; + +export const threadLikes = async (id: number): Promise<Partial<User>[]> => { + const activityResponse = await ( + await fetch('https://graphql.anilist.co', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json' + }, + body: JSON.stringify({ query: `{ Thread(id: ${id}) { likes { name } } }` }) + }) + ).json(); + + return activityResponse['data']['Thread']['likes']; +}; |