diff options
| author | Fuwn <[email protected]> | 2023-12-22 03:36:37 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-12-22 03:36:37 -0800 |
| commit | 52d156847cebd29efa7178cd009e57e6ece5f3a3 (patch) | |
| tree | 1971519dad018546af2dde60179726408bf02626 /src/lib/AniList | |
| parent | feat(wrapped): custom loading messages all around (diff) | |
| download | due.moe-52d156847cebd29efa7178cd009e57e6ece5f3a3.tar.xz due.moe-52d156847cebd29efa7178cd009e57e6ece5f3a3.zip | |
feat(wrapped): commit activities to database
Diffstat (limited to 'src/lib/AniList')
| -rw-r--r-- | src/lib/AniList/activity.ts | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/lib/AniList/activity.ts b/src/lib/AniList/activity.ts index 0735b291..37548edd 100644 --- a/src/lib/AniList/activity.ts +++ b/src/lib/AniList/activity.ts @@ -1,3 +1,4 @@ +import { database } from '$lib/Database/activities'; import type { AniListAuthorisation, UserIdentity } from './identity'; export interface ActivityHistoryEntry { @@ -91,7 +92,7 @@ export const lastActivityDate = async (userIdentity: UserIdentity): Promise<Date return date; }; -interface ActivitiesPage { +export interface ActivitiesPage { data: { Page: { pageInfo: { @@ -142,7 +143,17 @@ export const fullActivityHistory = async ( ): Promise<ActivityHistoryEntry[]> => { const activities: any[] = []; let page = 1; - let currentPage = await activitiesPage(page, anilistAuthorisation, userIdentity); + let currentDatabasePage = await database.activities.get(page); + let currentPage; + + if (currentDatabasePage) currentPage = currentDatabasePage.data; + else { + currentPage = await activitiesPage(page, anilistAuthorisation, userIdentity); + database.activities.add({ + page, + data: currentPage + }); + } for (const activity of currentPage.data.Page.activities) activities.push(activity); @@ -150,7 +161,16 @@ export const fullActivityHistory = async ( for (const activity of currentPage.data.Page.activities) activities.push(activity); page += 1; - currentPage = await activitiesPage(page, anilistAuthorisation, userIdentity); + currentDatabasePage = await database.activities.get(page); + + if (currentDatabasePage) currentPage = currentDatabasePage.data; + else { + currentPage = await activitiesPage(page, anilistAuthorisation, userIdentity); + database.activities.add({ + page, + data: currentPage + }); + } } let fullLocalActivityHistory: ActivityHistoryEntry[] = []; |