api-interface
Version:
62 lines (61 loc) • 2.29 kB
JavaScript
;
const utils_1 = require("../../utils");
module.exports = async (params) => {
const { url, id, 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 { host } = new URL(url);
if (host === 'isee.weishi.qq.com') {
// 由于get传值的特性,会识别分享链接中的‘&’符号
// 即可得到分享链接中的视频ID
video_id = id;
}
}
const weiShiAPI = 'https://h5.weishi.qq.com/webapp/json/weishi/WSH5GetPlayPage?feedid=' + video_id;
const { data } = await (0, utils_1.getRequest)(weiShiAPI);
// 无内容
if (data.feeds.length === 0)
(0, utils_1.throwUrlError)();
else {
const temp = data.feeds[0];
// 作者信息
result.author = {};
result.author.nick = temp.poster.nick;
result.author.sex = temp.poster.sex;
result.author.avatar = temp.poster.avatar;
result.author.age = temp.poster.age;
result.author.address = temp.poster.address;
result.author.desc = temp.poster.status;
result.author.qq = temp.poster.qq;
result.author.certif_desc = temp.poster.certif_desc;
// 视频信息
result.video = {};
result.video.url = temp.video_url;
result.video.music = temp.video_spec_urls[26].url;
result.video.title = temp.feed_desc_withat;
result.video.keywork = [];
temp.content_tags.forEach((item) => result.video.keywork.push(item.name));
// 处理封面
result.video.cover = [];
temp.images.forEach((item) => {
const cover_info = {};
cover_info.url = item.url;
cover_info.width = item.width;
cover_info.height = item.height;
cover_info.format = item.format;
result.video.cover.push(cover_info);
});
}
if (type && result.video.url)
result.redirect = result.video.url;
return result;
};
/* eslint-enable camelcase*/