aboutsummaryrefslogtreecommitdiff
path: root/src/lib/AniList
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-01-11 22:07:08 -0800
committerFuwn <[email protected]>2024-01-11 22:07:08 -0800
commitbcdaf7d9214a16473b70bd1078a047dad76ab870 (patch)
tree44f11a4a5c0707aeb83084958c4f38a42d8994e8 /src/lib/AniList
parentfix(api): un-share some caches (diff)
downloaddue.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.ts21
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);
};