From ab4d5039ad7d1210366714e8b8fede005b626275 Mon Sep 17 00:00:00 2001 From: Henry Wang Date: Mon, 24 Feb 2020 16:16:49 +0000 Subject: [PATCH] feat: add finviz stock news (#4075) --- docs/en/finance.md | 11 ++++++++ docs/finance.md | 59 +++++++++++++++++++++++++++++++++++++++ docs/other.md | 10 ------- docs/social-media.md | 38 ------------------------- lib/router.js | 4 +++ lib/routes/finviz/news.js | 50 +++++++++++++++++++++++++++++++++ 6 files changed, 124 insertions(+), 48 deletions(-) create mode 100644 docs/en/finance.md create mode 100644 docs/finance.md create mode 100644 lib/routes/finviz/news.js diff --git a/docs/en/finance.md b/docs/en/finance.md new file mode 100644 index 0000000000..fcde5c8c82 --- /dev/null +++ b/docs/en/finance.md @@ -0,0 +1,11 @@ +--- +pageClass: routes +--- + +# Finance + +## finviz + +### US stock news + + diff --git a/docs/finance.md b/docs/finance.md new file mode 100644 index 0000000000..8b66061a73 --- /dev/null +++ b/docs/finance.md @@ -0,0 +1,59 @@ +--- +pageClass: routes +--- + +# 金融 + +## 雪球 + +### 用户动态 + + + +| 原发布 | 长文 | 问答 | 热门 | 交易 | +| ------ | ---- | ---- | ---- | ---- | +| 0 | 2 | 4 | 9 | 11 | + + + +### 用户收藏动态 + + + +### 用户自选动态 + + + +### 基金净值更新 + + + +### 组合最新调仓信息 + + + +### 股票信息 + + + +| 公告 | 新闻 | 研报 | +| ------------ | ---- | -------- | +| announcement | news | research | + + + +## 淘股吧股票论坛 + +### 论坛总版 + + + +### 用户博客 + + + +## finviz + +### 美股股票新闻 + + diff --git a/docs/other.md b/docs/other.md index 58c9e6f00e..cc4f4ca275 100644 --- a/docs/other.md +++ b/docs/other.md @@ -372,16 +372,6 @@ type 为 all 时,category 参数不支持 cost 和 free -## 淘股吧股票论坛 - -### 论坛总版 - - - -### 用户博客 - - - ## 腾讯吐个槽 ### 吐槽新帖 diff --git a/docs/social-media.md b/docs/social-media.md index c0c8836591..debb7a081e 100644 --- a/docs/social-media.md +++ b/docs/social-media.md @@ -780,44 +780,6 @@ rule -## 雪球 - -### 用户动态 - - - -| 原发布 | 长文 | 问答 | 热门 | 交易 | -| ------ | ---- | ---- | ---- | ---- | -| 0 | 2 | 4 | 9 | 11 | - - - -### 用户收藏动态 - - - -### 用户自选动态 - - - -### 基金净值更新 - - - -### 组合最新调仓信息 - - - -### 股票信息 - - - -| 公告 | 新闻 | 研报 | -| ------------ | ---- | -------- | -| announcement | news | research | - - - ### 热帖 diff --git a/lib/router.js b/lib/router.js index 27806e6225..82266bc3c5 100644 --- a/lib/router.js +++ b/lib/router.js @@ -2259,6 +2259,10 @@ router.get('/google/news/:category/:locale', require('./routes/google/news')); router.get('/p-articles/section/:section', require('./routes/p-articles/section')); router.get('/p-articles/contributors/:author', require('./routes/p-articles/contributors')); +// finviz + +router.get('/finviz/news/:ticker', require('./routes/finviz/news')); + // 好好住 router.get('/haohaozhu/whole-house/:keyword?', require('./routes/haohaozhu/whole-house')); router.get('/haohaozhu/discover/:keyword?', require('./routes/haohaozhu/discover')); diff --git a/lib/routes/finviz/news.js b/lib/routes/finviz/news.js new file mode 100644 index 0000000000..4c19b2f3dd --- /dev/null +++ b/lib/routes/finviz/news.js @@ -0,0 +1,50 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); +const dateParser = require('@/utils/dateParser'); + +module.exports = async (ctx) => { + const link = `https://finviz.com/quote.ashx?t=${ctx.params.ticker}`; + const response = await got.get(link); + + const $ = cheerio.load(response.body); + const data = $('table.fullview-news-outer tr').slice(0, 10); + + let dateRow = ''; + const item = await Promise.all( + data + .map(async (i, e) => { + let date = $(e) + .find('td') + .first() + .text() + .trim(); + if (date.includes('-')) { + dateRow = date.split(' ')[0]; + } else { + date = `${dateRow} ${date}`; + } + return { + title: $(e) + .find('a') + .text(), + pubDate: dateParser(date, 'MMM-DD-YY HH:mmA'), + authors: $(e) + .find('span') + .text(), + link: $(e) + .find('a') + .attr('href'), + }; + }) + .get() + ); + + const name = $('.fullview-title b').text(); + + ctx.state.data = { + title: `${name} News by Finviz`, + link, + description: `A collection of ${name} news aggregated by Finviz.`, + item, + }; +};