根本原因: 專案缺少說明文件;bundle 為單一 910KB 主檔改版快取效率差,且每次開頁 與連續操作都會重複呼叫 Google Sheets API。 影響: 主 chunk 降至 216KB(react/antd 拆出可長期快取,jsrsasign 僅非安全來源 才動態載入);平台清單 sessionStorage 快取 5 分鐘、平台分頁記憶體快取 60 秒;機台圖片懶載入;InputNumber 改用 suffix 消除棄用警告。 修法: - vite.config.ts 加入 manualChunks 拆分 react / antd+dayjs - GoogleSheetService 加入兩層快取 - Image 元件預設 loading="lazy" - SDGame 三個 InputNumber 的 addonAfter 改為 suffix - 新增 README.md(功能、開發、技術備註、部署) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Line Project Bot
LINE 平台遊戲測試 Bot 控制台(LP_Bot 重構版)。選擇平台與環境後以 Line Token 登入,可進入機台自動 Spin 測試。
功能
- 登入頁:選擇平台(LP1、LC1...)與環境(Dev / B2B / Out)+ Line Token
- 平台清單與連線設定即時讀取 Google 試算表「專案_架構 Reference Guide」
- 「開遊戲」按鈕:直接開啟該平台「跳過維護阻擋(ver2.0 use)」網址
- 平台/環境/Token 皆記憶於 localStorage
- 下拉選單支援滑鼠滾輪切換選項
- 大廳:玩家資訊(aId / 暱稱 / 金幣)+ 機台清單(SD 機台有徽章標示)
- SD 機台 → 開啟自製 Spin 面板;其他機台 → 新視窗開啟 server 網址
- SD Spin 面板:押注、延遲、倍率停、轉數停設定 + Spin/Stop + Log 終端
開發
npm install
npm run dev # http://localhost:8000
npm run build # 輸出至 ./build
首次使用需將 Google service account 憑證放到 config/credentials.json
(格式參考 config/credentials.example.json,需有試算表唯讀權限)。
技術備註
- Vite + React 19 + antd 6,TypeScript
- 不可使用 React.StrictMode:開發模式雙重掛載會使 NetManagerSD 等靜態單例的 socket 連線互相覆蓋,請求全部失敗(status:-1)
- Google Sheets 讀取為純前端:service account 簽 JWT 換 token; 非安全來源(區網 IP http)無 WebCrypto 時自動 fallback 至 jsrsasign
- SD socket 協定:依 gameUrl 本身的協定決定 ws/wss(bot 頁面協定不可靠)
- Spin 需帶
mode:0的機台:1310、1311、1801、1803、1804、1805 (特例類別在src/define/Game/SlotXXXX.ts,依 SD3 客戶端原始碼)- 新增特例:建立類別檔覆寫
SpinMode,並在src/define/Game/Base/Slot.ts匯出
- 新增特例:建立類別檔覆寫
- 遊戲表
build-templates/shared/jsons/來源:SD2-Dev/_Debug/shared/jsons - 連線參數可用網址參數強制覆寫:
?host=、?port=、?patch=、?downloadurl=、?liffid=
部署
npm run build
# 將 ./build 內容複製到網站目錄,例如 W:\web\MyWeb\Line_Project_Bot