-
{{name}}
+ {{name}}
diff --git a/docs/.vuepress/components/RouteEn.vue b/docs/.vuepress/components/RouteEn.vue
new file mode 100644
index 0000000000..e1932c183b
--- /dev/null
+++ b/docs/.vuepress/components/RouteEn.vue
@@ -0,0 +1,66 @@
+
+
+
{{name}}
+
+
+
+ Example: https://rsshub.app{{example}}
+
+
+ Route: {{ path }}
+
+
+
+ Parameters:
+
- {{item.replace('?','')}}, {{(item.includes('?'))?'optional':'required'}} -
+
+
+
+
+
+
+
diff --git a/docs/README.md b/docs/README.md
index ee27b53b1d..4535813d4b 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -817,9 +817,13 @@ GitHub 官方也提供了一些 RSS:
## 程序更新
-
+### RSSHub
-
+
+
+### MIUI
+
+
| 稳定版 | 开发版 |
| ------- | ------ |
@@ -827,7 +831,9 @@ GitHub 官方也提供了一些 RSS:
-
+### Firefox
+
+
| 桌面 | Android | Beta | Nightly | Android Beta | ESR |
| ------- | ------- | ---- | ------- | ------------ | ------------- |
@@ -845,15 +851,15 @@ GitHub 官方也提供了一些 RSS:
### Bugly SDK
-
+
### fir.im 应用
-
+
### Nvidia Web Driver
-
+
### App Store/Mac App Store
@@ -1337,7 +1343,9 @@ IATA 国际航空运输协会机场代码, 参见[维基百科 国际航空运
-
+### 文学迷
+
+
### 起点
@@ -1345,13 +1353,19 @@ IATA 国际航空运输协会机场代码, 参见[维基百科 国际航空运
-
+### 快眼看书
-## 中国驻外使领馆通知
+
-
+## 中国驻外使领馆
-
+### 大使馆
+
+
+
+### 领事馆
+
+
### 支持国家列表
@@ -1563,7 +1577,7 @@ IATA 国际航空运输协会机场代码, 参见[维基百科 国际航空运
### Apple
-
#### App Store/Mac App Store
diff --git a/docs/en/README.md b/docs/en/README.md
index 8fc032f658..26f40eb195 100644
--- a/docs/en/README.md
+++ b/docs/en/README.md
@@ -136,227 +136,93 @@ If no matching results were found, the server returns only a HTTP status code `2
### RSSHub
-Eg: [https://rsshub.app/rsshub/rss](https://rsshub.app/rsshub/rss)
+
-Route: `/rsshub/rss`
+### MIUI
-Parameters: N/A
-
-### MIUI
-
-Eg: [https://rsshub.app/miui/aries/](https://rsshub.app/miui/aries/)
-
-Route: `/miui/:device/:type?`
-
-Parameters:
-
-device: the device `codename` eg. `aries` for Mi 2S
-
-type: type, optional
+
| stable | development |
| ------- | ----------- |
| release | dev |
-### Firefox New Release
+
-Eg: [https://rsshub.app/firefox/release/desktop](https://rsshub.app/firefox/release/desktop)
+### Firefox
-Route: `/firefox/release/:platform`
-
-Parameters:
-
-- platform
+
| Desktop | Android | Beta | Nightly | Android Beta | ESR |
| ------- | ------- | ---- | ------- | ------------ | ------------- |
| desktop | android | beta | nightly | android-beta | organizations |
+
+
### Thunderbird
-Eg:
+
-Route: `/thunderbird/release/`
+### App Store/Mac App Store
-Parameters: N/A
+
-### App Store/Mac App Store Updates
+
-Eg: [https://rsshub.app/appstore/update/us/id697846300](https://rsshub.app/appstore/update/us/id697846300)
+
-Route: `/appstore/update/:country/:id`
+### Greasy Fork
-Parameters:
+
-- country, App Store Country, obtain from the app URL `https://itunes.apple.com/us/app/reeder-3/id697846300?mt=8`, in this case, `us`.
+### Thunderbird
-- id, App Store app id, obtain from the app URL `https://itunes.apple.com/us/app/reeder-3/id697846300?mt=8`, in this case, `id697846300`.
+
-### App Store/Mac App Store Price Drop Alert
+### Nvidia Web Driver
-Eg: [https://rsshub.app/appstore/price/us/mac/id1152443474](https://rsshub.app/appstore/price/cn/mac/id1152443474)
+
-Route: `/appstore/price/:country/:type/:id`
+## Social Media
-Parameters:
+### pixiv
-- country, App Store Country, obtain from the app URL https://itunes.apple.com/us/app/id1152443474, in this case, `us`.
+
-- type, App type,either `iOS` or `mac`
+
-- id, App Store app id, obtain from the app URL https://itunes.apple.com/us/app/id1152443474, in this case, `id1152443474`.
+
-### App Store/Mac App Store In-App-Purchase Price Drop Alert
+| pixiv daily rank | pixiv weekly rank | pixiv monthly rank | pixiv male rank | pixiv female rank | pixiv original rank | pixiv rookie user rank |
+| ---------------- | ----------------- | ------------------ | --------------- | ----------------- | ------------------- | ---------------------- |
+| day | week | month | day_male | day_female | week_original | week_rookie |
-Eg: [https://rsshub.app/appstore/iap/us/id953286746](https://rsshub.app/appstore/price/us/id953286746)
+| pixiv R-18 daily rank | pixiv R-18 male rank | pixiv R-18 female rank | pixiv R-18 weekly rank | pixiv R-18G rank |
+| --------------------- | -------------------- | ---------------------- | ---------------------- | ---------------- |
+| day_r18 | day_male_r18 | day_female_r18 | week_r18 | week_r18g |
-Route: `/appstore/iap/:country/:id`
+
-Parameters:
+### Disqus
-- country, App Store Country, obtain from the app URL https://itunes.apple.com/us/app/id953286746, in this case, `us`.
+
-- id, App Store app id, obtain from the app URL https://itunes.apple.com/us/app/id953286746, in this case, `id953286746`.
+### Twitter
-## pixiv
+
-### User Bookmark
+### Instagram
-Eg: [https://rsshub.app/pixiv/user/bookmarks/15288095](https://rsshub.app/pixiv/user/bookmarks/15288095)
+
-Route: `/pixiv/user/bookmarks/:id`
+### Youtube
-Parameters:
+
-- id, user id, available in user's homepage URL
+
-### User Activity
+### Telegram
-Eg: [https://rsshub.app/pixiv/user/11](https://rsshub.app/pixiv/user/11)
-
-Route: `/pixiv/user/:id`
-
-Parameters:
-
-- id, user id, available in user's homepage URL
-
-### Rankings
-
-Eg: [https://rsshub.app/pixiv/ranking/week](https://rsshub.app/pixiv/ranking/week)
-
-Route: `/pixiv/ranking/:mode/:date?`
-
-Parameters
-
-- mode: rank type
-
- | pixiv daily rank | pixiv weekly rank | pixiv monthly rank | pixiv male rank | pixiv female rank | pixiv original rank | pixiv rookie user rank |
- | ---------------- | ----------------- | ------------------ | --------------- | ----------------- | ------------------- | ---------------------- |
- | day | week | month | day_male | day_female | week_original | week_rookie |
-
- | pixiv R-18 daily rank | pixiv R-18 male rank | pixiv R-18 female rank | pixiv R-18 weekly rank | pixiv R-18G rank |
- | --------------------- | -------------------- | ---------------------- | ---------------------- | ---------------- |
- | day_r18 | day_male_r18 | day_female_r18 | week_r18 | week_r18g |
-
-- date: date, format: `2018-4-25`
-
-## Disqus
-
-### Comment
-
-Eg: [https://rsshub.app/disqus/posts/diygod-me](https://rsshub.app/disqus/posts/diygod-me)
-
-Route: `/disqus/posts/:forum`
-
-Parameters:
-
-- forum, disqus name of the target website
-
-## Twitter
-
-### User
-
-Eg: [https://rsshub.app/twitter/user/DIYgod](https://rsshub.app/twitter/user/DIYgod)
-
-Route: `/twitter/user/:id`
-
-Parameters:
-
-- id, twitter handler
-
-## Instagram
-
-### User
-
-Eg: [https://rsshub.app/instagram/user/diygod](https://rsshub.app/instagram/user/diygod)
-
-Route: `/instagram/user/:id`
-
-Parameters:
-
-- id, Instagram id
-
-## Youtube
-
-### User
-
-Eg: [https://rsshub.app/youtube/user/JFlaMusic](https://rsshub.app/youtube/user/JFlaMusic)
-
-Route: `/youtube/user/:username`
-
-Parameters:
-
-- username, Youtuber's username
-
-### Channel
-
-Eg: [https://rsshub.app/youtube/channel/UCDwDMPOZfxVV0x_dz0eQ8KQ](https://rsshub.app/youtube/channel/UCDwDMPOZfxVV0x_dz0eQ8KQ)
-
-Route: `/youtube/channel/:id`
-
-Parameters:
-
-- id, channel id
-
-## Dribbble
-
-### Popular
-
-Eg:
-
-[https://rsshub.app/dribbble/popular](https://rsshub.app/dribbble/popular)
-
-[https://rsshub.app/dribbble/popular/week](https://rsshub.app/dribbble/popular/week)
-
-Route: `/dribbble/popular/:timeframe?`
-
-Parameters:
-
-- timeframe, optional, support the following values: week, month, year and ever
-
-### User (or team)
-
-Eg: [https://rsshub.app/dribbble/user/google](https://rsshub.app/dribbble/user/google)
-
-Route: `/dribbble/user/:name`
-
-Parameters:
-
-- name, username, available in user's homepage URL
-
-### Keyword
-
-Eg: [https://rsshub.app/dribbble/keyword/player](https://rsshub.app/dribbble/keyword/player)
-
-Route: `/dribbble/keyword/:keyword`
-
-Parameters:
-
-- keyword, the desired keyword
-
-## Telegram
-
-### Channel
+
::: tip
@@ -364,15 +230,37 @@ Bot initialization required: Add Telegram Bot [@RSSHub_bot](https://t.me/RSSHub_
:::
-Eg: [https://rsshub.app/telegram/channel/awesomeDIYgod](https://rsshub.app/telegram/channel/awesomeDIYgod)
+
-Route: `/telegram/channel/:username`
+## Travel
-Parameters:
+### All the Flight Deals
-- username, channel name
+
-## GitHub
+For ISO 3166-1 country codes please refer to [Wikipedia ISO_3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)
+
+::: tip
+
+If the city name contains a space like `Mexico City`, replace the space with `%20`, `Mexico%20City`.
+
+:::
+
+
+
+### Hopper
+
+
+
+This route returns a list of flight deals (in most cases, 6 flight deals) for a period defined by Hopper's algorithm, which means the travel date will be totally random (could be tomorrow or 10 months from now).
+
+For airport IATA code please refer to [Wikipedia List of airports by IATA code](https://en.wikipedia.org/wiki/List_of_airports_by_IATA_code:_A)
+
+
+
+## Programming
+
+### GitHub
::: tip
@@ -384,67 +272,29 @@ GitHub provides some official RSS feeds:
:::
-### User Repo
+
-Eg: [https://rsshub.app/github/repos/DIYgod](https://rsshub.app/github/repos/DIYgod)
+
-Route: `/github/repos/:user`
+
-Parameters:
+
-- user, username
+
-### Trending
+### GitLab
-Eg:
+
-[https://rsshub.app/github/trending/daily](https://rsshub.app/github/trending/daily)
+| Trending | Most stars | All |
+| -------- | ---------- | --- |
+| trending | starred | all |
-[https://rsshub.app/github/trending/daily/javascript](https://rsshub.app/github/trending/daily/javascript)
+
-Route: `/github/trending/:since/:language?`
+## Uncategorized
-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
-
-### Issue
-
-Eg: [https://rsshub.app/github/issue/DIYgod/RSSHub](https://rsshub.app/github/issue/DIYgod/RSSHub)
-
-Route: `/github/issue/:user/:repo`
-
-Parameters:
-
-- user, username
-
-- repo, repo name
-
-### Follower
-
-Eg: [https://rsshub.app/github/user/followers/HenryQW](https://rsshub.app/github/user/followers/HenryQW)
-
-Route: `/github/user/follower/:user`
-
-Parameters:
-
-- user, username
-
-### Star
-
-Eg: [https://rsshub.app/github/stars/DIYGod/RSSHub](https://rsshub.app/github/stars/DIYGod/RSSHub)
-
-Route: `/github/stars/:user/:repo`
-
-Parameters:
-
-- user, username
-
-- repo, repo name
-
-## EZTV
+### EZTV
::: tip
@@ -452,70 +302,15 @@ EZTV provides an official RSS feed of all torrents: https://eztv.ag/ezrss.xml
:::
-### Torrent Lookup by IMDB ID
+
-Eg: [https://rsshub.app/eztv/torrents/6048596](https://rsshub.app/eztv/torrent/6048596)
+### Hexo Blog
-Route: `/eztv/torrents/:imdb_id`
+
-Parameters:
+### Google
-- imdb_id, search for the IMDB ID of the desired show, available at [IMDB](https://www.imdb.com)
-
-## Hexo Blog
-
-### Blog using Next theme
-
-Eg: [http://rsshub.app/hexo/next/fengkx.top](http://rsshub.app/hexo/next/fengkx.top)
-
-Route: `/hexo/next/:url`
-
-Parameters:
-
-- url, the blog URL without the protocol (http:// and https://)
-
-## Greasy Fork
-
-### Script Update
-
-Eg: [https://rsshub.app/greasyfork/en/google.com](https://rsshub.app/greasyfork/en/google.com)
-
-Route: `/greasyfork/:language/:domain?`
-
-Parameters:
-
-- language, language, located on the top right corner of Greasy Fork's search page, set to `all` for including all languages
-
-- domain, the script's target domain, optional
-
-## All the Flight Deals
-
-### Flight Deals
-
-Eg: [https://rsshub.app/atfd/us+new york,gb+london/1](https://rsshub.app/atfd/us+new%20york,gb+london/1)
-
-Route: `/atfd/:locations/:nearby?`
-
-Parameters:
-
-- locations: the departing city, consists of an 「ISO 3166-1 country code」 and a 「city name」. They are not case sensitive. :
-
- 1. Origin's ISO 3166-1 country code + city name, eg. `us+new york`, [https://rsshub.app/atfd/us+new york](https://rsshub.app/atfd/us+new%20york)
- 2. Multiple origins are supported via a comma separated string, eg. `us+new york,gb+london`, [https://rsshub.app/atfd/us+new york,gb+london/](https://rsshub.app/atfd/us+new%20york,gb+london/)
-
-For ISO 3166-1 country codes please refer to [Wikipedia ISO_3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)
-
-- nearby: whether includes nearby airports, optional value of 0 or 1, default to 0 (exclude nearby airports)
-
-::: tip
-
-If the city name contains a space like `Mexico City`, replace the space with `%20`, `Mexico%20City`.
-
-:::
-
-## Google
-
-### Google Scholar Keywords Monitoring
+
::: warning
@@ -523,34 +318,20 @@ Google Scholar has strict anti-crawling mechanism implemented, the demo below do
:::
-Eg: [https://rsshub.app/google/scholar/data+visualization](https://rsshub.app/google/scholar/data+visualization)
+1. Basic mode, sample query is the keywords desired, eg.「data visualization」, [https://rsshub.app/google/scholar/data+visualization](https://rsshub.app/google/scholar/data+visualization).
-Route: `/google/scholar/:query`
+2. Advanced mode, visit [Google Scholar](https://scholar.google.com/schhp?hl=en&as_sdt=0,5), click the top left corner and select「Advanced Search」, fill in your conditions and submit the search. The URL should look like this: [https://scholar.google.com/scholar?as_q=data+visualization&as_epq=&as_oq=&as_eq=&as_occt=any&as_sauthors=&as_publication=&as_ylo=2018&as_yhi=&hl=en&as_sdt=0%2C5](https://scholar.google.com/scholar?as_q=data+visualization&as_epq=&as_oq=&as_eq=&as_occt=any&as_sauthors=&as_publication=&as_ylo=2018&as_yhi=&hl=en&as_sdt=0%2C5), copy everything after `https://scholar.google.com/scholar?` from the URL and use it as the query for this route. The complete URL for the above example should look like this: [https://rsshub.app/google/scholar/as_q=data+visualization&as_epq=&as_oq=&as_eq=&as_occt=any&as_sauthors=&as_publication=&as_ylo=2018&as_yhi=&hl=en&as_sdt=0%2C5](https://rsshub.app/google/scholar/as_q=data+visualization&as_epq=&as_oq=&as_eq=&as_occt=any&as_sauthors=&as_publication=&as_ylo=2018&as_yhi=&hl=en&as_sdt=0%2C5).
-Parameters:
+
-- query, query statement which supports「Basic」and「Advanced」modes:
+### Dribbble
- 1. Basic mode, sample query is the keywords desired, eg.「data visualization」, [https://rsshub.app/google/scholar/data+visualization](https://rsshub.app/google/scholar/data+visualization).
+
- 2. Advanced mode, visit [Google Scholar](https://scholar.google.com/schhp?hl=en&as_sdt=0,5), click the top left corner and select「Advanced Search」, fill in your conditions and submit the search. The URL should look like this: [https://scholar.google.com/scholar?as_q=data+visualization&as_epq=&as_oq=&as_eq=&as_occt=any&as_sauthors=&as_publication=&as_ylo=2018&as_yhi=&hl=en&as_sdt=0%2C5](https://scholar.google.com/scholar?as_q=data+visualization&as_epq=&as_oq=&as_eq=&as_occt=any&as_sauthors=&as_publication=&as_ylo=2018&as_yhi=&hl=en&as_sdt=0%2C5), copy everything after `https://scholar.google.com/scholar?` from the URL and use it as the query for this route. The complete URL for the above example should look like this: [https://rsshub.app/google/scholar/as_q=data+visualization&as_epq=&as_oq=&as_eq=&as_occt=any&as_sauthors=&as_publication=&as_ylo=2018&as_yhi=&hl=en&as_sdt=0%2C5](https://rsshub.app/google/scholar/as_q=data+visualization&as_epq=&as_oq=&as_eq=&as_occt=any&as_sauthors=&as_publication=&as_ylo=2018&as_yhi=&hl=en&as_sdt=0%2C5).
+
-## Hopper
+
-### Hopper Flight Deals
+### Apple
-This route returns a list of flight deals (in most cases, 6 flight deals) for a period defined by Hopper's algorithm, which means the travel date will be totally random (could be tomorrow or 10 months from now).
-
-Eg: London Heathrow Airport ✈ Beijing Capital International Airport [https://rsshub.app/hopper/1/LHR/PEK](https://rsshub.app/hopper/1/LHR/PEK)
-
-Route: `/hopper/:lowestOnly/:from/:to?`
-
-Parameters:
-
-- lowestOnly, set to `1` will return the cheapest deal only, instead of all deals, so you don't get spammed
-
-- from, origin airport IATA code
-
-- to, destination airport IATA code, optional, if unset the destination will be set to `anywhere`
-
-For airport IATA code please refer to [Wikipedia List of airports by IATA code](https://en.wikipedia.org/wiki/List_of_airports_by_IATA_code:_A)
+
diff --git a/router.js b/router.js
index f43193bff5..4867cd3ea7 100644
--- a/router.js
+++ b/router.js
@@ -238,7 +238,6 @@ router.get('/jike/topic/text/:id', require('./routes/jike/topicText'));
router.get('/jike/topic/square/:id', require('./routes/jike/topicSquare'));
router.get('/jike/user/:id', require('./routes/jike/user'));
router.get('/jike/daily', require('./routes/jike/daily'));
-router.get('/jike/dev/:id', require('./routes/jike/topicDev'));
// 极客时间
router.get('/geektime/column/:cid', require('./routes/geektime/column'));
diff --git a/routes/apple/exchange_repair.js b/routes/apple/exchange_repair.js
index 73e8b3eab3..2780c47e10 100644
--- a/routes/apple/exchange_repair.js
+++ b/routes/apple/exchange_repair.js
@@ -47,7 +47,7 @@ module.exports = async (ctx) => {
description: $('#welcome')
.html()
.replace(/src="\//g, `src="${url.resolve(host, '.')}`),
- pubDate: new Date(datelist[index].replace(/(\d+) 年 (\d+) 月 (\d+) 日/, '$1-$2-$3')),
+ pubDate: new Date(datelist[index].replace(/(\d+) 年 (\d+) 月 (\d+) 日/, '$1-$2-$3')).toISOString(),
};
ctx.cache.set(itemUrl, JSON.stringify(single), 24 * 60 * 60);
@@ -55,8 +55,10 @@ module.exports = async (ctx) => {
})
);
+ const title = ctx.params.country === 'cn' ? 'Apple 支持 -- 更换和维修扩展计划' : `Apple ${ctx.params.country.toUpperCase()} Support -- Exchange and Repair Extension Programs`;
+
ctx.state.data = {
- title: 'Apple 支持 -- 更换和维修扩展计划',
+ title,
link,
item: out,
};
diff --git a/routes/jike/topicDev.js b/routes/jike/topicDev.js
deleted file mode 100644
index 3d8835505a..0000000000
--- a/routes/jike/topicDev.js
+++ /dev/null
@@ -1,60 +0,0 @@
-const axios = require('../../utils/axios');
-
-module.exports = async (ctx) => {
- const id = ctx.params.id;
-
- const response = await axios({
- method: 'post',
- url: 'https://app.jike.ruguoapp.com/1.0/messages/history',
- headers: {
- Referer: `https://m.okjike.com/topics/${id}`,
- 'App-Version': '4.1.0',
- },
- data: {
- loadMoreKey: null,
- topic: id,
- limit: 10,
- },
- });
-
- const data = response.data.data;
- const topic = data[0].topic;
- let link = `https://web.okjike.com/topic/${id}/official`;
-
- ctx.state.data = {
- title: `${topic.content} - 即刻主题精选`,
- link,
- description: topic.content,
- image: topic.squarePicture.picUrl || topic.squarePicture.middlePicUrl || topic.squarePicture.thumbnailUrl,
- item: data.map((item) => {
- let content = '';
-
- // 处理正文内容
- content += item.content || item.content.trim() !== '' ? `${item.content}
` : '';
-
- // 处理缩略图, WEBP + JPEG
- if (item.pictures) {
- item.pictures.forEach(
- (pic) =>
- (content += `
`)
- );
- }
-
- // 处理外链,originalLinkUrl 优先级高于 linkUrl
- if (item.linkInfo && (item.linkInfo.originalLinkUrl || item.linkInfo.linkUrl)) {
- link = item.linkInfo.originalLinkUrl || item.linkInfo.linkUrl;
- content += `
查看外链`;
- }
-
- return {
- // 处理标题,无标题则使用「主题名称」有新消息
- title: item.content.trim() === '' ? `「${topic.content}」有新消息` : item.content,
- description: `${content}`,
- pubDate: new Date(item.createdAt).toUTCString(),
- link,
- };
- }),
- };
-};