aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-08-23 13:51:32 -0700
committerFuwn <[email protected]>2024-08-23 13:51:32 -0700
commit5d860ec9675a832dca5e8fd855bca0c9debfb5ef (patch)
tree07ce577124d64be0239ab7366a14d7a7c832687e /src
parentfix(AniList): request relation native title (diff)
downloaddue.moe-5d860ec9675a832dca5e8fd855bca0c9debfb5ef.tar.xz
due.moe-5d860ec9675a832dca5e8fd855bca0c9debfb5ef.zip
refactor(Tools): SequelCatcher as modules
Diffstat (limited to 'src')
-rw-r--r--src/lib/Tools/SequelCatcher/List.svelte50
-rw-r--r--src/lib/Tools/SequelCatcher/Tool.svelte (renamed from src/lib/Tools/SequelCatcher.svelte)50
-rw-r--r--src/routes/tools/[tool]/+page.svelte2
3 files changed, 54 insertions, 48 deletions
diff --git a/src/lib/Tools/SequelCatcher/List.svelte b/src/lib/Tools/SequelCatcher/List.svelte
new file mode 100644
index 00000000..685cae72
--- /dev/null
+++ b/src/lib/Tools/SequelCatcher/List.svelte
@@ -0,0 +1,50 @@
+<script lang="ts">
+ import { filterRelations, type Media } from '$lib/Data/AniList/media';
+ import MediaTitleDisplay from '$lib/List/MediaTitleDisplay.svelte';
+
+ import { outboundLink } from '$lib/Media/links';
+ import settings from '$stores/settings';
+
+ export let mediaListUnchecked: Media[];
+
+ const mediaList = mediaListUnchecked.filter(
+ (media) => media.mediaListEntry?.status === 'COMPLETED'
+ );
+</script>
+
+<ol class="media-list">
+ {#each filterRelations(mediaList) as { media, unwatchedRelations }}
+ <a href={outboundLink(media, 'anime', $settings.displayOutboundLinksTo)} target="_blank">
+ <MediaTitleDisplay title={media.title} />
+ </a>
+ <span class="opaque">
+ ({media.startDate.year})
+ </span>
+
+ <ol class="unwatched-relations-list">
+ {#each unwatchedRelations as relation}
+ <li>
+ <a
+ href={outboundLink(relation.node, 'anime', $settings.displayOutboundLinksTo)}
+ target="_blank"
+ >
+ <MediaTitleDisplay title={relation.node.title} />
+ </a>
+ <span class="opaque">
+ ({relation.node.startDate.year})
+ </span>
+ </li>
+ {/each}
+ </ol>
+ {/each}
+</ol>
+
+<style>
+ .media-list li {
+ margin-bottom: 1rem;
+ }
+
+ .unwatched-relations-list li:not(:last-child) {
+ margin-bottom: 0 !important;
+ }
+</style>
diff --git a/src/lib/Tools/SequelCatcher.svelte b/src/lib/Tools/SequelCatcher/Tool.svelte
index 5d7cf81a..06d635b3 100644
--- a/src/lib/Tools/SequelCatcher.svelte
+++ b/src/lib/Tools/SequelCatcher/Tool.svelte
@@ -1,15 +1,13 @@
<script lang="ts">
+ import List from './List.svelte';
import type { AniListAuthorisation } from '$lib/Data/AniList/identity';
import userIdentity from '$stores/identity';
- import { filterRelations, type Media, mediaListCollection, Type } from '$lib/Data/AniList/media';
+ import { type Media, mediaListCollection, Type } from '$lib/Data/AniList/media';
import LogInRestricted from '$lib/Error/LogInRestricted.svelte';
import anime from '$stores/anime';
import identity from '$stores/identity';
import { onMount } from 'svelte';
import lastPruneTimes from '$stores/lastPruneTimes';
- import MediaTitleDisplay from '$lib/List/MediaTitleDisplay.svelte';
- import { outboundLink } from '$lib/Media/links';
- import settings from '$stores/settings';
import Message from '$lib/Loading/Message.svelte';
import Skeleton from '$lib/Loading/Skeleton.svelte';
import Username from '$lib/Layout/Username.svelte';
@@ -55,39 +53,7 @@
/>
{:then mediaListUnchecked}
{#if mediaListUnchecked}
- {@const mediaList = mediaListUnchecked.filter(
- (media) => media.mediaListEntry?.status === 'COMPLETED'
- )}
-
- <ol class="media-list">
- {#each filterRelations(mediaList) as { media, unwatchedRelations }}
- <a
- href={outboundLink(media, 'anime', $settings.displayOutboundLinksTo)}
- target="_blank"
- >
- <MediaTitleDisplay title={media.title} />
- </a>
- <span class="opaque">
- ({media.startDate.year})
- </span>
-
- <ol class="unwatched-relations-list">
- {#each unwatchedRelations as relation}
- <li>
- <a
- href={outboundLink(relation.node, 'anime', $settings.displayOutboundLinksTo)}
- target="_blank"
- >
- <MediaTitleDisplay title={relation.node.title} />
- </a>
- <span class="opaque">
- ({relation.node.startDate.year})
- </span>
- </li>
- {/each}
- </ol>
- {/each}
- </ol>
+ <List {mediaListUnchecked} />
{:else}
<Message message="Cross-checking media ..." />
@@ -112,13 +78,3 @@
</blockquote>
</div>
{/if}
-
-<style>
- .media-list li {
- margin-bottom: 1rem;
- }
-
- .unwatched-relations-list li:not(:last-child) {
- margin-bottom: 0 !important;
- }
-</style>
diff --git a/src/routes/tools/[tool]/+page.svelte b/src/routes/tools/[tool]/+page.svelte
index dee9b4e6..8d9d4ba5 100644
--- a/src/routes/tools/[tool]/+page.svelte
+++ b/src/routes/tools/[tool]/+page.svelte
@@ -18,7 +18,7 @@
import root from '$lib/Utility/root.js';
import Popup from '$lib/Layout/Popup.svelte';
import HololiveBirthdays from '$lib/Tools/HololiveBirthdays.svelte';
- import SequelCatcher from '$lib/Tools/SequelCatcher.svelte';
+ import SequelCatcher from '$lib/Tools/SequelCatcher/Tool.svelte';
export let data;