chore: auto build

This commit is contained in:
github-actions[bot] 2024-03-11 18:14:24 +00:00
parent 10aefcfe32
commit 3b134f20fc
15 changed files with 57 additions and 57 deletions

View File

@ -159,7 +159,7 @@
### User Subscriptions
<Route namespace="iwara" data={{"path":"/subscriptions","categories":["anime"],"example":"/iwara/subscriptions","parameters":{},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["ecchi.iwara.tv/"]},"name":"User Subscriptions","maintainers":["FeCCC"],"url":"ecchi.iwara.tv/","description":":::warning\n 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.\n :::","location":"subscriptions.ts"}} />
<Route namespace="iwara" data={{"path":"/subscriptions","categories":["anime"],"example":"/iwara/subscriptions","parameters":{},"features":{"requireConfig":[{"name":"IWARA_USERNAME","description":""},{"name":"IWARA_PASSWORD","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["ecchi.iwara.tv/"]},"name":"User Subscriptions","maintainers":["FeCCC"],"url":"ecchi.iwara.tv/","description":":::warning\n 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.\n :::","location":"subscriptions.ts"}} />
:::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.
@ -468,7 +468,7 @@ You can use some RSS parsing libraries (like `feedpraser` in `Python`) to receiv
### 漫画个人订阅
<Route namespace="manhuagui" data={{"path":"/subscribe","categories":["anime"],"example":"/manhuagui/subscribe","parameters":{},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["www.mhgui.com/user/book/shelf"]},"name":"漫画个人订阅","maintainers":["shininome"],"url":"www.mhgui.com/user/book/shelf","description":":::tip\n 个人订阅需要自建\n 环境变量需要添加 MHGUI_COOKIE\n :::","location":"subscribe.ts"}} />
<Route namespace="manhuagui" data={{"path":"/subscribe","categories":["anime"],"example":"/manhuagui/subscribe","parameters":{},"features":{"requireConfig":[{"name":"MHGUI_COOKIE","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["www.mhgui.com/user/book/shelf"]},"name":"漫画个人订阅","maintainers":["shininome"],"url":"www.mhgui.com/user/book/shelf","description":":::tip\n 个人订阅需要自建\n 环境变量需要添加 MHGUI_COOKIE\n :::","location":"subscribe.ts"}} />
:::tip
个人订阅需要自建

View File

@ -104,11 +104,11 @@ You need to set the environment variable `DISCOURSE_CONFIG_{id}` before using it
### Latest posts
<Route namespace="discourse" data={{"path":"/:configId/posts","categories":["bbs"],"example":"/discourse/0/posts","parameters":{"configId":"Environment variable configuration id, see above"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Latest posts","maintainers":["dzx-dzx"],"location":"posts.ts"}} />
<Route namespace="discourse" data={{"path":"/:configId/posts","categories":["bbs"],"example":"/discourse/0/posts","parameters":{"configId":"Environment variable configuration id, see above"},"features":{"requireConfig":[{"name":"DISCOURSE_CONFIG_*","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Latest posts","maintainers":["dzx-dzx"],"location":"posts.ts"}} />
### Notifications
<Route namespace="discourse" data={{"path":"/:configId/notifications/:fulltext?","categories":["bbs"],"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,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Notifications","maintainers":[],"description":":::warning\nIf you opt to enable `fulltext` feature, consider adding `limit` parameter to your query to avoid sending too many request.\n:::","location":"notifications.ts"}} />
<Route namespace="discourse" data={{"path":"/:configId/notifications/:fulltext?","categories":["bbs"],"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":[{"name":"DISCOURSE_CONFIG_*","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Notifications","maintainers":[],"description":":::warning\nIf you opt to enable `fulltext` feature, consider adding `limit` parameter to your query to avoid sending too many request.\n:::","location":"notifications.ts"}} />
:::warning
If you opt to enable `fulltext` feature, consider adding `limit` parameter to your query to avoid sending too many request.
@ -226,7 +226,7 @@ If you opt to enable `fulltext` feature, consider adding `limit` parameter to yo
### forum
<Route namespace="zodgame" data={{"path":"/forum/:fid?","categories":["bbs"],"example":"/zodgame/forum/13","parameters":{"fid":"forum id, can be found in URL"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"forum","maintainers":["FeCCC"],"location":"forum.ts"}} />
<Route namespace="zodgame" data={{"path":"/forum/:fid?","categories":["bbs"],"example":"/zodgame/forum/13","parameters":{"fid":"forum id, can be found in URL"},"features":{"requireConfig":[{"name":"ZODGAME_COOKIE","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"forum","maintainers":["FeCCC"],"location":"forum.ts"}} />
## Zuvio

View File

@ -98,7 +98,7 @@ The List ID is the last part of the URL after `-`, for example, the username in
### Personalized Recommendations - Following
<Route namespace="medium" data={{"path":"/following/:user","categories":["blog"],"example":"/medium/following/imsingee","parameters":{"user":"Username"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Personalized Recommendations - Following","maintainers":["ImSingee"],"description":":::warning\n Personalized recommendations require the cookie value after logging in, so only self-hosting is supported. See the configuration module on the deployment page for details.\n :::","location":"following.ts"}} />
<Route namespace="medium" data={{"path":"/following/:user","categories":["blog"],"example":"/medium/following/imsingee","parameters":{"user":"Username"},"features":{"requireConfig":[{"name":"MEDIUM_COOKIE_*","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Personalized Recommendations - Following","maintainers":["ImSingee"],"description":":::warning\n Personalized recommendations require the cookie value after logging in, so only self-hosting is supported. See the configuration module on the deployment page for details.\n :::","location":"following.ts"}} />
:::warning
Personalized recommendations require the cookie value after logging in, so only self-hosting is supported. See the configuration module on the deployment page for details.
@ -106,7 +106,7 @@ The List ID is the last part of the URL after `-`, for example, the username in
### Personalized Recommendations - For You
<Route namespace="medium" data={{"path":"/for-you/:user","categories":["blog"],"example":"/medium/for-you/imsingee","parameters":{"user":"Username"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Personalized Recommendations - For You","maintainers":["ImSingee"],"description":":::warning\n Personalized recommendations require the cookie value after logging in, so only self-hosting is supported. See the configuration module on the deployment page for details.\n :::","location":"for-you.ts"}} />
<Route namespace="medium" data={{"path":"/for-you/:user","categories":["blog"],"example":"/medium/for-you/imsingee","parameters":{"user":"Username"},"features":{"requireConfig":[{"name":"MEDIUM_COOKIE_*","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Personalized Recommendations - For You","maintainers":["ImSingee"],"description":":::warning\n Personalized recommendations require the cookie value after logging in, so only self-hosting is supported. See the configuration module on the deployment page for details.\n :::","location":"for-you.ts"}} />
:::warning
Personalized recommendations require the cookie value after logging in, so only self-hosting is supported. See the configuration module on the deployment page for details.
@ -114,7 +114,7 @@ The List ID is the last part of the URL after `-`, for example, the username in
### Personalized Recommendations - Tag
<Route namespace="medium" data={{"path":"/tag/:user/:tag","categories":["blog"],"example":"/medium/tag/imsingee/cybersecurity","parameters":{"user":"Username","tag":"Subscribed Tag"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Personalized Recommendations - Tag","maintainers":["ImSingee"],"description":"There are many tags, which can be obtained by clicking on a tag from the homepage and looking at the URL. For example, if the URL is `https://medium.com/?tag=web3`, then the tag is `web3`.\n\n :::warning\n Personalized recommendations require the cookie value after logging in, so only self-hosting is supported. See the configuration module on the deployment page for details.\n :::","location":"tag.ts"}} />
<Route namespace="medium" data={{"path":"/tag/:user/:tag","categories":["blog"],"example":"/medium/tag/imsingee/cybersecurity","parameters":{"user":"Username","tag":"Subscribed Tag"},"features":{"requireConfig":[{"name":"MEDIUM_COOKIE_*","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Personalized Recommendations - Tag","maintainers":["ImSingee"],"description":"There are many tags, which can be obtained by clicking on a tag from the homepage and looking at the URL. For example, if the URL is `https://medium.com/?tag=web3`, then the tag is `web3`.\n\n :::warning\n Personalized recommendations require the cookie value after logging in, so only self-hosting is supported. See the configuration module on the deployment page for details.\n :::","location":"tag.ts"}} />
There are many tags, which can be obtained by clicking on a tag from the homepage and looking at the URL. For example, if the URL is `https://medium.com/?tag=web3`, then the tag is `web3`.

View File

@ -42,7 +42,7 @@ Behance user's profile URL, like [https://www.behance.net/mishapetrick](https://
### Google Fonts
<Route namespace="google" data={{"path":"/fonts/:sort?","categories":["design"],"example":"/google/fonts/date","parameters":{"sort":"Sorting type, see below, default to `date`"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Google Fonts","maintainers":["Fatpandac"],"description":"| Newest | Trending | Most popular | Name | Number of styles |\n | :----: | :------: | :----------: | :---: | :--------------: |\n | date | trending | popularity | alpha | style |\n\n :::warning\n 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.\n :::","location":"fonts.ts"}} />
<Route namespace="google" data={{"path":"/fonts/:sort?","categories":["design"],"example":"/google/fonts/date","parameters":{"sort":"Sorting type, see below, default to `date`"},"features":{"requireConfig":[{"name":"GOOGLE_FONTS_API_KEY","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Google Fonts","maintainers":["Fatpandac"],"description":"| Newest | Trending | Most popular | Name | Number of styles |\n | :----: | :------: | :----------: | :---: | :--------------: |\n | date | trending | popularity | alpha | style |\n\n :::warning\n 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.\n :::","location":"fonts.ts"}} />
| Newest | Trending | Most popular | Name | Number of styles |
| :----: | :------: | :----------: | :---: | :--------------: |

View File

@ -56,13 +56,13 @@ Please skip the local service area code for `name`, for example `https://outage.
### 近三天天气
<Route namespace="qweather" data={{"path":"/3days/:location","categories":["forecast"],"example":"/qweather/3days/广州","parameters":{"location":"N"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"近三天天气","maintainers":["Rein-Ou","la3rence"],"description":"需自行注册获取 api 的 key并在环境变量 HEFENG_KEY 中进行配置,获取订阅近三天天气预报","location":"3days.ts"}} />
<Route namespace="qweather" data={{"path":"/3days/:location","categories":["forecast"],"example":"/qweather/3days/广州","parameters":{"location":"N"},"features":{"requireConfig":[{"name":"HEFENG_KEY","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"近三天天气","maintainers":["Rein-Ou","la3rence"],"description":"需自行注册获取 api 的 key并在环境变量 HEFENG_KEY 中进行配置,获取订阅近三天天气预报","location":"3days.ts"}} />
需自行注册获取 api 的 key并在环境变量 HEFENG_KEY 中进行配置,获取订阅近三天天气预报
### 实时天气
<Route namespace="qweather" data={{"path":"/now/:location","categories":["forecast"],"example":"/qweather/广州","parameters":{"location":"N"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"实时天气","maintainers":["Rein-Ou"],"description":"需自行注册获取 api 的 key每小时更新一次数据","location":"now.ts"}} />
<Route namespace="qweather" data={{"path":"/now/:location","categories":["forecast"],"example":"/qweather/广州","parameters":{"location":"N"},"features":{"requireConfig":[{"name":"HEFENG_KEY","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"实时天气","maintainers":["Rein-Ou"],"description":"需自行注册获取 api 的 key每小时更新一次数据","location":"now.ts"}} />
需自行注册获取 api 的 key每小时更新一次数据

View File

@ -526,7 +526,7 @@ News data from [https://warthunder.com/en/news/](https://warthunder.com/en/news/
### 米游社 - 用户关注动态
<Route namespace="mihoyo" data={{"path":"/bbs/timeline","categories":["game"],"example":"/mihoyo/bbs/timeline","parameters":{},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["miyoushe.com/:game/timeline"]},"name":"米游社 - 用户关注动态","maintainers":["CaoMeiYouRen"],"description":":::warning\n 用户关注动态需要米游社登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"bbs/timeline.ts"}} />
<Route namespace="mihoyo" data={{"path":"/bbs/timeline","categories":["game"],"example":"/mihoyo/bbs/timeline","parameters":{},"features":{"requireConfig":[{"name":"MIHOYO_COOKIE","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["miyoushe.com/:game/timeline"]},"name":"米游社 - 用户关注动态","maintainers":["CaoMeiYouRen"],"description":":::warning\n 用户关注动态需要米游社登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"bbs/timeline.ts"}} />
:::warning
用户关注动态需要米游社登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。

View File

@ -485,27 +485,27 @@ JavDB 有多个备用域名,本路由默认使用永久域名 `https://javdb.c
### Artist Albums
<Route namespace="spotify" data={{"path":"/artist/:id","categories":["multimedia"],"example":"/spotify/artist/6k9TBCxyr4bXwZ8Y21Kwn1","parameters":{"id":"Artist ID"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["open.spotify.com/artist/:id"]},"name":"Artist Albums","maintainers":["outloudvi"],"location":"artist.ts"}} />
<Route namespace="spotify" data={{"path":"/artist/:id","categories":["multimedia"],"example":"/spotify/artist/6k9TBCxyr4bXwZ8Y21Kwn1","parameters":{"id":"Artist ID"},"features":{"requireConfig":[{"name":"SPOTIFY_CLIENT_ID","description":""},{"name":"SPOTIFY_CLIENT_SECRET","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["open.spotify.com/artist/:id"]},"name":"Artist Albums","maintainers":["outloudvi"],"location":"artist.ts"}} />
### Personal Top Artists
<Route namespace="spotify" data={{"path":"/top/artists","categories":["multimedia"],"example":"/spotify/top/artists","parameters":{},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["open.spotify.com/"]},"name":"Personal Top Artists","maintainers":["outloudvi"],"url":"open.spotify.com/","location":"artists-top.ts"}} />
<Route namespace="spotify" data={{"path":"/top/artists","categories":["multimedia"],"example":"/spotify/top/artists","parameters":{},"features":{"requireConfig":[{"name":"SPOTIFY_CLIENT_ID","description":""},{"name":"SPOTIFY_CLIENT_SECRET","description":""},{"name":"SPOTIFY_REFRESHTOKEN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["open.spotify.com/"]},"name":"Personal Top Artists","maintainers":["outloudvi"],"url":"open.spotify.com/","location":"artists-top.ts"}} />
### Playlist
<Route namespace="spotify" data={{"path":"/playlist/:id","categories":["multimedia"],"example":"/spotify/playlist/4UBVy1LttvodwivPUuwJk2","parameters":{"id":"Playlist ID"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["open.spotify.com/playlist/:id"]},"name":"Playlist","maintainers":["outloudvi"],"location":"playlist.ts"}} />
<Route namespace="spotify" data={{"path":"/playlist/:id","categories":["multimedia"],"example":"/spotify/playlist/4UBVy1LttvodwivPUuwJk2","parameters":{"id":"Playlist ID"},"features":{"requireConfig":[{"name":"SPOTIFY_CLIENT_ID","description":""},{"name":"SPOTIFY_CLIENT_SECRET","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["open.spotify.com/playlist/:id"]},"name":"Playlist","maintainers":["outloudvi"],"location":"playlist.ts"}} />
### Personal Saved Tracks
<Route namespace="spotify" data={{"path":"/saved/:limit?","categories":["multimedia"],"example":"/spotify/saved/50","parameters":{"limit":"Track count, 50 by default"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["open.spotify.com/collection/tracks"],"target":"/saved"},"name":"Personal Saved Tracks","maintainers":["outloudvi"],"url":"open.spotify.com/collection/tracks","location":"saved.ts"}} />
<Route namespace="spotify" data={{"path":"/saved/:limit?","categories":["multimedia"],"example":"/spotify/saved/50","parameters":{"limit":"Track count, 50 by default"},"features":{"requireConfig":[{"name":"SPOTIFY_CLIENT_ID","description":""},{"name":"SPOTIFY_CLIENT_SECRET","description":""},{"name":"SPOTIFY_REFRESHTOKEN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["open.spotify.com/collection/tracks"],"target":"/saved"},"name":"Personal Saved Tracks","maintainers":["outloudvi"],"url":"open.spotify.com/collection/tracks","location":"saved.ts"}} />
### Personal Top Tracks
<Route namespace="spotify" data={{"path":"/top/tracks","categories":["multimedia"],"example":"/spotify/top/tracks","parameters":{},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["open.spotify.com/"]},"name":"Personal Top Tracks","maintainers":["outloudvi"],"url":"open.spotify.com/","location":"tracks-top.ts"}} />
<Route namespace="spotify" data={{"path":"/top/tracks","categories":["multimedia"],"example":"/spotify/top/tracks","parameters":{},"features":{"requireConfig":[{"name":"SPOTIFY_CLIENT_ID","description":""},{"name":"SPOTIFY_CLIENT_SECRET","description":""},{"name":"SPOTIFY_REFRESHTOKEN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["open.spotify.com/"]},"name":"Personal Top Tracks","maintainers":["outloudvi"],"url":"open.spotify.com/","location":"tracks-top.ts"}} />
### Show
<Route namespace="spotify" data={{"path":"/show/:id","categories":["multimedia"],"example":"/spotify/show/5CfCWKI5pZ28U0uOzXkDHe","parameters":{"id":"Show ID"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["open.spotify.com/show/:id"]},"name":"Show","maintainers":["caiohsramos"],"location":"show.ts"}} />
<Route namespace="spotify" data={{"path":"/show/:id","categories":["multimedia"],"example":"/spotify/show/5CfCWKI5pZ28U0uOzXkDHe","parameters":{"id":"Show ID"},"features":{"requireConfig":[{"name":"SPOTIFY_CLIENT_ID","description":""},{"name":"SPOTIFY_CLIENT_SECRET","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["open.spotify.com/show/:id"]},"name":"Show","maintainers":["caiohsramos"],"location":"show.ts"}} />
## The Movie Database
@ -689,7 +689,7 @@ When `mediaType` is `tv`, `sheet` should be:
### 最新资源
<Route namespace="pianyuan" data={{"path":"/index/:media?","categories":["multimedia"],"example":"/pianyuan/index","parameters":{"media":"类别,见下表,默认为首页"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["pianyuan.org/"],"target":"/index"},"name":"最新资源","maintainers":["greatcodeeer","jerry1119"],"url":"pianyuan.org/","description":"| 电影 | 剧集 |\n| ---- | ---- |\n| mv | tv |","location":"app.ts"}} />
<Route namespace="pianyuan" data={{"path":"/index/:media?","categories":["multimedia"],"example":"/pianyuan/index","parameters":{"media":"类别,见下表,默认为首页"},"features":{"requireConfig":[{"name":"PIANYUAN_COOKIE","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["pianyuan.org/"],"target":"/index"},"name":"最新资源","maintainers":["greatcodeeer","jerry1119"],"url":"pianyuan.org/","description":"| 电影 | 剧集 |\n| ---- | ---- |\n| mv | tv |","location":"app.ts"}} />
| 电影 | 剧集 |
| ---- | ---- |
@ -735,7 +735,7 @@ When `mediaType` is `tv`, `sheet` should be:
### 作者文章
<Route namespace="sehuatang" data={{"path":"/user/:uid","categories":["multimedia"],"example":"/sehuatang/user/411096","parameters":{"uid":"用户 uid, 可在用户主页 URL 中找到"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"作者文章","maintainers":["JamYiz"],"location":"user.ts"}} />
<Route namespace="sehuatang" data={{"path":"/user/:uid","categories":["multimedia"],"example":"/sehuatang/user/411096","parameters":{"uid":"用户 uid, 可在用户主页 URL 中找到"},"features":{"requireConfig":[{"name":"SEHUATANG_COOKIE","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"作者文章","maintainers":["JamYiz"],"location":"user.ts"}} />
## 听听 FM
@ -783,7 +783,7 @@ When `mediaType` is `tv`, `sheet` should be:
### 专辑(不输出 ShowNote
<Route namespace="ximalaya" data={{"path":["/:type/:id/:all?","/:type/:id/:all/:shownote?"],"categories":["multimedia"],"example":"/ximalaya/album/299146","parameters":{"type":"专辑类型, 通常可以使用 `album`,可在对应专辑页面的 URL 中找到","id":"专辑 id, 可在对应专辑页面的 URL 中找到","all":"是否需要获取全部节目,填入 `1`、`true`、`all` 视为获取所有节目,填入其他则不获取。"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":true,"supportScihub":false},"name":"专辑(不输出 ShowNote","maintainers":["lengthmin","jjeejj","prnake"],"description":"目前喜马拉雅的 API 只能一集一集的获取各节目上的 ShowNote会极大的占用系统资源所以默认为不获取节目的 ShowNote。下方有一个新的路径可选获取 ShowNote。\n\n :::warning\n 专辑类型即 url 中的分类拼音,使用通用分类 `album` 通常是可行的,专辑 id 是跟在**分类拼音**后的那个 id, 不要输成某集的 id 了\n\n **付费内容需要配置好已购买账户的 token 才能收听,详情见部署页面的配置模块**\n :::","location":"album.ts"}} />
<Route namespace="ximalaya" data={{"path":["/:type/:id/:all?","/:type/:id/:all/:shownote?"],"categories":["multimedia"],"example":"/ximalaya/album/299146","parameters":{"type":"专辑类型, 通常可以使用 `album`,可在对应专辑页面的 URL 中找到","id":"专辑 id, 可在对应专辑页面的 URL 中找到","all":"是否需要获取全部节目,填入 `1`、`true`、`all` 视为获取所有节目,填入其他则不获取。"},"features":{"requireConfig":[{"name":"XIMALAYA_TOKEN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":true,"supportScihub":false},"name":"专辑(不输出 ShowNote","maintainers":["lengthmin","jjeejj","prnake"],"description":"目前喜马拉雅的 API 只能一集一集的获取各节目上的 ShowNote会极大的占用系统资源所以默认为不获取节目的 ShowNote。下方有一个新的路径可选获取 ShowNote。\n\n :::warning\n 专辑类型即 url 中的分类拼音,使用通用分类 `album` 通常是可行的,专辑 id 是跟在**分类拼音**后的那个 id, 不要输成某集的 id 了\n\n **付费内容需要配置好已购买账户的 token 才能收听,详情见部署页面的配置模块**\n :::","location":"album.ts"}} />
目前喜马拉雅的 API 只能一集一集的获取各节目上的 ShowNote会极大的占用系统资源所以默认为不获取节目的 ShowNote。下方有一个新的路径可选获取 ShowNote。
@ -795,7 +795,7 @@ When `mediaType` is `tv`, `sheet` should be:
### 专辑(不输出 ShowNote
<Route namespace="ximalaya" data={{"path":["/:type/:id/:all?","/:type/:id/:all/:shownote?"],"categories":["multimedia"],"example":"/ximalaya/album/299146","parameters":{"type":"专辑类型, 通常可以使用 `album`,可在对应专辑页面的 URL 中找到","id":"专辑 id, 可在对应专辑页面的 URL 中找到","all":"是否需要获取全部节目,填入 `1`、`true`、`all` 视为获取所有节目,填入其他则不获取。"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":true,"supportScihub":false},"name":"专辑(不输出 ShowNote","maintainers":["lengthmin","jjeejj","prnake"],"description":"目前喜马拉雅的 API 只能一集一集的获取各节目上的 ShowNote会极大的占用系统资源所以默认为不获取节目的 ShowNote。下方有一个新的路径可选获取 ShowNote。\n\n :::warning\n 专辑类型即 url 中的分类拼音,使用通用分类 `album` 通常是可行的,专辑 id 是跟在**分类拼音**后的那个 id, 不要输成某集的 id 了\n\n **付费内容需要配置好已购买账户的 token 才能收听,详情见部署页面的配置模块**\n :::","location":"album.ts"}} />
<Route namespace="ximalaya" data={{"path":["/:type/:id/:all?","/:type/:id/:all/:shownote?"],"categories":["multimedia"],"example":"/ximalaya/album/299146","parameters":{"type":"专辑类型, 通常可以使用 `album`,可在对应专辑页面的 URL 中找到","id":"专辑 id, 可在对应专辑页面的 URL 中找到","all":"是否需要获取全部节目,填入 `1`、`true`、`all` 视为获取所有节目,填入其他则不获取。"},"features":{"requireConfig":[{"name":"XIMALAYA_TOKEN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":true,"supportScihub":false},"name":"专辑(不输出 ShowNote","maintainers":["lengthmin","jjeejj","prnake"],"description":"目前喜马拉雅的 API 只能一集一集的获取各节目上的 ShowNote会极大的占用系统资源所以默认为不获取节目的 ShowNote。下方有一个新的路径可选获取 ShowNote。\n\n :::warning\n 专辑类型即 url 中的分类拼音,使用通用分类 `album` 通常是可行的,专辑 id 是跟在**分类拼音**后的那个 id, 不要输成某集的 id 了\n\n **付费内容需要配置好已购买账户的 token 才能收听,详情见部署页面的配置模块**\n :::","location":"album.ts"}} />
目前喜马拉雅的 API 只能一集一集的获取各节目上的 ShowNote会极大的占用系统资源所以默认为不获取节目的 ShowNote。下方有一个新的路径可选获取 ShowNote。

View File

@ -1909,11 +1909,11 @@ Member ID
### 榜单
<Route namespace="tophub" data={{"path":"/:id","categories":["new-media"],"example":"/tophub/Om4ejxvxEN","parameters":{"id":"榜单id可在 URL 中找到"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["tophub.today/n/:id"]},"name":"榜单","maintainers":["LogicJake"],"location":"index.ts"}} />
<Route namespace="tophub" data={{"path":"/:id","categories":["new-media"],"example":"/tophub/Om4ejxvxEN","parameters":{"id":"榜单id可在 URL 中找到"},"features":{"requireConfig":[{"name":"TOPHUB_COOKIE","optional":true,"description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["tophub.today/n/:id"]},"name":"榜单","maintainers":["LogicJake"],"location":"index.ts"}} />
### 榜单列表
<Route namespace="tophub" data={{"path":"/list/:id","categories":["new-media"],"example":"/tophub/list/Om4ejxvxEN","parameters":{"id":"榜单id可在 URL 中找到"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["tophub.today/n/:id"]},"name":"榜单列表","maintainers":["akynazh"],"description":":::tip\n将榜单条目集合到一个列表中可避免推送大量条目更符合阅读习惯且有热度排序推荐使用。\n:::","location":"list.ts"}} />
<Route namespace="tophub" data={{"path":"/list/:id","categories":["new-media"],"example":"/tophub/list/Om4ejxvxEN","parameters":{"id":"榜单id可在 URL 中找到"},"features":{"requireConfig":[{"name":"TOPHUB_COOKIE","optional":true,"description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["tophub.today/n/:id"]},"name":"榜单列表","maintainers":["akynazh"],"description":":::tip\n将榜单条目集合到一个列表中可避免推送大量条目更符合阅读习惯且有热度排序推荐使用。\n:::","location":"list.ts"}} />
:::tip
将榜单条目集合到一个列表中,可避免推送大量条目,更符合阅读习惯且有热度排序,推荐使用。

View File

@ -1009,7 +1009,7 @@ It is recommended to use with clipping tools such as Notion Web Clipper.
### Database
<Route namespace="notion" data={{"path":"/database/:databaseId","categories":["other"],"example":"/notion/database/a7cc133b68454f138011f1530a13531e","parameters":{"databaseId":"Database ID"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["notion.so/:id"],"target":"/database/:id"},"name":"Database","maintainers":["curly210102"],"description":"There is an optional query parameter called `properties=` that can be used to customize field mapping. There are three built-in fields: author, pubTime and link, which can be used to add additional information.\n\n For example, if you have set up three properties in your database - \"Publish Time\", \"Author\", and \"Original Article Link\" - then execute the following JavaScript code to get the result for the properties parameter.\n\n ```js\n encodeURIComponent(JSON.stringify({\"pubTime\": \"Publish Time\", \"author\": \"Author\", \"link\": \"Original Article Link\"}))\n ```\n\n There is an optional query parameter called `query=` that can be used to customize the search rules for your database, such as custom sorting and filtering rules.\n\n please refer to the [Notion API documentation](https://developers.notion.com/reference/post-database-query) and execute `encodeURIComponent(JSON.stringify(custom rules))` to provide the query parameter.","location":"database.ts"}} />
<Route namespace="notion" data={{"path":"/database/:databaseId","categories":["other"],"example":"/notion/database/a7cc133b68454f138011f1530a13531e","parameters":{"databaseId":"Database ID"},"features":{"requireConfig":[{"name":"NOTION_TOKEN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["notion.so/:id"],"target":"/database/:id"},"name":"Database","maintainers":["curly210102"],"description":"There is an optional query parameter called `properties=` that can be used to customize field mapping. There are three built-in fields: author, pubTime and link, which can be used to add additional information.\n\n For example, if you have set up three properties in your database - \"Publish Time\", \"Author\", and \"Original Article Link\" - then execute the following JavaScript code to get the result for the properties parameter.\n\n ```js\n encodeURIComponent(JSON.stringify({\"pubTime\": \"Publish Time\", \"author\": \"Author\", \"link\": \"Original Article Link\"}))\n ```\n\n There is an optional query parameter called `query=` that can be used to customize the search rules for your database, such as custom sorting and filtering rules.\n\n please refer to the [Notion API documentation](https://developers.notion.com/reference/post-database-query) and execute `encodeURIComponent(JSON.stringify(custom rules))` to provide the query parameter.","location":"database.ts"}} />
There is an optional query parameter called `properties=` that can be used to customize field mapping. There are three built-in fields: author, pubTime and link, which can be used to add additional information.
@ -1121,7 +1121,7 @@ There is an optional query parameter called `properties=` that can be used to cu
### Transformation - HTML
<Route namespace="rsshub" data={{"path":"/transform/html/:url/:routeParams","categories":["other"],"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,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Transformation - HTML","maintainers":["ttttmr"],"description":"Pass URL and transformation rules to convert HTML/JSON into RSS.\n\nSpecify options (in the format of query string) in parameter `routeParams` parameter to extract data from HTML.\n\n| Key | Meaning | Accepted Values | Default |\n| ----------------- | -------------------------------------------------------------- | --------------- | ---------------------- |\n| `title` | The title of the RSS | `string` | Extract from `<title>` |\n| `item` | The HTML elements as `item` using CSS selector | `string` | html |\n| `itemTitle` | The HTML elements as `title` in `item` using CSS selector | `string` | `item` element |\n| `itemTitleAttr` | The attributes of `title` element as title | `string` | Element text |\n| `itemLink` | The HTML elements as `link` in `item` using CSS selector | `string` | `item` element |\n| `itemLinkAttr` | The attributes of `link` element as link | `string` | `href` |\n| `itemDesc` | The HTML elements as `descrption` in `item` using CSS selector | `string` | `item` element |\n| `itemDescAttr` | The attributes of `descrption` element as description | `string` | Element html |\n| `itemPubDate` | The HTML elements as `pubDate` in `item` using CSS selector | `string` | `item` element |\n| `itemPubDateAttr` | The attributes of `pubDate` element as pubDate | `string` | Element html |\n\n Parameters parsing in the above example:\n\n | Parameter | Value |\n | ------------- | ----------------------------------------- |\n | `url` | `https://wechat2rss.xlab.app/posts/list/` |\n | `routeParams` | `item=div[class='post-content'] p a` |\n\n Parsing of `routeParams` parameter:\n\n | Parameter | Value |\n | --------- | ------------------------------- |\n | `item` | `div[class='post-content'] p a` |","location":"transform/html.ts"}} />
<Route namespace="rsshub" data={{"path":"/transform/html/:url/:routeParams","categories":["other"],"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":[{"name":"ALLOW_USER_SUPPLY_UNSAFE_DOMAIN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Transformation - HTML","maintainers":["ttttmr"],"description":"Pass URL and transformation rules to convert HTML/JSON into RSS.\n\nSpecify options (in the format of query string) in parameter `routeParams` parameter to extract data from HTML.\n\n| Key | Meaning | Accepted Values | Default |\n| ----------------- | -------------------------------------------------------------- | --------------- | ---------------------- |\n| `title` | The title of the RSS | `string` | Extract from `<title>` |\n| `item` | The HTML elements as `item` using CSS selector | `string` | html |\n| `itemTitle` | The HTML elements as `title` in `item` using CSS selector | `string` | `item` element |\n| `itemTitleAttr` | The attributes of `title` element as title | `string` | Element text |\n| `itemLink` | The HTML elements as `link` in `item` using CSS selector | `string` | `item` element |\n| `itemLinkAttr` | The attributes of `link` element as link | `string` | `href` |\n| `itemDesc` | The HTML elements as `descrption` in `item` using CSS selector | `string` | `item` element |\n| `itemDescAttr` | The attributes of `descrption` element as description | `string` | Element html |\n| `itemPubDate` | The HTML elements as `pubDate` in `item` using CSS selector | `string` | `item` element |\n| `itemPubDateAttr` | The attributes of `pubDate` element as pubDate | `string` | Element html |\n\n Parameters parsing in the above example:\n\n | Parameter | Value |\n | ------------- | ----------------------------------------- |\n | `url` | `https://wechat2rss.xlab.app/posts/list/` |\n | `routeParams` | `item=div[class='post-content'] p a` |\n\n Parsing of `routeParams` parameter:\n\n | Parameter | Value |\n | --------- | ------------------------------- |\n | `item` | `div[class='post-content'] p a` |","location":"transform/html.ts"}} />
Pass URL and transformation rules to convert HTML/JSON into RSS.
@ -1155,7 +1155,7 @@ Specify options (in the format of query string) in parameter `routeParams` param
### Transformation - JSON
<Route namespace="rsshub" data={{"path":"/transform/json/:url/:routeParams","categories":["other"],"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,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Transformation - JSON","maintainers":["ttttmr"],"description":"Specify options (in the format of query string) in parameter `routeParams` parameter to extract data from JSON.\n\n| Key | Meaning | Accepted Values | Default |\n| ------------- | ---------------------------------------- | --------------- | ------------------------------------------ |\n| `title` | The title of the RSS | `string` | Extracted from home page of current domain |\n| `item` | The JSON Path as `item` element | `string` | Entire JSON response |\n| `itemTitle` | The JSON Path as `title` in `item` | `string` | None |\n| `itemLink` | The JSON Path as `link` in `item` | `string` | None |\n| `itemDesc` | The JSON Path as `description` in `item` | `string` | None |\n| `itemPubDate` | The JSON Path as `pubDate` in `item` | `string` | None |\n\n:::tip\nJSON Path only supports format like `a.b.c`. if you need to access arrays, like `a[0].b`, you can write it as `a.0.b`.\n:::\n\n Parameters parsing in the above example:\n\n | Parameter | Value |\n | ------------- | ------------------------------------------------------------------------ |\n | `url` | `https://api.github.com/repos/ginuerzh/gost/releases` |\n | `routeParams` | `title=Gost releases&itemTitle=tag_name&itemLink=html_url&itemDesc=body` |\n\n Parsing of `routeParams` parameter:\n\n | Parameter | Value |\n | ----------- | --------------- |\n | `title` | `Gost releases` |\n | `itemTitle` | `tag_name` |\n | `itemLink` | `html_url` |\n | `itemDesc` | `body` |","location":"transform/json.ts"}} />
<Route namespace="rsshub" data={{"path":"/transform/json/:url/:routeParams","categories":["other"],"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":[{"name":"ALLOW_USER_SUPPLY_UNSAFE_DOMAIN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Transformation - JSON","maintainers":["ttttmr"],"description":"Specify options (in the format of query string) in parameter `routeParams` parameter to extract data from JSON.\n\n| Key | Meaning | Accepted Values | Default |\n| ------------- | ---------------------------------------- | --------------- | ------------------------------------------ |\n| `title` | The title of the RSS | `string` | Extracted from home page of current domain |\n| `item` | The JSON Path as `item` element | `string` | Entire JSON response |\n| `itemTitle` | The JSON Path as `title` in `item` | `string` | None |\n| `itemLink` | The JSON Path as `link` in `item` | `string` | None |\n| `itemDesc` | The JSON Path as `description` in `item` | `string` | None |\n| `itemPubDate` | The JSON Path as `pubDate` in `item` | `string` | None |\n\n:::tip\nJSON Path only supports format like `a.b.c`. if you need to access arrays, like `a[0].b`, you can write it as `a.0.b`.\n:::\n\n Parameters parsing in the above example:\n\n | Parameter | Value |\n | ------------- | ------------------------------------------------------------------------ |\n | `url` | `https://api.github.com/repos/ginuerzh/gost/releases` |\n | `routeParams` | `title=Gost releases&itemTitle=tag_name&itemLink=html_url&itemDesc=body` |\n\n Parsing of `routeParams` parameter:\n\n | Parameter | Value |\n | ----------- | --------------- |\n | `title` | `Gost releases` |\n | `itemTitle` | `tag_name` |\n | `itemLink` | `html_url` |\n | `itemDesc` | `body` |","location":"transform/json.ts"}} />
Specify options (in the format of query string) in parameter `routeParams` parameter to extract data from JSON.

View File

@ -173,7 +173,7 @@ Type
### Search
<Route namespace="pixabay" data={{"path":"/search/:q/:order?","categories":["picture"],"example":"/pixabay/search/cat","parameters":{"q":"Search term","order":"Order, `popular` or `latest`, `latest` by default"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["pixabay.com/:searchType/search/:q"],"target":"/search/:q"},"name":"Search","maintainers":["TonyRL"],"location":"search.ts"}} />
<Route namespace="pixabay" data={{"path":"/search/:q/:order?","categories":["picture"],"example":"/pixabay/search/cat","parameters":{"q":"Search term","order":"Order, `popular` or `latest`, `latest` by default"},"features":{"requireConfig":[{"name":"PIXABAY_KEY","optional":true,"description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["pixabay.com/:searchType/search/:q"],"target":"/search/:q"},"name":"Search","maintainers":["TonyRL"],"location":"search.ts"}} />
## wallhaven

View File

@ -96,7 +96,7 @@
### Model discussions
<Route namespace="civitai" data={{"path":"/discussions/:modelId","categories":["program-update"],"example":"/civitai/discussions/4384","parameters":{"modelId":"N"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["civitai.com/models/:modelId"]},"name":"Model discussions","maintainers":["DIYgod"],"description":":::warning\nNeed to configure `CIVITAI_COOKIE` to obtain image information of NSFW models.\n:::","location":"discussions.ts"}} />
<Route namespace="civitai" data={{"path":"/discussions/:modelId","categories":["program-update"],"example":"/civitai/discussions/4384","parameters":{"modelId":"N"},"features":{"requireConfig":[{"name":"CIVITAI_COOKIE","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["civitai.com/models/:modelId"]},"name":"Model discussions","maintainers":["DIYgod"],"description":":::warning\nNeed to configure `CIVITAI_COOKIE` to obtain image information of NSFW models.\n:::","location":"discussions.ts"}} />
:::warning
Need to configure `CIVITAI_COOKIE` to obtain image information of NSFW models.

View File

@ -188,7 +188,7 @@ GitHub provides some official RSS feeds:
### Notifications
<Route namespace="github" data={{"path":"/notifications","categories":["programming"],"example":"/github/notifications","parameters":{},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["github.com/notifications"]},"name":"Notifications","maintainers":["zhzy0077"],"url":"github.com/notifications","location":"notifications.ts"}} />
<Route namespace="github" data={{"path":"/notifications","categories":["programming"],"example":"/github/notifications","parameters":{},"features":{"requireConfig":[{"name":"GITHUB_ACCESS_TOKEN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["github.com/notifications"]},"name":"Notifications","maintainers":["zhzy0077"],"url":"github.com/notifications","location":"notifications.ts"}} />
### Repo Branches
@ -239,7 +239,7 @@ GitHub provides some official RSS feeds:
### Trending
<Route namespace="github" data={{"path":"/trending/:since/:language/:spoken_language?","categories":["programming"],"example":"/github/trending/daily/javascript/en","parameters":{"since":"time frame, available in [Trending page](https://github.com/trending/javascript?since=monthly) 's URL, possible values are: `daily`, `weekly` or `monthly`","language":"the feed language, available in [Trending page](https://github.com/trending/javascript?since=monthly) 's URL, don't filter option is `any`","spoken_language":"natural language, available in [Trending page](https://github.com/trending/javascript?since=monthly) 's URL"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["github.com/trending"],"target":"/trending/:since"},"name":"Trending","maintainers":["DIYgod","jameschensmith"],"url":"github.com/trending","location":"trending.ts"}} />
<Route namespace="github" data={{"path":"/trending/:since/:language/:spoken_language?","categories":["programming"],"example":"/github/trending/daily/javascript/en","parameters":{"since":"time frame, available in [Trending page](https://github.com/trending/javascript?since=monthly) 's URL, possible values are: `daily`, `weekly` or `monthly`","language":"the feed language, available in [Trending page](https://github.com/trending/javascript?since=monthly) 's URL, don't filter option is `any`","spoken_language":"natural language, available in [Trending page](https://github.com/trending/javascript?since=monthly) 's URL"},"features":{"requireConfig":[{"name":"GITHUB_ACCESS_TOKEN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["github.com/trending"],"target":"/trending/:since"},"name":"Trending","maintainers":["DIYgod","jameschensmith"],"url":"github.com/trending","location":"trending.ts"}} />
### User Followers

View File

@ -43,7 +43,7 @@
### UP 主粉丝
<Route namespace="bilibili" data={{"path":"/user/followers/:uid/:loginUid","categories":["social-media"],"example":"/bilibili/user/followers/2267573/3","parameters":{"uid":"用户 id, 可在 UP 主主页中找到","loginUid":"用于登入的用户id,需要配置对应的 Cookie 值"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["space.bilibili.com/:uid"],"target":"/user/followers/:uid"},"name":"UP 主粉丝","maintainers":["Qixingchen"],"description":":::warning\n UP 主粉丝现在需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"followers.ts"}} />
<Route namespace="bilibili" data={{"path":"/user/followers/:uid/:loginUid","categories":["social-media"],"example":"/bilibili/user/followers/2267573/3","parameters":{"uid":"用户 id, 可在 UP 主主页中找到","loginUid":"用于登入的用户id,需要配置对应的 Cookie 值"},"features":{"requireConfig":[{"name":"BILIBILI_COOKIE_*","description":"BILIBILI_COOKIE_{uid}: 用于用户关注动态系列路由,对应 uid 的 b 站用户登录后的 Cookie 值,`{uid}` 替换为 uid如 `BILIBILI_COOKIE_2267573`,获取方式:\n1. 打开 [https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8](https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8)\n2. 打开控制台,切换到 Network 面板,刷新\n3. 点击 dynamic_new 请求,找到 Cookie\n4. 视频和专栏UP 主粉丝及关注只要求 `SESSDATA` 字段,动态需复制整段 Cookie"}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["space.bilibili.com/:uid"],"target":"/user/followers/:uid"},"name":"UP 主粉丝","maintainers":["Qixingchen"],"description":":::warning\n UP 主粉丝现在需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"followers.ts"}} />
:::warning
UP 主粉丝现在需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。
@ -51,7 +51,7 @@
### UP 主关注用户
<Route namespace="bilibili" data={{"path":"/user/followings/:uid/:loginUid","categories":["social-media"],"example":"/bilibili/user/followings/2267573/3","parameters":{"uid":"用户 id, 可在 UP 主主页中找到","loginUid":"用于登入的用户id,需要配置对应的 Cookie 值"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["space.bilibili.com/:uid"],"target":"/user/followings/:uid"},"name":"UP 主关注用户","maintainers":["Qixingchen"],"description":":::warning\n UP 主关注用户现在需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"followings.ts"}} />
<Route namespace="bilibili" data={{"path":"/user/followings/:uid/:loginUid","categories":["social-media"],"example":"/bilibili/user/followings/2267573/3","parameters":{"uid":"用户 id, 可在 UP 主主页中找到","loginUid":"用于登入的用户id,需要配置对应的 Cookie 值"},"features":{"requireConfig":[{"name":"BILIBILI_COOKIE_*","description":"BILIBILI_COOKIE_{uid}: 用于用户关注动态系列路由,对应 uid 的 b 站用户登录后的 Cookie 值,`{uid}` 替换为 uid如 `BILIBILI_COOKIE_2267573`,获取方式:\n 1. 打开 [https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8](https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8)\n 2. 打开控制台,切换到 Network 面板,刷新\n 3. 点击 dynamic_new 请求,找到 Cookie\n 4. 视频和专栏UP 主粉丝及关注只要求 `SESSDATA` 字段,动态需复制整段 Cookie"}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["space.bilibili.com/:uid"],"target":"/user/followings/:uid"},"name":"UP 主关注用户","maintainers":["Qixingchen"],"description":":::warning\n UP 主关注用户现在需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"followings.ts"}} />
:::warning
UP 主关注用户现在需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。
@ -261,7 +261,7 @@
### 用户关注专栏
<Route namespace="bilibili" data={{"path":"/followings/article/:uid","categories":["social-media"],"example":"/bilibili/followings/article/99800931","parameters":{"uid":"用户 id"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"用户关注专栏","maintainers":["woshiluo"],"description":":::warning\n 用户动态需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"followings-article.ts"}} />
<Route namespace="bilibili" data={{"path":"/followings/article/:uid","categories":["social-media"],"example":"/bilibili/followings/article/99800931","parameters":{"uid":"用户 id"},"features":{"requireConfig":[{"name":"BILIBILI_COOKIE_*","description":"BILIBILI_COOKIE_{uid}: 用于用户关注动态系列路由,对应 uid 的 b 站用户登录后的 Cookie 值,`{uid}` 替换为 uid如 `BILIBILI_COOKIE_2267573`,获取方式:\n 1. 打开 [https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8](https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8)\n 2. 打开控制台,切换到 Network 面板,刷新\n 3. 点击 dynamic_new 请求,找到 Cookie\n 4. 视频和专栏UP 主粉丝及关注只要求 `SESSDATA` 字段,动态需复制整段 Cookie"}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"用户关注专栏","maintainers":["woshiluo"],"description":":::warning\n 用户动态需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"followings-article.ts"}} />
:::warning
用户动态需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。
@ -269,7 +269,7 @@
### 用户关注动态
<Route namespace="bilibili" data={{"path":"/followings/dynamic/:uid/:routeParams?","categories":["social-media"],"example":"/bilibili/followings/dynamic/109937383","parameters":{"uid":"用户 id","routeParams":"额外参数;请参阅 [#UP 主动态](#bilibili-up-zhu-dong-tai) 的说明和表格"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"用户关注动态","maintainers":["TigerCubDen","JimenezLi"],"description":":::warning\n 用户动态需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"followings-dynamic.ts"}} />
<Route namespace="bilibili" data={{"path":"/followings/dynamic/:uid/:routeParams?","categories":["social-media"],"example":"/bilibili/followings/dynamic/109937383","parameters":{"uid":"用户 id","routeParams":"额外参数;请参阅 [#UP 主动态](#bilibili-up-zhu-dong-tai) 的说明和表格"},"features":{"requireConfig":[{"name":"BILIBILI_COOKIE_*","description":"BILIBILI_COOKIE_{uid}: 用于用户关注动态系列路由,对应 uid 的 b 站用户登录后的 Cookie 值,`{uid}` 替换为 uid如 `BILIBILI_COOKIE_2267573`,获取方式:\n 1. 打开 [https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8](https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8)\n 2. 打开控制台,切换到 Network 面板,刷新\n 3. 点击 dynamic_new 请求,找到 Cookie\n 4. 视频和专栏UP 主粉丝及关注只要求 `SESSDATA` 字段,动态需复制整段 Cookie"}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"用户关注动态","maintainers":["TigerCubDen","JimenezLi"],"description":":::warning\n 用户动态需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"followings-dynamic.ts"}} />
:::warning
用户动态需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。
@ -277,7 +277,7 @@
### 用户关注视频动态
<Route namespace="bilibili" data={{"path":"/followings/video/:uid/:disableEmbed?","categories":["social-media"],"example":"/bilibili/followings/video/2267573","parameters":{"uid":"用户 id","disableEmbed":"默认为开启内嵌视频, 任意值为关闭"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"用户关注视频动态","maintainers":["LogicJake"],"description":":::warning\n 用户动态需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"followings-video.ts"}} />
<Route namespace="bilibili" data={{"path":"/followings/video/:uid/:disableEmbed?","categories":["social-media"],"example":"/bilibili/followings/video/2267573","parameters":{"uid":"用户 id","disableEmbed":"默认为开启内嵌视频, 任意值为关闭"},"features":{"requireConfig":[{"name":"BILIBILI_COOKIE_*","description":"BILIBILI_COOKIE_{uid}: 用于用户关注动态系列路由,对应 uid 的 b 站用户登录后的 Cookie 值,`{uid}` 替换为 uid如 `BILIBILI_COOKIE_2267573`,获取方式:\n 1. 打开 [https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8](https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8)\n 2. 打开控制台,切换到 Network 面板,刷新\n 3. 点击 dynamic_new 请求,找到 Cookie\n 4. 视频和专栏UP 主粉丝及关注只要求 `SESSDATA` 字段,动态需复制整段 Cookie"}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"用户关注视频动态","maintainers":["LogicJake"],"description":":::warning\n 用户动态需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"followings-video.ts"}} />
:::warning
用户动态需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。
@ -285,7 +285,7 @@
### 用户追漫更新
<Route namespace="bilibili" data={{"path":"/manga/followings/:uid/:limits?","categories":["social-media"],"example":"/bilibili/manga/followings/26009","parameters":{"uid":"用户 id","limits":"抓取最近更新前多少本漫画默认为10"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"用户追漫更新","maintainers":["yindaheng98"],"description":":::warning\n 用户追漫需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"manga-followings.ts"}} />
<Route namespace="bilibili" data={{"path":"/manga/followings/:uid/:limits?","categories":["social-media"],"example":"/bilibili/manga/followings/26009","parameters":{"uid":"用户 id","limits":"抓取最近更新前多少本漫画默认为10"},"features":{"requireConfig":[{"name":"BILIBILI_COOKIE_*","description":"BILIBILI_COOKIE_{uid}: 用于用户关注动态系列路由,对应 uid 的 b 站用户登录后的 Cookie 值,`{uid}` 替换为 uid如 `BILIBILI_COOKIE_2267573`,获取方式:\n 1. 打开 [https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8](https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8)\n 2. 打开控制台,切换到 Network 面板,刷新\n 3. 点击 dynamic_new 请求,找到 Cookie\n 4. 视频和专栏UP 主粉丝及关注只要求 `SESSDATA` 字段,动态需复制整段 Cookie"}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"用户追漫更新","maintainers":["yindaheng98"],"description":":::warning\n 用户追漫需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"manga-followings.ts"}} />
:::warning
用户追漫需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。
@ -297,7 +297,7 @@
### 用户稍后再看
<Route namespace="bilibili" data={{"path":"/watchlater/:uid/:disableEmbed?","categories":["social-media"],"example":"/bilibili/watchlater/2267573","parameters":{"uid":"用户 id","disableEmbed":"默认为开启内嵌视频, 任意值为关闭"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"用户稍后再看","maintainers":["JimenezLi"],"description":":::warning\n 用户稍后再看需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"watchlater.ts"}} />
<Route namespace="bilibili" data={{"path":"/watchlater/:uid/:disableEmbed?","categories":["social-media"],"example":"/bilibili/watchlater/2267573","parameters":{"uid":"用户 id","disableEmbed":"默认为开启内嵌视频, 任意值为关闭"},"features":{"requireConfig":[{"name":"BILIBILI_COOKIE_*","description":"BILIBILI_COOKIE_{uid}: 用于用户关注动态系列路由,对应 uid 的 b 站用户登录后的 Cookie 值,`{uid}` 替换为 uid如 `BILIBILI_COOKIE_2267573`,获取方式:\n 1. 打开 [https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8](https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8)\n 2. 打开控制台,切换到 Network 面板,刷新\n 3. 点击 dynamic_new 请求,找到 Cookie\n 4. 视频和专栏UP 主粉丝及关注只要求 `SESSDATA` 字段,动态需复制整段 Cookie"}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"用户稍后再看","maintainers":["JimenezLi"],"description":":::warning\n 用户稍后再看需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"watchlater.ts"}} />
:::warning
用户稍后再看需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。
@ -359,7 +359,7 @@
### Channel Messages
<Route namespace="discord" data={{"path":"/channel/:channelId","categories":["social-media"],"example":"/discord/channel/950465850056536084","parameters":{"channelId":"Channel ID"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["discord.com/channels/:guildId/:channelId/:messageID","discord.com/channels/:guildId/:channelId"]},"name":"Channel Messages","maintainers":["TonyRL"],"location":"channel.ts"}} />
<Route namespace="discord" data={{"path":"/channel/:channelId","categories":["social-media"],"example":"/discord/channel/950465850056536084","parameters":{"channelId":"Channel ID"},"features":{"requireConfig":[{"name":"DISCORD_AUTHORIZATION","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["discord.com/channels/:guildId/:channelId/:messageID","discord.com/channels/:guildId/:channelId"]},"name":"Channel Messages","maintainers":["TonyRL"],"location":"channel.ts"}} />
## Fansly
@ -385,7 +385,7 @@ It's highly recommended to deploy with Redis cache enabled.
### User Profile / Hashtag - Private API
<Route namespace="instagram" data={{"path":"/:category/:key","categories":["social-media"],"example":"/instagram/user/stefaniejoosten","parameters":{"category":"Feed category, see table above","key":"Username / Hashtag name"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":true,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"User Profile / Hashtag - Private API","maintainers":["oppilate","DIYgod"],"description":":::warning\nDue 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.\n:::","location":"private-api/index.ts"}} />
<Route namespace="instagram" data={{"path":"/:category/:key","categories":["social-media"],"example":"/instagram/user/stefaniejoosten","parameters":{"category":"Feed category, see table above","key":"Username / Hashtag name"},"features":{"requireConfig":[{"name":"IG_PROXY","optional":true,"description":""}],"requirePuppeteer":false,"antiCrawler":true,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"User Profile / Hashtag - Private API","maintainers":["oppilate","DIYgod"],"description":":::warning\nDue 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.\n:::","location":"private-api/index.ts"}} />
:::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.
@ -435,7 +435,7 @@ It's highly recommended to deploy with Redis cache enabled.
### Community
<Route namespace="lemmy" data={{"path":"/:community/:sort?","categories":["social-media"],"example":"/lemmy/technology@lemmy.world/Hot","parameters":{"community":"Lemmmy community, for example technology@lemmy.world","sort":"Sort by, defaut to Active"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Community","maintainers":["wb14123"],"location":"index.ts"}} />
<Route namespace="lemmy" data={{"path":"/:community/:sort?","categories":["social-media"],"example":"/lemmy/technology@lemmy.world/Hot","parameters":{"community":"Lemmmy community, for example technology@lemmy.world","sort":"Sort by, defaut to Active"},"features":{"requireConfig":[{"name":"ALLOW_USER_SUPPLY_UNSAFE_DOMAIN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Community","maintainers":["wb14123"],"location":"index.ts"}} />
## Lofter
@ -492,7 +492,7 @@ However, you can still specify these route-specific configurations if you need t
### Following timeline
<Route namespace="pixiv" data={{"path":"/user/illustfollows","categories":["social-media"],"example":"/pixiv/user/illustfollows","parameters":{},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["www.pixiv.net/bookmark_new_illust.php"]},"name":"Following timeline","maintainers":["ClarkeCheng"],"url":"www.pixiv.net/bookmark_new_illust.php","description":":::warning\n Only for self-hosted\n :::","location":"illustfollow.ts"}} />
<Route namespace="pixiv" data={{"path":"/user/illustfollows","categories":["social-media"],"example":"/pixiv/user/illustfollows","parameters":{},"features":{"requireConfig":[{"name":"PIXIV_REFRESHTOKEN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["www.pixiv.net/bookmark_new_illust.php"]},"name":"Following timeline","maintainers":["ClarkeCheng"],"url":"www.pixiv.net/bookmark_new_illust.php","description":":::warning\n Only for self-hosted\n :::","location":"illustfollow.ts"}} />
:::warning
Only for self-hosted
@ -687,7 +687,7 @@ generates
### Collection
<Route namespace="twitter" data={{"path":"/collection/:uid/:collectionId/:routeParams?","categories":["social-media"],"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,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Collection","maintainers":["TonyRL"],"description":":::warning\n This route requires Twitter token's corresponding id, therefore it's only available when self-hosting, refer to the [Deploy Guide](/install/#route-specific-configurations) for route-specific configurations.\n :::","location":"collection.ts"}} />
<Route namespace="twitter" data={{"path":"/collection/:uid/:collectionId/:routeParams?","categories":["social-media"],"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":[{"name":"TWITTER_USERNAME","description":""},{"name":"TWITTER_PASSWORD","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Collection","maintainers":["TonyRL"],"description":":::warning\n This route requires Twitter token's corresponding id, therefore it's only available when self-hosting, refer to the [Deploy Guide](/install/#route-specific-configurations) for route-specific configurations.\n :::","location":"collection.ts"}} />
:::warning
This route requires Twitter token's corresponding id, therefore it's only available when self-hosting, refer to the [Deploy Guide](/install/#route-specific-configurations) for route-specific configurations.
@ -695,7 +695,7 @@ generates
### Keyword
<Route namespace="twitter" data={{"path":"/keyword/:keyword/:routeParams?","categories":["social-media"],"example":"/twitter/keyword/RSSHub","parameters":{"keyword":"keyword","routeParams":"extra parameters, see the table above"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Keyword","maintainers":["DIYgod","yindaheng98","Rongronggg9"],"location":"keyword.ts"}} />
<Route namespace="twitter" data={{"path":"/keyword/:keyword/:routeParams?","categories":["social-media"],"example":"/twitter/keyword/RSSHub","parameters":{"keyword":"keyword","routeParams":"extra parameters, see the table above"},"features":{"requireConfig":[{"name":"TWITTER_USERNAME","description":""},{"name":"TWITTER_PASSWORD","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Keyword","maintainers":["DIYgod","yindaheng98","Rongronggg9"],"location":"keyword.ts"}} />
### List timeline
@ -707,11 +707,11 @@ generates
### Tweet Details
<Route namespace="twitter" data={{"path":"/tweet/:id/status/:status/:original?","categories":["social-media"],"example":"/twitter/tweet/DIYgod/status/1650844643997646852","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`","status":"tweet ID","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,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Tweet Details","maintainers":["LarchLiu","Rongronggg9"],"location":"tweet.ts"}} />
<Route namespace="twitter" data={{"path":"/tweet/:id/status/:status/:original?","categories":["social-media"],"example":"/twitter/tweet/DIYgod/status/1650844643997646852","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`","status":"tweet ID","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":[{"name":"TWITTER_USERNAME","description":""},{"name":"TWITTER_PASSWORD","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"Tweet Details","maintainers":["LarchLiu","Rongronggg9"],"location":"tweet.ts"}} />
### User following timeline
<Route namespace="twitter" data={{"path":"/followings/:id/:routeParams?","categories":["social-media"],"example":"/twitter/followings/DIYgod","parameters":{"id":"username","routeParams":"extra parameters, see the table above"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"User following timeline","maintainers":["DIYgod"],"description":":::warning\n This route requires Twitter token's corresponding id, therefore it's only available when self-hosting, refer to the [Deploy Guide](/install/#route-specific-configurations) for route-specific configurations.\n :::","location":"followings.ts"}} />
<Route namespace="twitter" data={{"path":"/followings/:id/:routeParams?","categories":["social-media"],"example":"/twitter/followings/DIYgod","parameters":{"id":"username","routeParams":"extra parameters, see the table above"},"features":{"requireConfig":[{"name":"TWITTER_USERNAME","description":""},{"name":"TWITTER_PASSWORD","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"User following timeline","maintainers":["DIYgod"],"description":":::warning\n This route requires Twitter token's corresponding id, therefore it's only available when self-hosting, refer to the [Deploy Guide](/install/#route-specific-configurations) for route-specific configurations.\n :::","location":"followings.ts"}} />
:::warning
This route requires Twitter token's corresponding id, therefore it's only available when self-hosting, refer to the [Deploy Guide](/install/#route-specific-configurations) for route-specific configurations.
@ -723,11 +723,11 @@ generates
### User media
<Route namespace="twitter" data={{"path":"/media/:id/:routeParams?","categories":["social-media"],"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,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"User media","maintainers":["yindaheng98","Rongronggg9"],"location":"media.ts"}} />
<Route namespace="twitter" data={{"path":"/media/:id/:routeParams?","categories":["social-media"],"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":[{"name":"TWITTER_USERNAME","description":""},{"name":"TWITTER_PASSWORD","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"User media","maintainers":["yindaheng98","Rongronggg9"],"location":"media.ts"}} />
### User timeline
<Route namespace="twitter" data={{"path":"/user/:id/:routeParams?","categories":["social-media"],"example":"/twitter/user/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; 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,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"User timeline","maintainers":["DIYgod","yindaheng98","Rongronggg9"],"location":"user.ts"}} />
<Route namespace="twitter" data={{"path":"/user/:id/:routeParams?","categories":["social-media"],"example":"/twitter/user/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; 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":[{"name":"TWITTER_USERNAME","description":""},{"name":"TWITTER_PASSWORD","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"User timeline","maintainers":["DIYgod","yindaheng98","Rongronggg9"],"location":"user.ts"}} />
## Vimeo
@ -815,7 +815,7 @@ Chart
### Subscriptions
<Route namespace="youtube" data={{"path":"/subscriptions/:embed?","categories":["social-media"],"example":"/youtube/subscriptions","parameters":{"embed":"Default to embed the video, set to any value to disable embedding"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["www.youtube.com/feed/subscriptions","www.youtube.com/feed/channels"],"target":"/subscriptions"},"name":"Subscriptions","maintainers":["TonyRL"],"url":"www.youtube.com/feed/subscriptions","location":"subscriptions.ts"}} />
<Route namespace="youtube" data={{"path":"/subscriptions/:embed?","categories":["social-media"],"example":"/youtube/subscriptions","parameters":{"embed":"Default to embed the video, set to any value to disable embedding"},"features":{"requireConfig":[{"name":"YOUTUBE_KEY","description":""},{"name":"YOUTUBE_CLIENT_ID","description":""},{"name":"YOUTUBE_CLIENT_SECRET","description":""},{"name":"YOUTUBE_REFRESH_TOKEN","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["www.youtube.com/feed/subscriptions","www.youtube.com/feed/channels"],"target":"/subscriptions"},"name":"Subscriptions","maintainers":["TonyRL"],"url":"www.youtube.com/feed/subscriptions","location":"subscriptions.ts"}} />
### User
@ -1209,7 +1209,7 @@ Chart
### 个人时间线
<Route namespace="weibo" data={{"path":"/timeline/:uid/:feature?/:routeParams?","categories":["social-media"],"example":"/weibo/timeline/3306934123","parameters":{"uid":"用户的uid","feature":"过滤类型ID0全部、1原创、2图片、3视频、4音乐默认为0。","routeParams":"额外参数;请参阅上面的说明和表格"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"个人时间线","maintainers":["zytomorrow","DIYgod","Rongronggg9"],"description":":::warning\n 需要对应用户打开页面进行授权生成 token 才能生成内容\n\n 自部署需要申请并配置微博 key具体见部署文档\n :::","location":"timeline.ts"}} />
<Route namespace="weibo" data={{"path":"/timeline/:uid/:feature?/:routeParams?","categories":["social-media"],"example":"/weibo/timeline/3306934123","parameters":{"uid":"用户的uid","feature":"过滤类型ID0全部、1原创、2图片、3视频、4音乐默认为0。","routeParams":"额外参数;请参阅上面的说明和表格"},"features":{"requireConfig":[{"name":"WEIBO_APP_KEY","description":""},{"name":"WEIBO_REDIRECT_URL","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"个人时间线","maintainers":["zytomorrow","DIYgod","Rongronggg9"],"description":":::warning\n 需要对应用户打开页面进行授权生成 token 才能生成内容\n\n 自部署需要申请并配置微博 key具体见部署文档\n :::","location":"timeline.ts"}} />
:::warning
需要对应用户打开页面进行授权生成 token 才能生成内容
@ -1236,7 +1236,7 @@ Chart
### 自定义分组
<Route namespace="weibo" data={{"path":"/group/:gid/:gname?/:routeParams?","categories":["social-media"],"example":"/weibo/group/4541216424989965","parameters":{"gid":"分组id, 在网页版分组地址栏末尾`?gid=`处获取","gname":"分组显示名称; 默认为: `微博分组`","routeParams":"额外参数;请参阅上面的说明和表格"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"自定义分组","maintainers":["monologconnor","Rongronggg9"],"description":":::warning\n 由于微博官方未提供自定义分组相关 api, 此方案必须使用用户`Cookie`进行抓取\n\n 因微博 cookies 的过期与更新方案未经验证,部署一次 Cookie 的有效时长未知\n\n 微博用户 Cookie 的配置可参照部署文档\n :::","location":"group.ts"}} />
<Route namespace="weibo" data={{"path":"/group/:gid/:gname?/:routeParams?","categories":["social-media"],"example":"/weibo/group/4541216424989965","parameters":{"gid":"分组id, 在网页版分组地址栏末尾`?gid=`处获取","gname":"分组显示名称; 默认为: `微博分组`","routeParams":"额外参数;请参阅上面的说明和表格"},"features":{"requireConfig":[{"name":"WEIBO_COOKIES","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"自定义分组","maintainers":["monologconnor","Rongronggg9"],"description":":::warning\n 由于微博官方未提供自定义分组相关 api, 此方案必须使用用户`Cookie`进行抓取\n\n 因微博 cookies 的过期与更新方案未经验证,部署一次 Cookie 的有效时长未知\n\n 微博用户 Cookie 的配置可参照部署文档\n :::","location":"group.ts"}} />
:::warning
由于微博官方未提供自定义分组相关 api, 此方案必须使用用户`Cookie`进行抓取
@ -1248,7 +1248,7 @@ Chart
### 最新关注时间线
<Route namespace="weibo" data={{"path":"/friends/:routeParams?","categories":["social-media"],"example":"/weibo/friends","parameters":{"routeParams":"额外参数;请参阅上面的说明和表格"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["weibo.com/"],"target":"/friends"},"name":"最新关注时间线","maintainers":["CaoMeiYouRen"],"url":"weibo.com/","description":":::warning\n 此方案必须使用用户`Cookie`进行抓取\n\n 因微博 cookies 的过期与更新方案未经验证,部署一次 Cookie 的有效时长未知\n\n 微博用户 Cookie 的配置可参照部署文档\n :::","location":"friends.ts"}} />
<Route namespace="weibo" data={{"path":"/friends/:routeParams?","categories":["social-media"],"example":"/weibo/friends","parameters":{"routeParams":"额外参数;请参阅上面的说明和表格"},"features":{"requireConfig":[{"name":"WEIBO_COOKIES","description":""}],"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["weibo.com/"],"target":"/friends"},"name":"最新关注时间线","maintainers":["CaoMeiYouRen"],"url":"weibo.com/","description":":::warning\n 此方案必须使用用户`Cookie`进行抓取\n\n 因微博 cookies 的过期与更新方案未经验证,部署一次 Cookie 的有效时长未知\n\n 微博用户 Cookie 的配置可参照部署文档\n :::","location":"friends.ts"}} />
:::warning
此方案必须使用用户`Cookie`进行抓取
@ -1273,7 +1273,7 @@ Chart
### 抖音短视频
<Route namespace="newrank" data={{"path":"/douyin/:dyid","categories":["social-media"],"example":"/newrank/douyin/110266463747","parameters":{"dyid":"抖音ID可在新榜账号详情 URL 中找到"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":true,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"抖音短视频","maintainers":["lessmoe"],"description":":::warning\n免费版账户抖音每天查询次数 20 次,如需增加次数可购买新榜会员或等待未来多账户支持\n:::","location":"douyin.ts"}} />
<Route namespace="newrank" data={{"path":"/douyin/:dyid","categories":["social-media"],"example":"/newrank/douyin/110266463747","parameters":{"dyid":"抖音ID可在新榜账号详情 URL 中找到"},"features":{"requireConfig":[{"name":"NEWRANK_COOKIE","description":""}],"requirePuppeteer":false,"antiCrawler":true,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"抖音短视频","maintainers":["lessmoe"],"description":":::warning\n免费版账户抖音每天查询次数 20 次,如需增加次数可购买新榜会员或等待未来多账户支持\n:::","location":"douyin.ts"}} />
:::warning
免费版账户抖音每天查询次数 20 次,如需增加次数可购买新榜会员或等待未来多账户支持
@ -1281,7 +1281,7 @@ Chart
### 微信公众号
<Route namespace="newrank" data={{"path":"/wechat/:wxid","categories":["social-media"],"example":"/newrank/wechat/chijiread","parameters":{"wxid":"微信号,若微信号与新榜信息不一致,以新榜为准"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":true,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"微信公众号","maintainers":["lessmoe"],"location":"wechat.ts"}} />
<Route namespace="newrank" data={{"path":"/wechat/:wxid","categories":["social-media"],"example":"/newrank/wechat/chijiread","parameters":{"wxid":"微信号,若微信号与新榜信息不一致,以新榜为准"},"features":{"requireConfig":[{"name":"NEWRANK_COOKIE","description":""}],"requirePuppeteer":false,"antiCrawler":true,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"微信公众号","maintainers":["lessmoe"],"location":"wechat.ts"}} />
## 知乎
@ -1352,7 +1352,7 @@ Chart
### 用户关注时间线
<Route namespace="zhihu" data={{"path":"/timeline","categories":["social-media"],"example":"/zhihu/timeline","parameters":{},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":true,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"用户关注时间线","maintainers":["SeanChao"],"description":":::warning\n 用户关注动态需要登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"timeline.ts"}} />
<Route namespace="zhihu" data={{"path":"/timeline","categories":["social-media"],"example":"/zhihu/timeline","parameters":{},"features":{"requireConfig":[{"name":"ZHIHU_COOKIES","description":""}],"requirePuppeteer":false,"antiCrawler":true,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"用户关注时间线","maintainers":["SeanChao"],"description":":::warning\n 用户关注动态需要登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。\n :::","location":"timeline.ts"}} />
:::warning
用户关注动态需要登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。

View File

@ -93,7 +93,7 @@ Channels:
### myFT personal RSS
<Route namespace="ft" data={{"path":"/myft/:key","categories":["traditional-media"],"example":"/ft/myft/rss-key","parameters":{"key":"the last part of myFT personal RSS address"},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"myFT personal RSS","maintainers":["HenryQW"],"description":":::tip\n - Visit ft.com -> myFT -> Contact Preferences to enable personal RSS feed, see [help.ft.com](https://help.ft.com/faq/email-alerts-and-contact-preferences/what-is-myft-rss-feed/)\n - Obtain the key from the personal RSS address, it looks like `12345678-abcd-4036-82db-vdv20db024b8`\n :::","location":"myft.ts"}} />
<Route namespace="ft" data={{"path":"/myft/:key","categories":["traditional-media"],"example":"/ft/myft/rss-key","parameters":{"key":"the last part of myFT personal RSS address"},"features":{"requireConfig":false,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"name":"myFT personal RSS","maintainers":["HenryQW"],"description":":::tip\n - Visit ft.com -> myFT -> Contact Preferences to enable personal RSS feed, see [help.ft.com](https://help.ft.com/faq/email-alerts-and-contact-preferences/what-is-myft-rss-feed/)\n - Obtain the key from the personal RSS address, it looks like `12345678-abcd-4036-82db-vdv20db024b8`\n :::","location":"myft.ts"}} />
:::tip
- Visit ft.com -> myFT -> Contact Preferences to enable personal RSS feed, see [help.ft.com](https://help.ft.com/faq/email-alerts-and-contact-preferences/what-is-myft-rss-feed/)

View File

@ -1929,7 +1929,7 @@ author 列表:
### 选课信息教务通知
<Route namespace="ouc" data={{"path":"/jwgl","categories":["university"],"example":"/ouc/jwgl","parameters":{},"features":{"requireConfig":true,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["jwgl.ouc.edu.cn/cas/login.action","jwgl.ouc.edu.cn/public/SchoolNotice.jsp"]},"name":"选课信息教务通知","maintainers":["3401797899"],"url":"jwgl.ouc.edu.cn/cas/login.action","description":":::warning\n 由于选课通知仅允许校园网访问,需自行部署。\n :::","location":"jwgl.ts"}} />
<Route namespace="ouc" data={{"path":"/jwgl","categories":["university"],"example":"/ouc/jwgl","parameters":{},"features":{"requireConfig":false,"requirePuppeteer":false,"antiCrawler":false,"supportBT":false,"supportPodcast":false,"supportScihub":false},"radar":{"source":["jwgl.ouc.edu.cn/cas/login.action","jwgl.ouc.edu.cn/public/SchoolNotice.jsp"]},"name":"选课信息教务通知","maintainers":["3401797899"],"url":"jwgl.ouc.edu.cn/cas/login.action","description":":::warning\n 由于选课通知仅允许校园网访问,需自行部署。\n :::","location":"jwgl.ts"}} />
:::warning
由于选课通知仅允许校园网访问,需自行部署。