UNPKG

api-interface

Version:
62 lines (61 loc) 2.29 kB
"use strict"; 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*/