fix(qq-fm): guard FM start when offline + reset radar page on re-login [#88 review]

- startFm() now refuses with 'Bot is not connected to TeamSpeak' before mutating the
  queue, so POST /api/player/:id/fm can no longer wipe the queue and flip the bot into
  FM mode while disconnected (the !fm chat command already had this guard).
- The /fm route's success detection also treats 'not connected' as a failure so the
  toast type is correct.
- QQMusicProvider.setCookie() resets radarPage to 1 so a re-login with a different
  account no longer inherits the previous account's radar pagination cursor.
This commit is contained in:
saopig1 committed 2026-06-16 14:48:01 +08:00
1 parent 9bfe831022
commit 6e10764d28
3 files changed
+16 -1

No files matched your search

+6
View File
@@ -747,6 +747,12 @@ export class BotInstance extends EventEmitter {
}
async startFm(provider: MusicProvider = this.neteaseProvider): Promise<string> {
// Match the !fm chat-command guard: refuse before mutating the queue when
// offline, so the web /fm route can't wipe the queue + flip into FM mode
// while nothing can actually play.
if (!this.connected) {
return "Bot is not connected to TeamSpeak";
}
if (!provider.getPersonalFm) {
return `Personal FM is not available for ${provider.platform}`;
}