aboutsummaryrefslogtreecommitdiff
path: root/src/routes
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/routes
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/routes')
-rw-r--r--src/routes/reader/+page.svelte48
1 files changed, 48 insertions, 0 deletions
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>