Files
glass-player/src/datasrc/Kugou.js
T
2023-11-10 17:11:09 +08:00

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 }