aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-02-01 01:45:59 -0800
committerFuwn <[email protected]>2024-02-01 01:45:59 -0800
commitff6a116b398edaede02fd1e7c6bb9eb5dfc35a24 (patch)
treea5e6cc5fc1dae33511308cdd4bc47d655c439513 /src
parentfeat(activityhistory): use popup login alert (diff)
downloaddue.moe-ff6a116b398edaede02fd1e7c6bb9eb5dfc35a24.tar.xz
due.moe-ff6a116b398edaede02fd1e7c6bb9eb5dfc35a24.zip
feat(reader): add reader beta
Diffstat (limited to 'src')
-rw-r--r--src/lib/Tools/InputTemplate.svelte4
-rw-r--r--src/routes/reader/+page.svelte48
2 files changed, 50 insertions, 2 deletions
diff --git a/src/lib/Tools/InputTemplate.svelte b/src/lib/Tools/InputTemplate.svelte
index 42eb695d..cfccdc75 100644
--- a/src/lib/Tools/InputTemplate.svelte
+++ b/src/lib/Tools/InputTemplate.svelte
@@ -5,7 +5,7 @@
export let field: string;
export let submission: string;
- export let event: string;
+ export let event: string | undefined = undefined;
export let submitText: string;
export let saveParameters: string[] = [];
export let onSubmit = () => {
@@ -33,7 +33,7 @@
onSubmit();
// eslint-disable-next-line no-undef
- umami.track(event);
+ if (event) umami.track(event);
}
}}
/>
diff --git a/src/routes/reader/+page.svelte b/src/routes/reader/+page.svelte
new file mode 100644
index 00000000..96c41754
--- /dev/null
+++ b/src/routes/reader/+page.svelte
@@ -0,0 +1,48 @@
+<script>
+ import InputTemplate from '$lib/Tools/InputTemplate.svelte';
+
+ let submission = '';
+
+ $: mangaDexID = submission.match(/(?<=\/title\/)(.*?)(?=\/)/g);
+</script>
+
+<InputTemplate field="MangaDex URL" bind:submission submitText="Read">
+ {#if mangaDexID}
+ {#await fetch(`https://api.mangadex.org/manga/${mangaDexID}/feed?order[chapter]=desc&translatedLanguage[]=en`) then response}
+ {#if response.ok}
+ {#await response.json() then data}
+ {#if data.data}
+ <ul>
+ {#each data.data as chapter}
+ <li>
+ {#if chapter.attributes.volume}
+ Vol. {chapter.attributes.volume}
+ {/if}
+ Ch. {chapter.attributes.chapter}
+ <span class="true-opaque">|</span>
+ <a
+ href={`https://mangadex.org/chapter/${chapter.id}`}
+ target="_blank"
+ rel="noopener noreferrer"
+ >
+ {chapter.attributes.title}
+ </a>
+ </li>
+ {/each}
+ </ul>
+ {:else}
+ <p class="true-opaque">(⌣_⌣”)</p>
+ {/if}
+ {:catch error}
+ {error}
+ {/await}
+ {:else}
+ Invalid URL
+ {/if}
+ {:catch error}
+ {error}
+ {/await}
+ {:else}
+ Invalid URL
+ {/if}
+</InputTemplate>