RSSHub/lib/v2/diskanalyzer/whats-new.js

50 lines
1.3 KiB
JavaScript

const got = require('@/utils/got');
const cheerio = require('cheerio');
const { parseDate } = require('@/utils/parse-date');
module.exports = async (ctx) => {
const rootUrl = 'https://diskanalyzer.com';
const currentUrl = `${rootUrl}/whats-new`;
const response = await got({
method: 'get',
url: currentUrl,
});
const $ = cheerio.load(response.data);
const items = $('.blog-content h4')
.toArray()
.map((item) => {
item = $(item);
const title = item.text();
let description = '';
item.nextUntil('h4').each(function () {
description += $(this).html();
});
if (description === '') {
item.parent()
.nextUntil('h4')
.each(function () {
description += $(this).html();
});
}
return {
title,
link: currentUrl,
description,
pubDate: parseDate(title.match(/\((.*)\)/)[1], ['D MMMM YYYY', 'D MMM YYYY']),
guid: title,
};
});
ctx.state.data = {
title: $('title').text(),
link: currentUrl,
item: items,
};
};