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.51.0 — 2019 春季《叛逆性百萬亞瑟王 第二季》

- 收錄第二季 TV 版的 OP〈OPEN THE WORLDS〉及 ED〈PEARLY×PARTY〉,保留原演唱組合、CD 日期及 OP 的先行配信日期。
- 新增 Lantis 官方完整片頭 MV;第一季歌曲、插曲、單曲附加曲及 ORESAMA 的 Funkapop 改編版不作本季 OP/ED,未核對的個別演唱及製作署名維持空白。
- 春季共 35 套作品、101 筆 OP/ED;本季與夏季仍在補充,2025 秋季尚未收錄。

## v1.50.0 — 2019 春季《灰姑娘女孩劇場 CLIMAX SEASON》

- 收錄 2019 年 TV 短篇系列與四、五、六月的三首輪替 ED;保留五人合唱名義、個別演唱者、已核對製作署名及 CD 完整版日期。
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,951 unique titles and 4,328 known OP/ED records. The 2019 spring snapshot contains thirty-four 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.
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,952 unique titles and 4,330 known OP/ED records. The 2019 spring snapshot contains thirty-five 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.50.0**。新增 2019 春季《灰姑娘女孩劇場 第四季:CLIMAX SEASON》、三首每月輪替 ED 與官方試聽短版,保留五人合唱名義及各人署名。目錄共有 29 個季度、1,951 套作品與 4,328 筆 OP/ED;春季為 34 套作品、99 筆歌曲,春、夏季仍在補充,2025 秋季尚未收錄。
目前 source 版本:**v1.51.0**。新增 2019 春季《叛逆性百萬亞瑟王 第二季》的 OP/ED 與官方片頭 MV,區分原演唱組合、改編版及配信/CD 日期。目錄共有 29 個季度、1,952 套作品與 4,330 筆 OP/ED;春季為 35 套作品、101 筆歌曲,春、夏季仍在補充,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.50.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) |
| 公開靜態目錄 / Public static catalogue | Source 版本為 `v1.51.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 春季目前整理 34 套 TV 作品(含電視短篇及重編版),夏季整理 38 套 TV 作品及 4 套網絡連載;兩季的其他作品、跨季延續與特殊歌曲仍待核對;`coverageNote` 會在季度頁及 API 公開說明本季範圍。
2019 春季目前整理 35 套 TV 作品(含電視短篇及重編版),夏季整理 38 套 TV 作品及 4 套網絡連載;兩季的其他作品、跨季延續與特殊歌曲仍待核對;`coverageNote` 會在季度頁及 API 公開說明本季範圍。

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

## 欄位決策

Expand Down
4 changes: 2 additions & 2 deletions docs/DATA_SOURCES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ repository 的 Apache-2.0 軟件授權範圍內,詳見

季度完整性定義為:在日本於該季度日曆月份首播的非成人 `TV`/`WEB` 連載動畫,包含短篇、新季度與分割 cour;排除劇場版、OVA、宣傳短片及 18+ 作品。正式播出/配信的獨立特別篇只有在至少兩個季度來源一致歸入該季、並有可追溯第一方發布時才收錄。若作品在季度開始前數日先行發布,亦須由至少兩個季度目錄或主題曲索引一致歸入該季。同一作品跨季時共用一個詳情頁。

目前 repository 中已審閱的快照為:2026 夏季 70 套、2026 春季 70 套、2026 冬季 66 套、2025 夏季 75 套、2025 春季 82 套、2025 冬季 59 套、2024 秋季 88 套、2024 夏季 68 套、2024 春季 76 套、2024 冬季 75 套、2023 秋季 100 套、2023 夏季 75 套、2023 春季 79 套、2023 冬季 72 套、2022 秋季 80 套、2022 夏季 69 套、2022 春季 79 套、2022 冬季 58 套、2021 秋季 65 套、2021 夏季 46 套、2021 春季 73 套、2021 冬季 67 套、2020 秋季 67 套、2020 夏季 31 套、2020 春季 61 套、2020 冬季 58 套、2019 秋季 67 套、2019 夏季 42 套(38 套 TV、4 套網絡連載)及 2019 春季 34 套 TV 作品(含電視短篇及重編版),共 1,951 個作品詳情、4,328 筆 OP/ED 與 567 個歌曲層 YouTube 直連;其中 1,811 筆已保留官方或正式授權影片 metadata。
目前 repository 中已審閱的快照為:2026 夏季 70 套、2026 春季 70 套、2026 冬季 66 套、2025 夏季 75 套、2025 春季 82 套、2025 冬季 59 套、2024 秋季 88 套、2024 夏季 68 套、2024 春季 76 套、2024 冬季 75 套、2023 秋季 100 套、2023 夏季 75 套、2023 春季 79 套、2023 冬季 72 套、2022 秋季 80 套、2022 夏季 69 套、2022 春季 79 套、2022 冬季 58 套、2021 秋季 65 套、2021 夏季 46 套、2021 春季 73 套、2021 冬季 67 套、2020 秋季 67 套、2020 夏季 31 套、2020 春季 61 套、2020 冬季 58 套、2019 秋季 67 套、2019 夏季 42 套(38 套 TV、4 套網絡連載)及 2019 春季 35 套 TV 作品(含電視短篇及重編版),共 1,952 個作品詳情、4,330 筆 OP/ED 與 567 個歌曲層 YouTube 直連;其中 1,812 筆已保留官方或正式授權影片 metadata。

每季先以繁中年度動畫表的對應月份建立日曆清單,再與 Annict、Bangumi 及 AniList identifier 取聯集核對。OP/ED 以作品官網和官方 YouTube 為主,並用 AnimeThemes、UZUREA 與 UtaTen 等季度主題曲表交叉確認;季度歌曲索引未收錄的作品,須返回 Netflix、唱片公司、IP 官網、正式播出機構或製作公司等第一方頁面補證。台港正式代理、串流或出版社名稱優先;未有可確認的繁中名稱時保留原文,不宣稱為正式授權譯名。

2019 春、夏季仍在補充,2025 秋季尚未收錄;季度快照代表已核對範圍,不代表歷史作品或歌曲已全部補齊。

每首已發布歌曲在 `PublicTheme.sources[]` 留下 URL、語言、`first_party`/`cross_check` 角色及核對日期。二十九季快照的 4,328 筆歌曲都必須同時具備兩種角色;這是公開 provenance gate,不是 confidence score。第三方索引將歌曲標為 OP/ED、但第一方頁面只證實插曲、劇中歌、Victory Dance、其他節目用途、舊季度歌曲、其他改編版本或一般「主題歌」時,不把它升格為官方 OP/ED;在既有導航契約中保留的一般主題曲會明示「主題歌(官方分類)」。完整欄位與媒體邊界見 [`DATA_PROVENANCE.md`](./DATA_PROVENANCE.md)。
每首已發布歌曲在 `PublicTheme.sources[]` 留下 URL、語言、`first_party`/`cross_check` 角色及核對日期。二十九季快照的 4,330 筆歌曲都必須同時具備兩種角色;這是公開 provenance gate,不是 confidence score。第三方索引將歌曲標為 OP/ED、但第一方頁面只證實插曲、劇中歌、Victory Dance、其他節目用途、舊季度歌曲、其他改編版本或一般「主題歌」時,不把它升格為官方 OP/ED;在既有導航契約中保留的一般主題曲會明示「主題歌(官方分類)」。完整欄位與媒體邊界見 [`DATA_PROVENANCE.md`](./DATA_PROVENANCE.md)。

## 固定來源

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 春季 34 套非成人 TV/網絡連載作品;
- 跨季作品共用詳情頁,共 1,951 個唯一作品及 4,328 筆已審閱 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 春季 35 套非成人 TV/網絡連載作品;
- 跨季作品共用詳情頁,共 1,952 個唯一作品及 4,330 筆已審閱 OP/ED;
- 五個固定導覽入口、年代/年份/季度目錄、星期一至星期日及不定期分組、分頁本機搜尋、動畫詳情與同源 static JSON API;
- 每個季度、作品及歌曲公開來源、語言、review state 及核對日期;每首歌曲同時具備第一方/交叉核對來源;
- 官方/licensed YouTube 導航、明確第三方連線同意、來源歸屬及無圖 fallback;
Expand Down Expand Up @@ -85,6 +85,7 @@
- **v1.49.1 source**:改善淺色文字、來源與選取狀態的對比,深色 OP/ED 標籤及滑鼠移入按鈕使用適合彩色背景的文字;搜尋提示更清楚,首頁標題可換行以避免平板溢出,全域導覽、歌曲資料與 API 不變,發布證據見對應 GitHub Release。
- **v1.49.2 source**:手機首頁優先呈現介紹、季度/年份及搜尋入口,縮短首屏間距,較大版面保留示意圖;支援原生目錄與無 JavaScript 導覽,資料與 API 不變,發布證據見對應 GitHub Release。
- **v1.50.0 source**:2019 春季增加《灰姑娘女孩劇場 第四季:CLIMAX SEASON》與 3 首月替 ED、3 筆官方試聽 metadata;保留角色合唱、個別演唱者與 CD 日期,遊戲限定短篇、CD 獨唱混音及附加曲不作 TV 歌曲,春季共 34 套作品與 99 筆歌曲;發布證據見對應 GitHub Release。
- **v1.51.0 source**:2019 春季增加《叛逆性百萬亞瑟王 第二季》、2 筆 OP/ED 及 1 筆官方片頭 MV metadata;區分原演唱組合、改編版與配信/CD 日期,未核對的個別演唱及製作署名維持空白。春季共 35 套作品與 101 筆歌曲;發布證據見對應 GitHub Release。
- 正式網站使用 custom domain;非正式 Cloudflare hostname 不在公開文檔記錄;
- 私有 backend、資料庫、crawler、帳戶設定、憑證與內部規則不屬於本公開 repository。

Expand Down
27 changes: 27 additions & 0 deletions docs/QA_V1_51_2019_SPRING_HANGYAKU.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# v1.51.0 QA:2019 春季《叛逆性百萬亞瑟王 第二季》

來源核對日期:2026-09-08。本切片新增一套 TV 作品、兩筆 OP/ED 及一筆官方影片 metadata。春季共 35 套作品、101 筆歌曲;春、夏季仍在補充,2025 秋季尚未收錄。

## 資料與來源

- [繁中季度清單](https://youranimes.tw/bangumi/201904)及[個別條目](https://youranimes.tw/animes/4282)交叉核對名稱、季度與完結狀態;[Happinet 官方新聞稿](https://prtimes.jp/main/html/rd/p/000000190.000031422.html)確認第二季於 2019-04-04、TOKYO MX 每週四 22:00 首播。與第一季及未放送特別篇分開,不把社群名稱宣稱為正式地區譯名。
- [ORESAMA 官方商品頁](https://www.orsm.jp/discography/open-the-worlds/)確認 OP〈OPEN THE WORLDS〉、詞曲編曲署名與 2019-04-24 CD 日期;[配信公告](https://www.orsm.jp/%E3%80%8Copen-the-worlds%E3%80%8D%E5%85%88%E8%A1%8C%E9%85%8D%E4%BF%A1%E6%B1%BA%E5%AE%9A/)分別保留 mora 2019-04-11 及其他平台 2019-04-18 的先行配信日期,沒有推定 TV Size 或轉用公告刊登日。
- [Bandai Namco Music Live 現行商品頁](https://catalog.bandainamcomusiclive.co.jp/release/68378/)確認 ED〈PEARLY×PARTY〉由パーリィ☆フェアリィ演唱、CD 日期為 2019-05-22。[歌曲索引](https://anison.online/anime/1105)交叉核對兩首用途。ORESAMA 的 Funkapop 改編版、單曲附加曲與插曲不作本季 OP/ED。
- OP 保留ぽん作詞、小島英也作曲及編曲。ED 的個別演唱者與製作署名尚缺足夠第一方證據,維持空白及「待核對」說明;不由角色配音表、組合成員或另一演唱版本推導。
- [Lantis 官方 MV](https://www.youtube.com/watch?v=0UmEg8PDV3Y)為 251 秒,核對公開標題、頻道及可嵌入狀態,只保存必要 metadata。ED 沒有新增影片;不可用連結不進入資料。
- 重新核對 Bandai Namco Music Live 商品目錄及權利頁,只取必要事實與來源連結,不複製頁面、曲目資料集、歌詞或媒體。舊商品連結若只導向目錄首頁,不當作現行個別商品證據。既有作品、歌曲及來源日期不變。

## 本機驗收

- `npm run catalog:check`:244 項通過。
- `npm run check -- -- --workers=1`:lint、347 項單元測試、建置、公開邊界檢查及 Cloudflare dry-run 通過;50 項 Playwright 全數通過,未使用重試。dry-run 沒有 runtime bindings。
- 完整及 production-only npm audit 均為零項已知漏洞;`fast-uri` 維持 3.1.6,八項相關安全回歸測試通過。
- 四項新資料測試先確認缺少作品時失敗,再驗證身份、原演唱版、缺項、日期、來源、影片、API 讀回及繁中/創作者搜尋。
- 作品識別與第一方作品來源各有可追溯的獨立證據;來源去重及既有公開資料契約不變。
- 新 E2E 涵蓋四種寬度的作品/創作者搜尋、歌曲篩選、OP 定位與焦點、三個發行日期、ED「Credits 待確認」及直接可見的來源;以 fixture 驗證影片同意,並核對 390px 無 JavaScript 的年份、季度與作品導覽。
- 與 v1.50.0 source 比較:1,980 份既有 API 逐位元相同,只更新春季清單並新增作品詳情,沒有移除;建置共 1,996 份 HTML、3,991 份公開產物。
- Chromium 檢查作品、OP、ED 與春季頁共 20 個畫面,涵蓋 1280、960、390、320px 及 390px 無 JavaScript;沒有水平溢出、頁面錯誤或操作前的 iframe/YouTube 請求。人工檢視桌面 OP、手機作品與 ED 截圖。

## 發布界線

本機與分支建置結果不代表正式網站已更新。發布時仍須核對合併 SHA、CI、Cloudflare 實際版本與流量,以及 live routes、headers、API 與產物內容。本切片未驗證實體裝置、Safari、Firefox、Lighthouse/Core Web Vitals 或實際 YouTube 播放。
Loading