mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-09 14:40:23 +08:00
add ncm artist
This commit is contained in:
@@ -172,6 +172,14 @@ s
|
||||
|
||||
参数: id,歌单 id,可在歌单页 URL 中找到
|
||||
|
||||
#### 歌手专辑
|
||||
|
||||
举例: https://rss.prprpr.me/ncm/artist/2116
|
||||
|
||||
路由: `/ncm/artist/:id`
|
||||
|
||||
参数: id,歌手 id,可在歌手详情页 URL 中找到
|
||||
|
||||
### 掘金
|
||||
|
||||
#### 分类
|
||||
@@ -268,4 +276,4 @@ number: 快递单号
|
||||
|
||||
- Redis
|
||||
|
||||
- Node.js
|
||||
- Node.js
|
||||
|
||||
3
index.js
3
index.js
@@ -20,6 +20,7 @@ app.get('/weibo/user/:uid', require('./routes/weibo/user'));
|
||||
|
||||
// 网易云音乐
|
||||
app.get('/ncm/playlist/:id', require('./routes/ncm/playlist'));
|
||||
app.get('/ncm/artist/:id', require('./routes/ncm/artist'));
|
||||
|
||||
// 掘金
|
||||
app.get('/juejin/category/:category', require('./routes/juejin/category'));
|
||||
@@ -37,4 +38,4 @@ app.get('/jianshu/trending/monthly', require('./routes/jianshu/monthly'));
|
||||
app.get('/jianshu/collection/:id', require('./routes/jianshu/collection'));
|
||||
app.get('/jianshu/user/:id', require('./routes/jianshu/user'));
|
||||
|
||||
app.listen(1200);
|
||||
app.listen(1200);
|
||||
|
||||
48
routes/ncm/artist.js
Normal file
48
routes/ncm/artist.js
Normal file
@@ -0,0 +1,48 @@
|
||||
const request = require('request');
|
||||
const art = require('art-template');
|
||||
const path = require('path');
|
||||
const base = require('../base');
|
||||
const mix = require('../../utils/mix');
|
||||
|
||||
module.exports = (req, res) => {
|
||||
const id = req.params.id;
|
||||
|
||||
base({
|
||||
req: req,
|
||||
res: res,
|
||||
getHTML: (callback) => {
|
||||
request.get({
|
||||
url: 'https://music.163.com/api/artist/albums/' + id,
|
||||
headers: {
|
||||
'User-Agent': mix.ua,
|
||||
'Referer': 'https://music.163.com/'
|
||||
}
|
||||
}, (err, httpResponse, body) => {
|
||||
let data;
|
||||
try {
|
||||
data = JSON.parse(body);
|
||||
}
|
||||
catch (e) {
|
||||
data = {};
|
||||
}
|
||||
const result = data;
|
||||
|
||||
const html = art(path.resolve(__dirname, '../../views/rss.art'), {
|
||||
title: result.artist.name,
|
||||
link: `https://music.163.com/#/album?id=${id}`,
|
||||
description: `网易云音乐歌手专辑 - ${result.artist.name}`,
|
||||
lastBuildDate: new Date().toUTCString(),
|
||||
item: result.hotAlbums && result.hotAlbums.map((item) => {
|
||||
const singer = item.artists.length === 1 ? item.artists[0].name : item.artists.reduce((prev, cur) => (prev.name || prev) + '/' + cur.name);
|
||||
return {
|
||||
title: `${item.name} - ${singer}`,
|
||||
description: `歌手:${singer}<br>专辑:${item.name}<br>日期:${new Date(item.publishTime).toLocaleDateString()}<br><img referrerpolicy="no-referrer" src="${item.picUrl}">`,
|
||||
link: `https://music.163.com/#/album?id=${item.id}`
|
||||
};
|
||||
}),
|
||||
});
|
||||
callback(html);
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user