From fcd5afaa5ec0f4cb26caa4ce5dc5b8bcf21f051d Mon Sep 17 00:00:00 2001 From: DIYgod Date: Sun, 22 Apr 2018 13:39:39 +0800 Subject: [PATCH] douban movie later and ustop --- README.md | 2 ++ docs/README.md | 28 ++++++++++++++++++--- router.js | 8 +++--- routes/douban/later.js | 22 ++++++++++++++++ routes/douban/{intheaters.js => playing.js} | 0 routes/douban/ustop.js | 25 ++++++++++++++++++ 6 files changed, 78 insertions(+), 7 deletions(-) create mode 100644 routes/douban/later.js rename routes/douban/{intheaters.js => playing.js} (100%) create mode 100644 routes/douban/ustop.js diff --git a/README.md b/README.md index 5f135de53..f0f11d3e2 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,8 @@ RSSHub 是一个轻量、易于扩展的 RSS 生成器,可以给任何奇奇 - 豆瓣 - 正在上映的电影 - 正在上映的高分电影 + - 即将上映的电影 + - 北美票房榜 ## 参与我们 diff --git a/docs/README.md b/docs/README.md index d55666085..2889ea27b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -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 diff --git a/router.js b/router.js index 116ce631e..45ad5592a 100644 --- a/router.js +++ b/router.js @@ -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; diff --git a/routes/douban/later.js b/routes/douban/later.js new file mode 100644 index 000000000..26adc5072 --- /dev/null +++ b/routes/douban/later.js @@ -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}
影片类型:${item.genres.join(' | ')}
评分:${item.rating.stars === '00' ? '无' : item.rating.average}
`, + link: item.alt + })), + }); +}; \ No newline at end of file diff --git a/routes/douban/intheaters.js b/routes/douban/playing.js similarity index 100% rename from routes/douban/intheaters.js rename to routes/douban/playing.js diff --git a/routes/douban/ustop.js b/routes/douban/ustop.js new file mode 100644 index 000000000..2f635206f --- /dev/null +++ b/routes/douban/ustop.js @@ -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}
影片类型:${item.genres.join(' | ')}
评分:${item.rating.stars === '00' ? '无' : item.rating.average}
`, + link: item.alt + }; + }), + }); +}; \ No newline at end of file