diff --git a/lib/net/api.bili.js b/lib/net/api.bili.js index a032475..525fa82 100644 --- a/lib/net/api.bili.js +++ b/lib/net/api.bili.js @@ -5,7 +5,12 @@ module.exports = Object.freeze({ DYNAMIC_REPOST_SHARE: 'https://api.vc.bilibili.com/dynamic_repost/v1/dynamic_repost/share', DYNAMIC_SVR_CREATE_DRAW: 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create_draw', DYNAMIC_SVR_CREATE: 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/create', - DYNAMIC_SVR_GET_DYNAMIC_DETAIL: 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/get_dynamic_detail', + DYNAMIC_SVR_GET_DYNAMIC_DETAIL_V2: 'https://api.vc.bilibili.com/dynamic_svr/v2/dynamic_svr/get_dynamic_detail', + DYNAMIC_SVR_GET_DYNAMIC_DETAIL_V3: 'https://api.vc.bilibili.com/dynamic_svr/v3/dynamic_svr/get_dynamic_detail', + DYNAMIC_SVR_GET_DYNAMIC_DETAIL_V4: 'https://api.vc.bilibili.com/dynamic_svr/v4/dynamic_svr/get_dynamic_detail', + DYNAMIC_SVR_GET_DYNAMIC_DETAIL_V5: 'https://api.vc.bilibili.com/dynamic_svr/v5/dynamic_svr/get_dynamic_detail', + DYNAMIC_SVR_GET_DYNAMIC_DETAIL_V6: 'https://api.vc.bilibili.com/dynamic_svr/v6/dynamic_svr/get_dynamic_detail', + DYNAMIC_SVR_GET_DYNAMIC_DETAIL_V7: 'https://api.vc.bilibili.com/dynamic_svr/v7/dynamic_svr/get_dynamic_detail', DYNAMIC_SVR_RM_DYNAMIC: 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/rm_dynamic', DYNAMIC_SVR_SPACE_HISTORY: 'https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/space_history', FEED_GET_ATTENTION_LIST: 'https://api.vc.bilibili.com/feed/v1/feed/get_attention_list', diff --git a/lib/net/bili.js b/lib/net/bili.js index eefa2b7..0ba9cbf 100644 --- a/lib/net/bili.js +++ b/lib/net/bili.js @@ -378,37 +378,74 @@ const bili_client = { return null; } }, + _getOneDynamicByDyid: new Line('获取一个动态的细节', [ + (dynamic_id) => get({ + url: API.DYNAMIC_SVR_GET_DYNAMIC_DETAIL_V2, + config: { retry: false }, + query: { + dynamic_id + } + }), + (dynamic_id) => get({ + url: API.DYNAMIC_SVR_GET_DYNAMIC_DETAIL_V3, + config: { retry: false }, + query: { + dynamic_id + } + }), + (dynamic_id) => get({ + url: API.DYNAMIC_SVR_GET_DYNAMIC_DETAIL_V4, + config: { retry: false }, + query: { + dynamic_id + } + }), + (dynamic_id) => get({ + url: API.DYNAMIC_SVR_GET_DYNAMIC_DETAIL_V5, + config: { retry: false }, + query: { + dynamic_id + } + }), + (dynamic_id) => get({ + url: API.DYNAMIC_SVR_GET_DYNAMIC_DETAIL_V6, + config: { retry: false }, + query: { + dynamic_id + } + }), + (dynamic_id) => get({ + url: API.DYNAMIC_SVR_GET_DYNAMIC_DETAIL_V7, + config: { retry: false }, + query: { + dynamic_id + } + }), + ], responseText => { + const + res = strToJson(responseText), + { code, data } = res, + { card } = data || {}; + switch (code) { + case 0: + if (card) { + return [false, card, `ok`]; + } else { + return [false, undefined, `动态不存在`]; + } + case 500207: + return [false, undefined, `该动态为包月充电专属可以给UP主充电后观看`]; + default: + return [true, undefined, `获取动态数据出错:\n${responseText}`] + } + }), /** * 获取一个动态的细节 * @param {string} dynamic_id * @return {Promise} 失败返回undefined */ async getOneDynamicByDyid(dynamic_id) { - const - responseText = await get({ - url: API.DYNAMIC_SVR_GET_DYNAMIC_DETAIL, - query: { - dynamic_id - } - }), - { code, data } = strToJson(responseText), - { card } = data || {}; - switch (code) { - case 0: - if (card) { - log.info('获取一个动态的细节', `动态id(${dynamic_id})`); - return card; - } else { - log.warn('获取一个动态的细节', `动态id(${dynamic_id})不存在`); - return; - } - case 500207: - log.warn('获取一个动态的细节', `动态id(${dynamic_id})该动态为包月充电专属可以给UP主充电后观看`); - return; - default: - log.error('获取一个动态的细节', `获取动态(${dynamic_id})数据出错:\n${responseText}`); - return; - } + return this._getOneDynamicByDyid.run(dynamic_id) }, /** * 获取一组动态的信息