diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/AniList/activity.ts | 30 | ||||
| -rw-r--r-- | src/lib/Tools/ActivityHistory/Grid.svelte | 3 | ||||
| -rw-r--r-- | src/lib/Tools/Wrapped.svelte | 5 |
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)} |