diff --git a/docs/en/program-update.md b/docs/en/program-update.md index 50f88bfcab..78a4b06a33 100644 --- a/docs/en/program-update.md +++ b/docs/en/program-update.md @@ -448,6 +448,12 @@ Refer to [#minecraft](/en/game.html#minecraft) +## WizTree + +### What's New + + + ## X410 ### News diff --git a/docs/program-update.md b/docs/program-update.md index d4578be777..f527f2aa5c 100644 --- a/docs/program-update.md +++ b/docs/program-update.md @@ -535,6 +535,12 @@ pageClass: routes +## WizTree + +### What's New + + + ## X410 ### News diff --git a/lib/v2/diskanalyzer/maintainer.js b/lib/v2/diskanalyzer/maintainer.js new file mode 100644 index 0000000000..21ba3c7f7a --- /dev/null +++ b/lib/v2/diskanalyzer/maintainer.js @@ -0,0 +1,3 @@ +module.exports = { + '/whats-new': ['nczitzk'], +}; diff --git a/lib/v2/diskanalyzer/radar.js b/lib/v2/diskanalyzer/radar.js new file mode 100644 index 0000000000..318a5ff485 --- /dev/null +++ b/lib/v2/diskanalyzer/radar.js @@ -0,0 +1,13 @@ +module.exports = { + 'diskanalyzer.com': { + _name: "What's New", + '.': [ + { + title: 'Change Log', + docs: 'https://docs.rsshub.app/program-update.html#wiztree-whats-new', + source: ['/whats-new', '/'], + target: '/diskanalyzer/whats-new', + }, + ], + }, +}; diff --git a/lib/v2/diskanalyzer/router.js b/lib/v2/diskanalyzer/router.js new file mode 100644 index 0000000000..b56d655e47 --- /dev/null +++ b/lib/v2/diskanalyzer/router.js @@ -0,0 +1,3 @@ +module.exports = function (router) { + router.get('/whats-new', require('./whats-new')); +}; diff --git a/lib/v2/diskanalyzer/whats-new.js b/lib/v2/diskanalyzer/whats-new.js new file mode 100644 index 0000000000..e26da81043 --- /dev/null +++ b/lib/v2/diskanalyzer/whats-new.js @@ -0,0 +1,48 @@ +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']), + }; + }); + + ctx.state.data = { + title: $('title').text(), + link: currentUrl, + item: items, + }; +};