feat: add lowendtalk discussion (#6380)

This commit is contained in:
Ethan Shen
2020-12-08 11:24:32 +00:00
committed by GitHub
parent 41c500a6e6
commit 36ca01429c
4 changed files with 51 additions and 0 deletions
+6
View File
@@ -108,6 +108,12 @@ pageClass: routes
| ---- | ------------ | ---- | ----- |
| jobs | translations | qa | links |
## LowEndTalk
### Discussion
<Route author="nczitzk" example="/lowendtalk/discussion/168480" path="/lowendtalk/discussion/:id?" :paramsDesc="['讨论 id']"/>
## MCBBS
### 版块
+6
View File
@@ -29,3 +29,9 @@ pageClass: routes
| x | 7 |
</RouteEn>
## LowEndTalk
### Discussion
<RouteEn author="nczitzk" example="/lowendtalk/discussion/168480" path="/lowendtalk/discussion/:id?" :paramsDesc="['Discussion id']"/>
+3
View File
@@ -3661,6 +3661,9 @@ router.get('/tesla', require('./routes/tesla/update'));
// 复旦大学继续教育学院
router.get('/fudan/cce', require('./routes/universities/fudan/cce'));
// LowEndTalk
router.get('/lowendtalk/discussion/:id?', require('./routes/lowendtalk/discussion'));
// 无产者评论
router.get('/proletar/:type?/:id?', require('./routes/proletar/index'));
+36
View File
@@ -0,0 +1,36 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
module.exports = async (ctx) => {
const rootUrl = 'https://www.lowendtalk.com';
const currentUrl = `${rootUrl}/discussion/${ctx.params.id}`;
const response = await got({
method: 'get',
url: currentUrl,
});
const $ = cheerio.load(response.data);
const items = $('.userContent')
.map((_, item) => {
item = $(item);
const header = item.parent().parent().prev();
const pubDate = header.find('time');
return {
description: item.html(),
pubDate: pubDate.attr('datetime'),
author: header.find('.Author').text(),
link: `${rootUrl}${pubDate.parent().attr('href')}`,
title: `${header.find('.Author').text().trim()}: ${item.text()}`,
};
})
.get();
ctx.state.data = {
title: $('title').text(),
link: currentUrl,
item: items,
};
};