diff options
| -rw-r--r-- | src/lib/List/Manga/MangaListTemplate.svelte | 8 | ||||
| -rw-r--r-- | src/lib/Media/Manga/chapters.ts | 14 | ||||
| -rw-r--r-- | src/routes/settings/+page.svelte | 16 | ||||
| -rw-r--r-- | src/stores/settings.ts | 16 |
4 files changed, 35 insertions, 19 deletions
diff --git a/src/lib/List/Manga/MangaListTemplate.svelte b/src/lib/List/Manga/MangaListTemplate.svelte index 5fdb2bf5..9a66ad4a 100644 --- a/src/lib/List/Manga/MangaListTemplate.svelte +++ b/src/lib/List/Manga/MangaListTemplate.svelte @@ -74,14 +74,14 @@ const progressStep = 100 / finalMedia.length; const chapterPromises = finalMedia.map((m: Media) => chapterDatabase.chapters.get(m.id).then((c) => { - if (c !== undefined) return chapterCount(identity, m, $settings.disableGuessing); + if (c !== undefined) return chapterCount(identity, m, $settings.calculateGuessingDisabled); else { // A = On 1 second interval, // B = a maximum of 5 requests per second are allowed. // C = chapterCount makes 3 requests per call. // F = A / (B / C) = 0.6 seconds return new Promise((resolve) => setTimeout(resolve, 600)).then(() => - chapterCount(identity, m, $settings.disableGuessing) + chapterCount(identity, m, $settings.calculateGuessingDisabled) ); } }) @@ -119,7 +119,9 @@ (item.episodes === -1337 && displayUnresolved ? true : (item.mediaListEntry?.progress || 0) < - ($settings.roundDownChapters === true ? Math.floor(item.episodes) : item.episodes)) + ($settings.calculateChaptersRoundedDown === true + ? Math.floor(item.episodes) + : item.episodes)) ); if (!endTime || endTime === -1) endTime = performance.now() - startTime; diff --git a/src/lib/Media/Manga/chapters.ts b/src/lib/Media/Manga/chapters.ts index a8ce1f91..c9e33c48 100644 --- a/src/lib/Media/Manga/chapters.ts +++ b/src/lib/Media/Manga/chapters.ts @@ -20,7 +20,11 @@ export const chapterCount = async ( const tryRecentMediaActivities = async () => { if (disableGuessing) return null; - const anilistData = await recentMediaActivities(identity, manga, settings.get().guessMethod); + const anilistData = await recentMediaActivities( + identity, + manga, + settings.get().calculateGuessMethod + ); await chapterDatabase.chapters.put({ id: manga.id, @@ -58,12 +62,16 @@ export const chapterCount = async ( let completedVolumes = null; if ((manga.mediaListEntry || { progress: 0 }).progress > lastChapter) { - const anilistData = await recentMediaActivities(identity, manga, settings.get().guessMethod); + const anilistData = await recentMediaActivities( + identity, + manga, + settings.get().calculateGuessMethod + ); if (anilistData !== null && anilistData > lastChapter) lastChapter = anilistData; } - if (!settings.get().disableOutOfDateVolumeWarning) { + if (!settings.get().calculateDisableOutOfDateVolumeWarning) { const volumeOfChapterDataResponse = await fetch( `/api/mangadex/chapter?id=${mangadexId}&chapter=${manga.mediaListEntry?.progress}` ); diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte index b85fcc9e..04d02739 100644 --- a/src/routes/settings/+page.svelte +++ b/src/routes/settings/+page.svelte @@ -192,7 +192,10 @@ <details open id="calculation"> <summary>Calculation</summary> - <SettingCheckboxToggle setting="roundDownChapters" text="Round down chapters (recommended)"> + <SettingCheckboxToggle + setting="calculateChaptersRoundedDown" + text="Round down chapters (recommended)" + > <SettingHint lineBreak> Round down to the nearest whole number. (e.g., 50/50.6 would <b>not</b> be due) </SettingHint> @@ -201,7 +204,7 @@ <br /> <SettingCheckboxToggle - setting="disableOutOfDateVolumeWarning" + setting="calculateDisableOutOfDateVolumeWarning" text="Disable out-of-date volume warning" > <SettingHint lineBreak> @@ -217,17 +220,20 @@ <br /> - <SettingCheckboxToggle setting="disableGuessing" text="Disable informed chapter estimation"> + <SettingCheckboxToggle + setting="calculateGuessingDisabled" + text="Disable informed chapter estimation" + > <SettingHint lineBreak> Enabling this setting will disable light novel chapter counts and may cause inaccuracy in unresolved manga and light novel chapter counts </SettingHint> </SettingCheckboxToggle> - {#if !$settings.disableGuessing} + {#if !$settings.calculateGuessingDisabled} <br /> - <select bind:value={$settings.guessMethod} on:change={pruneAllManga}> + <select bind:value={$settings.calculateGuessMethod} on:change={pruneAllManga}> <option value="mode">Mode (fast, moderate to low accuracy)</option> <option value="median">Median (moderate speed, high accuracy, recommended)</option> <option value="iqr_median">Interquartile Range with Median (slower, high accuracy)</option> diff --git a/src/stores/settings.ts b/src/stores/settings.ts index ead37422..7463a9cd 100644 --- a/src/stores/settings.ts +++ b/src/stores/settings.ts @@ -9,17 +9,17 @@ export interface Settings { displayMangaCollapsed: boolean; displayNotStarted: boolean; displayUnresolved: boolean; - roundDownChapters: boolean; + calculateChaptersRoundedDown: boolean; displaySortedByDifference: boolean; displayOutboundLinksTo: 'anilist' | 'livechartme' | 'animeschedule' | 'myanimelist'; displayPausedMedia: boolean; displayLimitListHeight: boolean; displaySocialButton: boolean; - disableGuessing: boolean; + calculateGuessingDisabled: boolean; displayHoverNavigation: boolean; displayNativeTitles: boolean; - guessMethod: 'median' | 'iqr_median' | 'iqr_mode' | 'mode'; - disableOutOfDateVolumeWarning: boolean; + calculateGuessMethod: 'median' | 'iqr_median' | 'iqr_mode' | 'mode'; + calculateDisableOutOfDateVolumeWarning: boolean; displayPlannedAnime: boolean; displayFurigana: boolean; displayAoButa: 'mai' | 'nodoka' | 'kaede' | 'none'; @@ -56,10 +56,10 @@ const defaultSettings: Settings = { displayNativeCountdown: false, // Calculation - roundDownChapters: true, - disableOutOfDateVolumeWarning: false, - disableGuessing: false, - guessMethod: 'median', + calculateChaptersRoundedDown: true, + calculateDisableOutOfDateVolumeWarning: false, + calculateGuessingDisabled: false, + calculateGuessMethod: 'median', // Cache cacheMangaMinutes: 120, |