feat: add pocket trending (#3297)

This commit is contained in:
hoilc
2019-10-21 12:05:47 +08:00
committed by DIYgod
parent db9bb6dc91
commit 7838a0f238
3 changed files with 35 additions and 0 deletions

View File

@@ -71,6 +71,12 @@ pageClass: routes
<Route author="fengkx" example="/one" path="/one"/>
## Pocket
### Trending
<Route author="hoilc" example="/pocket/trending" path="/pocket/trending"/>
## SANS Institute
### 最新会议材料

View File

@@ -1861,4 +1861,7 @@ router.get('/hatena/anonymous_diary/archive', require('./routes/hatena/anonymous
// kaggle
router.get('/kaggle/discussion/:forumId/:sort?', require('./routes/kaggle/discussion'));
// Pocket
router.get('/pocket/trending', require('./routes/pocket/trending'));
module.exports = router;

View File

@@ -0,0 +1,26 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
module.exports = async (ctx) => {
const url = 'https://getpocket.com/explore/trending';
const response = await got.get(url);
const $ = cheerio.load(response.data);
const list = $('.item').toArray();
ctx.state.data = {
title: 'Trending on Pocket',
description: 'Top Articles and Videos about Trending on Pocket',
link: url,
item: list.map((item) => {
item = $(item);
return {
title: item.find('.title').text(),
author: item.find('.domain > a').text(),
description: `<p>${item.find('.excerpt').text()}</p><img src="${item.find('.item_image').attr('data-thumburl')}" />`,
link: item.find('.item_link').attr('data-saveurl'),
};
}),
};
};