diff options
Diffstat (limited to 'src/lib/List/Anime')
| -rw-r--r-- | src/lib/List/Anime/AnimeListTemplate.svelte | 3 | ||||
| -rw-r--r-- | src/lib/List/Anime/CleanAnimeList.svelte | 2 | ||||
| -rw-r--r-- | src/lib/List/Anime/CompletedAnimeList.svelte | 58 |
3 files changed, 30 insertions, 33 deletions
diff --git a/src/lib/List/Anime/AnimeListTemplate.svelte b/src/lib/List/Anime/AnimeListTemplate.svelte index 6e8d6d6c..bcd4e806 100644 --- a/src/lib/List/Anime/AnimeListTemplate.svelte +++ b/src/lib/List/Anime/AnimeListTemplate.svelte @@ -31,6 +31,7 @@ export let notYetReleased = false; export let dummy = false; export let disableFilter = false; + export let limit: number | undefined = undefined; let lastUpdatedMedia = -1; let previousAnimeList: Media[]; @@ -69,6 +70,7 @@ bind:pendingUpdate {dummy} {disableFilter} + {limit} /> {:else} <PlaceholderList count={lastListSize} {title} /> @@ -91,6 +93,7 @@ bind:pendingUpdate {dummy} {disableFilter} + {limit} /> {/if} {:catch} diff --git a/src/lib/List/Anime/CleanAnimeList.svelte b/src/lib/List/Anime/CleanAnimeList.svelte index fef76c03..04b1d03c 100644 --- a/src/lib/List/Anime/CleanAnimeList.svelte +++ b/src/lib/List/Anime/CleanAnimeList.svelte @@ -33,6 +33,7 @@ export let notYetReleased = false; export let dummy = false; export let disableFilter = false; + export let limit: number | undefined = undefined; let showRoulette = false; let keyCacher: NodeJS.Timeout; @@ -183,6 +184,7 @@ {upcoming} {notYetReleased} reverseSort={$settings.displayReverseSort} + {limit} > <div slot="title" let:title={anime} let:progress> {#if !upcoming && !notYetReleased} diff --git a/src/lib/List/Anime/CompletedAnimeList.svelte b/src/lib/List/Anime/CompletedAnimeList.svelte index 8e914ef6..b9e86ba0 100644 --- a/src/lib/List/Anime/CompletedAnimeList.svelte +++ b/src/lib/List/Anime/CompletedAnimeList.svelte @@ -18,7 +18,9 @@ tokenType: '' }; export let dummy = false; + export let dummyCount = 7; export let disableFilter = false; + export let limit: number | undefined = undefined; let animeLists: Promise<Media[]>; let startTime: number; let endTime: number; @@ -27,40 +29,29 @@ startTime = performance.now(); if (dummy) { + // Use deterministic selection for consistent display + const filtered = sampleAnime.filter( + (anime) => + anime.episodes && + !anime.tags.some((tag) => tag.name === 'Nudity') && + !anime.tags.some((tag) => tag.name === 'Rape') && + !anime.tags.some((tag) => tag.name === 'Tragedy') && + !anime.tags.some((tag) => tag.name === 'Bondage') && + !anime.genres.some((genre) => genre === 'Hentai') && + anime.genres.some((genre) => genre === 'Comedy') && + anime.status !== 'NOT_YET_RELEASED' && + anime.episodes > 1 + ); animeLists = Promise.resolve( - sampleAnime - .filter( - (anime) => - anime.episodes && - !anime.tags.some((tag) => tag.name === 'Nudity') && - !anime.tags.some((tag) => tag.name === 'Rape') && - !anime.tags.some((tag) => tag.name === 'Tragedy') && - !anime.tags.some((tag) => tag.name === 'Bondage') && - !anime.genres.some((genre) => genre === 'Hentai') && - anime.genres.some((genre) => genre === 'Comedy') && - anime.status !== 'NOT_YET_RELEASED' && - anime.episodes > 1 - ) - .sort(() => 0.5 - Math.random()) - .map((anime) => { - const nextEpisode = Math.floor(Math.random() * (anime.episodes || 0)) + 1 || 1; - - anime.status = 'FINISHED'; - anime.nextAiringEpisode = { - airingAt: - Math.floor(Date.now() / 1000) + - Math.floor(Math.random() * 7 * 24 * 60 * 60) + - 60 * 60, - episode: Math.floor(Math.random() * (anime.episodes || 0)) + 1 || 1 - }; - anime.mediaListEntry.progress = Math.floor(Math.random() * nextEpisode) || 1; - - return anime; - }) - .sort( - (a, b) => (a.nextAiringEpisode?.airingAt || 0) - (b.nextAiringEpisode?.airingAt || 0) - ) - .slice(0, 7) as unknown as Media[] + filtered.slice(0, dummyCount).map((anime, index) => { + anime.status = 'FINISHED'; + anime.nextAiringEpisode = { + airingAt: Math.floor(Date.now() / 1000) + (index + 1) * 24 * 60 * 60, + episode: Math.floor((anime.episodes || 12) * 0.8) + }; + anime.mediaListEntry.progress = Math.floor((anime.nextAiringEpisode.episode || 5) * 0.6); + return anime; + }) as unknown as Media[] ); } else { animeLists = mediaListCollection(user, $identity, Type.Anime, $anime, $lastPruneTimes.anime, { @@ -127,4 +118,5 @@ completed {dummy} {disableFilter} + {limit} /> |