This commit implements a comprehensive local file mirror system for ZXDB and WoS downloads, allowing users to access local archives directly through the explorer UI. Key Changes: Local File Mirroring & Proxy: - Added `ZXDB_LOCAL_FILEPATH` and `WOS_LOCAL_FILEPATH` to `src/env.ts` and `example.env` for opt-in local mirroring. - Implemented `resolveLocalLink` in `src/server/repo/zxdb.ts` to map database `file_link` paths to local filesystem paths based on configurable prefixes. - Created `src/app/api/zxdb/download/route.ts` to safely proxy local files, preventing path traversal and serving with appropriate `Content-Type` and `Content-Disposition`. - Updated `docs/ZXDB.md` with setup instructions and resolution logic. UI Enhancements & Grouping: - Grouped downloads and scraps by type (e.g., Inlay, Game manual, Tape image) in `EntryDetail.tsx` and `ReleaseDetail.tsx` for better organization. - Introduced `FileViewer.tsx` component to provide inline previews for supported formats (.txt, .nfo, .png, .jpg, .gif, .pdf). - Added a "Preview" button for local mirrors of supported file types. - Optimized download tables with badge-style links for local/remote sources. Guideline Updates: - Updated `AGENTS.md` to clarify commit message handling: edit or append to `COMMIT_EDITMSG` instead of overwriting. - Re-emphasized testing rules: use `tsc --noEmit`, do not restart dev-server, and avoid `pnpm build` during development. Signed-off-by: junie@lucy.xalior.com
37 lines
1.5 KiB
Plaintext
37 lines
1.5 KiB
Plaintext
Improve ZXDB downloads with local mirroring and inline preview
|
|
|
|
This commit implements a comprehensive local file mirror system for
|
|
ZXDB and WoS downloads, allowing users to access local archives
|
|
directly through the explorer UI.
|
|
|
|
Key Changes:
|
|
|
|
Local File Mirroring & Proxy:
|
|
- Added `ZXDB_LOCAL_FILEPATH` and `WOS_LOCAL_FILEPATH` to `src/env.ts`
|
|
and `example.env` for opt-in local mirroring.
|
|
- Implemented `resolveLocalLink` in `src/server/repo/zxdb.ts` to map
|
|
database `file_link` paths to local filesystem paths based on
|
|
configurable prefixes.
|
|
- Created `src/app/api/zxdb/download/route.ts` to safely proxy local
|
|
files, preventing path traversal and serving with appropriate
|
|
`Content-Type` and `Content-Disposition`.
|
|
- Updated `docs/ZXDB.md` with setup instructions and resolution logic.
|
|
|
|
UI Enhancements & Grouping:
|
|
- Grouped downloads and scraps by type (e.g., Inlay, Game manual, Tape
|
|
image) in `EntryDetail.tsx` and `ReleaseDetail.tsx` for better
|
|
organization.
|
|
- Introduced `FileViewer.tsx` component to provide inline previews
|
|
for supported formats (.txt, .nfo, .png, .jpg, .gif, .pdf).
|
|
- Added a "Preview" button for local mirrors of supported file types.
|
|
- Optimized download tables with badge-style links for local/remote
|
|
sources.
|
|
|
|
Guideline Updates:
|
|
- Updated `AGENTS.md` to clarify commit message handling: edit or
|
|
append to `COMMIT_EDITMSG` instead of overwriting.
|
|
- Re-emphasized testing rules: use `tsc --noEmit`, do not restart
|
|
dev-server, and avoid `pnpm build` during development.
|
|
|
|
Signed-off-by: junie@lucy.xalior.com
|