feat: add requireConfig

This commit is contained in:
DIYgod
2024-03-12 00:29:52 +08:00
parent 430c0f30b1
commit e5b8f852f5
58 changed files with 60 additions and 57 deletions

View File

@@ -184,6 +184,9 @@ export type Config = {
cookies: Record<string, string | undefined>;
articleCookie?: string;
};
mihoyo: {
cookie?: string;
};
miniflux: {
instance?: string;
token?: string;

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/bilibili/user/followers/2267573/3',
parameters: { uid: '用户 id, 可在 UP 主主页中找到', loginUid: '用于登入的用户id,需要配置对应的 Cookie 值' },
features: {
requireConfig: true,
requireConfig: ['BILIBILI_COOKIE_*'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/bilibili/followings/article/99800931',
parameters: { uid: '用户 id' },
features: {
requireConfig: true,
requireConfig: ['BILIBILI_COOKIE_*'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -13,7 +13,7 @@ export const route: Route = {
example: '/bilibili/followings/dynamic/109937383',
parameters: { uid: '用户 id', routeParams: '额外参数;请参阅 [#UP 主动态](#bilibili-up-zhu-dong-tai) 的说明和表格' },
features: {
requireConfig: true,
requireConfig: ['BILIBILI_COOKIE_*'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -10,7 +10,7 @@ export const route: Route = {
example: '/bilibili/followings/video/2267573',
parameters: { uid: '用户 id', disableEmbed: '默认为开启内嵌视频, 任意值为关闭' },
features: {
requireConfig: true,
requireConfig: ['BILIBILI_COOKIE_*'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/bilibili/user/followings/2267573/3',
parameters: { uid: '用户 id, 可在 UP 主主页中找到', loginUid: '用于登入的用户id,需要配置对应的 Cookie 值' },
features: {
requireConfig: true,
requireConfig: ['BILIBILI_COOKIE_*'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/bilibili/manga/followings/26009',
parameters: { uid: '用户 id', limits: '抓取最近更新前多少本漫画默认为10' },
features: {
requireConfig: true,
requireConfig: ['BILIBILI_COOKIE_*'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -11,7 +11,7 @@ export const route: Route = {
example: '/bilibili/watchlater/2267573',
parameters: { uid: '用户 id', disableEmbed: '默认为开启内嵌视频, 任意值为关闭' },
features: {
requireConfig: true,
requireConfig: ['BILIBILI_COOKIE_*'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -10,7 +10,7 @@ export const route: Route = {
example: '/civitai/discussions/4384',
parameters: { modelId: 'N' },
features: {
requireConfig: true,
requireConfig: ['CIVITAI_COOKIE'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -15,7 +15,7 @@ export const route: Route = {
example: '/discord/channel/950465850056536084',
parameters: { channelId: 'Channel ID' },
features: {
requireConfig: true,
requireConfig: ['DISCORD_AUTHORIZATION'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/discourse/0/notifications',
parameters: { configId: 'Environment variable configuration id, see above', fulltext: 'Fetch the content if the notification points to a post. This is disabled by default, set it to `1` to enable it.' },
features: {
requireConfig: true,
requireConfig: ['DISCOURSE_CONFIG_*'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/discourse/0/posts',
parameters: { configId: 'Environment variable configuration id, see above' },
features: {
requireConfig: true,
requireConfig: ['DISCOURSE_CONFIG_*'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -10,7 +10,7 @@ export const route: Route = {
example: '/ft/myft/rss-key',
parameters: { key: 'the last part of myFT personal RSS address' },
features: {
requireConfig: true,
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -11,7 +11,7 @@ export const route: Route = {
example: '/github/notifications',
parameters: {},
features: {
requireConfig: true,
requireConfig: ['GITHUB_ACCESS_TOKEN'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -18,7 +18,7 @@ export const route: Route = {
spoken_language: "natural language, available in [Trending page](https://github.com/trending/javascript?since=monthly) 's URL",
},
features: {
requireConfig: true,
requireConfig: ['GITHUB_ACCESS_TOKEN'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -22,7 +22,7 @@ export const route: Route = {
example: '/google/fonts/date',
parameters: { sort: 'Sorting type, see below, default to `date`' },
features: {
requireConfig: true,
requireConfig: ['GOOGLE_FONTS_API_KEY'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -61,7 +61,7 @@ export const route: Route = {
example: '/instagram/user/stefaniejoosten',
parameters: { category: 'Feed category, see table above', key: 'Username / Hashtag name' },
features: {
requireConfig: true,
requireConfig: ['IG_PROXY?'],
requirePuppeteer: false,
antiCrawler: true,
supportBT: false,

View File

@@ -19,7 +19,7 @@ export const route: Route = {
example: '/iwara/subscriptions',
parameters: {},
features: {
requireConfig: true,
requireConfig: ['IWARA_USERNAME', 'IWARA_PASSWORD'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -12,7 +12,7 @@ export const route: Route = {
example: '/lemmy/technology@lemmy.world/Hot',
parameters: { community: 'Lemmmy community, for example technology@lemmy.world', sort: 'Sort by, defaut to Active' },
features: {
requireConfig: true,
requireConfig: ['ALLOW_USER_SUPPLY_UNSAFE_DOMAIN'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -16,7 +16,7 @@ export const route: Route = {
example: '/manhuagui/subscribe',
parameters: {},
features: {
requireConfig: true,
requireConfig: ['MHGUI_COOKIE'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -10,7 +10,7 @@ export const route: Route = {
example: '/medium/following/imsingee',
parameters: { user: 'Username' },
features: {
requireConfig: true,
requireConfig: ['MEDIUM_COOKIE_*'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -10,7 +10,7 @@ export const route: Route = {
example: '/medium/for-you/imsingee',
parameters: { user: 'Username' },
features: {
requireConfig: true,
requireConfig: ['MEDIUM_COOKIE_*'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -10,7 +10,7 @@ export const route: Route = {
example: '/medium/tag/imsingee/cybersecurity',
parameters: { user: 'Username', tag: 'Subscribed Tag' },
features: {
requireConfig: true,
requireConfig: ['MEDIUM_COOKIE_*'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -10,7 +10,7 @@ export const route: Route = {
example: '/mihoyo/bbs/timeline',
parameters: {},
features: {
requireConfig: true,
requireConfig: ['MIHOYO_COOKIE'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/newrank/douyin/110266463747',
parameters: { dyid: '抖音ID可在新榜账号详情 URL 中找到' },
features: {
requireConfig: true,
requireConfig: ['NEWRANK_COOKIE'],
requirePuppeteer: false,
antiCrawler: true,
supportBT: false,

View File

@@ -11,7 +11,7 @@ export const route: Route = {
example: '/newrank/wechat/chijiread',
parameters: { wxid: '微信号,若微信号与新榜信息不一致,以新榜为准' },
features: {
requireConfig: true,
requireConfig: ['NEWRANK_COOKIE'],
requirePuppeteer: false,
antiCrawler: true,
supportBT: false,

View File

@@ -19,7 +19,7 @@ export const route: Route = {
example: '/notion/database/a7cc133b68454f138011f1530a13531e',
parameters: { databaseId: 'Database ID' },
features: {
requireConfig: true,
requireConfig: ['NOTION_TOKEN'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -10,7 +10,7 @@ export const route: Route = {
example: '/ouc/jwgl',
parameters: {},
features: {
requireConfig: true,
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/pianyuan/index',
parameters: { media: '类别,见下表,默认为首页' },
features: {
requireConfig: true,
requireConfig: ['PIANYUAN_COOKIE'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -14,7 +14,7 @@ export const route: Route = {
example: '/pixabay/search/cat',
parameters: { q: 'Search term', order: 'Order, `popular` or `latest`, `latest` by default' },
features: {
requireConfig: true,
requireConfig: ['PIXABAY_KEY?'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -12,7 +12,7 @@ export const route: Route = {
example: '/pixiv/user/illustfollows',
parameters: {},
features: {
requireConfig: true,
requireConfig: ['PIXIV_REFRESHTOKEN'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -19,7 +19,7 @@ export const route: Route = {
example: '/qweather/3days/广州',
parameters: { location: 'N' },
features: {
requireConfig: true,
requireConfig: ['HEFENG_KEY'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -15,7 +15,7 @@ export const route: Route = {
example: '/qweather/广州',
parameters: { location: 'N' },
features: {
requireConfig: true,
requireConfig: ['HEFENG_KEY'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/rsshub/transform/html/https%3A%2F%2Fwechat2rss.xlab.app%2Fposts%2Flist%2F/item=div%5Bclass%3D%27post%2Dcontent%27%5D%20p%20a',
parameters: { url: '`encodeURIComponent`ed URL address', routeParams: 'Transformation rules, requires URL encode' },
features: {
requireConfig: true,
requireConfig: ['ALLOW_USER_SUPPLY_UNSAFE_DOMAIN'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -21,7 +21,7 @@ export const route: Route = {
example: '/rsshub/transform/json/https%3A%2F%2Fapi.github.com%2Frepos%2Fginuerzh%2Fgost%2Freleases/title=Gost%20releases&itemTitle=tag_name&itemLink=html_url&itemDesc=body',
parameters: { url: '`encodeURIComponent`ed URL address', routeParams: 'Transformation rules, requires URL encode' },
features: {
requireConfig: true,
requireConfig: ['ALLOW_USER_SUPPLY_UNSAFE_DOMAIN'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -14,7 +14,7 @@ export const route: Route = {
example: '/sehuatang/user/411096',
parameters: { uid: '用户 uid, 可在用户主页 URL 中找到' },
features: {
requireConfig: true,
requireConfig: ['SEHUATANG_COOKIE'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/spotify/artist/6k9TBCxyr4bXwZ8Y21Kwn1',
parameters: { id: 'Artist ID' },
features: {
requireConfig: true,
requireConfig: ['SPOTIFY_CLIENT_ID', 'SPOTIFY_CLIENT_SECRET'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -8,7 +8,7 @@ export const route: Route = {
example: '/spotify/top/artists',
parameters: {},
features: {
requireConfig: true,
requireConfig: ['SPOTIFY_CLIENT_ID', 'SPOTIFY_CLIENT_SECRET', 'SPOTIFY_REFRESHTOKEN'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/spotify/playlist/4UBVy1LttvodwivPUuwJk2',
parameters: { id: 'Playlist ID' },
features: {
requireConfig: true,
requireConfig: ['SPOTIFY_CLIENT_ID', 'SPOTIFY_CLIENT_SECRET'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/spotify/saved/50',
parameters: { limit: 'Track count, 50 by default' },
features: {
requireConfig: true,
requireConfig: ['SPOTIFY_CLIENT_ID', 'SPOTIFY_CLIENT_SECRET', 'SPOTIFY_REFRESHTOKEN'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/spotify/show/5CfCWKI5pZ28U0uOzXkDHe',
parameters: { id: 'Show ID' },
features: {
requireConfig: true,
requireConfig: ['SPOTIFY_CLIENT_ID', 'SPOTIFY_CLIENT_SECRET'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -8,7 +8,7 @@ export const route: Route = {
example: '/spotify/top/tracks',
parameters: {},
features: {
requireConfig: true,
requireConfig: ['SPOTIFY_CLIENT_ID', 'SPOTIFY_CLIENT_SECRET', 'SPOTIFY_REFRESHTOKEN'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -9,7 +9,7 @@ export const route: Route = {
example: '/tophub/Om4ejxvxEN',
parameters: { id: '榜单id可在 URL 中找到' },
features: {
requireConfig: true,
requireConfig: ['TOPHUB_COOKIE?'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -14,7 +14,7 @@ export const route: Route = {
example: '/tophub/list/Om4ejxvxEN',
parameters: { id: '榜单id可在 URL 中找到' },
features: {
requireConfig: true,
requireConfig: ['TOPHUB_COOKIE?'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -11,7 +11,7 @@ export const route: Route = {
example: '/twitter/collection/DIYgod/1527857429467172864',
parameters: { uid: 'username, should match the generated token', collectionId: 'collection ID, can be found in URL', routeParams: 'extra parameters, see the table above' },
features: {
requireConfig: true,
requireConfig: ['TWITTER_USERNAME', 'TWITTER_PASSWORD'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -11,7 +11,7 @@ export const route: Route = {
example: '/twitter/followings/DIYgod',
parameters: { id: 'username', routeParams: 'extra parameters, see the table above' },
features: {
requireConfig: true,
requireConfig: ['TWITTER_USERNAME', 'TWITTER_PASSWORD'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -7,7 +7,7 @@ export const route: Route = {
example: '/twitter/keyword/RSSHub',
parameters: { keyword: 'keyword', routeParams: 'extra parameters, see the table above' },
features: {
requireConfig: true,
requireConfig: ['TWITTER_USERNAME', 'TWITTER_PASSWORD'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -7,7 +7,7 @@ export const route: Route = {
example: '/twitter/media/DIYgod',
parameters: { id: 'username; in particular, if starts with `+`, it will be recognized as a [unique ID](https://github.com/DIYgod/RSSHub/issues/12221), e.g. `+44196397`', routeParams: 'extra parameters, see the table above.' },
features: {
requireConfig: true,
requireConfig: ['TWITTER_USERNAME', 'TWITTER_PASSWORD'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -11,7 +11,7 @@ export const route: Route = {
original: 'extra parameters, data type of return, if the value is not `0`/`false` and `config.isPackage` is `true`, return the original data of twitter',
},
features: {
requireConfig: true,
requireConfig: ['TWITTER_USERNAME', 'TWITTER_PASSWORD'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -11,7 +11,7 @@ export const route: Route = {
'extra parameters, see the table above; particularly when `routeParams=exclude_replies`, replies are excluded; `routeParams=exclude_rts` excludes retweets,`routeParams=exclude_rts_replies` exclude replies and retweets; for default include all.',
},
features: {
requireConfig: true,
requireConfig: ['TWITTER_USERNAME', 'TWITTER_PASSWORD'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -12,7 +12,7 @@ export const route: Route = {
example: '/weibo/friends',
parameters: { routeParams: '额外参数;请参阅上面的说明和表格' },
features: {
requireConfig: true,
requireConfig: ['WEIBO_COOKIES'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -12,7 +12,7 @@ export const route: Route = {
example: '/weibo/group/4541216424989965',
parameters: { gid: '分组id, 在网页版分组地址栏末尾`?gid=`处获取', gname: '分组显示名称; 默认为: `微博分组`', routeParams: '额外参数;请参阅上面的说明和表格' },
features: {
requireConfig: true,
requireConfig: ['WEIBO_COOKIES'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -13,7 +13,7 @@ export const route: Route = {
example: '/weibo/timeline/3306934123',
parameters: { uid: '用户的uid', feature: '过滤类型ID0全部、1原创、2图片、3视频、4音乐默认为0。', routeParams: '额外参数;请参阅上面的说明和表格' },
features: {
requireConfig: true,
requireConfig: ['WEIBO_APP_KEY', 'WEIBO_REDIRECT_URL'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -87,7 +87,7 @@ export const route: Route = {
example: '/ximalaya/album/299146',
parameters: { type: '专辑类型, 通常可以使用 `album`,可在对应专辑页面的 URL 中找到', id: '专辑 id, 可在对应专辑页面的 URL 中找到', all: '是否需要获取全部节目,填入 `1`、`true`、`all` 视为获取所有节目,填入其他则不获取。' },
features: {
requireConfig: true,
requireConfig: ['XIMALAYA_TOKEN'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -11,7 +11,7 @@ export const route: Route = {
example: '/youtube/subscriptions',
parameters: { embed: 'Default to embed the video, set to any value to disable embedding' },
features: {
requireConfig: true,
requireConfig: ['YOUTUBE_KEY', 'YOUTUBE_CLIENT_ID', 'YOUTUBE_CLIENT_SECRET', 'YOUTUBE_REFRESH_TOKEN'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -10,7 +10,7 @@ export const route: Route = {
example: '/zhihu/timeline',
parameters: {},
features: {
requireConfig: true,
requireConfig: ['ZHIHU_COOKIES'],
requirePuppeteer: false,
antiCrawler: true,
supportBT: false,

View File

@@ -17,7 +17,7 @@ export const route: Route = {
example: '/zodgame/forum/13',
parameters: { fid: 'forum id, can be found in URL' },
features: {
requireConfig: true,
requireConfig: ['ZODGAME_COOKIE'],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,

View File

@@ -73,7 +73,7 @@ interface RouteItem {
categories?: string[];
features: {
requireConfig?: string[] | false;
requireConfig?: (`${string}?` | `${string}*` | string)[] | false;
requirePuppeteer?: boolean;
antiCrawler?: boolean;
supportRadar?: boolean;