douban movie later and ustop

This commit is contained in:
DIYgod 2018-04-22 13:39:39 +08:00
parent a0dbb33580
commit fcd5afaa5e
No known key found for this signature in database
GPG Key ID: EC0B76A252D3EF67
6 changed files with 78 additions and 7 deletions

View File

@ -51,6 +51,8 @@ RSSHub 是一个轻量、易于扩展的 RSS 生成器,可以给任何奇奇
- 豆瓣
- 正在上映的电影
- 正在上映的高分电影
- 即将上映的电影
- 北美票房榜
## 参与我们

View File

@ -376,17 +376,21 @@ number: 快递单号
#### 正在上映的电影
举例: https://rss.now.sh/douban/movie/intheaters
举例: https://rss.now.sh/douban/movie/playing
路由: `/douban/movie/intheaters`
路由: `/douban/movie/playing`
参数: 无
#### 正在上映的高分电影
举例: https://rss.now.sh/douban/movie/intheaters/7.5
举例: https://rss.now.sh/douban/movie/playing/7.5
路由: `/douban/movie/intheaters/:score/:city`
路由
`/douban/movie/playing/:score`
`/douban/movie/playing/:score/:city`
参数
@ -394,6 +398,22 @@ score: 返回大于等于这个分数的电影
city: 城市的中文名,可选,默认北京
#### 即将上映的电影
举例: https://rss.now.sh/douban/movie/later
路由: `/douban/movie/later`
参数: 无
#### 北美票房榜
举例: https://rss.now.sh/douban/movie/ustop
路由: `/douban/movie/ustop`
参数: 无
## 搭建
环境:需要 Node.js v7.6.0 或更高版本,若启用 Redis 缓存需要先启动 Redis

View File

@ -61,8 +61,10 @@ router.get('/mzitu/tag/:tag', require('./routes/mzitu/tag'));
router.get('/pixiv/user/:id', require('./routes/pixiv/user'));
// 豆瓣
router.get('/douban/movie/intheaters', require('./routes/douban/intheaters'));
router.get('/douban/movie/intheaters/:score', require('./routes/douban/intheaters'));
router.get('/douban/movie/intheaters/:score/:city', require('./routes/douban/intheaters'));
router.get('/douban/movie/playing', require('./routes/douban/playing'));
router.get('/douban/movie/playing/:score', require('./routes/douban/playing'));
router.get('/douban/movie/playing/:score/:city', require('./routes/douban/playing'));
router.get('/douban/movie/later', require('./routes/douban/later'));
router.get('/douban/movie/ustop', require('./routes/douban/ustop'));
module.exports = router;

22
routes/douban/later.js Normal file
View File

@ -0,0 +1,22 @@
const axios = require('axios');
const art = require('art-template');
const path = require('path');
module.exports = async (ctx) => {
const response = await axios({
method: 'get',
url: 'https://api.douban.com/v2/movie/coming_soon',
});
const movieList = response.data.subjects;
ctx.body = art(path.resolve(__dirname, '../../views/rss.art'), {
title: '即将上映的电影',
link: 'https://movie.douban.com/cinema/later/',
lastBuildDate: new Date().toUTCString(),
item: movieList.map((item) => ({
title: item.title,
description: `标题:${item.title}<br> 影片类型:${item.genres.join(' | ')} <br>评分:${item.rating.stars === '00' ? '无' : item.rating.average} <br/> <img referrerpolicy="no-referrer" src="${item.images.large}">`,
link: item.alt
})),
});
};

25
routes/douban/ustop.js Normal file
View File

@ -0,0 +1,25 @@
const axios = require('axios');
const art = require('art-template');
const path = require('path');
module.exports = async (ctx) => {
const response = await axios({
method: 'get',
url: 'https://api.douban.com/v2/movie/us_box',
});
const movieList = response.data.subjects;
ctx.body = art(path.resolve(__dirname, '../../views/rss.art'), {
title: '豆瓣电影北美票房榜',
link: 'https://movie.douban.com/chart',
lastBuildDate: new Date().toUTCString(),
item: movieList.map((item) => {
item = item.subject;
return {
title: item.title,
description: `标题:${item.title}<br> 影片类型:${item.genres.join(' | ')} <br>评分:${item.rating.stars === '00' ? '无' : item.rating.average} <br/> <img referrerpolicy="no-referrer" src="${item.images.large}">`,
link: item.alt
};
}),
});
};