From e5b8f852f570aa86b309e9f4e22343ccc43bff25 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Tue, 12 Mar 2024 00:29:52 +0800 Subject: [PATCH] feat: add requireConfig --- lib/config.ts | 3 +++ lib/routes/bilibili/followers.ts | 2 +- lib/routes/bilibili/followings-article.ts | 2 +- lib/routes/bilibili/followings-dynamic.ts | 2 +- lib/routes/bilibili/followings-video.ts | 2 +- lib/routes/bilibili/followings.ts | 2 +- lib/routes/bilibili/manga-followings.ts | 2 +- lib/routes/bilibili/watchlater.ts | 2 +- lib/routes/civitai/discussions.ts | 2 +- lib/routes/discord/channel.ts | 2 +- lib/routes/discourse/notifications.ts | 2 +- lib/routes/discourse/posts.ts | 2 +- lib/routes/ft/myft.ts | 2 +- lib/routes/github/notifications.ts | 2 +- lib/routes/github/trending.ts | 2 +- lib/routes/google/fonts.ts | 2 +- lib/routes/instagram/private-api/index.ts | 2 +- lib/routes/iwara/subscriptions.ts | 2 +- lib/routes/lemmy/index.ts | 2 +- lib/routes/manhuagui/subscribe.ts | 2 +- lib/routes/medium/following.ts | 2 +- lib/routes/medium/for-you.ts | 2 +- lib/routes/medium/tag.ts | 2 +- lib/routes/mihoyo/bbs/timeline.ts | 2 +- lib/routes/newrank/douyin.ts | 2 +- lib/routes/newrank/wechat.ts | 2 +- lib/routes/notion/database.ts | 2 +- lib/routes/ouc/jwgl.ts | 2 +- lib/routes/pianyuan/app.ts | 2 +- lib/routes/pixabay/search.ts | 2 +- lib/routes/pixiv/illustfollow.ts | 2 +- lib/routes/qweather/3days.ts | 2 +- lib/routes/qweather/now.ts | 2 +- lib/routes/rsshub/transform/html.ts | 2 +- lib/routes/rsshub/transform/json.ts | 2 +- lib/routes/sehuatang/user.ts | 2 +- lib/routes/spotify/artist.ts | 2 +- lib/routes/spotify/artists-top.ts | 2 +- lib/routes/spotify/playlist.ts | 2 +- lib/routes/spotify/saved.ts | 2 +- lib/routes/spotify/show.ts | 2 +- lib/routes/spotify/tracks-top.ts | 2 +- lib/routes/tophub/index.ts | 2 +- lib/routes/tophub/list.ts | 2 +- lib/routes/twitter/collection.ts | 2 +- lib/routes/twitter/followings.ts | 2 +- lib/routes/twitter/keyword.ts | 2 +- lib/routes/twitter/media.ts | 2 +- lib/routes/twitter/tweet.ts | 2 +- lib/routes/twitter/user.ts | 2 +- lib/routes/weibo/friends.ts | 2 +- lib/routes/weibo/group.ts | 2 +- lib/routes/weibo/timeline.ts | 2 +- lib/routes/ximalaya/album.ts | 2 +- lib/routes/youtube/subscriptions.ts | 2 +- lib/routes/zhihu/timeline.ts | 2 +- lib/routes/zodgame/forum.ts | 2 +- lib/types.ts | 2 +- 58 files changed, 60 insertions(+), 57 deletions(-) diff --git a/lib/config.ts b/lib/config.ts index d02536fb29..c915144c4a 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 a218408c14..090f830798 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 aabba37572..05c473793d 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 4430d02712..ecd202b995 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 c5abb3473c..f43e5fcf5c 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 bdec67c05d..7ca611c700 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 0821de608f..0785fb850f 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 56851d1923..bcad041dcd 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 d7dbeaa9f8..fa2213b7a4 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 d2742b7866..4e7bf25d11 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 0c362c8192..bd0932befc 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 924b4a3311..805d37220b 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 63879ac1d8..2e6e45106f 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 abe23575d1..74e1fd1062 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 d84db64507..0f7f7a06ac 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 e304d6883b..919e264cc6 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 0c37f5e2ed..ca3312fec5 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 5251d05972..41b725ea58 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 e638269b7c..81aee822d2 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 170fcdec0e..6facef2177 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 6c2259ce0b..2efdd81fbc 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 7bbe79f0fc..f0dc1cc8f0 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 81f80e652a..32e86995a2 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 7bc711190e..e3396aad80 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 b28b4b5685..9f2cc34001 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 47a875547c..666da75abf 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 951508fb71..5b9d1ecd23 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 ff8d019bbc..be3bc5c15c 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 3a1c6f3cbc..cc659f5490 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 989b307ff8..eac27332a0 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 06a04464b7..061826c370 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 13ecae0799..5003dfa121 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 c93578ba03..367e588adc 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 c879b2fa69..a0ce8a63b6 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 277592809e..67957c8d70 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 5ebd907901..c1edca7d3a 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 670e7645a6..5620dafa2e 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 cd0cc3acc7..200932da5b 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 409afa9169..f48e967d92 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 9e92f3c527..82ee033068 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 3f26f60ffe..c3cdea5b13 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 a148ddb78f..46d81302f5 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 169014fa26..3f7e6c4433 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 7853f97c39..d7a9d05d55 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 451cecc85f..73042c491f 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 23662fabe5..abcaf4f54b 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 37c86265a7..48e3e64d66 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 f98b94bfb3..9dff361a73 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 ceea2390e0..014b1ea878 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 48ef483537..2c0add1474 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 6707d4c0f8..f7b5720709 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 630bc05497..a72b1afeda 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 84caf1817c..a4e39c699f 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 4c95a38d6c..ca22b919d4 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 2f5632198e..19d8b160f8 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 568ad6e5c0..f85e8c3602 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 df133380a1..a3042784fd 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 d59aefaa84..40409d51bb 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;