aboutsummaryrefslogtreecommitdiff
path: root/src/lib/List/Anime
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/List/Anime')
-rw-r--r--src/lib/List/Anime/AnimeListTemplate.svelte3
-rw-r--r--src/lib/List/Anime/CleanAnimeList.svelte2
-rw-r--r--src/lib/List/Anime/CompletedAnimeList.svelte58
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}
/>