api-interface
Version:
53 lines (52 loc) • 1.91 kB
JavaScript
;
const path_1 = require("path");
const utils_1 = require("../../utils");
module.exports = async (params) => {
const { url, type } = params;
let video_id = '';
const result = {
author: {},
video: {}
};
if ((0, utils_1.isNumber)(url))
video_id = url;
else {
if (!((0, utils_1.isHttp)(url) && (0, utils_1.isUrl)(url)))
(0, utils_1.throwUrlError)();
const { pathname } = new URL(url);
const item_id = (0, path_1.parse)(pathname).name;
if (item_id)
video_id = item_id;
if (!(0, utils_1.isNumber)(video_id)) {
const redirect = await (0, utils_1.getRedirectUrl)(url);
const { pathname } = new URL(redirect);
video_id = (0, path_1.parse)(pathname).name;
}
}
const piPiXiaAPI = 'https://is.snssdk.com/bds/cell/detail/?cell_type=1&aid=1319&app_name=super&cell_id=' + video_id;
const data = await (0, utils_1.getRequest)(piPiXiaAPI);
// 无内容
if (data.message !== 'success')
(0, utils_1.throwUrlError)();
const temp = data.data.data.item;
// console.log(temp);
// 作者信息
result.author = {};
result.author.nick = temp.author.name;
result.author.desc = temp.author.description;
result.author.avatar = [];
result.author.avatar.push(temp.author.avatar.url_list[0].url, temp.author.avatar.download_list[0].url);
// 视频信息
result.video = {};
result.video.title = temp.content;
result.video.url = temp.origin_video_download.url_list[0].url;
// 处理封面
result.video.cover = [];
temp.cover.url_list.forEach((item) => {
result.video.cover.push(item.url);
});
if (type && result.video.url)
result.redirect = result.video.url;
return result;
};
/* eslint-enable camelcase*/