add ncm artist

This commit is contained in:
metowolf
2018-04-13 20:15:27 +08:00
parent 2030fc0070
commit 7ad64175ef
3 changed files with 59 additions and 2 deletions

View File

@@ -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

View File

@@ -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
View 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);
});
}
});
};