1.1.0帳號電子郵件與驗證
目前版本註冊現在需要一個電子郵件地址,並且會先驗證再建立帳號;站長也有了會員帳號清單。
- 註冊會寄一組 6 位數驗證碼到填寫的信箱,輸入正確後才會建立帳號——在此之前資料庫裡沒有任何帳號。
- 變更電子郵件同樣需要驗證碼,並且要先通過與刪除帳號相同的身分證明;完成後會通知舊地址,並登出其他所有裝置。
- 在此之前建立的帳號沒有電子郵件,可以繼續正常使用,不會被任何功能擋住。
- 第三方登入沿用該服務提供的地址,只有在對方明確表示已驗證時才標記為已驗證。
- 寄信有額度限制:每個地址每天最多 3 組驗證碼,每個瀏覽器每天最多 3 個不同地址,全站每小時 40 封。
- 後台新增會員帳號清單:電子郵件預設遮蔽、每次顯示都會記錄,並可停用、強制重設密碼或刪除帳號。清單不會顯示密碼,資料庫裡也沒有明文密碼可以顯示。
- 刪除帳號現在會一併清除頭像、個人設定、聊天訊息與待驗證的資料列——這些過去不會被連帶刪除。
1.0.0招募看板
五個看板,各自有貼文、篩選器與每帖聊天串,背後是與全站其他功能相同的本地資料庫。
- 組隊、好友與俱樂部招募看板,加上綜合討論與主題看板。
- 每則貼文都附有聊天串;發送訊息會把貼文頂回看板最上方。
- 招募貼文可填寫模式、獎盃門檻、最低排位段位與語言;每個看板都能依模式、獎盃門檻、語言與狀態篩選。
- 發文表單上的段位門檻欄位,選項來自本站台實際觀測過的排位段位名稱,因此不會列出已經不存在的段位。
- 發文需要帳號;作者可以在結束後關閉貼文,或直接刪除。
- 刪除帳號後看板貼文仍會保留,資料列上記錄著作者名稱——詳見隱私權政策。
0.4.0真實的排位、威望與聲望欄位
官方 API 其實有提供幾個本站過去自行推估的欄位。那些推估值已直接刪除,而不是留作備援。
- 每位玩家會儲存排位段位索引、段位名稱、elo 與賽季 id,以及賽季與歷來最高紀錄。
- 總威望等級、聲望與聲望階級以實測值儲存並顯示。
- 各英雄的威望等級、目前連勝與最長連勝,以及裝備中的造型都會被索引。
- 排位段位名稱表改由觀測到的玩家檔案學習而來,不再寫死;Supercell 改名後不會留下過時的標籤。
- 裝備造型會依玩家與英雄分別記錄,造型使用率排行統計的正是這份資料。
- 既有安裝會透過明確的 ALTER 步驟套用新欄位,升級不必捨棄資料庫。
- 「排位分數是推估值」的公告已改為「排位分數、威望等級與聲望改為直接讀取 API」;在該修正之前就完成種子資料的安裝也會就地更新。
0.3.0英雄名冊改由官方 API 同步
內建英雄清單不再手動維護。同步腳本會抓取線上名冊,寫出一份由應用程式匯入的生成檔。
- npm run sync 會從官方 API 抓取名冊並重新產生內建資料檔。
- 每位英雄都帶著真實的星徽能力、小工具、超級充能與裝備,id 與名稱皆為真實資料。
- 稀有度與定位是 API 唯一沒提供的欄位;它們由另一張表依名稱查出,查不到就維持未知,而不是用猜的。
- 比那張表更新的英雄會以中性灰顯示、排除在稀有度統計之外,另有檢查腳本列出尚待分類的項目。
- 英雄、玩家頭像、俱樂部徽章與地圖圖片由開放的 Brawlify CDN 提供,資源缺漏時會退回字母色塊。
0.2.0串接即時 API 與更新佇列
本站從讀取展示資料,變成持續輪詢官方 API,並為看過的內容維護自己的索引。
- 單一 API 模組包裝官方端點;頁面只和服務層溝通,服務層會回報數值來自 API、本地快取還是展示資料產生器。
- 玩家與俱樂部檔案會在 SQLite 短暫快取,API 失敗時改由快取供應,被限流也不會讓頁面開天窗。
- 優先更新佇列會積極輪詢書籤與最近瀏覽過的帳號,其餘帳號放慢速度;共用的令牌桶讓整個程序不超過 API 速率限制。
- 每次抓取都會封存對戰紀錄——API 永遠只回傳最近 25 場——並彙整成角色強度榜讀取的每日統計。
- 帶著金鑰第一次啟動時,會走訪八個國家的官方排行榜,讓名稱搜尋立刻有資料可查。
- 背景同步在長駐伺服器上於程序內執行;無法維持排程的平台則由外部排程器透過 cron 端點觸發。
- 手動更新附有每個標籤的冷卻時間;健康端點回報索引大小、佇列深度與最近一次 API 錯誤,並對綁定 IP 的金鑰失敗給出明確提示。
- 在設定金鑰之前種下的展示資料,會在真金鑰出現的那一刻全數清除。
0.1.0初始版本
本站的基本骨架:路由、翻譯、元件語彙與本地資料庫。
- 帶語系前綴的 App Router 頁面,支援繁體中文、簡體中文、英文與日文;語系由 middleware 先看 cookie、再看 Accept-Language 協商。
- 一小組共用 UI 元件與五種手寫 SVG 圖表——沒有元件庫,也沒有圖表庫。
- 深色與淺色主題完全由 CSS 變數驅動,選擇記在瀏覽器裡,並在首次繪製前套用。
- 玩家與俱樂部頁面、標籤與名稱搜尋、角色強度榜、排行榜、各種計算機與地圖輪替。
- 使用 Node 內建繫結的 SQLite,存放帳號、書籤、瀏覽紀錄與玩家、俱樂部目錄。
- 不需要電子郵件的帳號:使用者名稱、以 scrypt 雜湊的密碼與工作階段 cookie。
- 具確定性的展示模式,在 API 金鑰存在之前就能完整瀏覽整個網站。