mirror of
https://github.com/ZHANGTIANYAO1/teamspeak-music-bot.git
synced 2026-10-02 21:12:49 +08:00
feat: expose vip flag on Song for trial-only detection
Add optional vip?: boolean to the Song interface so downstream clients (e.g. PowerfulTS) can mark copyright-restricted songs that non-VIP users can only play as a trial fragment, before playback starts. - provider.ts: add optional vip?: boolean (backward compatible) - netease.ts: extract mapNeteaseSongs() pure fn; map fee to vip (1=VIP, 4=album-only). fee=8 (free low-quality) is excluded because it plays in full, just at lower quality. - qq.ts: mapQqSongs() maps pay.payplay/paytrackprice to vip (one fix covers all callers); getDailyRecommendSongs inline mapping too. - tests: vip mapping assertions for netease fee (1/4=vip, 0/8=free) and qq pay fields.
This commit is contained in:
1 parent
06aaec4ba5
commit
7b2bd0ea6a
5 files changed
+62
-59
No files matched your search
@@ -22,10 +22,24 @@ describe("QQ adapter", () => {
|
||||
duration: 243,
|
||||
coverUrl: "https://y.gtimg.cn/music/photo_new/T002R300x300M000alb001.jpg",
|
||||
platform: "qq",
|
||||
vip: false,
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
it("mapQqSongs maps pay field to vip flag", () => {
|
||||
const out = mapQqSongs([
|
||||
{ mid: "v1", name: "VIP playplay", singer: [], album: {}, interval: 100, pay: { payplay: 1, paytrackprice: 0 } },
|
||||
{ mid: "v2", name: "VIP trackprice", singer: [], album: {}, interval: 100, pay: { payplay: 0, paytrackprice: 1 } },
|
||||
{ mid: "f1", name: "Free", singer: [], album: {}, interval: 100, pay: { payplay: 0, paytrackprice: 0 } },
|
||||
{ mid: "f2", name: "No pay field", singer: [], album: {}, interval: 100 },
|
||||
]);
|
||||
expect(out[0].vip).toBe(true);
|
||||
expect(out[1].vip).toBe(true);
|
||||
expect(out[2].vip).toBe(false);
|
||||
expect(out[3].vip).toBe(false);
|
||||
});
|
||||
|
||||
it("mapQqAlbums maps albumMID-style raw entries", () => {
|
||||
const raw = [
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user