Merge pull request #12 from hufan-akari/master

网易云音乐用户歌单
This commit is contained in:
DIYgod
2018-04-14 01:10:03 +08:00
committed by GitHub
4 changed files with 77 additions and 1 deletions

View File

@@ -20,6 +20,7 @@ RSSHub 是一个轻量、易于扩展的 RSS 生成器,可以给任何奇奇
- 博主 - 博主
- 网易云音乐 - 网易云音乐
- 歌单 - 歌单
- 用户全部歌单
- 掘金 - 掘金
- 分类 - 分类
- 简书 - 简书

View File

@@ -164,7 +164,7 @@ s
### 网易云音乐 ### 网易云音乐
#### 歌单 #### 歌单歌曲
举例: https://rss.prprpr.me/ncm/playlist/35798529 举例: https://rss.prprpr.me/ncm/playlist/35798529
@@ -172,6 +172,14 @@ s
参数: id歌单 id可在歌单页 URL 中找到 参数: id歌单 id可在歌单页 URL 中找到
#### 用户歌单
举例: https://rss.prprpr.me/ncm/user/playlist/45441555
路由: `/ncm/user/playlist/:uid`
参数: uid用户 uid可在用户主页 URL 中找到
#### 歌手专辑 #### 歌手专辑
举例: https://rss.prprpr.me/ncm/artist/2116 举例: https://rss.prprpr.me/ncm/artist/2116

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/playlist/:id', require('./routes/ncm/playlist'));
app.get('/ncm/user/playlist/:uid', require('./routes/ncm/userplaylist'));
app.get('/ncm/artist/:id', require('./routes/ncm/artist')); app.get('/ncm/artist/:id', require('./routes/ncm/artist'));
// 掘金 // 掘金

View File

@@ -0,0 +1,66 @@
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 uid = req.params.uid;
base({
req: req,
res: res,
getHTML: (callback) => {
request.post(
{
url: 'http://music.163.com/api/user/playlist',
headers: {
'User-Agent': mix.ua,
Referer: 'https://music.163.com/'
},
form: {
uid: uid,
limit: 1000,
offset: 0
}
},
(err, httpResponse, body) => {
let data;
try {
data = JSON.parse(body);
} catch (e) {
data = {};
}
const playlist = data.playlist || [{ creator: {} }];
const creator = playlist[0].creator;
const { nickname, signature } = creator;
const html = art(
path.resolve(__dirname, '../../views/rss.art'),
{
title: `${nickname} 的所有歌单`,
link: `http://music.163.com/user/home?id=${uid}`,
description: signature,
lastBuildDate: new Date().toUTCString(),
item:
playlist[0].id &&
playlist.map((pl) => ({
title: pl.name,
description: pl.description,
pubDate: new Date(
pl.createTime
).toUTCString(),
link: `http://music.163.com/playlist?id=${
pl.id
}`
}))
}
);
callback(html);
}
);
}
});
};