aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Earthfile2
-rw-r--r--package.json88
-rw-r--r--src/app.html327
3 files changed, 212 insertions, 205 deletions
diff --git a/Earthfile b/Earthfile
index f260cbff..05c597fa 100644
--- a/Earthfile
+++ b/Earthfile
@@ -6,6 +6,7 @@ WORKDIR /due
all:
BUILD +lint
+ BUILD +check
BUILD +docker
dev:
@@ -21,6 +22,7 @@ lint:
COPY .prettierignore .prettierignore
COPY .prettierrc .prettierrc
+ RUN bun --bun run lint
RUN bun --bun run check
docker:
diff --git a/package.json b/package.json
index 5295f13d..ce3c6f54 100644
--- a/package.json
+++ b/package.json
@@ -1,46 +1,46 @@
{
- "name": "due.moe",
- "version": "0.0.0",
- "private": true,
- "scripts": {
- "dev": "vite dev",
- "build": "vite build",
- "preview": "vite preview",
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
- "lint": "prettier --plugin-search-dir . --check . && eslint .",
- "format": "prettier --plugin-search-dir . --write ."
- },
- "devDependencies": {
- "@sveltejs/adapter-auto": "^2.0.0",
- "@sveltejs/kit": "^1.20.4",
- "@types/dom-to-image": "^2.6.5",
- "@types/file-saver": "^2.0.5",
- "@types/jsdom": "^21.1.6",
- "@typescript-eslint/eslint-plugin": "^5.45.0",
- "@typescript-eslint/parser": "^5.45.0",
- "eslint": "^8.28.0",
- "eslint-config-prettier": "^8.5.0",
- "eslint-plugin-svelte": "^2.30.0",
- "prettier": "^2.8.0",
- "prettier-plugin-svelte": "^2.10.1",
- "svelte": "^4.0.5",
- "svelte-adapter-bun": "^0.5.0",
- "svelte-check": "^3.4.3",
- "tslib": "^2.4.1",
- "typescript": "^5.0.0",
- "vite": "^4.4.2"
- },
- "type": "module",
- "dependencies": {
- "bun-types": "^1.0.15",
- "dexie": "^4.0.1-alpha.25",
- "html2canvas": "^1.4.1",
- "jsdom": "^23.0.1",
- "modern-screenshot": "^4.4.33",
- "rss-parser": "^3.13.0",
- "socket.io": "^4.7.2",
- "socket.io-client": "^4.7.2",
- "wanakana": "^5.3.1"
- }
+ "name": "due.moe",
+ "version": "0.0.0",
+ "private": true,
+ "scripts": {
+ "dev": "vite dev",
+ "build": "vite build",
+ "preview": "vite preview",
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
+ "lint": "prettier --plugin-search-dir . --check . && eslint .",
+ "format": "prettier --plugin-search-dir . --write ."
+ },
+ "devDependencies": {
+ "@sveltejs/adapter-auto": "^2.0.0",
+ "@sveltejs/kit": "^1.20.4",
+ "@types/dom-to-image": "^2.6.5",
+ "@types/file-saver": "^2.0.5",
+ "@types/jsdom": "^21.1.6",
+ "@typescript-eslint/eslint-plugin": "^5.45.0",
+ "@typescript-eslint/parser": "^5.45.0",
+ "eslint": "^8.28.0",
+ "eslint-config-prettier": "^8.5.0",
+ "eslint-plugin-svelte": "^2.30.0",
+ "prettier": "^2.8.0",
+ "prettier-plugin-svelte": "^2.10.1",
+ "svelte": "^4.0.5",
+ "svelte-adapter-bun": "^0.5.0",
+ "svelte-check": "^3.4.3",
+ "tslib": "^2.4.1",
+ "typescript": "^5.0.0",
+ "vite": "^4.4.2"
+ },
+ "type": "module",
+ "dependencies": {
+ "bun-types": "^1.0.15",
+ "dexie": "^4.0.1-alpha.25",
+ "html2canvas": "^1.4.1",
+ "jsdom": "^23.0.1",
+ "modern-screenshot": "^4.4.33",
+ "rss-parser": "^3.13.0",
+ "socket.io": "^4.7.2",
+ "socket.io-client": "^4.7.2",
+ "wanakana": "^5.3.1"
+ }
}
diff --git a/src/app.html b/src/app.html
index 7954f226..090cc8f9 100644
--- a/src/app.html
+++ b/src/app.html
@@ -1,177 +1,182 @@
<!DOCTYPE html>
<html lang="en">
-
-<head>
- <!-- HTML -->
- <meta charset="utf-8" />
- <meta name="viewport" content="width=device-width" />
- <meta name="theme-color" content="#060506" />
- <meta name="description" content="Instantly view which anime & manga on your lists have new episodes/chapters!" />
-
- <!-- Facebook -->
- <meta property="og:url" content="https://due.moe" />
- <meta property="og:type" content="website" />
- <meta property="og:title" content="期限" />
- <meta property="og:site_name" content="due.moe" />
- <meta property="og:description"
- content="Instantly view which anime & manga on your lists have new episodes/chapters!" />
- <meta property="og:image" content="https://due.moe/favicon-196x196.png" />
-
- <!-- Twitter -->
- <meta name="twitter:card" content="summary_large_image" />
- <meta property="twitter:domain" content="due.moe" />
- <meta property="twitter:url" content="https://due.moe" />
- <meta name="twitter:title" content="期限" />
- <meta name="twitter:description"
- content="Instantly view which anime & manga on your lists have new episodes/chapters!" />
- <meta name="twitter:image" content="https://due.moe/favicon-196x196.png" />
-
- <title>期限</title>
-
- <!-- Web Application Manifest -->
- <link rel="manifest" href="%sveltekit.assets%/manifest.json" />
-
- <!-- Stylesheets -->
- <link rel="stylesheet" type="text/css" href="https://latex.now.sh/style.css" />
- <link rel="stylesheet" type="text/css" href="https://skybox.sh/css/palettes/base16-dark.css" />
- <link rel="stylesheet" type="text/css" href="https://skybox.sh/css/risotto.css" />
- <!-- <link rel="stylesheet" type="text/css" href="https://skybox.sh/css/custom.css"> -->
-
- <!-- Icons -->
- <link rel="apple-touch-icon-precomposed" sizes="57x57" href="apple-touch-icon-57x57.png" />
- <link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-touch-icon-114x114.png" />
- <link rel="apple-touch-icon-precomposed" sizes="72x72" href="apple-touch-icon-72x72.png" />
- <link rel="apple-touch-icon-precomposed" sizes="144x144" href="apple-touch-icon-144x144.png" />
- <link rel="apple-touch-icon-precomposed" sizes="60x60" href="apple-touch-icon-60x60.png" />
- <link rel="apple-touch-icon-precomposed" sizes="120x120" href="apple-touch-icon-120x120.png" />
- <link rel="apple-touch-icon-precomposed" sizes="76x76" href="apple-touch-icon-76x76.png" />
- <link rel="apple-touch-icon-precomposed" sizes="152x152" href="apple-touch-icon-152x152.png" />
- <link rel="icon" type="image/png" href="favicon-196x196.png" sizes="196x196" />
- <link rel="icon" type="image/png" href="favicon-96x96.png" sizes="96x96" />
- <link rel="icon" type="image/png" href="favicon-32x32.png" sizes="32x32" />
- <link rel="icon" type="image/png" href="favicon-16x16.png" sizes="16x16" />
- <link rel="icon" type="image/png" href="favicon-128.png" sizes="128x128" />
- <meta name="application-name" content="&nbsp;" />
- <meta name="msapplication-TileColor" content="#FFFFFF" />
- <meta name="msapplication-TileImage" content="mstile-144x144.png" />
- <meta name="msapplication-square70x70logo" content="mstile-70x70.png" />
- <meta name="msapplication-square150x150logo" content="mstile-150x150.png" />
- <meta name="msapplication-wide310x150logo" content="mstile-310x150.png" />
- <meta name="msapplication-square310x310logo" content="mstile-310x310.png" />
-
- <script>
- if (JSON.parse(localStorage.getItem("settings")).forceLightTheme === true) {
- document.documentElement.classList.add('light-theme')
- } else {
- document.documentElement.classList.add('dark-theme')
- }
-
- document.addEventListener('DOMContentLoaded', () => {
- const header = document.getElementById('header')
- const hoverHeader = document.getElementById('hover-header')
-
- if (JSON.parse(localStorage.getItem("settings")).hoverNavigation === true) {
- header.style.display = 'none'
- hoverHeader.style.display = 'block'
+ <head>
+ <!-- HTML -->
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width" />
+ <meta name="theme-color" content="#060506" />
+ <meta
+ name="description"
+ content="Instantly view which anime & manga on your lists have new episodes/chapters!"
+ />
+
+ <!-- Facebook -->
+ <meta property="og:url" content="https://due.moe" />
+ <meta property="og:type" content="website" />
+ <meta property="og:title" content="期限" />
+ <meta property="og:site_name" content="due.moe" />
+ <meta
+ property="og:description"
+ content="Instantly view which anime & manga on your lists have new episodes/chapters!"
+ />
+ <meta property="og:image" content="https://due.moe/favicon-196x196.png" />
+
+ <!-- Twitter -->
+ <meta name="twitter:card" content="summary_large_image" />
+ <meta property="twitter:domain" content="due.moe" />
+ <meta property="twitter:url" content="https://due.moe" />
+ <meta name="twitter:title" content="期限" />
+ <meta
+ name="twitter:description"
+ content="Instantly view which anime & manga on your lists have new episodes/chapters!"
+ />
+ <meta name="twitter:image" content="https://due.moe/favicon-196x196.png" />
+
+ <title>期限</title>
+
+ <!-- Web Application Manifest -->
+ <link rel="manifest" href="%sveltekit.assets%/manifest.json" />
+
+ <!-- Stylesheets -->
+ <link rel="stylesheet" type="text/css" href="https://latex.now.sh/style.css" />
+ <link rel="stylesheet" type="text/css" href="https://skybox.sh/css/palettes/base16-dark.css" />
+ <link rel="stylesheet" type="text/css" href="https://skybox.sh/css/risotto.css" />
+ <!-- <link rel="stylesheet" type="text/css" href="https://skybox.sh/css/custom.css"> -->
+
+ <!-- Icons -->
+ <link rel="apple-touch-icon-precomposed" sizes="57x57" href="apple-touch-icon-57x57.png" />
+ <link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-touch-icon-114x114.png" />
+ <link rel="apple-touch-icon-precomposed" sizes="72x72" href="apple-touch-icon-72x72.png" />
+ <link rel="apple-touch-icon-precomposed" sizes="144x144" href="apple-touch-icon-144x144.png" />
+ <link rel="apple-touch-icon-precomposed" sizes="60x60" href="apple-touch-icon-60x60.png" />
+ <link rel="apple-touch-icon-precomposed" sizes="120x120" href="apple-touch-icon-120x120.png" />
+ <link rel="apple-touch-icon-precomposed" sizes="76x76" href="apple-touch-icon-76x76.png" />
+ <link rel="apple-touch-icon-precomposed" sizes="152x152" href="apple-touch-icon-152x152.png" />
+ <link rel="icon" type="image/png" href="favicon-196x196.png" sizes="196x196" />
+ <link rel="icon" type="image/png" href="favicon-96x96.png" sizes="96x96" />
+ <link rel="icon" type="image/png" href="favicon-32x32.png" sizes="32x32" />
+ <link rel="icon" type="image/png" href="favicon-16x16.png" sizes="16x16" />
+ <link rel="icon" type="image/png" href="favicon-128.png" sizes="128x128" />
+ <meta name="application-name" content="&nbsp;" />
+ <meta name="msapplication-TileColor" content="#FFFFFF" />
+ <meta name="msapplication-TileImage" content="mstile-144x144.png" />
+ <meta name="msapplication-square70x70logo" content="mstile-70x70.png" />
+ <meta name="msapplication-square150x150logo" content="mstile-150x150.png" />
+ <meta name="msapplication-wide310x150logo" content="mstile-310x150.png" />
+ <meta name="msapplication-square310x310logo" content="mstile-310x310.png" />
+
+ <script>
+ if (JSON.parse(localStorage.getItem('settings')).forceLightTheme === true) {
+ document.documentElement.classList.add('light-theme');
} else {
- header.style.display = 'block'
- hoverHeader.style.display = 'none'
+ document.documentElement.classList.add('dark-theme');
}
- })
-
- document.addEventListener('DOMContentLoaded', () => {
- const mai = document.getElementById('mai')
- const aoButa = JSON.parse(localStorage.getItem("settings")).displayAoButa;
- mai.style.display = 'block'
+ document.addEventListener('DOMContentLoaded', () => {
+ const header = document.getElementById('header');
+ const hoverHeader = document.getElementById('hover-header');
- switch (aoButa) {
- case "mai":
- {
- mai.src = "/aobuta/mai.png"
- }
- break;
- case "nodoka":
- {
- mai.src = "/aobuta/nodoka.webp"
- }
- break;
- case "kaede":
- {
- mai.src = "/aobuta/kaede.png"
- }
- break;
- case "none": {
- {
- mai.style.display = 'none'
+ if (JSON.parse(localStorage.getItem('settings')).hoverNavigation === true) {
+ header.style.display = 'none';
+ hoverHeader.style.display = 'block';
+ } else {
+ header.style.display = 'block';
+ hoverHeader.style.display = 'none';
+ }
+ });
+
+ document.addEventListener('DOMContentLoaded', () => {
+ const mai = document.getElementById('mai');
+ const aoButa = JSON.parse(localStorage.getItem('settings')).displayAoButa;
+
+ mai.style.display = 'block';
+
+ switch (aoButa) {
+ case 'mai':
+ {
+ mai.src = '/aobuta/mai.png';
+ }
+ break;
+ case 'nodoka':
+ {
+ mai.src = '/aobuta/nodoka.webp';
+ }
+ break;
+ case 'kaede':
+ {
+ mai.src = '/aobuta/kaede.png';
+ }
+ break;
+ case 'none': {
+ {
+ mai.style.display = 'none';
+ }
+ break;
}
- break;
}
+ });
+ </script>
+
+ <style>
+ html {
+ transition: 300ms;
}
- })
- </script>
-
- <style>
- html {
- transition: 300ms;
- }
-
- :root {
- --base00: #f8f8f8;
- --base01: #e8e8e8;
- --base02: #d8d8d8;
- --base03: #b8b8b8;
- --base04: #585858;
- --base05: #383838;
- --base06: #282828;
- --base07: #181818;
- --base08: #ab4642;
- --base09: #dc9656;
- --base0A: #f7ca88;
- --base0B: #a1b56c;
- --base0C: #86c1b9;
- --base0D: #7cafc2;
- --base0E: #ba8baf;
- --base0F: #a16946;
- }
-
- @media (prefers-color-scheme: dark) {
+
:root {
- --base00: #080808;
- --base01: #181818;
- --base02: #282828;
- --base03: #484848;
- --base04: #a8a8a8;
- --base05: #c8c8c8;
- --base06: #d8d8d8;
- --base07: #f8f8f8;
- --base08: #9a4541;
- --base09: #cb9555;
- --base0A: #f6c987;
- --base0B: #a0b45b;
- --base0C: #85c0b8;
- --base0D: #7baeb1;
- --base0E: #b98aae;
- --base0F: #a06845;
+ --base00: #f8f8f8;
+ --base01: #e8e8e8;
+ --base02: #d8d8d8;
+ --base03: #b8b8b8;
+ --base04: #585858;
+ --base05: #383838;
+ --base06: #282828;
+ --base07: #181818;
+ --base08: #ab4642;
+ --base09: #dc9656;
+ --base0A: #f7ca88;
+ --base0B: #a1b56c;
+ --base0C: #86c1b9;
+ --base0D: #7cafc2;
+ --base0E: #ba8baf;
+ --base0F: #a16946;
}
- }
- #mai {
- position: fixed;
- left: 0;
- bottom: 0;
- height: auto;
- width: 10vh;
- }
- </style>
+ @media (prefers-color-scheme: dark) {
+ :root {
+ --base00: #080808;
+ --base01: #181818;
+ --base02: #282828;
+ --base03: #484848;
+ --base04: #a8a8a8;
+ --base05: #c8c8c8;
+ --base06: #d8d8d8;
+ --base07: #f8f8f8;
+ --base08: #9a4541;
+ --base09: #cb9555;
+ --base0A: #f6c987;
+ --base0B: #a0b45b;
+ --base0C: #85c0b8;
+ --base0D: #7baeb1;
+ --base0E: #b98aae;
+ --base0F: #a06845;
+ }
+ }
- %sveltekit.head%
-</head>
+ #mai {
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ height: auto;
+ width: 10vh;
+ }
+ </style>
-<body data-sveltekit-preload-data="hover" style="max-width: 90% !important">
- <div style="display: contents">%sveltekit.body%</div>
+ %sveltekit.head%
+ </head>
- <img id="mai" onclick="alert('You\'re having lewd thoughts, aren\'t you?')" />
-</body>
+ <body data-sveltekit-preload-data="hover" style="max-width: 90% !important">
+ <div style="display: contents">%sveltekit.body%</div>
-</html> \ No newline at end of file
+ <img id="mai" onclick="alert('You\'re having lewd thoughts, aren\'t you?')" />
+ </body>
+</html>