diff options
| author | Fuwn <[email protected]> | 2024-02-01 01:45:59 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-02-01 01:45:59 -0800 |
| commit | ff6a116b398edaede02fd1e7c6bb9eb5dfc35a24 (patch) | |
| tree | a5e6cc5fc1dae33511308cdd4bc47d655c439513 /src | |
| parent | feat(activityhistory): use popup login alert (diff) | |
| download | due.moe-ff6a116b398edaede02fd1e7c6bb9eb5dfc35a24.tar.xz due.moe-ff6a116b398edaede02fd1e7c6bb9eb5dfc35a24.zip | |
feat(reader): add reader beta
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/Tools/InputTemplate.svelte | 4 | ||||
| -rw-r--r-- | src/routes/reader/+page.svelte | 48 |
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> |