diff options
| author | Fuwn <[email protected]> | 2023-12-31 21:09:47 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-12-31 21:09:47 -0800 |
| commit | 4b454dabd0ede98dcb75cc80cf88c0a06d678923 (patch) | |
| tree | c41f862e311053184e02a94be092f4af6051142a /src/lib/AniList | |
| parent | fix(wrapped): overflow on mobile (diff) | |
| download | due.moe-4b454dabd0ede98dcb75cc80cf88c0a06d678923.tar.xz due.moe-4b454dabd0ede98dcb75cc80cf88c0a06d678923.zip | |
feat(wrapped): select year
Diffstat (limited to 'src/lib/AniList')
| -rw-r--r-- | src/lib/AniList/activity.ts | 3 | ||||
| -rw-r--r-- | src/lib/AniList/wrapped.ts | 23 |
2 files changed, 20 insertions, 6 deletions
diff --git a/src/lib/AniList/activity.ts b/src/lib/AniList/activity.ts index e1547084..6c8deca7 100644 --- a/src/lib/AniList/activity.ts +++ b/src/lib/AniList/activity.ts @@ -195,7 +195,8 @@ export const fullActivityHistory = async ( fullLocalActivityHistory = fullLocalActivityHistory.filter((a) => !isNaN(a.date)); - fullLocalActivityHistory.push(...(await activityHistory(userIdentity))); + if (new Date().getMonth() > 6) + fullLocalActivityHistory.push(...(await activityHistory(userIdentity))); fullLocalActivityHistory = fullLocalActivityHistory.filter( (activityHistoryEntry, index, self) => diff --git a/src/lib/AniList/wrapped.ts b/src/lib/AniList/wrapped.ts index 4bee8bbb..00ae0acc 100644 --- a/src/lib/AniList/wrapped.ts +++ b/src/lib/AniList/wrapped.ts @@ -45,7 +45,11 @@ export interface Wrapped { }; } -const profileActivities = async (user: AniListAuthorisation, identity: UserIdentity) => { +const profileActivities = async ( + user: AniListAuthorisation, + identity: UserIdentity, + now = Date.now() +) => { const get = async (page: number) => await ( await fetch('https://graphql.anilist.co', { @@ -79,6 +83,7 @@ const profileActivities = async (user: AniListAuthorisation, identity: UserIdent const pages = []; let page = 1; let response = await get(page); + const yearInSeconds = 31556952; pages.push(response['data']['Page']['activities']); @@ -94,21 +99,25 @@ const profileActivities = async (user: AniListAuthorisation, identity: UserIdent .flat() .filter( (activity) => - activity.type == 'TEXT' && activity.createdAt > Math.floor(Date.now() / 1000) - 31556952 + activity.type == 'TEXT' && + activity.createdAt > Math.floor(now / 1000) - yearInSeconds && + activity.createdAt < Math.floor(now / 1000) ).length, messageCount: pages .flat() .filter( (activity) => activity.type == 'MESSAGE' && - activity.createdAt > Math.floor(Date.now() / 1000) - 31556952 + activity.createdAt > Math.floor(now / 1000) - yearInSeconds && + activity.createdAt < Math.floor(now / 1000) ).length }; }; export const wrapped = async ( anilistAuthorisation: AniListAuthorisation, - identity: UserIdentity + identity: UserIdentity, + year = new Date().getFullYear() ): Promise<Wrapped> => { const wrappedResponse = await ( await fetch('https://graphql.anilist.co', { @@ -139,7 +148,11 @@ export const wrapped = async ( }) }) ).json(); - const { statusCount, messageCount } = await profileActivities(anilistAuthorisation, identity); + const { statusCount, messageCount } = await profileActivities( + anilistAuthorisation, + identity, + new Date(year, 11, 31).getTime() + ); return { statistics: wrappedResponse['data']['User']['statistics'], |