mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-13 00:35:57 +08:00
@@ -319,6 +319,8 @@ RSSHub 提供下列 API 接口:
|
||||
|
||||
<route name="话题(频道/标签)" author="Qixingchen" example="/bilibili/topic/2233" path="/bilibili/topic/2233" :paramsDesc="['话题名(又称频道名或标签) 例如 2233 或 COSPLAY']"/>
|
||||
|
||||
<route name="歌单" author="LogicJake" example="/bilibili/audio/10624" path="/bilibili/audio/10624" :paramsDesc="['歌单 id, 可在歌单页 URL 中找到']/>
|
||||
|
||||
### 微博
|
||||
|
||||
<route name="博主(方案1)" author="DIYgod" example="/weibo/user/1195230310" path="/weibo/user/:uid" :paramsDesc="['用户 id, 博主主页打开控制台执行 `$CONFIG.oid` 获取']"/>
|
||||
|
||||
@@ -112,6 +112,7 @@ router.get('/bilibili/mall/ip/:id', require('./routes/bilibili/mallIP'));
|
||||
router.get('/bilibili/ranking/:rid?/:day?', require('./routes/bilibili/ranking'));
|
||||
router.get('/bilibili/user/channel/:uid/:cid', require('./routes/bilibili/userChannel'));
|
||||
router.get('/bilibili/topic/:topic', require('./routes/bilibili/topic'));
|
||||
router.get('/bilibili/audio/:id', require('./routes/bilibili/audio'));
|
||||
|
||||
// bangumi
|
||||
router.get('/bangumi/calendar/today', require('./routes/bangumi/calendar/today'));
|
||||
|
||||
42
routes/bilibili/audio.js
Normal file
42
routes/bilibili/audio.js
Normal file
@@ -0,0 +1,42 @@
|
||||
const axios = require('../../utils/axios');
|
||||
|
||||
const audio = 'https://www.bilibili.com/audio/au';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const id = Number.parseInt(ctx.params.id);
|
||||
const link = `https://www.bilibili.com/audio/am${id}`;
|
||||
|
||||
const apiMenuUrl = `https://www.bilibili.com/audio/music-service-c/web/menu/info?sid=${id}`;
|
||||
const menuResponse = await axios.get(apiMenuUrl);
|
||||
const menuData = menuResponse.data.data;
|
||||
const introduction = menuData.intro;
|
||||
const title = menuData.title;
|
||||
|
||||
const apiUrl = `https://www.bilibili.com/audio/music-service-c/web/song/of-menu?sid=${id}&pn=1&ps=100`;
|
||||
const response = await axios.get(apiUrl);
|
||||
const data = response.data.data.data;
|
||||
|
||||
const out = data.map((item) => {
|
||||
const title = item.title;
|
||||
const link = audio + item.statistic.sid;
|
||||
const author = item.author;
|
||||
const description = item.intro + `<br><img src="${item.cover}">`;
|
||||
|
||||
const single = {
|
||||
title: title,
|
||||
link: link,
|
||||
author: author,
|
||||
pubDate: new Date(item.passtime * 1000),
|
||||
description: description,
|
||||
};
|
||||
|
||||
return single;
|
||||
});
|
||||
|
||||
ctx.state.data = {
|
||||
title: title,
|
||||
link: link,
|
||||
description: introduction,
|
||||
item: out,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user