| fetch: function(source) { |
| var list = [] |
| |
| return new Promise(function(resolve, reject) { |
| source.forEach(function(raw) { |
| var meta = utils.parse(raw) |
| if(meta[0]) { |
| var skey = JSON.stringify(meta) |
| var playlist = store.get(skey) |
| if(playlist) { |
| \t\t\t\t |
| \t\t\t // 自己修改 - start |
| \t\t\t var audioInfos = JSON.parse(playlist); |
| \t\t\t if (meta[0] == \"netease\" && audioInfos && audioInfos.length>0) {// 如果是网易音乐就自己构建 url |
| \t\t\t\t var _status = 0; |
| \t\t\t\t vendorJs('fancybox', function() { |
| \t\t\t\t\t jQuery.ajax({ |
| \t\t\t\t\t\t url: audioInfos[0].url, |
| \t\t\t\t\t\t type: 'get', |
| \t\t\t\t\t\t async: false, |
| \t\t\t\t\t\t timeout: 5000, |
| \t\t\t\t\t\t success: function (data, textStatus) { |
| \t\t\t\t\t\t\t _status = 200; |
| \t\t\t\t\t\t }, |
| \t\t\t\t\t\t error: function(XMLHttpRequest, textStatus, errorThrown) { |
| \t\t\t\t\t\t\t _status = XMLHttpRequest.status; |
| \t\t\t\t\t\t }, |
| \t\t\t\t\t\t complete : function(XMLHttpRequest, status){ |
| \t\t\t\t\t\t\t _status = XMLHttpRequest.status; |
| \t\t\t\t\t\t } |
| \t\t\t\t\t }) |
| \t\t\t\t }, window.jQuery); |
| \t\t\t\t if (_status != 200) { |
| \t\t\t\t\t audioInfos.forEach(function(audioInfo) { |
| \t\t\t\t\t\t var id = audioInfo.url.substring(audioInfo.url.indexOf(\"id=\")+3, audioInfo.url.indexOf(\"&auth=\")); |
| \t\t\t\t\t\t audioInfo.url = \"https://music.163.com/song/media/outer/url?id=\" + id; |
| \t\t\t\t\t\t audioInfo.pic = \"https://p3.music.126.net/Vji3PQJAZ2C7gS_6X51NFQ==/109951164723650033.jpg?param=200y200\"; |
| \t\t\t\t\t }) |
| \t\t\t\t } |
| \t\t\t } |
| \t\t\t // 自己修改 - end |
| |
| list.push.apply(list, audioInfos); |
| resolve(list); |
| } else { |
| fetch('https://api.i-meto.com/meting/api?server='+meta[0]+'&type='+meta[1]+'&id='+meta[2]+'&r='+ Math.random()) |
| .then(function(response) { |
| return response.json() |
| }).then(function(json) { |
| store.set(skey, JSON.stringify(json)) |
| list.push.apply(list, json); |
| resolve(list); |
| }).catch(function(ex) {}) |
| } |
| } else { |
| list.push(raw); |
| resolve(list); |
| } |
| }) |
| }) |
| } |