From 34165f615b1a36ecc7bdcea3d9d504dc80b2fb68 Mon Sep 17 00:00:00 2001 From: Ethan Shen Date: Sun, 30 Aug 2020 11:02:23 +0800 Subject: [PATCH] feat: add typora dev release changelog (#5559) --- docs/program-update.md | 4 ++++ lib/router.js | 1 + lib/routes/typora/changelog-dev.js | 35 ++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 lib/routes/typora/changelog-dev.js diff --git a/docs/program-update.md b/docs/program-update.md index 6416287ef..039a93b55 100644 --- a/docs/program-update.md +++ b/docs/program-update.md @@ -234,6 +234,10 @@ pageClass: routes +### Dev Release Changelog + + + ## xclient.info ### 应用更新 diff --git a/lib/router.js b/lib/router.js index d36c8256d..4cbc71707 100644 --- a/lib/router.js +++ b/lib/router.js @@ -1070,6 +1070,7 @@ router.get('/tits-guru/model/:name', require('./routes/titsguru/model')); // typora router.get('/typora/changelog', require('./routes/typora/changelog')); +router.get('/typora/changelog-dev/:os?', require('./routes/typora/changelog-dev')); // TSSstatus router.get('/tssstatus/:board/:build', require('./routes/tssstatus')); diff --git a/lib/routes/typora/changelog-dev.js b/lib/routes/typora/changelog-dev.js new file mode 100644 index 000000000..7809e706d --- /dev/null +++ b/lib/routes/typora/changelog-dev.js @@ -0,0 +1,35 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + ctx.params.os = ctx.params.os || 'macos'; + + const currentUrl = `https://typora.io${ctx.params.os.toLowerCase() === 'macos' ? '' : '/windows'}/dev_release.html`; + const response = await got({ + method: 'get', + url: currentUrl, + }); + + const $ = cheerio.load(response.data.replace(/

/g, '

')); + + const items = $('div') + .slice(0, 10) + .map((_, item) => { + item = $(item); + const h4 = item.find('h4'); + h4.remove(); + return { + title: h4.text(), + link: currentUrl, + description: item.html(), + }; + }) + .get(); + + ctx.state.data = { + title: `Typora Changelog - ${ctx.params.os.toLowerCase() === 'macos' ? 'macOS' : 'Windows/Linux'}`, + link: currentUrl, + description: 'Typora Changelog', + item: items, + }; +};