mirror of
https://github.com/DIYgod/RSSHub.git
synced 2026-09-24 23:12:34 +08:00
feat: add 通識·現代中國議題熱話 (#6694)
Co-authored-by: NeverBehave <gayhub@never.pet>
This commit is contained in:
co-authored by
NeverBehave
parent
acb07f82b2
commit
7d6d3345fa
@@ -1755,6 +1755,18 @@ column 为 third 时可选的 category:
|
||||
|
||||
<Route author="LogicJake" example="/tencent/news/author/5933889" path="/tencent/news/author/:mid" :paramsDesc="['企鹅号 ID']"/>
|
||||
|
||||
## 通識・現代中國
|
||||
|
||||
### 議題熱話
|
||||
|
||||
<Route author="nczitzk" example="/chiculture/topic" path="/chiculture/topic/:category?" :paramsDesc="['分类,见下表,默认为全部']">
|
||||
|
||||
| 全部 | 現代中國 | 今日香港 | 全球化 | 一周時事通識 |
|
||||
| ---- | -------- | -------- | ------ | ------------ |
|
||||
| | 76 | 479 | 480 | 379 |
|
||||
|
||||
</Route>
|
||||
|
||||
## 推酷
|
||||
|
||||
### 周刊
|
||||
|
||||
@@ -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'));
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user