feat(spotify): expose provider through web music/auth routers

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
saopig1andClaude Opus 4.8 committed 2026-07-02 00:19:22 +08:00
1 parent 9a9f68c446
commit e1171dbcfe
3 files changed
+13 -4

No files matched your search

+3 -1
View File
@@ -12,7 +12,8 @@ export function createAuthRouter(
bilibiliProvider: MusicProvider,
logger: Logger,
cookieStore?: CookieStore,
kugouProvider?: MusicProvider
kugouProvider?: MusicProvider,
spotifyProvider?: MusicProvider
): Router {
const router = Router();
// YouTube is auth-less; we only use this instance so /auth/status can
@@ -23,6 +24,7 @@ export function createAuthRouter(
if (platform === "bilibili") return bilibiliProvider;
if (platform === "youtube") return youtubeProvider;
if (platform === "kugou" && kugouProvider) return kugouProvider;
if (platform === "spotify" && spotifyProvider) return spotifyProvider;
return platform === "qq" ? qqProvider : neteaseProvider;
}
+7 -1
View File
@@ -14,7 +14,8 @@ export function createMusicRouter(
logger: Logger,
localProvider?: MusicProvider,
config?: BotConfig,
kugouProvider?: MusicProvider
kugouProvider?: MusicProvider,
spotifyProvider?: MusicProvider
): Router {
const router = Router();
const youtubeProvider: MusicProvider = new YouTubeProvider();
@@ -28,6 +29,7 @@ export function createMusicRouter(
if (platform === "youtube") return youtubeProvider;
if (platform === "local" && localProvider) return localProvider;
if (platform === "kugou" && kugouProvider) return kugouProvider;
if (platform === "spotify" && spotifyProvider) return spotifyProvider;
return platform === "qq" ? qqProvider : neteaseProvider;
}
@@ -291,6 +293,7 @@ export function createMusicRouter(
bilibili: bilibiliProvider.getQuality(),
local: localProvider?.getQuality() ?? "original",
kugou: kugouProvider?.getQuality() ?? "128",
spotify: spotifyProvider?.getQuality() ?? "320",
});
});
@@ -313,6 +316,9 @@ export function createMusicRouter(
if ((!platform || platform === "kugou") && kugouProvider) {
kugouProvider.setQuality(quality);
}
if ((!platform || platform === "spotify") && spotifyProvider) {
spotifyProvider.setQuality(quality);
}
logger.info({ quality, platform }, "Audio quality changed");
res.json({ success: true, quality });
});