aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Tools
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-03-01 16:13:28 -0800
committerFuwn <[email protected]>2026-03-01 16:13:45 -0800
commit8510a4b87bd493d4451072c2e6b4fec6596d29c3 (patch)
tree1a627753dd136d46ac3d7c098d72a43c8e73d66f /src/lib/Tools
parentchore(biome): enable svelte formatting (diff)
downloaddue.moe-8510a4b87bd493d4451072c2e6b4fec6596d29c3.tar.xz
due.moe-8510a4b87bd493d4451072c2e6b4fec6596d29c3.zip
chore(biome): enable svelte linting
Diffstat (limited to 'src/lib/Tools')
-rw-r--r--src/lib/Tools/Birthdays.svelte12
-rw-r--r--src/lib/Tools/BirthdaysTemplate.svelte6
-rw-r--r--src/lib/Tools/UmaMusumeBirthdays.svelte4
-rw-r--r--src/lib/Tools/Wrapped/Tool.svelte59
4 files changed, 41 insertions, 40 deletions
diff --git a/src/lib/Tools/Birthdays.svelte b/src/lib/Tools/Birthdays.svelte
index 6c81a233..49d72cfa 100644
--- a/src/lib/Tools/Birthdays.svelte
+++ b/src/lib/Tools/Birthdays.svelte
@@ -3,7 +3,7 @@ import { browser } from '$app/environment';
import { page } from '$app/stores';
import { ACDBBirthdays, type ACDBBirthday } from '$lib/Data/Birthday/secondary';
import { aniSearchBirthdays, type aniSearchBirthday } from '$lib/Data/Birthday/primary';
-import Error from '$lib/Error/RateLimited.svelte';
+import RateLimitedError from '$lib/Error/RateLimited.svelte';
import { onMount } from 'svelte';
import { clearAllParameters, parseOrDefault } from '../Utility/parameters';
import Skeleton from '$lib/Loading/Skeleton.svelte';
@@ -90,10 +90,10 @@ const combineBirthdaySources = (
return Array.from(nameMap.values());
};
-const resolveBirthdays = async (
+async function resolveBirthdays(
month: number,
day: number
-): Promise<{ birthdays: Birthday[]; allSourcesFailed: boolean }> => {
+): Promise<{ birthdays: Birthday[]; allSourcesFailed: boolean }> {
const [acdbResult, aniSearchResult] = await Promise.allSettled([
ACDBBirthdays(month, day),
browser ? aniSearchBirthdays(month, day) : Promise.resolve([])
@@ -105,7 +105,7 @@ const resolveBirthdays = async (
birthdays: combineBirthdaySources(acdb, aniSearch),
allSourcesFailed: acdbResult.status === 'rejected' && aniSearchResult.status === 'rejected'
};
-};
+}
</script>
{#await birthdays}
@@ -114,7 +114,7 @@ const resolveBirthdays = async (
<Skeleton grid={true} count={100} width="150px" height="170px" />
{:then resolved}
{#if resolved.allSourcesFailed}
- <Error type="Character" card />
+ <RateLimitedError type="Character" card />
{:else}
<p>
<select bind:value={month}>
@@ -158,7 +158,7 @@ const resolveBirthdays = async (
</div>
{/if}
{:catch}
- <Error type="Character" card />
+ <RateLimitedError type="Character" card />
{/await}
<style lang="scss">
diff --git a/src/lib/Tools/BirthdaysTemplate.svelte b/src/lib/Tools/BirthdaysTemplate.svelte
index 0ec937c4..17763908 100644
--- a/src/lib/Tools/BirthdaysTemplate.svelte
+++ b/src/lib/Tools/BirthdaysTemplate.svelte
@@ -5,7 +5,7 @@ import { onMount } from 'svelte';
import { clearAllParameters, parseOrDefault } from '../Utility/parameters';
import Message from '$lib/Loading/Message.svelte';
import locale from '$stores/locale';
-import Error from '$lib/Error/RateLimited.svelte';
+import RateLimitedError from '$lib/Error/RateLimited.svelte';
import Skeleton from '$lib/Loading/Skeleton.svelte';
export let remoteURL: string;
@@ -95,10 +95,10 @@ onMount(() => clearAllParameters(['month', 'day']));
</div>
{/if}
{:catch}
- <Error type="Character" card />
+ <RateLimitedError type="Character" card />
{/await}
{:catch}
- <Error type="Character" card />
+ <RateLimitedError type="Character" card />
{/await}
<style lang="scss">
diff --git a/src/lib/Tools/UmaMusumeBirthdays.svelte b/src/lib/Tools/UmaMusumeBirthdays.svelte
index cc8c1513..7d49cfaa 100644
--- a/src/lib/Tools/UmaMusumeBirthdays.svelte
+++ b/src/lib/Tools/UmaMusumeBirthdays.svelte
@@ -1,7 +1,7 @@
<script lang="ts">
import { browser } from '$app/environment';
import { page } from '$app/stores';
-import Error from '$lib/Error/RateLimited.svelte';
+import RateLimitedError from '$lib/Error/RateLimited.svelte';
import { onMount } from 'svelte';
import { clearAllParameters, parseOrDefault } from '../Utility/parameters';
import Skeleton from '$lib/Loading/Skeleton.svelte';
@@ -117,7 +117,7 @@ onMount(() => {
<Skeleton grid={true} count={100} width="150px" height="170px" />
{/if}
{:catch}
- <Error type="Character" card />
+ <RateLimitedError type="Character" card />
{/await}
<style lang="scss">
diff --git a/src/lib/Tools/Wrapped/Tool.svelte b/src/lib/Tools/Wrapped/Tool.svelte
index 3f13b483..7ce50ac3 100644
--- a/src/lib/Tools/Wrapped/Tool.svelte
+++ b/src/lib/Tools/Wrapped/Tool.svelte
@@ -14,7 +14,7 @@ import { Type, mediaListCollection, type Media } from '$lib/Data/AniList/media';
import anime from '$stores/anime';
import lastPruneTimes from '$stores/lastPruneTimes';
import manga from '$stores/manga';
-import Error from '$lib/Error/RateLimited.svelte';
+import RateLimitedError from '$lib/Error/RateLimited.svelte';
import { domToBlob } from 'modern-screenshot';
import { browser } from '$app/environment';
import { page } from '$app/stores';
@@ -87,6 +87,7 @@ let lastUseFullActivityHistory = useFullActivityHistory;
let lastDisableLoopingActivityCounter = disableLoopingActivityCounter;
let lastStartDateFilter: Date | null = startDateFilter;
let lastEndDateFilter: Date | null = endDateFilter;
+const touch = (...values: unknown[]) => values;
$: {
if (browser && mounted) {
@@ -136,32 +137,32 @@ $: {
}
$: {
- includeMusic = includeMusic;
- includeSpecials = includeSpecials;
- includeRepeats = includeRepeats;
- disableActivityHistory = disableActivityHistory;
- highestRatedMediaPercentage = highestRatedMediaPercentage;
- highestRatedGenreTagPercentage = highestRatedGenreTagPercentage;
- topGenresTags = topGenresTags;
- genreTagsSort = genreTagsSort;
- mediaSort = mediaSort;
- includeMovies = includeMovies;
- includeOVAs = includeOVAs;
- selectedYear = selectedYear;
- includeOngoingMediaFromPreviousYears = includeOngoingMediaFromPreviousYears;
- excludeUnratedUnwatched = excludeUnratedUnwatched;
+ touch(
+ includeMusic,
+ includeSpecials,
+ includeRepeats,
+ disableActivityHistory,
+ highestRatedMediaPercentage,
+ highestRatedGenreTagPercentage,
+ topGenresTags,
+ genreTagsSort,
+ mediaSort,
+ includeMovies,
+ includeOVAs,
+ selectedYear,
+ includeOngoingMediaFromPreviousYears,
+ excludeUnratedUnwatched
+ );
if (shouldFetchData) update().then(updateWidth).catch(updateWidth);
}
$: {
- animeList = animeList;
- mangaList = mangaList;
- highestRatedCount = highestRatedCount;
+ touch(animeList, mangaList, highestRatedCount);
new Promise((resolve) => setTimeout(resolve, 1)).then(updateWidth);
}
$: {
- genreTagCount = genreTagCount;
+ touch(genreTagCount);
if (animeList && mangaList)
topMedia = tops(
@@ -174,7 +175,7 @@ $: {
new Promise((resolve) => setTimeout(resolve, 1)).then(updateWidth);
}
$: {
- excludedKeywords = excludedKeywords;
+ touch(excludedKeywords);
if (excludedKeywords.length > 0 && animeList !== undefined && mangaList !== undefined) {
animeList = originalAnimeList;
@@ -216,7 +217,7 @@ $: mangaMostTitle = (() => {
}
})();
-const updateWidth = () => {
+function updateWidth() {
if (!browser) return;
const wrappedContainer = document.querySelector('#wrapped') as HTMLElement;
@@ -263,7 +264,7 @@ const updateWidth = () => {
reset();
reset();
-};
+}
onMount(async () => {
clearAllParameters([
@@ -407,7 +408,7 @@ const dummyActivities: ActivityHistoryEntry[] = [];
const dummyAnimeList: Media[] = [createDummyMedia('ANIME')];
const dummyMangaList: Media[] = [createDummyMedia('MANGA')];
-const update = async () => {
+async function update() {
if ($userIdentity.id === -1) return;
let rawAnimeList = await mediaListCollection(
@@ -601,7 +602,7 @@ const update = async () => {
}
for (const media of calculatedMangaList) chapters += media.mediaListEntry?.progress || 0;
-};
+}
/* eslint-disable @typescript-eslint/no-explicit-any */
// const year = (statistic: { startYears: any }) =>
@@ -684,7 +685,7 @@ const submitExcludedKeywords = () => {
.filter((k) => k.length > 0);
};
-const excludeKeywords = (media: Media[]) => {
+function excludeKeywords(media: Media[]) {
if (excludedKeywords.length <= 0) return media;
return media.filter((m) => {
@@ -696,7 +697,7 @@ const excludeKeywords = (media: Media[]) => {
return true;
});
-};
+}
const pruneFullYear = async () => {
await database.activities.bulkDelete((await database.activities.toArray()).map((m) => m.page));
@@ -814,10 +815,10 @@ const pruneFullYear = async () => {
</div>
</div>
{:catch}
- <Error type="User" card list={false} />
+ <RateLimitedError type="User" card list={false} />
{/await}
{:catch}
- <Error
+ <RateLimitedError
card
type={`${useFullActivityHistory ? 'Full-year activity' : 'Activity'} history`}
loginSessionError={!useFullActivityHistory}
@@ -830,7 +831,7 @@ const pruneFullYear = async () => {
your local activity history database.
</p>
{/if}
- </Error>
+ </RateLimitedError>
{/await}
{/key}
{:else}