diff --git a/docs/en/program-update.md b/docs/en/program-update.md index aea1f05f9..84c3c9e98 100644 --- a/docs/en/program-update.md +++ b/docs/en/program-update.md @@ -177,6 +177,12 @@ Refer to [#minecraft](/en/game.html#minecraft) +## QTTabBar + +### Change Log + + + ## RescueTime ### Release Notes diff --git a/docs/program-update.md b/docs/program-update.md index c2be76ad5..99ae5632e 100644 --- a/docs/program-update.md +++ b/docs/program-update.md @@ -234,6 +234,12 @@ pageClass: routes +## QTTabBar + +### Change Log + + + ## Quicker ### 版本更新 diff --git a/lib/router.js b/lib/router.js index b04800a7c..5249d5f7a 100644 --- a/lib/router.js +++ b/lib/router.js @@ -3661,4 +3661,7 @@ router.get('/tesla', require('./routes/tesla/update')); // 复旦大学继续教育学院 router.get('/fudan/cce', require('./routes/universities/fudan/cce')); +// QTTabBar +router.get('/qttabbar/change-log', require('./routes/qttabbar/change-log')); + module.exports = router; diff --git a/lib/routes/qttabbar/change-log.js b/lib/routes/qttabbar/change-log.js new file mode 100644 index 000000000..f56258098 --- /dev/null +++ b/lib/routes/qttabbar/change-log.js @@ -0,0 +1,33 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const rootUrl = 'http://qttabbar.wikidot.com/change-log'; + const response = await got({ + method: 'get', + url: rootUrl, + }); + + const $ = cheerio.load(response.data); + + $('p strong a').parent().parent().remove(); + + const items = $('#page-content') + .children('p') + .map((_, item) => { + item = $(item); + return { + link: rootUrl, + title: item.text(), + description: item.next().html(), + pubDate: new Date(item.text().match(/\((.*)\)/)).toUTCString(), + }; + }) + .get(); + + ctx.state.data = { + title: 'Change Log - QTTabBar', + link: rootUrl, + item: items, + }; +};