diff --git a/docs/new-media.md b/docs/new-media.md index 627e5a05d6..c36877c452 100644 --- a/docs/new-media.md +++ b/docs/new-media.md @@ -1755,6 +1755,18 @@ column 为 third 时可选的 category: +## 通識・現代中國 + +### 議題熱話 + + + +| 全部 | 現代中國 | 今日香港 | 全球化 | 一周時事通識 | +| ---- | -------- | -------- | ------ | ------------ | +| | 76 | 479 | 480 | 379 | + + + ## 推酷 ### 周刊 diff --git a/lib/router.js b/lib/router.js index b2b8901329..3dcec4e129 100644 --- a/lib/router.js +++ b/lib/router.js @@ -3878,6 +3878,9 @@ router.get('/newzmz/:category?', require('./routes/newzmz/index')); // Phrack Magazine router.get('/phrack', require('./routes/phrack/index')); +// 通識·現代中國 +router.get('/chiculture/topic/:category?', require('./routes/chiculture/topic')); + // CQUT News router.get('/cqut/news', require('./routes/universities/cqut/cqut-news')); router.get('/cqut/libnews', require('./routes/universities/cqut/cqut-libnews')); diff --git a/lib/routes/chiculture/topic.js b/lib/routes/chiculture/topic.js new file mode 100644 index 0000000000..f84ce9d366 --- /dev/null +++ b/lib/routes/chiculture/topic.js @@ -0,0 +1,60 @@ +const got = require('@/utils/got'); +const date = require('@/utils/date'); +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const category = ctx.params.category || ''; + + const rootUrl = 'https://ls.chiculture.org.hk'; + const currentUrl = `${rootUrl}/api/general-listing?lang=zh-hant&type=ssrh&category=${category}&page=1`; + const response = await got({ + method: 'get', + url: currentUrl, + }); + + const list = response.data.data.map((item) => ({ + title: item.title, + pubDate: item.tags, + link: `${rootUrl}/${item.url}`, + })); + + const items = await Promise.all( + list.map( + async (item) => + await ctx.cache.tryGet(item.link, async () => { + const detailResponse = await got({ + method: 'get', + url: item.link, + }); + const content = cheerio.load(detailResponse.data); + + const pubDate = detailResponse.data.match(/上載日期:(.*)<\/p>/); + + if (pubDate) { + item.pubDate = date(pubDate[1]); + } else if (item.title.indexOf('一周時事通識') > -1) { + for (const tag of item.pubDate) { + if (tag.title.match(/^\d{4}年$/)) { + item.pubDate = date(`${tag.title.replace('年', '')}-${item.title.replace(/)/g, '').split('- ')[1].split('/').reverse().join('-')}`); + break; + } + } + } else if (item.title.match(/^\d{4}年新聞回顧$/)) { + item.pubDate = date(`${item.title.split('年')[0]}-12-31`); + } else { + item.pubDate = ''; + } + + item.description = content('#article_main_content').html(); + + return item; + }) + ) + ); + + ctx.state.data = { + title: '議題熱話 | 通識·現代中國', + link: `${rootUrl}/tc/hot-topics${category ? `?category=${category}` : ''}`, + item: items, + }; +};