diff --git a/docs/multimedia.md b/docs/multimedia.md index 25bd0ad4e5..836e2fe9f9 100644 --- a/docs/multimedia.md +++ b/docs/multimedia.md @@ -1664,6 +1664,34 @@ Tiny Tiny RSS 会给所有 iframe 元素添加 `sandbox="allow-scripts"` 属性 | -- | ------ | ----- | ---- | -- | ------ | | 留空 | bluray | 1080p | 720p | 3d | webdl | +## 中文播客榜 + +::: tip 提示 + +可以通过指定 `limit` 参数确定榜单排名下限,默认为 250。 + +若只查看榜单前 50,可在订阅 URL 后加入 `?limit=50`。 + +即,以 [热门节目](https://xyzrank.com/#/) 为例,路由为[`/xyzrank?limit=50`](https://rsshub.app/xyzrank?limit=50)。 + +::: + +### 热门节目 + + + +### 热门播客 + + + +### 新锐节目 + + + +### 新锐播客 + + + ## 注视影视 ### 更新通知 diff --git a/lib/v2/xyzrank/index.js b/lib/v2/xyzrank/index.js new file mode 100644 index 0000000000..fc9baa3929 --- /dev/null +++ b/lib/v2/xyzrank/index.js @@ -0,0 +1,111 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); +const { parseDate } = require('@/utils/parse-date'); +const { art } = require('@/utils/render'); +const path = require('path'); + +module.exports = async (ctx) => { + const category = ctx.params.category ?? ''; + + const rootUrl = 'https://xyzrank.com'; + const currentUrl = `${rootUrl}/#/${category}`; + + let response = await got({ + method: 'get', + url: rootUrl, + }); + + const $ = cheerio.load(response.data); + + response = await got({ + method: 'get', + url: response.data.match(/