Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

All notable public product changes are recorded here. Release notes contain only product scope and reproducible validation; platform identifiers and private operational details are excluded.

## v1.42.0 — 2019 春季 THE ORIGIN 電視版

- 收錄《機動戦士ガンダム THE ORIGIN 前夜 赤い彗星》2019 年 13 話電視重編版,與早期 OVA 身份分開。
- 新增 3 首 OP、4 首 ED 及 8 筆官方影片 metadata;保留原曲作者、新演唱與編曲、原始發行日期及第 12 話片尾畫面版本。
- 春季共 29 套作品、76 筆 OP/ED;本季與夏季仍在補充,2025 秋季尚未收錄。

## [1.41.1] - 2026-09-07

### Fixed
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@

Anisonary 是以 Astro + strict TypeScript 建立的動畫歌曲目錄,按季度與日本編輯播出日瀏覽作品、OP 與 ED。網站輸出為純靜態資產,正式交付使用 **Cloudflare Workers Static Assets**;它不是 Cloudflare Pages,也沒有 application Worker backend。下方同時保留 English technical notes。

This repository contains the completed static product: season directory, anime detail pages, traceable OP/ED credits and links, per-song source ledgers, source-attributed media, local-only cross-season search, privacy-bounded offline reading, a GitHub correction flow, and deployment through Cloudflare Workers Static Assets. The default catalogue covers twenty-nine reviewed snapshots across 2019–2026, with 1,945 unique titles and 4,298 known OP/ED records. The 2019 spring snapshot contains twenty-eight TV titles, including television shorts; summer contains 38 TV titles and four web series. Both quarters are still being expanded, and 2025 fall is not yet included. Fictional Mock Data remains test-only.
This repository contains the completed static product: season directory, anime detail pages, traceable OP/ED credits and links, per-song source ledgers, source-attributed media, local-only cross-season search, privacy-bounded offline reading, a GitHub correction flow, and deployment through Cloudflare Workers Static Assets. The default catalogue covers twenty-nine reviewed snapshots across 2019–2026, with 1,946 unique titles and 4,305 known OP/ED records. The 2019 spring snapshot contains twenty-nine TV titles, including television shorts and a TV recut; summer contains 38 TV titles and four web series. Both quarters are still being expanded, and 2025 fall is not yet included. Fictional Mock Data remains test-only.

目前 source 版本:**v1.41.1**。作品頁、季度卡片、搜尋結果與頁面 metadata 共用不重複的名稱顯示;保留不同寫法的繁中名稱及 Romaji,原始名稱、歌曲與 API 資料不變。目錄共有 29 個季度、1,945 套作品與 4,298 筆 OP/ED;春季為 28 套作品、69 筆歌曲,春、夏季仍在補充,2025 秋季尚未收錄。
目前 source 版本:**v1.42.0**。2019 春季新增《機動戦士ガンダム THE ORIGIN 前夜 赤い彗星》13 話電視重編版,收錄 3 首 OP、4 首 ED 與 8 筆官方影片 metadata;保留翻唱者、製作署名、原始發行日期及第 12 話片尾畫面版本。目錄共有 29 個季度、1,946 套作品與 4,305 筆 OP/ED;春季為 29 套作品、76 筆歌曲,春、夏季仍在補充,2025 秋季尚未收錄。

導覽延續固定五個入口與年代、年份、季度目錄;搜尋可按動畫、歌曲、創作者、年份、季度及 OP/ED 篩選,每頁顯示 12 套作品。搜尋完全在瀏覽器內進行,YouTube 只於明確操作後連線。網站與同源靜態 JSON API 共用已審閱資料,無 application backend 或 database binding。依賴安全 gate 繼續鎖定 `fast-uri` 3.1.6 並稽核開發依賴。

Production build 會從最終 HTML 自動產生 hash-based Content Security Policy。政策不使用 `unsafe-inline` 或 `unsafe-eval`,禁止 inline event/style attributes,只開放同源資產、已核對的海報來源及使用者啟動後的 YouTube privacy-enhanced iframe。任何未批准的 media origin 會令 build fail closed。

| 可用性 / Availability | 成熟度 / Maturity | 證據 / Evidence |
| -------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 公開靜態目錄 / Public static catalogue | Source 版本為 `v1.41.1`;正式發布狀態以對應 Release 驗收摘要為準 | [入口網站 / Live](https://anisonary.k-y.cc) · [版本與驗收 / Releases](https://github.com/kyeunga25/anisonary/releases) · [資料來源 / Sources](docs/DATA_SOURCES.md) · [安全政策 / Security](SECURITY.md) · [授權 / Licence](LICENSING.md) · [版權 / Copyright](COPYRIGHT.md) |
| 公開靜態目錄 / Public static catalogue | Source 版本為 `v1.42.0`;正式發布狀態以對應 Release 驗收摘要為準 | [入口網站 / Live](https://anisonary.k-y.cc) · [版本與驗收 / Releases](https://github.com/kyeunga25/anisonary/releases) · [資料來源 / Sources](docs/DATA_SOURCES.md) · [安全政策 / Security](SECURITY.md) · [授權 / Licence](LICENSING.md) · [版權 / Copyright](COPYRIGHT.md) |

## 技術棧|Technology stack

Expand Down
4 changes: 2 additions & 2 deletions docs/DATA_PROVENANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ API、資料庫、商標或媒體重用權。完整授權邊界見

`first_party` 表示動畫製作/發行方、唱片公司、藝人官方渠道、官方影片或正式播出機構的公開頁面。`cross_check` 表示用於發現缺口及交叉比對的公開索引。兩種角色都是來源分類,不代表數值信心或內容評分。

2019 春季目前整理 28 套 TV 作品(含電視短篇),夏季整理 38 套 TV 作品及 4 套網絡連載;兩季的其他作品、跨季延續與特殊歌曲仍待核對;`coverageNote` 會在季度頁及 API 公開說明本季範圍。
2019 春季目前整理 29 套 TV 作品(含電視短篇及重編版),夏季整理 38 套 TV 作品及 4 套網絡連載;兩季的其他作品、跨季延續與特殊歌曲仍待核對;`coverageNote` 會在季度頁及 API 公開說明本季範圍。

目前二十九季快照的 season references、1,945 個作品及 4,298 筆 OP/ED 都有結構化 provenance;4,298 筆歌曲全部至少保留一個 `first_party` 與一個 `cross_check` 來源。`tests/unit/curated-catalog.test.ts` 鎖定來源數量、角色、語言、HTTPS、核對日期、Mock URL 禁止條件,以及 legacy labels 與結構化 ledger 的一致性。
目前二十九季快照的 season references、1,946 個作品及 4,305 筆 OP/ED 都有結構化 provenance;4,305 筆歌曲全部至少保留一個 `first_party` 與一個 `cross_check` 來源。`tests/unit/curated-catalog.test.ts` 鎖定來源數量、角色、語言、HTTPS、核對日期、Mock URL 禁止條件,以及 legacy labels 與結構化 ledger 的一致性。

## 欄位決策

Expand Down
5 changes: 3 additions & 2 deletions docs/PROJECT_PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

## Current product scope

- 2026 夏季 70 套、2026 春季 70 套、2026 冬季 66 套、2025 夏季 75 套、2025 春季 82 套、2025 冬季 59 套、2024 秋季 88 套、2024 夏季 68 套、2024 春季 76 套、2024 冬季 75 套、2023 秋季 100 套、夏季 75 套、春季 79 套、冬季 72 套、2022 秋季 80 套、夏季 69 套、春季 79 套、冬季 58 套、2021 秋季 65 套、夏季 46 套、春季 73 套、冬季 67 套、2020 秋季 67 套、夏季 31 套、春季 61 套、冬季 58 套、2019 秋季 67 套、2019 夏季 42 套及 2019 春季 28 套非成人 TV/網絡連載作品;
- 跨季作品共用詳情頁,共 1,945 個唯一作品及 4,298 筆已審閱 OP/ED;
- 2026 夏季 70 套、2026 春季 70 套、2026 冬季 66 套、2025 夏季 75 套、2025 春季 82 套、2025 冬季 59 套、2024 秋季 88 套、2024 夏季 68 套、2024 春季 76 套、2024 冬季 75 套、2023 秋季 100 套、夏季 75 套、春季 79 套、冬季 72 套、2022 秋季 80 套、夏季 69 套、春季 79 套、冬季 58 套、2021 秋季 65 套、夏季 46 套、春季 73 套、冬季 67 套、2020 秋季 67 套、夏季 31 套、春季 61 套、冬季 58 套、2019 秋季 67 套、2019 夏季 42 套及 2019 春季 29 套非成人 TV/網絡連載作品;
- 跨季作品共用詳情頁,共 1,946 個唯一作品及 4,305 筆已審閱 OP/ED;
- 五個固定導覽入口、年代/年份/季度目錄、星期一至星期日及不定期分組、分頁本機搜尋、動畫詳情與同源 static JSON API;
- 每個季度、作品及歌曲公開來源、語言、review state 及核對日期;每首歌曲同時具備第一方/交叉核對來源;
- 官方/licensed YouTube 導航、明確第三方連線同意、來源歸屬及無圖 fallback;
Expand Down Expand Up @@ -72,6 +72,7 @@
- **v1.40.2 source**:較長的歌曲來源清單改為原生展開區,持續顯示來源數量、審閱狀態與日期;較少來源仍直接顯示,支援獨立展開、鍵盤與無 JavaScript 操作,歌曲、來源及 API 資料不變;發布證據見對應 GitHub Release。
- **v1.41.0 source**:2019 春季增加《鑽石王牌 act2》2019 年 TV 版、6 筆 OP/ED 與 6 筆官方影片 metadata;保留原始演唱者、CD 與 TV Size 日期、共同編曲及官方音源版本,春季共 28 套作品與 69 筆歌曲;發布證據見對應 GitHub Release。
- **v1.41.1 source**:作品頁、季度卡片、搜尋結果、連結標籤及結構化資料省略完全相同的名稱;保留所有不同寫法與原始搜尋/API 資料,支援無 JavaScript 閱讀;發布證據見對應 GitHub Release。
- **v1.42.0 source**:2019 春季增加《THE ORIGIN 前夜 赤い彗星》13 話電視重編版、7 筆 OP/ED 與 8 筆官方影片 metadata;保留翻唱名義、共同作詞與新編曲、數位/CD 發行日期及第 12 話片尾畫面版本,春季共 29 套作品與 76 筆歌曲;發布證據見對應 GitHub Release。
- 正式網站使用 custom domain;非正式 Cloudflare hostname 不在公開文檔記錄;
- 私有 backend、資料庫、crawler、帳戶設定、憑證與內部規則不屬於本公開 repository。

Expand Down
32 changes: 32 additions & 0 deletions docs/QA_V1_42_2019_SPRING_ORIGIN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# v1.42.0 source — 2019 春季 THE ORIGIN 電視版

核對日期:2026-09-07。本文件記錄 source 範圍與本機驗收;正式部署須另以固定版本核對。

## 範圍與來源

- 新增《機動戦士ガンダム THE ORIGIN 前夜 赤い彗星》2019 年 13 話電視重編版、3 首 OP、4 首 ED 及 8 筆官方影片 metadata。官方首集頁記錄 2019-04-29,NHK 播出時段為每週一 00:35;不使用早期 OVA 或其電影上映日。
- OP3 保留 LUNA SEA 翻唱、ED2 保留コムアイ、最終 ED 保留アイナ・ジ・エンド演唱;原曲作者與此次編曲者分開。ED1 保留兩位作詞者,前兩首 OP 未核對的製作署名維持空值。
- 發行日對應原始 CD 或完整版配信,ED 另註 TV Size。第 12 話的 ED3 畫面版本是同一首歌的第二筆影片;不增加一首重複 ED,也不把插曲、OVA 歌曲或 40 週年紀念曲收為本版 OP/ED。
- 繁中顯示名依 YourAnimes 公開條目交叉核對,保留其原有混合日文寫法,不宣稱為地區官方譯名。歌曲次序由 UZUREA 交叉核對;其 OP3 藝人混列問題由動畫官方與 SUNRISE Music 的 LUNA SEA 署名釐清。
- 全目錄共 29 季、1,946 個唯一作品、4,305 筆 OP/ED 與 1,802 筆官方/正式授權影片 metadata;春季共 29 套作品、76 筆歌曲。春、夏季仍在補充,2025 秋季尚未收錄。

主要證據:

- [動畫官方 TV 版介紹及 OP/ED](https://www.gundam-the-origin.net/tv/) · [官方首集](https://www.gundam-the-origin.net/tv/episodes01.html) · [YourAnimes](https://youranimes.tw/animes/4690) · [UZUREA](https://uzurea.net/vc/187936/)
- [前兩首 OP 的 CD](https://www.sunrise-music.co.jp/list/detail.php?id=447) · [OP3](https://www.sunrise-music.co.jp/list/detail.php?id=448) · [ED1](https://www.sunrise-music.co.jp/list/detail.php?id=4) · [ED2](https://www.sunrise-music.co.jp/list/detail.php?id=8) · [ED3](https://www.sunrise-music.co.jp/list/detail.php?id=445) · [ED4](https://www.sunrise-music.co.jp/list/detail.php?id=446)
- [第 12 話片尾版本公告](https://www.gundam-the-origin.net/news/index.php?offset=45)

只保存必要事實、來源連結與官方影片 metadata;沒有新增圖片來源,也沒有下載或重新託管媒體、歌詞及頁面原文。所有新增歌曲保留第一方、交叉核對來源、語言與核對日期。

## 驗收

- `npm run catalog:check`:207 項通過;`npm run check`:公開邊界、Lint、305 項單元測試、建置、Cloudflare dry-run 及 35 項 Playwright 測試通過,最終瀏覽器測試沒有重試。
- 完整依賴與正式依賴稽核均為 0 項漏洞;既有 fast-uri 修補與回歸測試繼續通過。dry-run 沒有 runtime bindings。
- 產生 1,990 份 HTML,公開邊界檢查涵蓋 3,979 份產物。與前一 source 版本相比,1,974 份 API 逐位元相同;只更新春季清單並新增本作 API,沒有移除 API。
- 新增測試涵蓋 TV 重編版身份、七首歌曲及原始發行日、翻唱演唱者、共同作詞、創作者搜尋,以及 ED3 的兩個畫面版本。瀏覽器測試以鍵盤載入第 12 話的受控影片 fixture,確認另一版本仍可獨立操作,操作前沒有 YouTube iframe 或連線。
- 1280、960、390 及 320px 共 20 個作品、歌曲及季度畫面檢查通過,沒有水平溢出、頁面錯誤或提前建立的 iframe。人工檢視長標題、翻唱署名、製作名單與影片標題的排列。
- 既有導覽、年份/季度篩選、分頁搜尋、無 JavaScript 瀏覽、離線閱讀、404 與錯誤狀態回歸通過。初次執行發現的舊總數斷言已更新,再以完整流程驗證。

## 發布界線

本機結果及分支建置不代表正式網站已更新。正式版本須另外核對合併 SHA、CI、Cloudflare 實際版本與流量,以及 live routes、headers、API 和產物內容;Lighthouse、實機裝置與實際 YouTube 播放不在本機測試的完成宣稱內。
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "anisonary",
"version": "1.41.1",
"version": "1.42.0",
"private": true,
"license": "SEE LICENSE IN LICENSING.md",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion src/data/curated-season-registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,7 @@ export const curatedSeasonRegistry = validateCuratedSeasonRegistry([
quarter: "spring",
titleZhHant: "春季動畫",
titleJa: "2019年春アニメ",
coverageNote: "本季正在補充,目前收錄 28 套 TV 作品(含電視短篇)。其餘作品、跨季延續及特殊歌曲版本仍待核對。",
coverageNote: "本季正在補充,目前收錄 29 套 TV 作品(含電視短篇及重編版)。其餘作品、跨季延續及特殊歌曲版本仍待核對。",
seeds: curated2019SpringSeeds,
animeIds: curated2019SpringAnimeIds
}
Expand Down
Loading