diff --git a/lib/config.ts b/lib/config.ts index d02536fb2..c915144c4 100644 --- a/lib/config.ts +++ b/lib/config.ts @@ -184,6 +184,9 @@ export type Config = { cookies: Record; articleCookie?: string; }; + mihoyo: { + cookie?: string; + }; miniflux: { instance?: string; token?: string; diff --git a/lib/routes/bilibili/followers.ts b/lib/routes/bilibili/followers.ts index a218408c1..090f83079 100644 --- a/lib/routes/bilibili/followers.ts +++ b/lib/routes/bilibili/followers.ts @@ -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, diff --git a/lib/routes/bilibili/followings-article.ts b/lib/routes/bilibili/followings-article.ts index aabba3757..05c473793 100644 --- a/lib/routes/bilibili/followings-article.ts +++ b/lib/routes/bilibili/followings-article.ts @@ -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, diff --git a/lib/routes/bilibili/followings-dynamic.ts b/lib/routes/bilibili/followings-dynamic.ts index 4430d0271..ecd202b99 100644 --- a/lib/routes/bilibili/followings-dynamic.ts +++ b/lib/routes/bilibili/followings-dynamic.ts @@ -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, diff --git a/lib/routes/bilibili/followings-video.ts b/lib/routes/bilibili/followings-video.ts index c5abb3473..f43e5fcf5 100644 --- a/lib/routes/bilibili/followings-video.ts +++ b/lib/routes/bilibili/followings-video.ts @@ -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, diff --git a/lib/routes/bilibili/followings.ts b/lib/routes/bilibili/followings.ts index bdec67c05..7ca611c70 100644 --- a/lib/routes/bilibili/followings.ts +++ b/lib/routes/bilibili/followings.ts @@ -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, diff --git a/lib/routes/bilibili/manga-followings.ts b/lib/routes/bilibili/manga-followings.ts index 0821de608..0785fb850 100644 --- a/lib/routes/bilibili/manga-followings.ts +++ b/lib/routes/bilibili/manga-followings.ts @@ -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, diff --git a/lib/routes/bilibili/watchlater.ts b/lib/routes/bilibili/watchlater.ts index 56851d192..bcad041dc 100644 --- a/lib/routes/bilibili/watchlater.ts +++ b/lib/routes/bilibili/watchlater.ts @@ -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, diff --git a/lib/routes/civitai/discussions.ts b/lib/routes/civitai/discussions.ts index d7dbeaa9f..fa2213b7a 100644 --- a/lib/routes/civitai/discussions.ts +++ b/lib/routes/civitai/discussions.ts @@ -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, diff --git a/lib/routes/discord/channel.ts b/lib/routes/discord/channel.ts index d2742b786..4e7bf25d1 100644 --- a/lib/routes/discord/channel.ts +++ b/lib/routes/discord/channel.ts @@ -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, diff --git a/lib/routes/discourse/notifications.ts b/lib/routes/discourse/notifications.ts index 0c362c819..bd0932bef 100644 --- a/lib/routes/discourse/notifications.ts +++ b/lib/routes/discourse/notifications.ts @@ -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, diff --git a/lib/routes/discourse/posts.ts b/lib/routes/discourse/posts.ts index 924b4a331..805d37220 100644 --- a/lib/routes/discourse/posts.ts +++ b/lib/routes/discourse/posts.ts @@ -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, diff --git a/lib/routes/ft/myft.ts b/lib/routes/ft/myft.ts index 63879ac1d..2e6e45106 100644 --- a/lib/routes/ft/myft.ts +++ b/lib/routes/ft/myft.ts @@ -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, diff --git a/lib/routes/github/notifications.ts b/lib/routes/github/notifications.ts index abe23575d..74e1fd106 100644 --- a/lib/routes/github/notifications.ts +++ b/lib/routes/github/notifications.ts @@ -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, diff --git a/lib/routes/github/trending.ts b/lib/routes/github/trending.ts index d84db6450..0f7f7a06a 100644 --- a/lib/routes/github/trending.ts +++ b/lib/routes/github/trending.ts @@ -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, diff --git a/lib/routes/google/fonts.ts b/lib/routes/google/fonts.ts index e304d6883..919e264cc 100644 --- a/lib/routes/google/fonts.ts +++ b/lib/routes/google/fonts.ts @@ -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, diff --git a/lib/routes/instagram/private-api/index.ts b/lib/routes/instagram/private-api/index.ts index 0c37f5e2e..ca3312fec 100644 --- a/lib/routes/instagram/private-api/index.ts +++ b/lib/routes/instagram/private-api/index.ts @@ -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, diff --git a/lib/routes/iwara/subscriptions.ts b/lib/routes/iwara/subscriptions.ts index 5251d0597..41b725ea5 100644 --- a/lib/routes/iwara/subscriptions.ts +++ b/lib/routes/iwara/subscriptions.ts @@ -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, diff --git a/lib/routes/lemmy/index.ts b/lib/routes/lemmy/index.ts index e638269b7..81aee822d 100644 --- a/lib/routes/lemmy/index.ts +++ b/lib/routes/lemmy/index.ts @@ -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, diff --git a/lib/routes/manhuagui/subscribe.ts b/lib/routes/manhuagui/subscribe.ts index 170fcdec0..6facef217 100644 --- a/lib/routes/manhuagui/subscribe.ts +++ b/lib/routes/manhuagui/subscribe.ts @@ -16,7 +16,7 @@ export const route: Route = { example: '/manhuagui/subscribe', parameters: {}, features: { - requireConfig: true, + requireConfig: ['MHGUI_COOKIE'], requirePuppeteer: false, antiCrawler: false, supportBT: false, diff --git a/lib/routes/medium/following.ts b/lib/routes/medium/following.ts index 6c2259ce0..2efdd81fb 100644 --- a/lib/routes/medium/following.ts +++ b/lib/routes/medium/following.ts @@ -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, diff --git a/lib/routes/medium/for-you.ts b/lib/routes/medium/for-you.ts index 7bbe79f0f..f0dc1cc8f 100644 --- a/lib/routes/medium/for-you.ts +++ b/lib/routes/medium/for-you.ts @@ -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, diff --git a/lib/routes/medium/tag.ts b/lib/routes/medium/tag.ts index 81f80e652..32e86995a 100644 --- a/lib/routes/medium/tag.ts +++ b/lib/routes/medium/tag.ts @@ -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, diff --git a/lib/routes/mihoyo/bbs/timeline.ts b/lib/routes/mihoyo/bbs/timeline.ts index 7bc711190..e3396aad8 100644 --- a/lib/routes/mihoyo/bbs/timeline.ts +++ b/lib/routes/mihoyo/bbs/timeline.ts @@ -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, diff --git a/lib/routes/newrank/douyin.ts b/lib/routes/newrank/douyin.ts index b28b4b568..9f2cc3400 100644 --- a/lib/routes/newrank/douyin.ts +++ b/lib/routes/newrank/douyin.ts @@ -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, diff --git a/lib/routes/newrank/wechat.ts b/lib/routes/newrank/wechat.ts index 47a875547..666da75ab 100644 --- a/lib/routes/newrank/wechat.ts +++ b/lib/routes/newrank/wechat.ts @@ -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, diff --git a/lib/routes/notion/database.ts b/lib/routes/notion/database.ts index 951508fb7..5b9d1ecd2 100644 --- a/lib/routes/notion/database.ts +++ b/lib/routes/notion/database.ts @@ -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, diff --git a/lib/routes/ouc/jwgl.ts b/lib/routes/ouc/jwgl.ts index ff8d019bb..be3bc5c15 100644 --- a/lib/routes/ouc/jwgl.ts +++ b/lib/routes/ouc/jwgl.ts @@ -10,7 +10,7 @@ export const route: Route = { example: '/ouc/jwgl', parameters: {}, features: { - requireConfig: true, + requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, diff --git a/lib/routes/pianyuan/app.ts b/lib/routes/pianyuan/app.ts index 3a1c6f3cb..cc659f549 100644 --- a/lib/routes/pianyuan/app.ts +++ b/lib/routes/pianyuan/app.ts @@ -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, diff --git a/lib/routes/pixabay/search.ts b/lib/routes/pixabay/search.ts index 989b307ff..eac27332a 100644 --- a/lib/routes/pixabay/search.ts +++ b/lib/routes/pixabay/search.ts @@ -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, diff --git a/lib/routes/pixiv/illustfollow.ts b/lib/routes/pixiv/illustfollow.ts index 06a04464b..061826c37 100644 --- a/lib/routes/pixiv/illustfollow.ts +++ b/lib/routes/pixiv/illustfollow.ts @@ -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, diff --git a/lib/routes/qweather/3days.ts b/lib/routes/qweather/3days.ts index 13ecae079..5003dfa12 100644 --- a/lib/routes/qweather/3days.ts +++ b/lib/routes/qweather/3days.ts @@ -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, diff --git a/lib/routes/qweather/now.ts b/lib/routes/qweather/now.ts index c93578ba0..367e588ad 100644 --- a/lib/routes/qweather/now.ts +++ b/lib/routes/qweather/now.ts @@ -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, diff --git a/lib/routes/rsshub/transform/html.ts b/lib/routes/rsshub/transform/html.ts index c879b2fa6..a0ce8a63b 100644 --- a/lib/routes/rsshub/transform/html.ts +++ b/lib/routes/rsshub/transform/html.ts @@ -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, diff --git a/lib/routes/rsshub/transform/json.ts b/lib/routes/rsshub/transform/json.ts index 277592809..67957c8d7 100644 --- a/lib/routes/rsshub/transform/json.ts +++ b/lib/routes/rsshub/transform/json.ts @@ -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, diff --git a/lib/routes/sehuatang/user.ts b/lib/routes/sehuatang/user.ts index 5ebd90790..c1edca7d3 100644 --- a/lib/routes/sehuatang/user.ts +++ b/lib/routes/sehuatang/user.ts @@ -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, diff --git a/lib/routes/spotify/artist.ts b/lib/routes/spotify/artist.ts index 670e7645a..5620dafa2 100644 --- a/lib/routes/spotify/artist.ts +++ b/lib/routes/spotify/artist.ts @@ -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, diff --git a/lib/routes/spotify/artists-top.ts b/lib/routes/spotify/artists-top.ts index cd0cc3acc..200932da5 100644 --- a/lib/routes/spotify/artists-top.ts +++ b/lib/routes/spotify/artists-top.ts @@ -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, diff --git a/lib/routes/spotify/playlist.ts b/lib/routes/spotify/playlist.ts index 409afa916..f48e967d9 100644 --- a/lib/routes/spotify/playlist.ts +++ b/lib/routes/spotify/playlist.ts @@ -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, diff --git a/lib/routes/spotify/saved.ts b/lib/routes/spotify/saved.ts index 9e92f3c52..82ee03306 100644 --- a/lib/routes/spotify/saved.ts +++ b/lib/routes/spotify/saved.ts @@ -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, diff --git a/lib/routes/spotify/show.ts b/lib/routes/spotify/show.ts index 3f26f60ff..c3cdea5b1 100644 --- a/lib/routes/spotify/show.ts +++ b/lib/routes/spotify/show.ts @@ -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, diff --git a/lib/routes/spotify/tracks-top.ts b/lib/routes/spotify/tracks-top.ts index a148ddb78..46d81302f 100644 --- a/lib/routes/spotify/tracks-top.ts +++ b/lib/routes/spotify/tracks-top.ts @@ -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, diff --git a/lib/routes/tophub/index.ts b/lib/routes/tophub/index.ts index 169014fa2..3f7e6c443 100644 --- a/lib/routes/tophub/index.ts +++ b/lib/routes/tophub/index.ts @@ -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, diff --git a/lib/routes/tophub/list.ts b/lib/routes/tophub/list.ts index 7853f97c3..d7a9d05d5 100644 --- a/lib/routes/tophub/list.ts +++ b/lib/routes/tophub/list.ts @@ -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, diff --git a/lib/routes/twitter/collection.ts b/lib/routes/twitter/collection.ts index 451cecc85..73042c491 100644 --- a/lib/routes/twitter/collection.ts +++ b/lib/routes/twitter/collection.ts @@ -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, diff --git a/lib/routes/twitter/followings.ts b/lib/routes/twitter/followings.ts index 23662fabe..abcaf4f54 100644 --- a/lib/routes/twitter/followings.ts +++ b/lib/routes/twitter/followings.ts @@ -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, diff --git a/lib/routes/twitter/keyword.ts b/lib/routes/twitter/keyword.ts index 37c86265a..48e3e64d6 100644 --- a/lib/routes/twitter/keyword.ts +++ b/lib/routes/twitter/keyword.ts @@ -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, diff --git a/lib/routes/twitter/media.ts b/lib/routes/twitter/media.ts index f98b94bfb..9dff361a7 100644 --- a/lib/routes/twitter/media.ts +++ b/lib/routes/twitter/media.ts @@ -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, diff --git a/lib/routes/twitter/tweet.ts b/lib/routes/twitter/tweet.ts index ceea2390e..014b1ea87 100644 --- a/lib/routes/twitter/tweet.ts +++ b/lib/routes/twitter/tweet.ts @@ -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, diff --git a/lib/routes/twitter/user.ts b/lib/routes/twitter/user.ts index 48ef48353..2c0add147 100644 --- a/lib/routes/twitter/user.ts +++ b/lib/routes/twitter/user.ts @@ -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, diff --git a/lib/routes/weibo/friends.ts b/lib/routes/weibo/friends.ts index 6707d4c0f..f7b572070 100644 --- a/lib/routes/weibo/friends.ts +++ b/lib/routes/weibo/friends.ts @@ -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, diff --git a/lib/routes/weibo/group.ts b/lib/routes/weibo/group.ts index 630bc0549..a72b1afed 100644 --- a/lib/routes/weibo/group.ts +++ b/lib/routes/weibo/group.ts @@ -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, diff --git a/lib/routes/weibo/timeline.ts b/lib/routes/weibo/timeline.ts index 84caf1817..a4e39c699 100644 --- a/lib/routes/weibo/timeline.ts +++ b/lib/routes/weibo/timeline.ts @@ -13,7 +13,7 @@ export const route: Route = { example: '/weibo/timeline/3306934123', parameters: { uid: '用户的uid', feature: '过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。', routeParams: '额外参数;请参阅上面的说明和表格' }, features: { - requireConfig: true, + requireConfig: ['WEIBO_APP_KEY', 'WEIBO_REDIRECT_URL'], requirePuppeteer: false, antiCrawler: false, supportBT: false, diff --git a/lib/routes/ximalaya/album.ts b/lib/routes/ximalaya/album.ts index 4c95a38d6..ca22b919d 100644 --- a/lib/routes/ximalaya/album.ts +++ b/lib/routes/ximalaya/album.ts @@ -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, diff --git a/lib/routes/youtube/subscriptions.ts b/lib/routes/youtube/subscriptions.ts index 2f5632198..19d8b160f 100644 --- a/lib/routes/youtube/subscriptions.ts +++ b/lib/routes/youtube/subscriptions.ts @@ -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, diff --git a/lib/routes/zhihu/timeline.ts b/lib/routes/zhihu/timeline.ts index 568ad6e5c..f85e8c360 100644 --- a/lib/routes/zhihu/timeline.ts +++ b/lib/routes/zhihu/timeline.ts @@ -10,7 +10,7 @@ export const route: Route = { example: '/zhihu/timeline', parameters: {}, features: { - requireConfig: true, + requireConfig: ['ZHIHU_COOKIES'], requirePuppeteer: false, antiCrawler: true, supportBT: false, diff --git a/lib/routes/zodgame/forum.ts b/lib/routes/zodgame/forum.ts index df133380a..a3042784f 100644 --- a/lib/routes/zodgame/forum.ts +++ b/lib/routes/zodgame/forum.ts @@ -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, diff --git a/lib/types.ts b/lib/types.ts index d59aefaa8..40409d51b 100644 --- a/lib/types.ts +++ b/lib/types.ts @@ -73,7 +73,7 @@ interface RouteItem { categories?: string[]; features: { - requireConfig?: string[] | false; + requireConfig?: (`${string}?` | `${string}*` | string)[] | false; requirePuppeteer?: boolean; antiCrawler?: boolean; supportRadar?: boolean;