diff options
| author | Fuwn <[email protected]> | 2024-01-11 22:07:08 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-01-11 22:07:08 -0800 |
| commit | bcdaf7d9214a16473b70bd1078a047dad76ab870 (patch) | |
| tree | 44f11a4a5c0707aeb83084958c4f38a42d8994e8 /src/lib/AniList | |
| parent | fix(api): un-share some caches (diff) | |
| download | due.moe-bcdaf7d9214a16473b70bd1078a047dad76ab870.tar.xz due.moe-bcdaf7d9214a16473b70bd1078a047dad76ab870.zip | |
feat(list): recache notifications
Diffstat (limited to 'src/lib/AniList')
| -rw-r--r-- | src/lib/AniList/media.ts | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/lib/AniList/media.ts b/src/lib/AniList/media.ts index 2becc0d5..e65c90cd 100644 --- a/src/lib/AniList/media.ts +++ b/src/lib/AniList/media.ts @@ -4,6 +4,7 @@ import anime from '$stores/anime'; import manga from '$stores/manga'; import settings from '$stores/settings'; import lastPruneTimes from '$stores/lastPruneTimes'; +import { options as getOptions, type Options } from '$lib/Notification/options'; export enum Type { Anime, @@ -145,25 +146,35 @@ interface CollectionOptions { includeCompleted?: boolean; forcePrune?: boolean; all?: boolean; + addNotification?: (preferences: Options) => void; + notificationType?: string; } interface NonNullCollectionOptions { includeCompleted: boolean; forcePrune: boolean; all?: boolean; + addNotification?: (preferences: Options) => void; + notificationType?: string; } const assignDefaultOptions = (options: CollectionOptions) => { const nonNullOptions: NonNullCollectionOptions = { includeCompleted: false, forcePrune: false, - all: false + all: false, + addNotification: undefined, + notificationType: undefined }; if (options.includeCompleted !== undefined) nonNullOptions.includeCompleted = options.includeCompleted; if (options.forcePrune !== undefined) nonNullOptions.forcePrune = options.forcePrune; if (options.all !== undefined) nonNullOptions.all = options.all; + if (options.addNotification !== undefined) + nonNullOptions.addNotification = options.addNotification; + if (options.notificationType !== undefined) + nonNullOptions.notificationType = options.notificationType; return nonNullOptions; }; @@ -233,6 +244,14 @@ export const mediaListCollection = async ( ) ); + if (options.addNotification) + options.addNotification( + getOptions({ + heading: options.notificationType ? options.notificationType : Type[type], + description: 'Re-cached media lists from AniList' + }) + ); + return flattenLists(userIdResponse['data']['MediaListCollection']['lists'], options.all); }; |