aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-02-18 06:28:05 -0800
committerFuwn <[email protected]>2024-02-18 06:28:05 -0800
commit0f6104f915aa8cb9b28bbc1469e6d0a1a16d58c1 (patch)
tree413b362cf4107c5cc89248d0d6000c74a150f24c /src
parentfeat(user): hololive badges (diff)
downloaddue.moe-0f6104f915aa8cb9b28bbc1469e6d0a1a16d58c1.tar.xz
due.moe-0f6104f915aa8cb9b28bbc1469e6d0a1a16d58c1.zip
feat(hololive): filter
Diffstat (limited to 'src')
-rw-r--r--src/lib/Hololive/Lives.svelte2
-rw-r--r--src/routes/hololive/[[stream]]/+page.server.ts5
-rw-r--r--src/routes/hololive/[[stream]]/+page.svelte (renamed from src/routes/hololive/+page.svelte)4
3 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/Hololive/Lives.svelte b/src/lib/Hololive/Lives.svelte
index 25d5b0dd..54ed0447 100644
--- a/src/lib/Hololive/Lives.svelte
+++ b/src/lib/Hololive/Lives.svelte
@@ -7,6 +7,7 @@
export let schedule: ParseResult;
export let pinnedStreams: string[];
export let getPinnedStreams: () => void;
+ export let filter: string | undefined;
const pinStream = (streamer: string) =>
fetch(root(`/api/preferences/pin?stream=${encodeURIComponent(streamer)}`), {
@@ -17,6 +18,7 @@
}).then(getPinnedStreams);
$: categorisedStreams = schedule.lives
+ .filter((live) => (filter ? live.streamer === filter : true))
.sort((a, b) => new Date(a.time).getTime() - new Date(b.time).getTime())
.sort((a, b) => {
const aPinned = pinnedStreams.includes(a.streamer);
diff --git a/src/routes/hololive/[[stream]]/+page.server.ts b/src/routes/hololive/[[stream]]/+page.server.ts
new file mode 100644
index 00000000..87839c14
--- /dev/null
+++ b/src/routes/hololive/[[stream]]/+page.server.ts
@@ -0,0 +1,5 @@
+export const load = ({ params }) => {
+ return {
+ stream: params.stream
+ };
+};
diff --git a/src/routes/hololive/+page.svelte b/src/routes/hololive/[[stream]]/+page.svelte
index 109fbc42..777f1e70 100644
--- a/src/routes/hololive/+page.svelte
+++ b/src/routes/hololive/[[stream]]/+page.svelte
@@ -11,6 +11,8 @@
import Lives from '$lib/Hololive/Lives.svelte';
import { typeSchedule } from '$lib/Hololive/hololive';
+ export let data;
+
let schedulePromise: Promise<Response>;
let pinnedStreams: string[] = [];
@@ -60,7 +62,7 @@
{:then untypedSchedule}
{@const schedule = typeSchedule(parseScheduleHtml(untypedSchedule))}
- <Lives {schedule} {pinnedStreams} {getPinnedStreams} />
+ <Lives {schedule} {pinnedStreams} {getPinnedStreams} filter={data.stream} />
{:catch}
<Message loader="ripple" slot>
{$locale().hololive.parseError}