diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 3e06b6773a331b..1a29f35400dfee 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -2,4 +2,4 @@ github: DIYgod patreon: DIYgod open_collective: RSSHub -custom: ['https://afdian.net/a/diygod', 'https://docs.rsshub.app/support'] +custom: ['https://afdian.net/a/diygod', 'https://docs.rsshub.app/sponsor'] diff --git a/.github/ISSUE_TEMPLATE/bug_report_en.yml b/.github/ISSUE_TEMPLATE/bug_report_en.yml index ac686b2dcc909a..de560dad5979cc 100644 --- a/.github/ISSUE_TEMPLATE/bug_report_en.yml +++ b/.github/ISSUE_TEMPLATE/bug_report_en.yml @@ -6,7 +6,7 @@ body: - type: markdown attributes: value: | - Please ensure you have read [documentation](https://docs.rsshub.app/en), and provide all the information required by this template, otherwise the issue will be closed immediately. + Please ensure you have read [documentation](https://docs.rsshub.app/), and provide all the information required by this template, otherwise the issue will be closed immediately. Due to the anti-crawling policy implemented by certain websites, some RSS routes provided by the demo will return status code 403. This is not an issue caused by RSSHub and please do not report it. - type: textarea diff --git a/.github/ISSUE_TEMPLATE/feature_request_en.yml b/.github/ISSUE_TEMPLATE/feature_request_en.yml index ed5db239e07fe0..7aee701cc8e5d9 100644 --- a/.github/ISSUE_TEMPLATE/feature_request_en.yml +++ b/.github/ISSUE_TEMPLATE/feature_request_en.yml @@ -7,7 +7,7 @@ body: - type: markdown attributes: value: | - Please ensure the feature requested is not listed in [documentation](https://docs.rsshub.app/en) or [issue](https://github.com/DIYgod/RSSHub/issues), and is not a [new RSS proposal](https://github.com/DIYgod/RSSHub/issues/new?assignees=&labels=RSS+proposal&template=rss_request_en.yml), and provide all the information required by this template. + Please ensure the feature requested is not listed in [documentation](https://docs.rsshub.app/) or [issue](https://github.com/DIYgod/RSSHub/issues), and is not a [new RSS proposal](https://github.com/DIYgod/RSSHub/issues/new?assignees=&labels=RSS+proposal&template=rss_request_en.yml), and provide all the information required by this template. Otherwise the issue will be closed immediately. - type: textarea diff --git a/.github/ISSUE_TEMPLATE/rss_request_en.yml b/.github/ISSUE_TEMPLATE/rss_request_en.yml index 322b48e143d2ed..0f1efc64b5c915 100644 --- a/.github/ISSUE_TEMPLATE/rss_request_en.yml +++ b/.github/ISSUE_TEMPLATE/rss_request_en.yml @@ -7,7 +7,7 @@ body: - type: markdown attributes: value: | - Please ensure the RSS proposal is not listed in [documentation](https://docs.rsshub.app/en) or [issue](https://github.com/DIYgod/RSSHub/issues), website doesn't provide this kind of RSS feed, and provide all the information required by this template. + Please ensure the RSS proposal is not listed in [documentation](https://docs.rsshub.app/) or [issue](https://github.com/DIYgod/RSSHub/issues), website doesn't provide this kind of RSS feed, and provide all the information required by this template. Otherwise the issue will be closed immediately. We are flooded with feature requests and short-handed, please try to make it yourself, the [guide](https://docs.rsshub.app/joinus) is a good place to start. Submit a pull request when done! diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 12d5111208bd9d..273aa2c8b304c6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1 +1 @@ -## Please refer to [Join Us](https://docs.rsshub.app/joinus/quick-start) +## Please refer to [Join Us](https://docs.rsshub.app/joinus/) diff --git a/README.md b/README.md index 936fb4887170b3..8eb2654555ec1d 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ RSSHub can be used with browser extension [RSSHub Radar](https://github.com/DIYg
-[![](https://opencollective.com/static/images/become_sponsor.svg)](https://docs.rsshub.app/support/) +[![](https://opencollective.com/static/images/become_sponsor.svg)](https://docs.rsshub.app/sponsor/) ### Contributors @@ -54,15 +54,15 @@ Logo designer [sheldonrrr](https://dribbble.com/sheldonrrr) We welcome all pull requests. Suggestions and feedback are also welcomed [here](https://github.com/DIYgod/RSSHub/issues). -Refer to [Join Us](https://docs.rsshub.app/joinus/quick-start) +Refer to [Join Us](https://docs.rsshub.app/joinus/) ## Deployment -Refer to [Deployment](https://docs.rsshub.app/install/) +Refer to [Deployment](https://docs.rsshub.app/deploy/) ## Support RSSHub -Refer to [Support RSSHub](https://docs.rsshub.app/support/) +Refer to [Support RSSHub](https://docs.rsshub.app/sponsor/) RSSHub is open source and completely free under the MIT license. However, just like any other open source project, as the project grows, the hosting, development and maintenance requires funding support. diff --git a/api/vercel.ts b/api/vercel.ts index 1f9ac0208e03c1..12a2a910b723a3 100644 --- a/api/vercel.ts +++ b/api/vercel.ts @@ -12,6 +12,6 @@ const app = require('../lib/app'); const logger = require('../lib/utils/logger'); logger.info(`🎉 RSSHub is running! Cheers!`); -logger.info('💖 Can you help keep this open source project alive? Please sponsor 👉 https://docs.rsshub.app/support'); +logger.info('💖 Can you help keep this open source project alive? Please sponsor 👉 https://docs.rsshub.app/sponsor'); module.exports = handle(app); diff --git a/lib/index.ts b/lib/index.ts index edef861a134e38..24e7a247c3d3ac 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -8,7 +8,7 @@ const port = config.connect.port; const hostIPList = getLocalhostAddress(); logger.info(`🎉 RSSHub is running on port ${port}! Cheers!`); -logger.info('💖 Can you help keep this open source project alive? Please sponsor 👉 https://docs.rsshub.app/support'); +logger.info('💖 Can you help keep this open source project alive? Please sponsor 👉 https://docs.rsshub.app/sponsor'); logger.info(`🔗 Local: 👉 http://localhost:${port}`); for (const ip of hostIPList) { logger.info(`🔗 Network: 👉 http://${ip}:${port}`); diff --git a/lib/middleware/parameter.ts b/lib/middleware/parameter.ts index 1933889128678d..8306f39cc482f3 100644 --- a/lib/middleware/parameter.ts +++ b/lib/middleware/parameter.ts @@ -380,7 +380,7 @@ const middleware: MiddlewareHandler = async (ctx, next) => { } } } else { - throw new Error(`Invalid parameter brief. Please check the doc https://docs.rsshub.app/parameter#shu-chu-jian-xun`); + throw new Error(`Invalid parameter brief. Please check the doc https://docs.rsshub.app/guide/parameters#shu-chu-jian-xun`); } } // some parameters are processed in `anti-hotlink.js` diff --git a/lib/routes-deprecated/disqus/posts.js b/lib/routes-deprecated/disqus/posts.js index ab1779e1ea7c9d..28e72e887ced98 100644 --- a/lib/routes-deprecated/disqus/posts.js +++ b/lib/routes-deprecated/disqus/posts.js @@ -3,7 +3,7 @@ const config = require('@/config').value; module.exports = async (ctx) => { if (!config.disqus || !config.disqus.api_key) { - throw new Error('Disqus RSS is disabled due to the lack of relevant config'); + throw new Error('Disqus RSS is disabled due to the lack of relevant config'); } const forum = ctx.params.forum; diff --git a/lib/routes-deprecated/fanfou/favorites.js b/lib/routes-deprecated/fanfou/favorites.js index abeb4bb35e82a3..7131ef49874878 100644 --- a/lib/routes-deprecated/fanfou/favorites.js +++ b/lib/routes-deprecated/fanfou/favorites.js @@ -3,7 +3,7 @@ const utils = require('./utils'); module.exports = async (ctx) => { if (!config.fanfou || !config.fanfou.consumer_key || !config.fanfou.consumer_secret || !config.fanfou.username || !config.fanfou.password) { - throw new Error('Fanfou RSS is disabled due to the lack of relevant config'); + throw new Error('Fanfou RSS is disabled due to the lack of relevant config'); } const uid = ctx.params.uid; diff --git a/lib/routes-deprecated/fanfou/home-timeline.js b/lib/routes-deprecated/fanfou/home-timeline.js index 94af0c2d8d2f5c..4c97e848a6dc39 100644 --- a/lib/routes-deprecated/fanfou/home-timeline.js +++ b/lib/routes-deprecated/fanfou/home-timeline.js @@ -3,7 +3,7 @@ const utils = require('./utils'); module.exports = async (ctx) => { if (!config.fanfou || !config.fanfou.consumer_key || !config.fanfou.consumer_secret || !config.fanfou.username || !config.fanfou.password) { - throw new Error('Fanfou RSS is disabled due to the lack of relevant config'); + throw new Error('Fanfou RSS is disabled due to the lack of relevant config'); } const fanfou = await utils.getFanfou(); diff --git a/lib/routes-deprecated/fanfou/public-timeline.js b/lib/routes-deprecated/fanfou/public-timeline.js index 81d18f28e27231..90e41bf03fb78e 100644 --- a/lib/routes-deprecated/fanfou/public-timeline.js +++ b/lib/routes-deprecated/fanfou/public-timeline.js @@ -3,7 +3,7 @@ const utils = require('./utils'); module.exports = async (ctx) => { if (!config.fanfou || !config.fanfou.consumer_key || !config.fanfou.consumer_secret || !config.fanfou.username || !config.fanfou.password) { - throw new Error('Fanfou RSS is disabled due to the lack of relevant config'); + throw new Error('Fanfou RSS is disabled due to the lack of relevant config'); } const keyword = ctx.params.keyword; diff --git a/lib/routes-deprecated/fanfou/user-timeline.js b/lib/routes-deprecated/fanfou/user-timeline.js index 4f6d9d8611bb2c..3644f7c34b64c2 100644 --- a/lib/routes-deprecated/fanfou/user-timeline.js +++ b/lib/routes-deprecated/fanfou/user-timeline.js @@ -3,7 +3,7 @@ const utils = require('./utils'); module.exports = async (ctx) => { if (!config.fanfou || !config.fanfou.consumer_key || !config.fanfou.consumer_secret || !config.fanfou.username || !config.fanfou.password) { - throw new Error('Fanfou RSS is disabled due to the lack of relevant config'); + throw new Error('Fanfou RSS is disabled due to the lack of relevant config'); } const uid = ctx.params.uid; diff --git a/lib/routes-deprecated/lastfm/loved.js b/lib/routes-deprecated/lastfm/loved.js index 51ca36f9cb68d5..276e2802ba411c 100644 --- a/lib/routes-deprecated/lastfm/loved.js +++ b/lib/routes-deprecated/lastfm/loved.js @@ -3,7 +3,7 @@ const config = require('@/config').value; module.exports = async (ctx) => { if (!config.lastfm || !config.lastfm.api_key) { - throw new Error('Last.fm RSS is disabled due to the lack of relevant config'); + throw new Error('Last.fm RSS is disabled due to the lack of relevant config'); } const user = ctx.params.user; diff --git a/lib/routes-deprecated/lastfm/recent.js b/lib/routes-deprecated/lastfm/recent.js index 02b17668ce2c3b..4915fe7d8729b6 100644 --- a/lib/routes-deprecated/lastfm/recent.js +++ b/lib/routes-deprecated/lastfm/recent.js @@ -3,7 +3,7 @@ const config = require('@/config').value; module.exports = async (ctx) => { if (!config.lastfm || !config.lastfm.api_key) { - throw new Error('Last.fm RSS is disabled due to the lack of relevant config'); + throw new Error('Last.fm RSS is disabled due to the lack of relevant config'); } const user = ctx.params.user; diff --git a/lib/routes-deprecated/lastfm/top.js b/lib/routes-deprecated/lastfm/top.js index 3ee3b7ee25ab21..b58f357399e8c5 100644 --- a/lib/routes-deprecated/lastfm/top.js +++ b/lib/routes-deprecated/lastfm/top.js @@ -3,7 +3,7 @@ const config = require('@/config').value; module.exports = async (ctx) => { if (!config.lastfm || !config.lastfm.api_key) { - throw new Error('Last.fm RSS is disabled due to the lack of relevant config'); + throw new Error('Last.fm RSS is disabled due to the lack of relevant config'); } const country = ctx.params.country; diff --git a/lib/routes/163/music/playlist.ts b/lib/routes/163/music/playlist.ts index 5a7861217dbbf0..61da28a6270687 100644 --- a/lib/routes/163/music/playlist.ts +++ b/lib/routes/163/music/playlist.ts @@ -27,7 +27,7 @@ export const route: Route = { async function handler(ctx) { if (!config.ncm || !config.ncm.cookies) { - throw new Error('163 Music RSS is disabled due to the lack of relevant config'); + throw new Error('163 Music RSS is disabled due to the lack of relevant config'); } const id = ctx.req.param('id'); diff --git a/lib/routes/bilibili/followers.ts b/lib/routes/bilibili/followers.ts index 36cbd342c0c692..962d860d03df9e 100644 --- a/lib/routes/bilibili/followers.ts +++ b/lib/routes/bilibili/followers.ts @@ -45,7 +45,7 @@ async function handler(ctx) { const cookie = config.bilibili.cookies[loginUid]; if (cookie === undefined) { - throw new Error('缺少对应 loginUid 的 Bilibili 用户登录后的 Cookie 值 bilibili 用户关注动态系列路由'); + throw new Error('缺少对应 loginUid 的 Bilibili 用户登录后的 Cookie 值 bilibili 用户关注动态系列路由'); } const name = await cache.getUsernameFromUID(uid); diff --git a/lib/routes/bilibili/followings.ts b/lib/routes/bilibili/followings.ts index 4f1443896c3a6f..82cce50d205e47 100644 --- a/lib/routes/bilibili/followings.ts +++ b/lib/routes/bilibili/followings.ts @@ -43,7 +43,7 @@ async function handler(ctx) { const loginUid = ctx.req.param('loginUid'); const cookie = config.bilibili.cookies[loginUid]; if (cookie === undefined) { - throw new Error('缺少对应 loginUid 的 Bilibili 用户登录后的 Cookie 值 bilibili 用户关注动态系列路由'); + throw new Error('缺少对应 loginUid 的 Bilibili 用户登录后的 Cookie 值 bilibili 用户关注动态系列路由'); } const uid = ctx.req.param('uid'); diff --git a/lib/routes/discord/channel.ts b/lib/routes/discord/channel.ts index d3986c40f64d75..ed2ef1c2166610 100644 --- a/lib/routes/discord/channel.ts +++ b/lib/routes/discord/channel.ts @@ -39,7 +39,7 @@ export const route: Route = { async function handler(ctx) { if (!config.discord || !config.discord.authorization) { - throw new Error('Discord RSS is disabled due to the lack of relevant config'); + throw new Error('Discord RSS is disabled due to the lack of relevant config'); } const { authorization } = config.discord; const channelId = ctx.req.param('channelId'); diff --git a/lib/routes/discourse/utils.ts b/lib/routes/discourse/utils.ts index 1927fd11a36ef4..897738ed72518a 100644 --- a/lib/routes/discourse/utils.ts +++ b/lib/routes/discourse/utils.ts @@ -2,7 +2,7 @@ import { config } from '@/config'; function getConfig(ctx) { if (!config.discourse.config[ctx.req.param('configId')]) { - throw new Error('Discourse RSS is disabled due to the lack of relevant config'); + throw new Error('Discourse RSS is disabled due to the lack of relevant config'); } return config.discourse.config[ctx.req.param('configId')]; } diff --git a/lib/routes/ehentai/favorites.ts b/lib/routes/ehentai/favorites.ts index a5a1d8ad558f4f..2c0dac5a7566f1 100644 --- a/lib/routes/ehentai/favorites.ts +++ b/lib/routes/ehentai/favorites.ts @@ -22,7 +22,7 @@ export const route: Route = { async function handler(ctx) { if (!EhAPI.has_cookie) { - throw new Error('Ehentai favorites RSS is disabled due to the lack of relevant config'); + throw new Error('Ehentai favorites RSS is disabled due to the lack of relevant config'); } const favcat = ctx.req.param('favcat') ? Number.parseInt(ctx.req.param('favcat')) : 0; const page = ctx.req.param('page'); diff --git a/lib/routes/github/follower.ts b/lib/routes/github/follower.ts index 554de31f358b38..6a6dabb9a8160b 100644 --- a/lib/routes/github/follower.ts +++ b/lib/routes/github/follower.ts @@ -27,7 +27,7 @@ export const route: Route = { async function handler(ctx) { if (!config.github || !config.github.access_token) { - throw new Error('GitHub follower RSS is disabled due to the lack of relevant config'); + throw new Error('GitHub follower RSS is disabled due to the lack of relevant config'); } const user = ctx.req.param('user'); diff --git a/lib/routes/github/notifications.ts b/lib/routes/github/notifications.ts index c12ec85a7cd95d..e0594bd46ff566 100644 --- a/lib/routes/github/notifications.ts +++ b/lib/routes/github/notifications.ts @@ -36,7 +36,7 @@ export const route: Route = { async function handler(ctx) { if (!config.github || !config.github.access_token) { - throw new Error('GitHub trending RSS is disabled due to the lack of relevant config'); + throw new Error('GitHub trending RSS is disabled due to the lack of relevant config'); } const headers = { Accept: 'application/vnd.github.v3+json', diff --git a/lib/routes/github/star.ts b/lib/routes/github/star.ts index 309f513906ac5e..06e2b1b2bac557 100644 --- a/lib/routes/github/star.ts +++ b/lib/routes/github/star.ts @@ -27,7 +27,7 @@ export const route: Route = { async function handler(ctx) { if (!config.github || !config.github.access_token) { - throw new Error('GitHub star RSS is disabled due to the lack of relevant config'); + throw new Error('GitHub star RSS is disabled due to the lack of relevant config'); } const user = ctx.req.param('user'); const repo = ctx.req.param('repo'); diff --git a/lib/routes/github/trending.ts b/lib/routes/github/trending.ts index a8872bfe35815e..fe2ec6cde144ff 100644 --- a/lib/routes/github/trending.ts +++ b/lib/routes/github/trending.ts @@ -44,7 +44,7 @@ export const route: Route = { async function handler(ctx) { if (!config.github || !config.github.access_token) { - throw new Error('GitHub trending RSS is disabled due to the lack of relevant config'); + throw new Error('GitHub trending RSS is disabled due to the lack of relevant config'); } const since = ctx.req.param('since'); const language = ctx.req.param('language') === 'any' ? '' : ctx.req.param('language'); diff --git a/lib/routes/google/fonts.ts b/lib/routes/google/fonts.ts index c21ac8b495a434..2ee8551da8682a 100644 --- a/lib/routes/google/fonts.ts +++ b/lib/routes/google/fonts.ts @@ -42,7 +42,7 @@ export const route: Route = { | date | trending | popularity | alpha | style | :::warning - This route requires API key, therefore it's only available when self-hosting, refer to the [Deploy Guide](https://docs.rsshub.app/install/#configuration-route-specific-configurations) for route-specific configurations. + This route requires API key, therefore it's only available when self-hosting, refer to the [Deploy Guide](https://docs.rsshub.app/deploy/config#route-specific-configurations) for route-specific configurations. :::`, }; diff --git a/lib/routes/hit/namespace.ts b/lib/routes/hit/namespace.ts index 0d2385c40bf8e5..e4eae82546d766 100644 --- a/lib/routes/hit/namespace.ts +++ b/lib/routes/hit/namespace.ts @@ -4,6 +4,6 @@ export const namespace: Namespace = { name: '哈尔滨工业大学', url: 'jwc.hit.edu.cn', description: `:::warning -哈工大网站疑似禁止了\`rsshub.app\`的访问,使用路由需要自行 [部署](https://docs.rsshub.app/install)。 +哈工大网站疑似禁止了\`rsshub.app\`的访问,使用路由需要自行 [部署](https://docs.rsshub.app/deploy/)。 :::`, }; diff --git a/lib/routes/instagram/private-api/index.ts b/lib/routes/instagram/private-api/index.ts index ce6af2cb60cad2..92f1aaedad0354 100644 --- a/lib/routes/instagram/private-api/index.ts +++ b/lib/routes/instagram/private-api/index.ts @@ -78,7 +78,7 @@ export const route: Route = { maintainers: ['oppilate', 'DIYgod'], handler, description: `:::warning -Due to [Instagram Private API](https://github.com/dilame/instagram-private-api) restrictions, you have to setup your credentials on the server. 2FA is not supported. See [deployment guide](https://docs.rsshub.app/install/) for more. +Due to [Instagram Private API](https://github.com/dilame/instagram-private-api) restrictions, you have to setup your credentials on the server. 2FA is not supported. See [deployment guide](https://docs.rsshub.app/deploy/) for more. :::`, }; diff --git a/lib/routes/instagram/private-api/utils.ts b/lib/routes/instagram/private-api/utils.ts index 2ac6fd94802505..f6cdeac65810d6 100644 --- a/lib/routes/instagram/private-api/utils.ts +++ b/lib/routes/instagram/private-api/utils.ts @@ -6,7 +6,7 @@ const ig = new IgApiClient(); async function login(ig, cache) { if (!config.instagram || !config.instagram.username || !config.instagram.password) { - throw new Error('Instagram RSS is disabled due to the lack of relevant config'); + throw new Error('Instagram RSS is disabled due to the lack of relevant config'); } const LOGIN_CACHE_KEY = 'instagram:login'; const { username, password } = config.instagram; diff --git a/lib/routes/instagram/web-api/index.ts b/lib/routes/instagram/web-api/index.ts index 33f916331b1521..f53da7ff0c2750 100644 --- a/lib/routes/instagram/web-api/index.ts +++ b/lib/routes/instagram/web-api/index.ts @@ -33,7 +33,7 @@ You may need to setup cookie for a less restrictive rate limit and private profi async function handler(ctx) { // if (!config.instagram || !config.instagram.cookie) { - // throw Error('Instagram RSS is disabled due to the lack of relevant config'); + // throw Error('Instagram RSS is disabled due to the lack of relevant config'); // } const availableCategories = ['user', 'tags']; const { category, key } = ctx.req.param(); diff --git a/lib/routes/iwara/subscriptions.ts b/lib/routes/iwara/subscriptions.ts index 4bf05913e7c3ac..a845e7dd467024 100644 --- a/lib/routes/iwara/subscriptions.ts +++ b/lib/routes/iwara/subscriptions.ts @@ -45,13 +45,13 @@ export const route: Route = { handler, url: 'ecchi.iwara.tv/', description: `:::warning - This route requires username and password, therefore it's only available when self-hosting, refer to the [Deploy Guide](/install/#route-specific-configurations) for route-specific configurations. + This route requires username and password, therefore it's only available when self-hosting, refer to the [Deploy Guide](https://docs.rsshub.app/deploy/config#route-specific-configurations) for route-specific configurations. :::`, }; async function handler() { if (!config.iwara || !config.iwara.username || !config.iwara.password) { - throw new Error('Iwara subscription RSS is disabled due to the lack of relevant config'); + throw new Error('Iwara subscription RSS is disabled due to the lack of relevant config'); } const rootUrl = `https://www.iwara.tv`; diff --git a/lib/routes/mail/imap.ts b/lib/routes/mail/imap.ts index 93ae006466a082..fa9be620c1bc4f 100644 --- a/lib/routes/mail/imap.ts +++ b/lib/routes/mail/imap.ts @@ -23,7 +23,7 @@ async function handler(ctx) { }; if (!mailConfig.username || !mailConfig.password || !mailConfig.host || !mailConfig.port) { - throw new Error('Email Inbox RSS is disabled due to the lack of relevant config'); + throw new Error('Email Inbox RSS is disabled due to the lack of relevant config'); } const client = new ImapFlow({ diff --git a/lib/routes/manhuagui/subscribe.ts b/lib/routes/manhuagui/subscribe.ts index ebc9ae50e8eec9..7e94c6477030af 100644 --- a/lib/routes/manhuagui/subscribe.ts +++ b/lib/routes/manhuagui/subscribe.ts @@ -45,7 +45,7 @@ export const route: Route = { async function handler() { if (!config.manhuagui || !config.manhuagui.cookie) { - throw new Error('manhuagui RSS is disabled due to the lack of relevant config'); + throw new Error('manhuagui RSS is disabled due to the lack of relevant config'); } const cookie = config.manhuagui.cookie; const response = await got({ diff --git a/lib/routes/mastodon/namespace.ts b/lib/routes/mastodon/namespace.ts index f0f3f3dc486db3..0d8b2473cc1822 100644 --- a/lib/routes/mastodon/namespace.ts +++ b/lib/routes/mastodon/namespace.ts @@ -9,6 +9,6 @@ Official user RSS: - RSS: \`https://**:instance**/users/**:username**.rss\` ([Example](https://pawoo.net/users/pawoo_support.rss)) - Atom: ~~\`https://**:instance**/users/**:username**.atom\`~~ (Only for pawoo.net, [example](https://pawoo.net/users/pawoo_support.atom)) -These feed do not include boosts (a.k.a. reblogs). RSSHub provides a feed for user timeline based on the Mastodon API, but to use that, you may need to create application on a Mastodon instance, and configure your RSSHub instance. Check the [Deploy Guide](/install/#route-specific-configurations) for route-specific configurations. +These feed do not include boosts (a.k.a. reblogs). RSSHub provides a feed for user timeline based on the Mastodon API, but to use that, you may need to create application on a Mastodon instance, and configure your RSSHub instance. Check the [Deploy Guide](https://docs.rsshub.app/deploy/config#route-specific-configurations) for route-specific configurations. :::`, }; diff --git a/lib/routes/mastodon/utils.ts b/lib/routes/mastodon/utils.ts index d4492f007ad979..f25cda95e517bb 100644 --- a/lib/routes/mastodon/utils.ts +++ b/lib/routes/mastodon/utils.ts @@ -93,7 +93,7 @@ async function getAccountIdByAcct(acct) { const site = mastodonConfig.apiHost || acctHost; const acctDomain = mastodonConfig.acctDomain || acctHost; if (!(site && acctDomain)) { - throw new Error('Mastodon RSS is disabled due to the lack of relevant config'); + throw new Error('Mastodon RSS is disabled due to the lack of relevant config'); } if (!config.feature.allow_user_supply_unsafe_domain && !allowSiteList.includes(site)) { throw new Error(`RSS for this domain is disabled unless 'ALLOW_USER_SUPPLY_UNSAFE_DOMAIN' is set to 'true' or 'MASTODON_API_HOST' is set.`); diff --git a/lib/routes/mihoyo/bbs/cache.ts b/lib/routes/mihoyo/bbs/cache.ts index 05adf548141c38..9e56eafa7401ff 100644 --- a/lib/routes/mihoyo/bbs/cache.ts +++ b/lib/routes/mihoyo/bbs/cache.ts @@ -4,7 +4,7 @@ import { config } from '@/config'; const getUserFullInfo = (ctx, uid) => { if (!uid && !config.mihoyo.cookie) { - throw new Error('GetUserFullInfo is not available due to the absense of [Miyoushe Cookie]. Check relevant config tutorial'); + throw new Error('GetUserFullInfo is not available due to the absense of [Miyoushe Cookie]. Check relevant config tutorial'); } uid ||= ''; const key = 'mihoyo:user-full-info-uid-' + uid; diff --git a/lib/routes/mihoyo/bbs/timeline.ts b/lib/routes/mihoyo/bbs/timeline.ts index 4a3ce513e0ef7e..04795c48070370 100644 --- a/lib/routes/mihoyo/bbs/timeline.ts +++ b/lib/routes/mihoyo/bbs/timeline.ts @@ -37,7 +37,7 @@ export const route: Route = { async function handler(ctx) { if (!config.mihoyo.cookie) { - throw new Error('Miyoushe Timeline is not available due to the absense of [Miyoushe Cookie]. Check relevant config tutorial'); + throw new Error('Miyoushe Timeline is not available due to the absense of [Miyoushe Cookie]. Check relevant config tutorial'); } const page_size = ctx.req.query('limit') || '20'; diff --git a/lib/routes/newrank/douyin.ts b/lib/routes/newrank/douyin.ts index dabdae87d99f3c..4a77715a6acf43 100644 --- a/lib/routes/newrank/douyin.ts +++ b/lib/routes/newrank/douyin.ts @@ -31,7 +31,7 @@ export const route: Route = { async function handler(ctx) { if (!config.newrank || !config.newrank.cookie) { - throw new Error('newrank RSS is disabled due to the lack of relevant config'); + throw new Error('newrank RSS is disabled due to the lack of relevant config'); } const uid = ctx.req.param('dyid'); const nonce = utils.random_nonce(9); diff --git a/lib/routes/newrank/wechat.ts b/lib/routes/newrank/wechat.ts index d84a5c145193ad..592d83a06c327a 100644 --- a/lib/routes/newrank/wechat.ts +++ b/lib/routes/newrank/wechat.ts @@ -30,7 +30,7 @@ export const route: Route = { async function handler(ctx) { if (!config.newrank || !config.newrank.cookie) { - throw new Error('newrank RSS is disabled due to the lack of relevant config'); + throw new Error('newrank RSS is disabled due to the lack of relevant config'); } const uid = ctx.req.param('wxid'); const nonce = utils.random_nonce(9); diff --git a/lib/routes/nhentai/other.ts b/lib/routes/nhentai/other.ts index 027c1661dfaf29..191a140c3cc0c8 100644 --- a/lib/routes/nhentai/other.ts +++ b/lib/routes/nhentai/other.ts @@ -11,7 +11,7 @@ export const route: Route = { parameters: { key: 'Filter term, can be: `parody`, `character`, `tag`, `artist`, `group`, `language` or `category`', keyword: 'Filter value', - mode: 'mode, `simple` to only show cover, `detail` to show all pages, `torrent` to include Magnet URI, need login, refer to [Route-specific Configurations](/install/#configuration-route-specific-configurations), default to `simple`', + mode: 'mode, `simple` to only show cover, `detail` to show all pages, `torrent` to include Magnet URI, need login, refer to [Route-specific Configurations](https://docs.rsshub.app/deploy/config#route-specific-configurations), default to `simple`', }, features: { requireConfig: false, diff --git a/lib/routes/nhentai/search.ts b/lib/routes/nhentai/search.ts index df945511fdd5f9..cb26cf29e63134 100644 --- a/lib/routes/nhentai/search.ts +++ b/lib/routes/nhentai/search.ts @@ -8,7 +8,7 @@ export const route: Route = { example: '/nhentai/search/language%3Ajapanese+-scat+-yaoi+-guro+-"mosaic+censorship"', parameters: { keyword: 'Keywords for search. You can copy the content after `q=` after searching on the original website, or you can enter it directly. See the [official website](https://nhentai.net/info/) for details', - mode: 'mode, `simple` to only show cover, `detail` to show all pages, `torrent` to include Magnet URI, need login, refer to [Route-specific Configurations](/install/#configuration-route-specific-configurations), default to `simple`', + mode: 'mode, `simple` to only show cover, `detail` to show all pages, `torrent` to include Magnet URI, need login, refer to [Route-specific Configurations](https://docs.rsshub.app/deploy/config#route-specific-configurations), default to `simple`', }, features: { requireConfig: false, diff --git a/lib/routes/nhentai/util.ts b/lib/routes/nhentai/util.ts index 9874a684c26e27..b1329a29f158ba 100644 --- a/lib/routes/nhentai/util.ts +++ b/lib/routes/nhentai/util.ts @@ -88,7 +88,7 @@ const getDetails = (cache, simples, limit) => Promise.all(simples.slice(0, limit const getTorrents = async (cache, simples, limit) => { if (!config.nhentai || !config.nhentai.username || !config.nhentai.password) { - throw new Error('nhentai RSS with torrents is disabled due to the lack of relevant config'); + throw new Error('nhentai RSS with torrents is disabled due to the lack of relevant config'); } const cookie = await getCookie(config.nhentai.username, config.nhentai.password, cache); if (!cookie) { diff --git a/lib/routes/notion/database.ts b/lib/routes/notion/database.ts index eda7853547737c..833f4b185514a0 100644 --- a/lib/routes/notion/database.ts +++ b/lib/routes/notion/database.ts @@ -55,7 +55,7 @@ export const route: Route = { async function handler(ctx) { if (!config.notion.key) { - throw new Error('Notion RSS is disabled due to the lack of NOTION_TOKEN(relevant config)'); + throw new Error('Notion RSS is disabled due to the lack of NOTION_TOKEN(relevant config)'); } const databaseId = ctx.req.param('databaseId'); diff --git a/lib/routes/notion/namespace.ts b/lib/routes/notion/namespace.ts index c07c16baf5613f..2910f91ad7956a 100644 --- a/lib/routes/notion/namespace.ts +++ b/lib/routes/notion/namespace.ts @@ -4,7 +4,7 @@ export const namespace: Namespace = { name: 'Notion', url: 'notion.so', description: `:::warning -Need to set up Notion integration, please refer to [Route-specific Configurations](https://docs.rsshub.app/install/#Deployment) for details. +Need to set up Notion integration, please refer to [Route-specific Configurations](https://docs.rsshub.app/deploy/config#route-specific-configurations) for details. ::: :::tip Recommendation diff --git a/lib/routes/pianyuan/utils.ts b/lib/routes/pianyuan/utils.ts index 920e953d6a30dd..7948eac5c33c65 100644 --- a/lib/routes/pianyuan/utils.ts +++ b/lib/routes/pianyuan/utils.ts @@ -47,7 +47,7 @@ async function getCookie(cache) { let py_loginauth = await cache.get(loginauth_key); if (!py_loginauth) { if (!config.pianyuan || !config.pianyuan.cookie) { - throw new Error('pianyuan is disabled due to the lack of relevant config'); + throw new Error('pianyuan is disabled due to the lack of relevant config'); } py_loginauth = config.pianyuan.cookie; } diff --git a/lib/routes/pixiv/bookmarks.ts b/lib/routes/pixiv/bookmarks.ts index 862cc2ead9a9c4..ea5fab4bae1618 100644 --- a/lib/routes/pixiv/bookmarks.ts +++ b/lib/routes/pixiv/bookmarks.ts @@ -32,7 +32,7 @@ export const route: Route = { async function handler(ctx) { if (!config.pixiv || !config.pixiv.refreshToken) { - throw new Error('pixiv RSS is disabled due to the lack of relevant config'); + throw new Error('pixiv RSS is disabled due to the lack of relevant config'); } const id = ctx.req.param('id'); diff --git a/lib/routes/pixiv/illustfollow.ts b/lib/routes/pixiv/illustfollow.ts index 33072455f90d48..569499898e086f 100644 --- a/lib/routes/pixiv/illustfollow.ts +++ b/lib/routes/pixiv/illustfollow.ts @@ -40,7 +40,7 @@ export const route: Route = { async function handler() { if (!config.pixiv || !config.pixiv.refreshToken) { - throw new Error('pixiv RSS is disabled due to the lack of relevant config'); + throw new Error('pixiv RSS is disabled due to the lack of relevant config'); } const token = await getToken(cache.tryGet); diff --git a/lib/routes/pixiv/ranking.ts b/lib/routes/pixiv/ranking.ts index 5f6205ce55afee..3f3576941705e2 100644 --- a/lib/routes/pixiv/ranking.ts +++ b/lib/routes/pixiv/ranking.ts @@ -84,7 +84,7 @@ export const route: Route = { async function handler(ctx) { if (!config.pixiv || !config.pixiv.refreshToken) { - throw new Error('pixiv RSS is disabled due to the lack of relevant config'); + throw new Error('pixiv RSS is disabled due to the lack of relevant config'); } const mode = alias[ctx.req.param('mode')] ?? ctx.req.param('mode'); diff --git a/lib/routes/pixiv/search.ts b/lib/routes/pixiv/search.ts index e84b6b9900453f..30c2a04561a74c 100644 --- a/lib/routes/pixiv/search.ts +++ b/lib/routes/pixiv/search.ts @@ -30,7 +30,7 @@ export const route: Route = { async function handler(ctx) { if (!config.pixiv || !config.pixiv.refreshToken) { - throw new Error('pixiv RSS is disabled due to the lack of relevant config'); + throw new Error('pixiv RSS is disabled due to the lack of relevant config'); } const keyword = ctx.req.param('keyword'); diff --git a/lib/routes/pixiv/user.ts b/lib/routes/pixiv/user.ts index bb1a185deaf91e..47a1bc3ccda8bb 100644 --- a/lib/routes/pixiv/user.ts +++ b/lib/routes/pixiv/user.ts @@ -31,7 +31,7 @@ export const route: Route = { async function handler(ctx) { if (!config.pixiv || !config.pixiv.refreshToken) { - throw new Error('pixiv RSS is disabled due to the lack of relevant config'); + throw new Error('pixiv RSS is disabled due to the lack of relevant config'); } const id = ctx.req.param('id'); diff --git a/lib/routes/sdu/data.ts b/lib/routes/sdu/data.ts index 079cd009c6b9e0..8b5f0c6c0dbabc 100644 --- a/lib/routes/sdu/data.ts +++ b/lib/routes/sdu/data.ts @@ -5,7 +5,7 @@ export default { route: '/news', source: ['/*path', '/'], titlePrefix: '(威海)新闻网|', - docs: 'https://docs.rsshub.app/university#shan-dong-da-xue-wei-hai', + docs: 'https://docs.rsshub.app/routes/university#shan-dong-da-xue-wei-hai', getTarget(url) { return this.route + '/' + url.replace(/\.htm$/, ''); }, @@ -62,7 +62,7 @@ export default { route: '/jwc', source: ['/*path', '/'], titlePrefix: '(威海)教务处|', - docs: 'https://docs.rsshub.app/university#shan-dong-da-xue-wei-hai', + docs: 'https://docs.rsshub.app/routes/university#shan-dong-da-xue-wei-hai', getTarget(url) { return this.route + '/' + url.replace(/\.htm$/, ''); }, diff --git a/lib/routes/sehuatang/user.ts b/lib/routes/sehuatang/user.ts index 1d4d076fee48ba..01fbbb4cac65ec 100644 --- a/lib/routes/sehuatang/user.ts +++ b/lib/routes/sehuatang/user.ts @@ -33,7 +33,7 @@ export const route: Route = { async function handler(ctx) { if (!config.sehuatang.cookie) { - throw new Error('Sehuatang RSS is disabled due to the lack of relevant config'); + throw new Error('Sehuatang RSS is disabled due to the lack of relevant config'); } // 从Url参数中获取uid const uid = ctx.req.param('uid'); diff --git a/lib/routes/spotify/utils.ts b/lib/routes/spotify/utils.ts index 919304677b224a..6103efa730e2dc 100644 --- a/lib/routes/spotify/utils.ts +++ b/lib/routes/spotify/utils.ts @@ -4,7 +4,7 @@ import got from '@/utils/got'; // Token used to retrieve public information. async function getPublicToken() { if (!config.spotify || !config.spotify.clientId || !config.spotify.clientSecret) { - throw new Error('Spotify public RSS is disabled due to the lack of relevant config'); + throw new Error('Spotify public RSS is disabled due to the lack of relevant config'); } const { clientId, clientSecret } = config.spotify; @@ -26,7 +26,7 @@ async function getPublicToken() { // Note that we don't use PKCE since the client secret shall be safe on the server. async function getPrivateToken() { if (!config.spotify || !config.spotify.clientId || !config.spotify.clientSecret || !config.spotify.refreshToken) { - throw new Error('Spotify private RSS is disabled due to the lack of relevant config'); + throw new Error('Spotify private RSS is disabled due to the lack of relevant config'); } const { clientId, clientSecret, refreshToken } = config.spotify; diff --git a/lib/routes/stbu/jsjxy.ts b/lib/routes/stbu/jsjxy.ts index 259f037bfba22e..81f739a9ffb11a 100644 --- a/lib/routes/stbu/jsjxy.ts +++ b/lib/routes/stbu/jsjxy.ts @@ -30,7 +30,7 @@ export const route: Route = { handler, url: 'jsjxy.stbu.edu.cn/news', description: `:::warning -计算机学院通知公告疑似禁止了非大陆 IP 访问,使用路由需要自行 [部署](https://docs.rsshub.app/install)。 +计算机学院通知公告疑似禁止了非大陆 IP 访问,使用路由需要自行 [部署](https://docs.rsshub.app/deploy/)。 :::`, }; diff --git a/lib/routes/telegram/stickerpack.ts b/lib/routes/telegram/stickerpack.ts index 4525169b5c6a37..66338509104b07 100644 --- a/lib/routes/telegram/stickerpack.ts +++ b/lib/routes/telegram/stickerpack.ts @@ -22,7 +22,7 @@ export const route: Route = { async function handler(ctx) { if (!config.telegram || !config.telegram.token) { - throw new Error('Telegram Sticker Pack RSS is disabled due to the lack of relevant config'); + throw new Error('Telegram Sticker Pack RSS is disabled due to the lack of relevant config'); } const name = ctx.req.param('name'); diff --git a/lib/routes/twitter/likes.ts b/lib/routes/twitter/likes.ts index 509d0b489db908..1c62479b965026 100644 --- a/lib/routes/twitter/likes.ts +++ b/lib/routes/twitter/likes.ts @@ -22,7 +22,7 @@ export const route: Route = { async function handler(ctx) { if (!config.twitter || !config.twitter.consumer_key || !config.twitter.consumer_secret) { - throw new Error('Twitter RSS is disabled due to the lack of relevant config'); + throw new Error('Twitter RSS is disabled due to the lack of relevant config'); } const id = ctx.req.param('id'); const client = await utils.getAppClient(); diff --git a/lib/routes/twitter/trends.ts b/lib/routes/twitter/trends.ts index 0757fe23c1ff45..19ea43b55ac4f2 100644 --- a/lib/routes/twitter/trends.ts +++ b/lib/routes/twitter/trends.ts @@ -22,7 +22,7 @@ export const route: Route = { async function handler(ctx) { if (!config.twitter || !config.twitter.consumer_key || !config.twitter.consumer_secret) { - throw new Error('Twitter RSS is disabled due to the lack of relevant config'); + throw new Error('Twitter RSS is disabled due to the lack of relevant config'); } const woeid = ctx.req.param('woeid') ?? 1; // Global information is available by using 1 as the WOEID const client = await utils.getAppClient(); diff --git a/lib/routes/ucas/rader.ts b/lib/routes/ucas/rader.ts index 77a59e427ba1aa..ccea519da9c032 100644 --- a/lib/routes/ucas/rader.ts +++ b/lib/routes/ucas/rader.ts @@ -4,7 +4,7 @@ export default { zhaopin: [ { title: '招聘信息-博士后', - docs: 'https://docs.rsshub.app/university#zhong-guo-ke-xue-yuan-da-xue-zhao-pin-xin-xi', + docs: 'https://docs.rsshub.app/routes/university#zhong-guo-ke-xue-yuan-da-xue-zhao-pin-xin-xi', source: '/*', target: (params, url) => { if (new URL(url).searchParams.get('c') === '6') { @@ -14,7 +14,7 @@ export default { }, { title: '招聘信息-课题项目聘用', - docs: 'https://docs.rsshub.app/university#zhong-guo-ke-xue-yuan-da-xue-zhao-pin-xin-xi', + docs: 'https://docs.rsshub.app/routes/university#zhong-guo-ke-xue-yuan-da-xue-zhao-pin-xin-xi', source: '/*', target: (params, url) => { if (new URL(url).searchParams.get('c') === '5') { @@ -24,7 +24,7 @@ export default { }, { title: '招聘信息-管理支撑人才', - docs: 'https://docs.rsshub.app/university#zhong-guo-ke-xue-yuan-da-xue-zhao-pin-xin-xi', + docs: 'https://docs.rsshub.app/routes/university#zhong-guo-ke-xue-yuan-da-xue-zhao-pin-xin-xi', source: '/*', target: (params, url) => { if (new URL(url).searchParams.get('c') === '4') { @@ -34,7 +34,7 @@ export default { }, { title: '招聘信息-科学科研人才', - docs: 'https://docs.rsshub.app/university#zhong-guo-ke-xue-yuan-da-xue-zhao-pin-xin-xi', + docs: 'https://docs.rsshub.app/routes/university#zhong-guo-ke-xue-yuan-da-xue-zhao-pin-xin-xi', source: '/*', target: (params, url) => { if (new URL(url).searchParams.get('c') === '3') { diff --git a/lib/routes/weibo/friends.ts b/lib/routes/weibo/friends.ts index c6d04e7307f61b..4aeb9d1980022d 100644 --- a/lib/routes/weibo/friends.ts +++ b/lib/routes/weibo/friends.ts @@ -45,7 +45,7 @@ export const route: Route = { async function handler(ctx) { if (!config.weibo.cookies) { - throw new Error('Weibo Friends Timeline is not available due to the absense of [Weibo Cookies]. Check relevant config tutorial'); + throw new Error('Weibo Friends Timeline is not available due to the absense of [Weibo Cookies]. Check relevant config tutorial'); } let displayVideo = '1'; diff --git a/lib/routes/weibo/group.ts b/lib/routes/weibo/group.ts index 884fe116c50ee5..c3850822c5d262 100644 --- a/lib/routes/weibo/group.ts +++ b/lib/routes/weibo/group.ts @@ -38,7 +38,7 @@ export const route: Route = { async function handler(ctx) { if (!config.weibo.cookies) { - throw new Error('Weibo Group Timeline is not available due to the absense of [Weibo Cookies]. Check relevant config tutorial'); + throw new Error('Weibo Group Timeline is not available due to the absense of [Weibo Cookies]. Check relevant config tutorial'); } const gid = ctx.req.param('gid'); diff --git a/lib/routes/youtube/channel.ts b/lib/routes/youtube/channel.ts index dbfb5d1bbd3433..d5c557ffcfcedf 100644 --- a/lib/routes/youtube/channel.ts +++ b/lib/routes/youtube/channel.ts @@ -38,7 +38,7 @@ YouTube provides official RSS feeds for channels, for instance [https://www.yout async function handler(ctx) { if (!config.youtube || !config.youtube.key) { - throw new Error('YouTube RSS is disabled due to the lack of relevant config'); + throw new Error('YouTube RSS is disabled due to the lack of relevant config'); } const id = ctx.req.param('id'); const embed = !ctx.req.param('embed'); diff --git a/lib/routes/youtube/custom.ts b/lib/routes/youtube/custom.ts index 9ccda071cff9d5..944548ba8ed3e9 100644 --- a/lib/routes/youtube/custom.ts +++ b/lib/routes/youtube/custom.ts @@ -21,7 +21,7 @@ export const route: Route = { async function handler(ctx) { if (!config.youtube || !config.youtube.key) { - throw new Error('YouTube RSS is disabled due to the lack of relevant config'); + throw new Error('YouTube RSS is disabled due to the lack of relevant config'); } const username = ctx.req.param('username'); const embed = !ctx.req.param('embed'); diff --git a/lib/routes/youtube/live.ts b/lib/routes/youtube/live.ts index e9d1e3ef437982..680c66582ec0ec 100644 --- a/lib/routes/youtube/live.ts +++ b/lib/routes/youtube/live.ts @@ -26,7 +26,7 @@ export const route: Route = { async function handler(ctx) { if (!config.youtube || !config.youtube.key) { - throw new Error('YouTube RSS is disabled due to the lack of relevant config'); + throw new Error('YouTube RSS is disabled due to the lack of relevant config'); } const username = ctx.req.param('username'); const embed = !ctx.req.param('embed'); diff --git a/lib/routes/youtube/playlist.ts b/lib/routes/youtube/playlist.ts index e46f886c814d18..70602d066fb89a 100644 --- a/lib/routes/youtube/playlist.ts +++ b/lib/routes/youtube/playlist.ts @@ -24,7 +24,7 @@ export const route: Route = { async function handler(ctx) { if (!config.youtube || !config.youtube.key) { - throw new Error('YouTube RSS is disabled due to the lack of relevant config'); + throw new Error('YouTube RSS is disabled due to the lack of relevant config'); } const id = ctx.req.param('id'); const embed = !ctx.req.param('embed'); diff --git a/lib/routes/youtube/subscriptions.ts b/lib/routes/youtube/subscriptions.ts index a47f5c0b1471c4..abda50eaf568b6 100644 --- a/lib/routes/youtube/subscriptions.ts +++ b/lib/routes/youtube/subscriptions.ts @@ -49,7 +49,7 @@ export const route: Route = { async function handler(ctx) { if (!config.youtube || !config.youtube.key || !config.youtube.clientId || !config.youtube.clientSecret || !config.youtube.refreshToken) { - throw new Error('YouTube RSS is disabled due to the lack of relevant config'); + throw new Error('YouTube RSS is disabled due to the lack of relevant config'); } const embed = !ctx.req.param('embed'); diff --git a/lib/routes/youtube/user.ts b/lib/routes/youtube/user.ts index 7136643f32d2fd..bc910c34418f7f 100644 --- a/lib/routes/youtube/user.ts +++ b/lib/routes/youtube/user.ts @@ -32,7 +32,7 @@ export const route: Route = { async function handler(ctx) { if (!config.youtube || !config.youtube.key) { - throw new Error('YouTube RSS is disabled due to the lack of relevant config'); + throw new Error('YouTube RSS is disabled due to the lack of relevant config'); } const username = ctx.req.param('username'); const embed = !ctx.req.param('embed'); diff --git a/lib/routes/zodgame/forum.ts b/lib/routes/zodgame/forum.ts index 04c5a1b30527eb..b219adc3d0c1ba 100644 --- a/lib/routes/zodgame/forum.ts +++ b/lib/routes/zodgame/forum.ts @@ -40,7 +40,7 @@ async function handler(ctx) { const cookie = config.zodgame.cookie; if (cookie === undefined) { - throw new Error('Zodgame RSS is disabled due to the lack of relevant config'); + throw new Error('Zodgame RSS is disabled due to the lack of relevant config'); } const response = await got({ diff --git a/lib/views/error.tsx b/lib/views/error.tsx index 9aedf58649d34b..bdab930c16bec9 100644 --- a/lib/views/error.tsx +++ b/lib/views/error.tsx @@ -88,7 +88,7 @@ const Index: FC<{Please consider{' '} - + sponsoring {' '} to help keep this open source project alive. diff --git a/lib/views/index.tsx b/lib/views/index.tsx index c47564cc79603a..03850b6a8c9c73 100644 --- a/lib/views/index.tsx +++ b/lib/views/index.tsx @@ -171,7 +171,7 @@ const Index: FC<{ debugQuery: string | undefined }> = ({ debugQuery }) => { - + @@ -204,7 +204,7 @@ const Index: FC<{ debugQuery: string | undefined }> = ({ debugQuery }) => {
Please consider{' '} - + sponsoring {' '} to help keep this open source project alive.