mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-10 07:12:51 +08:00
feat: twitter keyword RSS, close #156
This commit is contained in:
@@ -110,28 +110,34 @@
|
||||
docs: 'https://docs.rsshub.app/social-media.html#twitter',
|
||||
source: '/:id',
|
||||
target: '/twitter/user/:id',
|
||||
verification: (params) => params.id !== 'home' && params.id !== 'explore' && params.id !== 'notifications' && params.id !== 'messages' && params.id !== 'explore',
|
||||
verification: (params) => params.id !== 'home' && params.id !== 'explore' && params.id !== 'notifications' && params.id !== 'messages' && params.id !== 'explore' && params.id !== 'search',
|
||||
},
|
||||
{
|
||||
title: '用户关注时间线',
|
||||
docs: 'https://docs.rsshub.app/social-media.html#twitter',
|
||||
source: '/:id',
|
||||
target: '/twitter/followings/:id',
|
||||
verification: (params) => params.id !== 'home' && params.id !== 'explore' && params.id !== 'notifications' && params.id !== 'messages' && params.id !== 'explore',
|
||||
verification: (params) => params.id !== 'home' && params.id !== 'explore' && params.id !== 'notifications' && params.id !== 'messages' && params.id !== 'explore' && params.id !== 'search',
|
||||
},
|
||||
{
|
||||
title: '用户喜欢列表',
|
||||
docs: 'https://docs.rsshub.app/social-media.html#twitter',
|
||||
source: '/:id',
|
||||
target: '/twitter/likes/:id',
|
||||
verification: (params) => params.id !== 'home' && params.id !== 'explore' && params.id !== 'notifications' && params.id !== 'messages' && params.id !== 'explore',
|
||||
verification: (params) => params.id !== 'home' && params.id !== 'explore' && params.id !== 'notifications' && params.id !== 'messages' && params.id !== 'explore' && params.id !== 'search',
|
||||
},
|
||||
{
|
||||
title: '列表时间线',
|
||||
docs: 'https://docs.rsshub.app/social-media.html#twitter',
|
||||
source: '/:id/lists/:name',
|
||||
target: '/twitter/list/:id/:name',
|
||||
verification: (params) => params.id !== 'home' && params.id !== 'explore' && params.id !== 'notifications' && params.id !== 'messages' && params.id !== 'explore',
|
||||
verification: (params) => params.id !== 'home' && params.id !== 'explore' && params.id !== 'notifications' && params.id !== 'messages' && params.id !== 'explore' && params.id !== 'search',
|
||||
},
|
||||
{
|
||||
title: '关键词',
|
||||
docs: 'https://docs.rsshub.app/social-media.html#twitter',
|
||||
source: '/search',
|
||||
target: (params, url) => `/twitter/keyword/${new URL(url).searchParams.get('q')}`,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
@@ -88,6 +88,10 @@ This route requires Twitter token's corresponding id, therefore it's only availb
|
||||
|
||||
<RouteEn author="xyqfer" example="/twitter/likes/DIYgod" path="/twitter/likes/:id" :paramsDesc="['user name']"/>
|
||||
|
||||
### Keyword
|
||||
|
||||
<Route author="DIYgod" example="/twitter/keyword/RSSHub" path="/twitter/keyword/:keyword" :paramsDesc="['keyword']" radar="1"/>
|
||||
|
||||
## Youtube
|
||||
|
||||
### User
|
||||
|
||||
@@ -380,6 +380,10 @@ Tiny Tiny RSS 会给所有 iframe 元素添加 `sandbox="allow-scripts"` 属性
|
||||
|
||||
<Route author="xyqfer" example="/twitter/likes/DIYgod" path="/twitter/likes/:id" :paramsDesc="['用户名']" radar="1"/>
|
||||
|
||||
### 关键词
|
||||
|
||||
<Route author="DIYgod" example="/twitter/keyword/RSSHub" path="/twitter/keyword/:keyword" :paramsDesc="['关键词']" radar="1"/>
|
||||
|
||||
## VueVlog
|
||||
|
||||
### 用户
|
||||
|
||||
@@ -196,6 +196,7 @@ router.get('/twitter/user/:id', require('./routes/twitter/user'));
|
||||
router.get('/twitter/list/:id/:name', require('./routes/twitter/list'));
|
||||
router.get('/twitter/likes/:id', require('./routes/twitter/likes'));
|
||||
router.get('/twitter/followings/:id', require('./routes/twitter/followings'));
|
||||
router.get('/twitter/keyword/:keyword', require('./routes/twitter/keyword'));
|
||||
|
||||
// Instagram
|
||||
router.get('/instagram/user/:id', require('./routes/instagram/user'));
|
||||
|
||||
24
lib/routes/twitter/keyword.js
Normal file
24
lib/routes/twitter/keyword.js
Normal file
@@ -0,0 +1,24 @@
|
||||
const utils = require('./utils');
|
||||
const config = require('@/config').value;
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
if (!config.twitter || !config.twitter.consumer_key || !config.twitter.consumer_secret) {
|
||||
throw 'Twitter RSS is disabled due to the lack of <a href="https://docs.rsshub.app/install/#%E9%83%A8%E5%88%86-rss-%E6%A8%A1%E5%9D%97%E9%85%8D%E7%BD%AE">relevant config</a>';
|
||||
}
|
||||
const keyword = ctx.params.keyword;
|
||||
const result = await utils.getTwit().get('search/tweets', {
|
||||
q: encodeURIComponent(keyword),
|
||||
count: 50,
|
||||
tweet_mode: 'extended',
|
||||
result_type: 'recent',
|
||||
});
|
||||
const data = result.data;
|
||||
|
||||
ctx.state.data = {
|
||||
title: `Twitter keyWOrd - ${keyword}`,
|
||||
link: `https://twitter.com/search?q=${encodeURIComponent(keyword)}`,
|
||||
item: utils.ProcessFeed({
|
||||
data: data.statuses,
|
||||
}),
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user