RSSHub/lib/v2/gelonghui/utils.js

28 lines
1.1 KiB
JavaScript

const got = require('@/utils/got');
const cheerio = require('cheerio');
const { parseDate, parseRelativeDate } = require('@/utils/parse-date');
const timezone = require('@/utils/timezone');
const parseItem = (item, tryGet) =>
tryGet(item.link, async () => {
const { data: res } = await got(item.link);
const $ = cheerio.load(res);
if (item.link.startsWith('https://www.gelonghui.com/live/')) {
item.title = $('.type-name').next().text().trim();
item.description = $('.dtb-content').html();
} else {
// article
item.title = $('.article-title').text().trim();
item.description = $('.article-summary').html() + $('article.article-with-html').html();
if (!item.pubDate) {
const isRelativeDate = $('time.date').text().includes('前') || $('time.date').text().includes('天');
item.pubDate = isRelativeDate ? parseRelativeDate($('time.date').text()) : timezone(parseDate($('time.date').text(), 'MM-DD HH:mm'), +8);
}
}
return item;
});
module.exports = {
parseItem,
};