diff --git a/docs/social-media.md b/docs/social-media.md
index 2d8331f0f..821a7ac1b 100644
--- a/docs/social-media.md
+++ b/docs/social-media.md
@@ -388,7 +388,7 @@ pageClass: routes
### 正在上映的高分电影
-
+
### 即将上映的电影
diff --git a/lib/routes/douban/playing.js b/lib/routes/douban/playing.js
index 66c1a83e4..4b888acf9 100644
--- a/lib/routes/douban/playing.js
+++ b/lib/routes/douban/playing.js
@@ -1,22 +1,34 @@
const axios = require('@/utils/axios');
+const cheerio = require('cheerio');
module.exports = async (ctx) => {
- const city = ctx.params.city;
const score = parseFloat(ctx.params.score, 10);
const response = await axios({
method: 'get',
- url: 'https://api.douban.com/v2/movie/in_theaters',
- params: { city },
+ url: `https://movie.douban.com/cinema/nowplaying/beijing`,
});
- const movieList = score ? response.data.subjects.filter((item) => item.rating.average >= score) : response.data.subjects;
+ const $ = cheerio.load(response.data);
ctx.state.data = {
- title: `${city ? city : ''}正在上映的${score ? `超过 ${score} 分的` : ''}电影`,
- link: 'https://movie.douban.com/cinema/nowplaying/',
- item: movieList.map((item) => ({
- title: item.title,
- description: `标题:${item.title}
影片类型:${item.genres.join(' | ')}
评分:${item.rating.average}
`,
- link: item.alt,
- })),
+ title: `正在上映的${score ? `超过 ${score} 分的` : ''}电影`,
+ link: `https://movie.douban.com/cinema/nowplaying/`,
+ item: $('.list-item')
+ .get()
+ .map((i) => {
+ const item = $(i);
+ const itemScore = parseFloat(item.attr('data-score'), 10);
+ if (itemScore >= score) {
+ return {
+ title: item.attr('data-title'),
+ description: `标题:${item.attr('data-title')}
评分:${itemScore}
片长:${item.attr('data-duration')}
制片国家/地区:${item.attr('data-region')}
导演:${item.attr(
+ 'data-director'
+ )}
主演:${item.attr('data-actors')}
`,
+ link: `https://movie.douban.com/subject/${item.attr('id')}`,
+ };
+ } else {
+ return null;
+ }
+ })
+ .filter((item) => item),
};
};