mirror of
https://github.com/ZHANGTIANYAO1/teamspeak-music-bot.git
synced 2026-10-01 20:42:50 +08:00
Three small but real correctness fixes from auditing recent commits: 1. getPlayableSongIds returned an empty Set for both "endpoint failed" and "succeeded but all unplayable" — the caller couldn't tell which. Return Set | null now: null = error (fall through to sequential retry), empty Set = authoritative "all unplayable" (short-circuit to a clear message instead of wasting 20+ retries). 2. Web store: fetchHomeData unconditionally wrote lastFetchTime even when every fetch rejected (network blip, server down). That cached the failure for 5 minutes — user had to hard-reload to recover. Now only commit lastFetchTime if at least one auth-status call succeeded. 3. Settings profile section: if GET /profile failed, profileConfigs stayed undefined and the row showed "加载中..." forever. Track a per-bot error state and render an inline "加载失败 / 重试" link so the user can recover without page reload. Out of scope but documented: - ein=29 hardcoded in fetchCollectedPlaylists (no pagination yet — users with 30+ collected QQ playlists get truncated). - /play-song single-failure UX (returns "Cannot play" message but frontend ignores; needs a global toast/notification primitive). - NetEase has no analogous batch precheck (could surface same "click and wait silent" issue if user has region-restricted NetEase playlists). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>