RSSHub/lib/v2/cctv/utils/xinwen1j1.js

82 lines
3.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const got = require('@/utils/got');
const cheerio = require('cheerio');
const { parseDate } = require('@/utils/parse-date');
//
// 测试http://localhost:1200/cctv/xinwen1j1
// 完整文章页
async function load(link) {
const res = await got({ method: 'get', url: link });
const $ = cheerio.load(res.data);
// console.log($('div.image').get().text())
// console.log('********')
const js_txt = '' + $('script');
const guid = js_txt.split('guid_Ad_VideoCode = "')[1].split('";')[0];
// console.log(guid+' js_txt********')
const { data: videoDetail } = await got({
method: 'get',
url: `http://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid=${guid}`,
});
// poster="?" 以后再弄
// <video src="${videoDetail.hls_url}" controls="controls" poster="?" style="width: 100%"></video>
const description = `${$('meta[name=description]').attr('content')}<br><video src="${videoDetail.hls_url}" controls="controls" style="width: 100%"></video>`;
// 提取内容
return { description };
}
// 同步 列表
const ProcessFeed = (data, ctx) =>
Promise.all(
data.list.map(async (data) => {
const title = data.title;
const itemUrl = data.url;
const itemDate = parseDate(data.focus_date);
// 列表上提取到的信息
const single = {
title,
link: itemUrl,
author: '央视新闻',
guid: itemUrl,
pubDate: itemDate,
};
// 使用tryGet方法从缓存获取内容。
// 当缓存中无法获取到链接内容的时候则使用load方法加载文章内容。
const other = await ctx.cache.tryGet(itemUrl, () => load(itemUrl));
// 合并解析后的结果集作为该篇文章最终的输出结果
return { ...single, ...other };
})
);
module.exports = async (ctx) => {
const baseUrl = 'https://api.cntv.cn/NewVideo/getVideoListByColumn?id=TOPC1451559066181661&n=20&sort=desc&p=1&mode=0&serviceId=tvcctv';
// 获取要处理的页面
const res = await got({
method: 'get',
url: baseUrl,
headers: {
Referer: 'https://tv.cctv.com/lm/xinwen1j1/videoset/index.shtml#&Type=0',
},
});
const data = res.data.data;
// $('div.image').slice(0,3).find('img').attr('src')
// $('div.image').slice(0,3).find('a').attr('href').split('?')[0]
// 处理所有的页面
const result = await ProcessFeed(data, ctx);
return {
title: '《新闻1+1》- 中央电视台新闻频道',
link: baseUrl,
description:
'《新闻1+1》是中央电视台新闻频道的一档访谈类栏目。周一至周五从时事政策、公共话题、突发事件等大型选题中选取当天最新、最热、最快的新闻话题还原新闻全貌、解读事件真相力求以精度、纯度和锐度为新闻导向呈现最质朴的新闻。首播CCTV-新闻周一至周五21:30—21:55重播次日01:3004:30。',
item: result,
};
};