diff --git a/package.json b/package.json index c3dd2fc..35f2494 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iease-music", - "version": "1.0.0", + "version": "1.0.1", "description": "这应该是最好的网易云音乐播放器了,没有之一,如果有请打醒 🤘", "main": "main.js", "scripts": { diff --git a/server/search/Baidu.js b/server/search/Baidu.js new file mode 100644 index 0000000..750bc99 --- /dev/null +++ b/server/search/Baidu.js @@ -0,0 +1,43 @@ + +import axios from 'axios'; +import _debug from 'debug'; + +const debug = _debug('dev:plugin:Baidu'); +const error = _debug('dev:plugin:Baidu:error'); + +export default async(keyword, artists) => { + debug(`Search '${keyword} - ${artists}' use Baidu library.`); + + var response = await axios.get('http://sug.music.baidu.com/info/suggestion', { + params: { + word: keyword, + version: 2, + from: 0, + } + }); + var songs = response.data.data.song; + var song = songs.find(e => artists.indexOf(e.artistname) > -1); + + if (!song) { + return false; + } + response = await axios.get('http://music.baidu.com/data/music/fmlink', { + params: { + songIds: song.songid, + type: 'mp3', + rate: '320', + }, + }); + + try { + song = { + src: response.data.data.songList[0].songLink, + }; + } catch (ex) { + // Anti-warnning + error('Failed to get song URL: %O', ex); + song = false; + } + + return song; +}; diff --git a/server/search/Kugou.js b/server/search/Kugou.js index 24919fb..400aecd 100644 --- a/server/search/Kugou.js +++ b/server/search/Kugou.js @@ -22,7 +22,7 @@ async function getURL(hash) { } export default async(keyword, artists) => { - debug(`Search '${keyword} - ${artists}' use Kugou plugin.`); + debug(`Search '${keyword} - ${artists}' use Kugou library.`); var response = await axios.get(`http://mobilecdn.kugou.com/api/v3/search/song?format=json&keyword=${encodeURIComponent(keyword)}&page=1&pagesize=1&showtype=1`); var data = response.data; diff --git a/server/search/QQ.js b/server/search/QQ.js index c66be9a..812c641 100644 --- a/server/search/QQ.js +++ b/server/search/QQ.js @@ -33,7 +33,7 @@ function getURL(data) { } export default async(keyword, artists) => { - debug(`Search '${keyword} - ${artists}' use QQ plugin.`); + debug(`Search '${keyword} - ${artists}' use QQ library.`); try { await updateVkey(); diff --git a/server/search/index.js b/server/search/index.js index e29b715..12a4b67 100644 --- a/server/search/index.js +++ b/server/search/index.js @@ -1,12 +1,13 @@ import QQ from './QQ'; import Kugou from './Kugou'; +import Baidu from './Baidu'; import _debug from 'debug'; const debug = _debug('plugin:'); export default (keyword, artists) => { - var plugins = [QQ, Kugou]; + var plugins = [Baidu, QQ, Kugou]; debug('Plugin has loaded, search: \'%s\', \'%s\'', keyword, artists);