aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Schedule/Crunchyroll.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Schedule/Crunchyroll.svelte')
-rw-r--r--src/lib/Schedule/Crunchyroll.svelte90
1 files changed, 47 insertions, 43 deletions
diff --git a/src/lib/Schedule/Crunchyroll.svelte b/src/lib/Schedule/Crunchyroll.svelte
index 9d7c8e70..1f5f121c 100644
--- a/src/lib/Schedule/Crunchyroll.svelte
+++ b/src/lib/Schedule/Crunchyroll.svelte
@@ -1,47 +1,51 @@
<script lang="ts">
- import Spacer from '$lib/Layout/Spacer.svelte';
- import crunchyroll from '$lib/Data/Static/crunchyroll.json';
- import './container.css';
-
- interface CrunchyrollMedia<T = number | 'soon' | 'continuing'> {
- year: number;
- month: number;
- day: T;
- title: string;
- }
-
- type KnownMedia = { [key: string]: CrunchyrollMedia<number>[] };
-
- const days: KnownMedia = crunchyroll
- .filter((media) => media.day !== 'soon' && media.day !== 'continuing')
- .reduce((acc: KnownMedia, media) => {
- const date = new Date(media.year, media.month - 1, media.day as number).toLocaleDateString();
-
- if (!acc[date]) acc[date] = [];
-
- acc[date].push(media as CrunchyrollMedia<number>);
-
- return acc;
- }, {});
- const continuing: CrunchyrollMedia<number | string>[] = crunchyroll.filter(
- (media) => media.day === 'continuing'
- );
- const soon: CrunchyrollMedia<number | string>[] = crunchyroll.filter(
- (media) => media.day === 'soon'
- );
-
- $: columnCount = Math.ceil(Object.keys(days).length / 2);
-
- const ordinalSuffix = (i: number) => {
- const j = i % 10;
- const k = i % 100;
-
- if (j === 1 && k !== 11) return i + 'st';
- if (j === 2 && k !== 12) return i + 'nd';
- if (j === 3 && k !== 13) return i + 'rd';
-
- return i + 'th';
- };
+import Spacer from "$lib/Layout/Spacer.svelte";
+import crunchyroll from "$lib/Data/Static/crunchyroll.json";
+import "./container.css";
+
+interface CrunchyrollMedia<T = number | "soon" | "continuing"> {
+ year: number;
+ month: number;
+ day: T;
+ title: string;
+}
+
+type KnownMedia = { [key: string]: CrunchyrollMedia<number>[] };
+
+const days: KnownMedia = crunchyroll
+ .filter((media) => media.day !== "soon" && media.day !== "continuing")
+ .reduce((acc: KnownMedia, media) => {
+ const date = new Date(
+ media.year,
+ media.month - 1,
+ media.day as number,
+ ).toLocaleDateString();
+
+ if (!acc[date]) acc[date] = [];
+
+ acc[date].push(media as CrunchyrollMedia<number>);
+
+ return acc;
+ }, {});
+const continuing: CrunchyrollMedia<number | string>[] = crunchyroll.filter(
+ (media) => media.day === "continuing",
+);
+const soon: CrunchyrollMedia<number | string>[] = crunchyroll.filter(
+ (media) => media.day === "soon",
+);
+
+$: columnCount = Math.ceil(Object.keys(days).length / 2);
+
+const ordinalSuffix = (i: number) => {
+ const j = i % 10;
+ const k = i % 100;
+
+ if (j === 1 && k !== 11) return i + "st";
+ if (j === 2 && k !== 12) return i + "nd";
+ if (j === 3 && k !== 13) return i + "rd";
+
+ return i + "th";
+};
</script>
<div class="list-container" id="crunchyroll" style={`column-count: ${columnCount};`}>