feat: add WordPress blog (#5575)
This commit is contained in:
commit
5d2724996b
|
|
@ -72,6 +72,10 @@ pageClass: routes
|
|||
|
||||
<Route author="Maecenas" example="/blogs/paulgraham" path="/blogs/paulgraham"/>
|
||||
|
||||
## WordPress
|
||||
|
||||
<Route author="Lonor" example="/blogs/wordpress/lawrence.code.blog" path="/blogs/wordpress/:domain/:https?" :paramsDesc="['WordPress 博客域名', '默认 https 协议。填写 `http`或`https`']"/>
|
||||
|
||||
## 阿里云系统组技术博客
|
||||
|
||||
### 首页
|
||||
|
|
|
|||
|
|
@ -1411,6 +1411,9 @@ router.get('/blogs/wangyin', require('./routes/blogs/wangyin'));
|
|||
// 王五四文集
|
||||
router.get('/blogs/wang54/:id?', require('./routes/blogs/wang54'));
|
||||
|
||||
// WordPress
|
||||
router.get('/blogs/wordpress/:domain/:https?', require('./routes/blogs/wordpress'));
|
||||
|
||||
// 裏垢女子まとめ
|
||||
router.get('/uraaka-joshi', require('./routes/uraaka-joshi/uraaka-joshi'));
|
||||
router.get('/uraaka-joshi/:id', require('./routes/uraaka-joshi/uraaka-joshi-user'));
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
const parser = require('@/utils/rss-parser');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const scheme = ctx.params.https || 'https';
|
||||
const domain = `${scheme}://${ctx.params.domain}`;
|
||||
const feed = await parser.parseURL(`${domain}/feed/`);
|
||||
const items = await Promise.all(
|
||||
feed.items.map(async (item) => {
|
||||
const cache = await ctx.cache.get(item.link);
|
||||
if (cache) {
|
||||
return Promise.resolve(JSON.parse(cache));
|
||||
}
|
||||
const article = {
|
||||
title: item.title,
|
||||
description: item['content:encoded'],
|
||||
pubDate: item.pubDate,
|
||||
link: item.link,
|
||||
author: item.creator,
|
||||
};
|
||||
return Promise.resolve(article);
|
||||
})
|
||||
);
|
||||
|
||||
ctx.state.data = {
|
||||
title: feed.title,
|
||||
link: feed.link,
|
||||
description: feed.description,
|
||||
item: items,
|
||||
};
|
||||
};
|
||||
Loading…
Reference in New Issue