From d6e737f207d0d5df3c7aa2726cde889536dbb566 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 12 Sep 2023 16:47:11 -0700 Subject: feat: activity history risk --- src/lib/AniList/activity.ts | 20 +++++-- src/routes/activity-history/+page.svelte | 92 ++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+), 5 deletions(-) create mode 100644 src/routes/activity-history/+page.svelte (limited to 'src') diff --git a/src/lib/AniList/activity.ts b/src/lib/AniList/activity.ts index 0d79bf72..bd4bafc0 100644 --- a/src/lib/AniList/activity.ts +++ b/src/lib/AniList/activity.ts @@ -1,7 +1,14 @@ import type { UserIdentity } from './identity'; -export const lastActivityDate = async (userIdentity: UserIdentity): Promise => { - const activityHistory = ( +export interface ActivityHistoryEntry { + date: number; + amount: number; +} + +export const activityHistory = async ( + userIdentity: UserIdentity +): Promise => { + return ( await ( await fetch('https://graphql.anilist.co', { method: 'POST', @@ -11,15 +18,18 @@ export const lastActivityDate = async (userIdentity: UserIdentity): Promise => { + const history = await activityHistory(userIdentity); const date = new Date( - Number(activityHistory[activityHistory.length - 1]['date']) * 1000 + - new Date().getTimezoneOffset() + Number(history[history.length - 1]['date']) * 1000 + new Date().getTimezoneOffset() ); date.setDate(date.getDate() + 1); diff --git a/src/routes/activity-history/+page.svelte b/src/routes/activity-history/+page.svelte new file mode 100644 index 00000000..a1938ee9 --- /dev/null +++ b/src/routes/activity-history/+page.svelte @@ -0,0 +1,92 @@ + + +

Activity History Hole Risk

+ +Days in risk of developing an activity history hole. (days with one activity) + +

+ +{#if data.user === undefined} + Please log in to view this page. +{:else} + {#await activityHistoryData} + Loading ... + {:then activities} + {#if activities === undefined} + Loading ... + {:else} +

    + {#each fillMissingDays(activities) as activity} + {#if activity.amount === 0} +
  • + {new Date(activity.date * 1000 + timezoneOffset).toDateString()} +
  • + {/if} + {/each} +
+ {/if} + {/await} +{/if} -- cgit v1.2.3