Files
MusicServer/musicSdk/mg/album.js
T

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,
}
},
}