52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
import { createHttpFetch } from './utils/index.js'
|
|
import { filterMusicInfoList } from './musicInfo.js'
|
|
import { formatPlayCount } from '../index.js'
|
|
|
|
export default {
|
|
/**
|
|
* 通过AlbumId获取专辑
|
|
* @param {*} id
|
|
* @param {*} page
|
|
*/
|
|
async getAlbumDetail(id, page = 1) {
|
|
const list = await createHttpFetch(`http://app.c.nf.migu.cn/MIGUM2.0/v1.0/content/queryAlbumSong?albumId=${id}&pageNo=${page}`)
|
|
if (!list.songList) return Promise.reject(new Error('Get album list error.'))
|
|
|
|
const songList = filterMusicInfoList(list.songList)
|
|
const listInfo = await this.getAlbumInfo(id)
|
|
|
|
return {
|
|
list: songList || [],
|
|
page,
|
|
limit: listInfo.total,
|
|
total: listInfo.total,
|
|
source: 'mg',
|
|
info: {
|
|
name: listInfo.name,
|
|
img: listInfo.image,
|
|
desc: listInfo.desc,
|
|
author: listInfo.author,
|
|
play_count: listInfo.play_count,
|
|
},
|
|
}
|
|
},
|
|
/**
|
|
* 通过AlbumId获取专辑信息
|
|
* @param {*} id
|
|
* @param {*} page
|
|
*/
|
|
async getAlbumInfo(id) {
|
|
const info = await createHttpFetch(`https://app.c.nf.migu.cn/MIGUM3.0/resource/album/v2.0?albumId=${id}`)
|
|
if (!info) return Promise.reject(new Error('Get album info error.'))
|
|
|
|
return {
|
|
name: info.title,
|
|
image: info.imgItems.length ? info.imgItems[0].img : null,
|
|
desc: info.summary,
|
|
author: info.singer,
|
|
play_count: formatPlayCount(info.opNumItem.playNum),
|
|
total: info.totalCount,
|
|
}
|
|
},
|
|
}
|