aboutsummaryrefslogtreecommitdiff
path: root/src/lib/AniList/wrapped.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/AniList/wrapped.ts')
-rw-r--r--src/lib/AniList/wrapped.ts23
1 files changed, 18 insertions, 5 deletions
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'],