aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/AniList/activity.ts30
-rw-r--r--src/lib/Tools/ActivityHistory/Grid.svelte3
-rw-r--r--src/lib/Tools/Wrapped.svelte5
3 files changed, 20 insertions, 18 deletions
diff --git a/src/lib/AniList/activity.ts b/src/lib/AniList/activity.ts
index 2a61b2dd..d3574aa2 100644
--- a/src/lib/AniList/activity.ts
+++ b/src/lib/AniList/activity.ts
@@ -8,13 +8,16 @@ export interface ActivityHistoryEntry {
export const fillMissingDays = (
inputActivities: ActivityHistoryEntry[],
- startOfYear = false
+ startOfYear = false,
+ year = new Date().getFullYear()
): ActivityHistoryEntry[] => {
+ const yearDate = new Date(year, 0, 0);
+
if (inputActivities.length === 0)
return startOfYear
? fillDateRange(
- new Date(new Date().getUTCFullYear(), 0, 1),
- new Date(new Date().getUTCFullYear() + 1, 0, 1)
+ new Date(yearDate.getUTCFullYear(), 0, 1),
+ new Date(yearDate.getUTCFullYear() + 1, 0, 1)
)
: [];
@@ -25,7 +28,7 @@ export const fillMissingDays = (
return fillDateRange(
startOfYear
- ? new Date(new Date().getUTCFullYear(), 0, 1)
+ ? new Date(yearDate.getUTCFullYear(), 0, 1)
: new Date(sortedActivities[0].date * 1000),
endDate,
sortedActivities
@@ -108,7 +111,8 @@ export interface ActivitiesPage {
const activitiesPage = async (
page: number,
anilistAuthorisation: AniListAuthorisation,
- userIdentity: UserIdentity
+ userIdentity: UserIdentity,
+ year = new Date().getFullYear()
): Promise<ActivitiesPage> =>
await (
await fetch('https://graphql.anilist.co', {
@@ -123,10 +127,8 @@ const activitiesPage = async (
Page(page: ${page}) {
pageInfo { hasNextPage }
activities(userId: ${userIdentity.id}, createdAt_greater: ${Math.floor(
- new Date(new Date().getFullYear(), 0, 1).getTime() / 1000
- )}, createdAt_lesser: ${Math.floor(
- new Date(new Date().getFullYear(), 6, 1).getTime() / 1000
- )}) {
+ new Date(year, 0, 1).getTime() / 1000
+ )}, createdAt_lesser: ${Math.floor(new Date(year, 6, 1).getTime() / 1000)}) {
... on TextActivity { createdAt }
... on ListActivity { createdAt }
... on MessageActivity { createdAt }
@@ -139,7 +141,8 @@ const activitiesPage = async (
export const fullActivityHistory = async (
anilistAuthorisation: AniListAuthorisation,
- userIdentity: UserIdentity
+ userIdentity: UserIdentity,
+ year = new Date().getFullYear()
): Promise<ActivityHistoryEntry[]> => {
const activities = [];
let page = 1;
@@ -148,7 +151,7 @@ export const fullActivityHistory = async (
if (currentDatabasePage) currentPage = currentDatabasePage.data;
else {
- currentPage = await activitiesPage(page, anilistAuthorisation, userIdentity);
+ currentPage = await activitiesPage(page, anilistAuthorisation, userIdentity, year);
database.activities.add({
page,
data: currentPage
@@ -165,7 +168,7 @@ export const fullActivityHistory = async (
if (currentDatabasePage) currentPage = currentDatabasePage.data;
else {
- currentPage = await activitiesPage(page, anilistAuthorisation, userIdentity);
+ currentPage = await activitiesPage(page, anilistAuthorisation, userIdentity, year);
database.activities.add({
page,
data: currentPage
@@ -202,8 +205,7 @@ export const fullActivityHistory = async (
);
fullLocalActivityHistory = fullLocalActivityHistory.filter(
- (activityHistoryEntry) =>
- new Date(activityHistoryEntry.date * 1000).getFullYear() === new Date().getFullYear()
+ (activityHistoryEntry) => new Date(activityHistoryEntry.date * 1000).getFullYear() === year
);
return fullLocalActivityHistory;
diff --git a/src/lib/Tools/ActivityHistory/Grid.svelte b/src/lib/Tools/ActivityHistory/Grid.svelte
index a53c1c90..679aae8a 100644
--- a/src/lib/Tools/ActivityHistory/Grid.svelte
+++ b/src/lib/Tools/ActivityHistory/Grid.svelte
@@ -14,6 +14,7 @@
export let user: AniListAuthorisation;
export let activityData: ActivityHistoryEntry[] | null = null;
+ export let currentYear = new Date().getFullYear();
let activityHistoryData: ActivityHistoryEntry[];
let currentUserIdentity = { name: '', id: -1 };
@@ -43,7 +44,7 @@
{:else if activityHistoryData === undefined}
Loading activity history ... 50%
{:else}
- {@const filledActivities = fillMissingDays(activityHistoryData)}
+ {@const filledActivities = fillMissingDays(activityHistoryData, false, currentYear)}
{@const highestActivity = Math.max(...filledActivities.map((activity) => activity.amount))}
<div class="grid">
diff --git a/src/lib/Tools/Wrapped.svelte b/src/lib/Tools/Wrapped.svelte
index 2abe66da..63d67394 100644
--- a/src/lib/Tools/Wrapped.svelte
+++ b/src/lib/Tools/Wrapped.svelte
@@ -29,6 +29,7 @@
export let user: AniListAuthorisation;
+ const currentYear = new Date(Date.now()).getFullYear();
let currentUserIdentity = { name: '', id: -1 };
let episodes = 0;
let chapters = 0;
@@ -196,8 +197,6 @@
const update = async () => {
if (currentUserIdentity.id === -1) return;
- const currentYear = new Date(Date.now()).getFullYear();
-
animeList = (
await mediaListCollection(
user,
@@ -395,7 +394,7 @@
{#if currentUserIdentity.id === -2}
Please log in to view this page.
{:else if currentUserIdentity.id !== -1}
- {#await useFullActivityHistory ? fullActivityHistory(user, currentUserIdentity) : getActivityHistory(currentUserIdentity)}
+ {#await useFullActivityHistory ? fullActivityHistory(user, currentUserIdentity, currentYear) : getActivityHistory(currentUserIdentity)}
{@html nbsp(`Loading${useFullActivityHistory ? ' full-year' : ''} activity history ...`)}
{:then activities}
{#await wrapped(user, currentUserIdentity)}