From c31567399085fdb86d0ffb27fb60afaaf4823c7c Mon Sep 17 00:00:00 2001 From: Fatpandac <1779196284@qq.com> Date: Mon, 23 May 2022 18:19:49 +0800 Subject: [PATCH] fix(route): jike/topic add video (#9807) --- lib/v2/jike/utils.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/v2/jike/utils.js b/lib/v2/jike/utils.js index fc24c2d104..0e4cbcef34 100644 --- a/lib/v2/jike/utils.js +++ b/lib/v2/jike/utils.js @@ -3,6 +3,8 @@ const got = require('@/utils/got'); const cheerio = require('cheerio'); const config = require('@/config').value; +const videoAPI = 'https://api.ruguoapp.com/1.0/mediaMeta/play?type=ORIGINAL_POST'; + module.exports = { topicDataHanding: (data) => data.posts.map((item) => { @@ -114,6 +116,11 @@ module.exports = { }); } + // 6. 视频 + if (item.video) { + description += `
`; + } + // rss标题 // 优先将音频和视频名作为标题 // 其次将正文内容作为标题 @@ -136,7 +143,22 @@ module.exports = { const html = resp.data; const $ = cheerio.load(html); const raw = $('[type = "application/json"]').html(); - return JSON.parse(raw).props.pageProps; + const data = JSON.parse(raw).props.pageProps; + data.posts = await Promise.all( + data.posts.map(async (item) => { + if (!item.video) { + return item; + } + + const videoUrl = `${videoAPI}&id=${item.id}`; + const videoRes = await got(videoUrl); + item.video = videoRes.data; + + return item; + }) + ); + + return data; }, false, config.cache.routeExpire