aboutsummaryrefslogtreecommitdiff
path: root/src/lib/AniList
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-12-31 21:09:47 -0800
committerFuwn <[email protected]>2023-12-31 21:09:47 -0800
commit4b454dabd0ede98dcb75cc80cf88c0a06d678923 (patch)
treec41f862e311053184e02a94be092f4af6051142a /src/lib/AniList
parentfix(wrapped): overflow on mobile (diff)
downloaddue.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.ts3
-rw-r--r--src/lib/AniList/wrapped.ts23
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'],