From 74a94e76b3a7bbe2663093513fce906405fcb651 Mon Sep 17 00:00:00 2001 From: uni-zheng <446312992@qq.com> Date: Mon, 21 May 2018 22:57:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=8A=E6=97=A5=E5=A4=B4=E6=9D=A1=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E8=AF=8D=E6=90=9C=E7=B4=A2=20(#168)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 添加今日头条关键词搜索 * 添加今日头条关键词搜索 * 添加今日头条关键词搜索文档 --- docs/README.md | 8 ++++++++ router.js | 3 +++ routes/jinritoutiao/keyword.js | 30 ++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 routes/jinritoutiao/keyword.js diff --git a/docs/README.md b/docs/README.md index 23952beffc..d28b262c2d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -680,6 +680,14 @@ key: 产品密钥 参数: id,独家号 id,可在对应独家号页 URL 中找到 +## 今日头条 + +举例: [https://rsshub.app/jinritoutiao/keyword/ai](https://rsshub.app/jinritoutiao/keyword/ai) + +路由: `/jinritoutiao/keyword/:keyword` + +参数: keyword,关键词 + ## 极客时间 ### 专栏文章 diff --git a/router.js b/router.js index 7115e49160..6861e89971 100644 --- a/router.js +++ b/router.js @@ -170,6 +170,9 @@ router.get('/biquge/novel/latestchapter/:id', require('./routes/biquge/chapter') router.get('/toutiao/today', require('./routes/toutiao/today')); router.get('/toutiao/user/:id', require('./routes/toutiao/user')); +// 今日头条 +router.get('/jinritoutiao/keyword/:keyword', require('./routes/jinritoutiao/keyword')); + // Disqus if (config.disqus && config.disqus.api_key) { router.get('/disqus/posts/:forum', require('./routes/disqus/posts')); diff --git a/routes/jinritoutiao/keyword.js b/routes/jinritoutiao/keyword.js new file mode 100644 index 0000000000..b071385e67 --- /dev/null +++ b/routes/jinritoutiao/keyword.js @@ -0,0 +1,30 @@ +const axios = require('axios'); +const config = require('../../config'); + +module.exports = async (ctx) => { + const keyword = ctx.params.keyword; + + const response = await axios({ + method: 'get', + url: `https://www.toutiao.com/search_content/?offset=0&format=json&keyword=${encodeURIComponent(keyword)}&autoload=true&count=20&cur_tab=1&from=search_tab`, + headers: { + 'User-Agent': config.ua, + }, + }); + let data = response.data.data; + data = data.filter(function(item) { + return !item.cell_type; + }); + + ctx.state.data = { + title: `今日头条: ${keyword}`, + link: `https://www.toutiao.com/search/?keyword=${keyword}`, + description: `${keyword}`, + item: data.map((item) => ({ + title: `${item.media_name}: ${item.title}`, + description: `${item.abstract}`, + pubDate: `${new Date(parseInt(item.create_time) * 1000)}`, + link: `${item.article_url}`, + })), + }; +};