rsshub
Version:
Make RSS Great Again!
60 lines (56 loc) • 1.69 kB
text/typescript
import { Route, ViewType } from '@/types';
import api from './api';
import utils from './utils';
export const route: Route = {
path: '/keyword/:keyword/:routeParams?',
categories: ['social-media'],
view: ViewType.SocialMedia,
example: '/twitter/keyword/RSSHub',
parameters: { keyword: 'keyword', routeParams: 'extra parameters, see the table above' },
features: {
requireConfig: [
{
name: 'TWITTER_USERNAME',
description: 'Please see above for details.',
},
{
name: 'TWITTER_PASSWORD',
description: 'Please see above for details.',
},
{
name: 'TWITTER_AUTH_TOKEN',
description: 'Please see above for details.',
},
{
name: 'TWITTER_THIRD_PARTY_API',
description: 'Please see above for details.',
},
],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false,
},
name: 'Keyword',
maintainers: ['DIYgod', 'yindaheng98', 'Rongronggg9', 'pseudoyu'],
handler,
radar: [
{
source: ['x.com/search'],
},
],
};
async function handler(ctx) {
const keyword = ctx.req.param('keyword');
await api.init();
const data = await api.getSearch(keyword);
return {
title: `Twitter Keyword - ${keyword}`,
link: `https://x.com/search?q=${encodeURIComponent(keyword)}`,
item: utils.ProcessFeed(ctx, {
data,
}),
allowEmpty: true,
};
}