feat: 增加豆瓣电影分类rss (#4017)

This commit is contained in:
libo26 2020-02-17 19:26:39 +08:00 committed by GitHub
parent 9af6bff577
commit 8a82c5e69a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 50 additions and 0 deletions

View File

@ -510,6 +510,16 @@ Tiny Tiny RSS 会给所有 iframe 元素添加 `sandbox="allow-scripts"` 属性
<Route author="umm233" example="/douban/movie/weekly" path="/douban/movie/weekly"/>
### 豆瓣电影分类
<Route author="zzwab" example="/douban/movie/classification/R/7.5/Netflix,剧情,2020" path="/douban/movie/classification/:sort?/:score?/:tags?" :paramsDesc="['排序方式默认为U', '最低评分,默认不限制', '分类标签,多个标签之间用英文逗号分隔,常见的标签到豆瓣电影的分类页面查看,支持自定义标签']" />
排序方式可选值如下
| 近期热门 | 标记最多 | 评分最高 | 最近上映 |
| -------- | -------- | -------- | -------- |
| U | T | S | R |
### 豆瓣小组
<Route author="DIYgod" example="/douban/group/camera" path="/douban/group/:groupid" :paramsDesc="['豆瓣小组的 id']"/>

View File

@ -152,6 +152,7 @@ router.get('/douban/movie/playing/:score/:city', require('./routes/douban/playin
router.get('/douban/movie/later', require('./routes/douban/later'));
router.get('/douban/movie/ustop', require('./routes/douban/ustop'));
router.get('/douban/movie/weekly', require('./routes/douban/weekly_best'));
router.get('/douban/movie/classification/:sort?/:score?/:tags?', require('./routes/douban/classification.js'));
router.get('/douban/group/:groupid', require('./routes/douban/group'));
router.get('/douban/explore', require('./routes/douban/explore'));
router.get('/douban/music/latest/:area?', require('./routes/douban/latest_music'));

View File

@ -0,0 +1,39 @@
const got = require('@/utils/got');
module.exports = async (ctx) => {
const sort = ctx.params.sort || 'U';
const score = parseFloat(ctx.params.score) || 0;
const tags = ctx.params.tags || '';
const response = await got({
method: 'get',
url: `https://movie.douban.com/j/new_search_subjects?sort=${sort}&range=0,10&tags=${tags}&start=0`,
});
const movies = response.data.data;
ctx.state.data = {
title: `豆瓣电影分类${score ? `超过 ${score} 分的` : ''}影视`,
link: `https://movie.douban.com/tag/#/?sort=U&range=0,10&tags=`,
item: movies
.map((item) => {
const itemScore = parseFloat(item.rate) || 0;
if (itemScore >= score) {
return {
title: item.title,
description: `标题:${item.title}<br>
评分${item.rate}<br>
导演${item.directors.join(' / ')}<br>
主演${item.casts.join(' / ')}<br>
<img src="${item.cover}">`,
link: item.url,
};
} else {
return null;
}
})
.filter((item) => item),
};
ctx.state.data.allowEmpty = true;
};