diff --git a/module/relay_play_state_submit.js b/module/relay_play_state_submit.js new file mode 100644 index 0000000..3b948e8 --- /dev/null +++ b/module/relay_play_state_submit.js @@ -0,0 +1,49 @@ +// 提交歌曲播放状态 + +const createOption = require('../util/option.js') +const generateSessionId = () => + Array.from( + { length: 12 }, + () => + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'[Math.floor(Math.random() * 36)], + ).join('') + +module.exports = (query, request) => { + const { + id, + sessionId, + progress = 0, + playMode = 'list_loop', + type = 'song', + } = query + + if (!id) { + return Promise.reject({ + status: 400, + body: { + code: 400, + msg: '缺少必要参数:id', + }, + }) + } + + const playStateSubmitReq = JSON.stringify({ + resource: { + id: String(id), + type: type, + }, + progress: Number(progress) || 0, + sessionId: sessionId || generateSessionId(), + playMode: playMode, + }) + + const data = { + playStateSubmitReq: playStateSubmitReq, + } + + return request( + '/api/relay/play/state/submit', + data, + createOption(query, 'weapi'), + ) +} diff --git a/public/docs/home.md b/public/docs/home.md index dba5c69..8e611d9 100644 --- a/public/docs/home.md +++ b/public/docs/home.md @@ -2492,6 +2492,18 @@ privilege:权限相关信息 **调用例子 :** `/scrobble?id=518066366&sourceid=36780169&time=291` +### 提交歌曲播放状态 + +说明 : 调用此接口可提交歌曲播放状态,支持会话追踪和播放模式记录,未传入 `sessionId` 时后端会自动生成 + +**必选参数 :** `id`: 歌曲 id + +**可选参数 :** `sessionId`: 播放会话 ID(12 位大写字母和数字),不传则自动生成, `progress`: 播放进度(秒),默认 0, `playMode`: 播放模式,默认 `list_loop`, `type`: 资源类型,默认 `song` + +**接口地址 :** `/relay/play/state/submit` + +**调用例子 :** `/relay/play/state/submit?id=518066366&progress=30` + ### 热门歌手 说明 : 调用此接口 , 可获取热门歌手数据