Merge pull request #68 from njzydark/patch-3

fix(utils/isTrackPlayable): songs that have been removed from the shelves cannot be played either
master
qier222 4 years ago committed by GitHub
commit cc953b31f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -47,7 +47,10 @@ export function getPlaylistDetail(id, noCache = false) {
method: "get", method: "get",
params, params,
}).then((data) => { }).then((data) => {
data.playlist.tracks = mapTrackPlayableStatus(data.playlist.tracks); data.playlist.tracks = mapTrackPlayableStatus(
data.playlist.tracks,
data.privileges || []
);
return data; return data;
}); });
} }

@ -34,7 +34,7 @@ export function getTrackDetail(ids) {
ids, ids,
}, },
}).then((data) => { }).then((data) => {
data.songs = mapTrackPlayableStatus(data.songs); data.songs = mapTrackPlayableStatus(data.songs, data.privileges);
return data; return data;
}); });
} }

@ -25,12 +25,21 @@ export function isTrackPlayable(track) {
) { ) {
result.playable = false; result.playable = false;
result.reason = "No Copyright"; result.reason = "No Copyright";
} else if (track.privilege?.st < 0) {
result.playable = false;
result.reason = "The song has been removed from the shelves";
} }
return result; return result;
} }
export function mapTrackPlayableStatus(tracks) { export function mapTrackPlayableStatus(tracks, privileges = []) {
return tracks.map((t) => { return tracks.map((t) => {
const privilege = privileges.find((item) => item.id === t.id) || {};
if (t.privilege) {
Object.assign(t.privilege, privilege);
} else {
t.privilege = privilege;
}
let result = isTrackPlayable(t); let result = isTrackPlayable(t);
t.playable = result.playable; t.playable = result.playable;
t.reason = result.reason; t.reason = result.reason;

Loading…
Cancel
Save