Files
Melo/src/renderer/utils/music/xm/comment.js
T
2020-10-24 02:08:31 +08:00

48 lines
2.0 KiB
JavaScript

import { xmRequest } from './util'
import { dateFormat2 } from '../../'
export default {
_requestObj: null,
_requestObj2: null,
async getComment({ songmid }, page = 1, limit = 20) {
if (this._requestObj) this._requestObj.cancelHttp()
const _requestObj = xmRequest('/api/comment/getCommentList', { objectId: songmid, objectType: 'song', pagingVO: { page, pageSize: limit } })
const { body, statusCode } = await _requestObj.promise
// console.log(body)
if (statusCode != 200 || body.code !== 'SUCCESS') throw new Error('获取评论失败')
return { source: 'xm', comments: this.filterComment(body.result.data.commentList), total: body.result.data.pagingVO.count, page, limit, maxPage: Math.ceil(body.result.data.pagingVO.count / limit) || 1 }
},
async getHotComment({ songmid }, page = 1, limit = 100) {
if (this._requestObj2) this._requestObj2.cancelHttp()
if (!songmid) throw new Error('获取失败')
const _requestObj2 = xmRequest('/api/comment/getHotCommentList', { objectId: songmid, objectType: 'song', pagingVO: { page, pageSize: limit } })
const { body, statusCode } = await _requestObj2.promise
// console.log(body)
if (statusCode != 200 || body.code !== 'SUCCESS') throw new Error('获取热门评论失败')
return { source: 'xm', comments: this.filterComment(body.result.data.hotList) }
},
filterComment(rawList) {
return rawList.map(item => ({
id: item.commentId,
text: item.message.split('\n').filter(t => !!t),
time: item.gmtCreate,
timeStr: dateFormat2(item.gmtCreate),
userName: item.nickName,
avatar: item.avatar,
userId: item.userId,
likedCount: item.likes,
reply: item.replyData ? item.replyData.map(c => ({
id: c.commentId,
text: c.message.split('\n').filter(t => !!t),
time: c.gmtCreate,
timeStr: dateFormat2(c.gmtCreate),
userName: c.nickName,
avatar: c.avatar,
userId: c.userId,
likedCount: c.likes,
})) : [],
}))
},
}