playlist_track_all.js 964 B

1234567891011121314151617181920212223242526272829303132333435
  1. // 通过传过来的歌单id拿到所有歌曲数据
  2. // 支持传递参数limit来限制获取歌曲的数据数量 例如: /playlist/track/all?id=7044354223&limit=10
  3. const createOption = require('../util/option.js')
  4. module.exports = (query, request) => {
  5. const data = {
  6. id: query.id,
  7. n: 100000,
  8. s: query.s || 8,
  9. }
  10. //不放在data里面避免请求带上无用的数据
  11. let limit = parseInt(query.limit) || Infinity
  12. let offset = parseInt(query.offset) || 0
  13. return request(`/api/v6/playlist/detail`, data, createOption(query)).then(
  14. (res) => {
  15. let trackIds = res.body.playlist.trackIds
  16. let idsData = {
  17. c:
  18. '[' +
  19. trackIds
  20. .slice(offset, offset + limit)
  21. .map((item) => '{"id":' + item.id + '}')
  22. .join(',') +
  23. ']',
  24. }
  25. return request(
  26. `/api/v3/song/detail`,
  27. idsData,
  28. createOption(query, 'weapi'),
  29. )
  30. },
  31. )
  32. }