diff options
| author | Mistivia <i@mistivia.com> | 2025-02-08 17:41:07 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-02-08 17:41:07 +0800 |
| commit | c700c8f53dd7d29cb26dcf8bb201b96781740a93 (patch) | |
| tree | c1d6127d199d70f14a108f2210c9cdc6f31860f5 | |
| parent | 5db7a8c78da09e7d5f7454ba019d39be04d8795e (diff) | |
fix up
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | index.html | 2 | ||||
| -rw-r--r-- | src/components/CardThumb.svelte | 3 | ||||
| -rw-r--r-- | src/components/LeftPanel.svelte | 13 | ||||
| -rw-r--r-- | src/control/deck.js | 18 | ||||
| -rw-r--r-- | src/utils.js | 10 | ||||
| -rw-r--r-- | vite.config.ts | 1 |
7 files changed, 36 insertions, 13 deletions
@@ -2,7 +2,7 @@ 游戏王卡组编辑器 -Demo: [ygodeck.mistivia.com](https://ygodeck.mistivia.com) +Demo: [raye.mistivia.com/ygodeck](https://raye.mistivia.com/ygodeck) ## 截图 @@ -22,7 +22,7 @@ </head> <body> <div id="app" class="container"></div> - <script type="module" src="/src/main.ts"></script> + <script type="module" src="./src/main.ts"></script> </body> </html> diff --git a/src/components/CardThumb.svelte b/src/components/CardThumb.svelte index 4c41f2d..be6af81 100644 --- a/src/components/CardThumb.svelte +++ b/src/components/CardThumb.svelte @@ -1,6 +1,7 @@ <script lang="js"> import {setLeftPanelCard} from '../control/left_panel'; + import { cardImageUrl } from '../utils'; let {id, area} = $props(); @@ -21,7 +22,7 @@ onfocus={onhover} ondragstart={onDragStart} height="100%" - src="https://cdn.233.momobako.com/ygopro/pics/{id}.jpg" + src={cardImageUrl(id)} alt="yugioh card {id}" /> {/if} diff --git a/src/components/LeftPanel.svelte b/src/components/LeftPanel.svelte index f5d2fa8..b2fe2b1 100644 --- a/src/components/LeftPanel.svelte +++ b/src/components/LeftPanel.svelte @@ -1,9 +1,12 @@ <script lang="js"> -import { - leftPanelCardId, - leftPanelCardDesc, -} from '../control/left_panel' + import { + leftPanelCardId, + leftPanelCardDesc, + } from '../control/left_panel'; + + import { cardImageUrl } from '../utils'; + </script> @@ -11,7 +14,7 @@ import { <div class="card-preview"> <div class="card-image-large"> {#if $leftPanelCardId} - <img height="100%" src="https://cdn.233.momobako.com/ygopro/pics/{$leftPanelCardId}.jpg" alt="card img"> + <img height="100%" src={cardImageUrl($leftPanelCardId)} alt="card img"> {/if} </div> <div class="card-description"> diff --git a/src/control/deck.js b/src/control/deck.js index d47b21c..ab46a02 100644 --- a/src/control/deck.js +++ b/src/control/deck.js @@ -5,7 +5,20 @@ import { cardDb } from '../data/cardDb'; let deck = writable({main: [], extra: [], side: []}); let deckState = {main: [], extra: [], side: []}; +function sanitizeDeck(deck) { + let ret = []; + for (let id of deck) { + if (cardDb[id] !== undefined) { + ret.push(id); + } + } + return ret; +} + function setDeck(d) { + d.main = sanitizeDeck(d.main); + d.side = sanitizeDeck(d.side); + d.extra = sanitizeDeck(d.extra); let sortFn = (a, b) => {return cardDb[a].cid - cardDb[b].cid;} d.main.sort(sortFn); d.extra.sort(sortFn); @@ -15,9 +28,6 @@ function setDeck(d) { localStorage.setItem('cachedDeck', JSON.stringify(d)); }; -const OK = 1; -const FAIL = 0; - function canAdd(d, id) { let count = 0; for (let c of d.main) { @@ -113,7 +123,7 @@ function initDeck() { let deck = parseYdke(url[1]); if (deck.main.length > 0 || deck.extra.length > 0 || deck.extra.length > 0) { setDeck(deck); - window.location.replace("/"); + window.location.href = url[0]; return; } } diff --git a/src/utils.js b/src/utils.js index ba5d905..4efe862 100644 --- a/src/utils.js +++ b/src/utils.js @@ -28,7 +28,7 @@ function parseYdk(ydkContent) { } function genYdk(deck) { - let ydkContent = '#created by ygodeck.mistivia.com\n'; + let ydkContent = '#created by mistivia.com\n'; ydkContent += '#main\n'; ydkContent += deck.main.join('\n') + '\n'; @@ -100,11 +100,19 @@ function genYdke(deck) { return `${mainEncoded}!${extraEncoded}!${sideEncoded}`; } +function cardImageUrl(id) { + if (id.length <= 8) { + return "https://cdn.233.momobako.com/ygopro/pics/" + id + '.jpg'; + } + return 'https://cdn02.moecube.com:444/ygopro-super-pre/data/pics/' + id + '.jpg'; +} + export { parseYdk, genYdk, parseYdke, genYdke, downloadStringAsFile, + cardImageUrl, }; diff --git a/vite.config.ts b/vite.config.ts index d32eba1..2f557a4 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,4 +4,5 @@ import { svelte } from '@sveltejs/vite-plugin-svelte' // https://vite.dev/config/ export default defineConfig({ plugins: [svelte()], + base: './', }) |
