Skip to content

Commit

Permalink
更新 netease.js
Browse files Browse the repository at this point in the history
修复网易云音乐导入歌单超过1000首时失败问题
  • Loading branch information
YueShangGuan committed Aug 25, 2020
1 parent 4929633 commit 13066b1
Showing 1 changed file with 48 additions and 29 deletions.
77 changes: 48 additions & 29 deletions js/provider/netease.js
Original file line number Diff line number Diff line change
Expand Up @@ -205,36 +205,55 @@ function build_netease() {
}

function ng_parse_playlist_tracks(playlist_tracks, hm, se, callback) {
const target_url = 'https://music.163.com/weapi/v3/song/detail';
const track_ids = playlist_tracks.map(i=>i.id);
const d = {
c: '[' + track_ids.map(id => ('{"id":' + id + '}')).join(',') + ']',
ids: '[' + track_ids.join(',') + ']'
var list = playlist_tracks;
var count = Math.ceil(list.length / 1000);
var nowCount = 0;
var playList = [];
function ng_parse_playlist_tracks_getData(playlist_tracks, hm, se, callback, index) {
const target_url = 'https://music.163.com/weapi/v3/song/detail';
const track_ids = playlist_tracks.map(i => i.id);
const d = {
c: '[' + track_ids.map(id => ('{"id":' + id + '}')).join(',') + ']',
ids: '[' + track_ids.join(',') + ']'
}
const data = _encrypted_request(d);
hm({
url: target_url,
method: 'POST',
data: se(data),
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
}).then((response) => {
return callback(index, response.data.songs.map(track_json => ({
id: `netrack_${track_json.id}`,
title: track_json.name,
artist: track_json.ar[0].name,
artist_id: `neartist_${track_json.ar[0].id}`,
album: track_json.al.name,
album_id: `nealbum_${track_json.al.id}`,
source: 'netease',
source_url: `http://music.163.com/#/song?id=${track_json.id}`,
img_url: track_json.al.picUrl,
url: `netrack_${track_json.id}`,
})));
});
}
function cb(index, data) {
nowCount++;
playList[index] = data;
if (count == nowCount) {
var _playList = [];
for (var i = 0; i < playList.length; i++) {
_playList = _playList.concat(playList[i]);
}
return callback(null, _playList);
}
}
for (var i = 0; i < count; i++) {
playlist_tracks = list.slice(i * 1000, (i + 1) * 1000);
ng_parse_playlist_tracks_getData(playlist_tracks, hm, se, cb, i)
}
const data = _encrypted_request(d);
hm({
url: target_url,
method: 'POST',
data: se(data),
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
}).then((response)=>{
const tracks = response.data.songs.map(track_json=>({
id: `netrack_${track_json.id}`,
title: track_json.name,
artist: track_json.ar[0].name,
artist_id: `neartist_${track_json.ar[0].id}`,
album: track_json.al.name,
album_id: `nealbum_${track_json.al.id}`,
source: 'netease',
source_url: `http://music.163.com/#/song?id=${track_json.id}`,
img_url: track_json.al.picUrl,
url: `netrack_${track_json.id}`,
}));

return callback(null, tracks);
});
}

function ne_get_playlist(url, hm, se) {
Expand Down

0 comments on commit 13066b1

Please sign in to comment.