RSSHub/lib/v2/hunau/utils/newsContent.js

48 lines
1.6 KiB
JavaScript

const got = require('@/utils/got');
const { parseDate } = require('@/utils/parse-date');
const timezone = require('@/utils/timezone');
const cheerio = require('cheerio');
async function newsContent(link, department = '') {
try {
// 异步请求文章
const { data: response } = await got(link, {
https: {
rejectUnauthorized: false,
},
});
// 加载文章内容
const $ = cheerio.load(response);
let reg = /\d{4}\/\d{2}\/\d{2}/;
let element = '.newscontent';
// 处理特定部门
if (department === 'xky') {
reg = /\d{4}-\d{2}-\d{2}/;
element = '.content .edit';
}
// 解析日期
const extractDate = ($('.info').first().html()?.match(reg) || [])[0];
const pubDate = timezone(parseDate(extractDate, 'YYYY-MM-DD', 'zh-cn'), +8);
// 解析文章
const newsContent = $(element).first();
newsContent.find('table').remove();
let description = newsContent.text().replace(/\s+/g, '');
// 处理特定部门
if (department === 'gfxy') {
description = description.replace('点击下载文件:', '');
}
// 返回解析的结果
return { description, pubDate };
} catch (error) {
// Handle the error (e.g., log it and return some default values)
// console.error(`There was an error fetching the link ${link}: ${error.message}`);
return { description: '', pubDate: null };
}
}
module.exports = newsContent;