100 lines
3.1 KiB
JavaScript
100 lines
3.1 KiB
JavaScript
import { urlFetch, parseLyric} from './Util';
|
|
|
|
//const host = 'https://node.dengtongyu.com';
|
|
const host = 'https://api.dengtongyu.com/music/kugou';
|
|
|
|
const searchUrl = host + '/songSearch';
|
|
|
|
const newSongUrl = host + '/newSong';
|
|
|
|
const songMassgeUrl = host + '/songMsg';
|
|
|
|
let getKugouSearchSongList = async function(keyWord,page,size) {
|
|
if(!keyWord) keyWord = '';
|
|
if(!page) page = 1;
|
|
if(!size) size = 10;
|
|
let url = searchUrl + '?keyword=' + keyWord + '&page=' + page + '&pagesize=' + size;
|
|
let response = await urlFetch(url);
|
|
|
|
try {
|
|
if(!response) {
|
|
return Promise.reject("返回数据为空");
|
|
}
|
|
let data = await response.json();
|
|
//console.log(data)
|
|
let songs = {};
|
|
songs.list = [];
|
|
songs.aggregation = [];
|
|
songs.page = 1;
|
|
|
|
if(data.result) {
|
|
let list = data.data.lists;
|
|
for (let index = 0; index < list.length; index++) {
|
|
let songMsg = {};
|
|
songMsg.Hash = list[index].FileHash;
|
|
songMsg.SongName = list[index].SongName;
|
|
songMsg.SingerName = list[index].SingerName;
|
|
songMsg.Duration = list[index].Duration;
|
|
|
|
songs.list.push(songMsg);
|
|
|
|
}
|
|
songs.aggregation = data.data.aggregation;
|
|
songs.page = data.data.page;
|
|
}
|
|
return songs;
|
|
} catch (err) {
|
|
return Promise.reject(err);
|
|
}
|
|
}
|
|
|
|
let getKugouNewSongList = async function() {
|
|
let url = newSongUrl + '?json=true';
|
|
let response = await urlFetch(url);
|
|
try {
|
|
let data = await response.json();
|
|
|
|
let songs = [];
|
|
if(data.result) {
|
|
let list = data.data;
|
|
for (let index = 0; index < list.length; index++) {
|
|
let songMsg = {};
|
|
songMsg.Hash = list[index].hash;
|
|
songMsg.SongName = list[index].filename.split(' - ')[1];
|
|
songMsg.SingerName = list[index].filename.split(' - ')[0];
|
|
songMsg.Duration = list[index].duration;
|
|
|
|
songs.push(songMsg);
|
|
}
|
|
}
|
|
return songs;
|
|
} catch (err) {
|
|
return Promise.reject(err);
|
|
}
|
|
}
|
|
|
|
let getKugouSongMassge = async function(hash) {
|
|
let url = songMassgeUrl + '?hash=' + hash;
|
|
let response = await urlFetch(url);
|
|
try {
|
|
let json = await response.json();
|
|
|
|
let songMassge = {};
|
|
|
|
if(json.result) {
|
|
songMassge.PlayUrl = json.data.play_url;
|
|
songMassge.SongName = json.data.song_name;
|
|
songMassge.SingerName = json.data.author_name;
|
|
songMassge.Img = json.data.img;
|
|
songMassge.Lyrics = json.data.lyrics ? parseLyric(json.data.lyrics) : [];
|
|
songMassge.AlbumName = json.data.album_name;
|
|
songMassge.Duration = Math.floor(json.data.timelength / 1000);
|
|
songMassge.Hash = json.data.hash;
|
|
}
|
|
return songMassge;
|
|
} catch(err) {
|
|
return Promise.reject(err);
|
|
}
|
|
}
|
|
|
|
export { getKugouNewSongList, getKugouSearchSongList, getKugouSongMassge } |