Skip to content

Commit 9d72069

Browse files
authored
douban源和tmdb源修复某些剧名不一致导致过滤的问题以及其他小修小补 (huangxd-#88)
* 优化根据imdbid获取豆瓣信息 * douban源过滤一些不是电影/电视剧的类型 * douban源和tmdb源修复某些剧名不一致导致过滤的问题
1 parent 61dc1b0 commit 9d72069

File tree

5 files changed

+17
-8
lines changed

5 files changed

+17
-8
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ LogVar 弹幕 API 服务器
258258
> cf部署可能不稳定,推荐用vercel/netlify部署。
259259

260260
## API食用指南
261-
支持 forward/senplayer/hills/小幻/yamby/eplayerx/afusekt 等支持弹幕API的播放器。
261+
支持 forward/senplayer/hills/小幻/yamby/eplayerx/afusekt/uz影视/dscloud 等支持弹幕API的播放器。
262262

263263
以`senplayer`为例:
264264
1. 获取到部署之后的API地址,如 `http://192.168.1.7:9321/87654321` ,其中`87654321`是默认token,如果有自定义环境变量TOKEN,请替换成相应的token
@@ -315,7 +315,7 @@ API 支持返回 Bilibili 标准 XML 格式的弹幕数据,通过查询参数
315315
| 变量名称 | 描述 |
316316
| ----------- | ----------- |
317317
| TOKEN | 【可选】自定义用户token,不填默认为`87654321` |
318-
| OTHER_SERVER | 【可选】兜底第三方弹幕服务器,不填默认为`https://api.danmu.icu` |
318+
| OTHER_SERVER | 【可选】兜底第三方弹幕服务器,不填默认为`https://api.danmu.icu`,其他可选:`https://fc.lyz05.cn`,`https://dmku.hls.one`,`https://se.678.ooo`,`https://danmu.56uxi.com`,`https://dm.lxlad.com` |
319319
| VOD_SERVERS | 【可选】VOD服务器列表,支持多个服务器并发查询,格式:`名称@URL,名称@URL,...`,示例:`金蝉@https://zy.jinchancaiji.com,789@https://www.caiji.cyou,听风@https://gctf.tfdh.top`,不填默认为`金蝉@https://zy.jinchancaiji.com,789@https://www.caiji.cyou,听风@https://gctf.tfdh.top` |
320320
| VOD_RETURN_MODE | 【可选】VOD返回模式,可选值:`all`(返回所有站点结果)、`fastest`(只返回最快的站点结果),默认为`fastest`。当配置多个VOD站点时,`all`模式会返回所有站点的结果(结果较多),`fastest`模式只返回首先响应成功的站点结果(结果较少,避免重复) |
321321
| VOD_REQUEST_TIMEOUT | 【可选】VOD服务器单个请求超时时间(毫秒),防止慢速或失效的采集站阻塞搜索,默认为`10000`(10秒),建议值:`5000-15000`。由于`fastest`模式只返回最快响应的站点,可以设置较大的超时时间给慢速站点更多机会 |
@@ -479,6 +479,7 @@ danmu_api/
479479
- 推荐vercel/netlify部署,cloudflare/edgeone/claw不稳定,当然最稳定还是自己本地docker部署最佳。
480480
- /api/v2/comment接口默认限流:1分钟内同一IP只能请求3次,可通过环境变量`RATE_LIMIT_MAX_REQUESTS`调整(设置为0表示不限流)。
481481
- TMDB源请求逻辑:search tmdb -> tmdbId -> imdbId -> doubanId -> playUrl;优点:emby通过tmdb刮削,标题通过tmdb搜索,返回的信息可能更加匹配;缺点:链条过长,请求时长5-10s左右,中间一环数据有缺失,就没有返回结果。
482+
- TMDB源在SOURCE_ORDER添加tmdb的同时,需要添加TMDB_API_KEY环境变量
482483
483484
### 关联项目
484485
[喂饭教程1:danmu_api vercel 自动同步部署方案 - 永远保持最新版本!实时同步原作者更新](https://github.com/xiaoyao20084321/log-var-danmu-deployment-guide)
@@ -487,6 +488,8 @@ danmu_api/
487488
488489
[喂饭教程3:使用Netlify反向代理巴哈姆特api,实现danmu_api项目国内直连获取巴哈姆特弹幕](https://github.com/wan0ge/bahamut-api-proxy)
489490
491+
[喂饭教程4:使用Vercel搭建万能反向代理,部署后请绑定自定义域名使用](https://github.com/souying/vercel-api-proxy)
492+
490493
### 部署完成后在播放器填写后弹幕未生效自主排查步骤
491494
以API示例 `http://192.168.1.7:9321/87654321` 为例
492495
1. 首先确认你的api部署成功 访问 `http://192.168.1.7:9321/87654321` 有json输出

danmu_api/configs/globals.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export const Globals = {
1111
accessedEnvVars: {},
1212

1313
// 静态常量
14-
VERSION: '1.7.0',
14+
VERSION: '1.7.1',
1515
MAX_LOGS: 500, // 日志存储,最多保存 500 行
1616
MAX_ANIMES: 100,
1717

danmu_api/sources/douban.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ export default class DoubanSource extends BaseSource {
5858
if (anime?.layout !== "subject") return;
5959
const doubanId = anime.target_id;
6060
let animeType = anime?.type_name;
61+
if (animeType !== "电影" && animeType !== "电视剧") return;
6162
log("info", "doubanId: ", doubanId, anime?.target?.title, animeType);
6263

6364
// 获取平台详情页面url
@@ -111,7 +112,7 @@ export default class DoubanSource extends BaseSource {
111112
if (cid) {
112113
tmpAnimes[0].provider = "tencent";
113114
tmpAnimes[0].mediaId = cid;
114-
await this.tencentSource.handleAnimes(tmpAnimes, queryTitle, doubanAnimes)
115+
await this.tencentSource.handleAnimes(tmpAnimes, response.data?.title, doubanAnimes)
115116
}
116117
break;
117118
}
@@ -120,7 +121,7 @@ export default class DoubanSource extends BaseSource {
120121
if (tvid) {
121122
tmpAnimes[0].provider = "iqiyi";
122123
tmpAnimes[0].mediaId = anime?.type_name === '电影' ? `movie_${tvid}` : tvid;
123-
await this.iqiyiSource.handleAnimes(tmpAnimes, queryTitle, doubanAnimes)
124+
await this.iqiyiSource.handleAnimes(tmpAnimes, response.data?.title, doubanAnimes)
124125
}
125126
break;
126127
}
@@ -129,7 +130,7 @@ export default class DoubanSource extends BaseSource {
129130
if (showId) {
130131
tmpAnimes[0].provider = "youku";
131132
tmpAnimes[0].mediaId = showId;
132-
await this.youkuSource.handleAnimes(tmpAnimes, queryTitle, doubanAnimes)
133+
await this.youkuSource.handleAnimes(tmpAnimes, response.data?.title, doubanAnimes)
133134
}
134135
break;
135136
}
@@ -138,7 +139,7 @@ export default class DoubanSource extends BaseSource {
138139
if (seasonId) {
139140
tmpAnimes[0].provider = "bilibili";
140141
tmpAnimes[0].mediaId = `ss${seasonId}`;
141-
await this.bilibiliSource.handleAnimes(tmpAnimes, queryTitle, doubanAnimes)
142+
await this.bilibiliSource.handleAnimes(tmpAnimes, response.data?.title, doubanAnimes)
142143
}
143144
break;
144145
}

danmu_api/sources/tmdb.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ export default class TmdbSource extends BaseSource {
1414
}
1515

1616
async _getDoubanInfo(finalImdbId, mediaType, doubanIds) {
17+
if (!finalImdbId) return;
1718
const doubanInfo = await getDoubanInfoByImdbId(finalImdbId);
19+
if (!doubanInfo || !doubanInfo?.data) return;
1820
const url = doubanInfo?.data?.id; // "https://api.douban.com/movie/1299131"
1921
if (url) {
2022
const parts = url.split("/"); // ["https:", "", "api.douban.com", "movie", "1299131"]

danmu_api/utils/cache-util.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,10 @@ export function addAnime(anime) {
186186
}
187187
}
188188

189-
log("info", `animes: ${JSON.stringify(globals.animes)}`);
189+
log("info", `animes: ${JSON.stringify(
190+
globals.animes,
191+
(key, value) => key === 'links' ? value.length : value
192+
)}`);
190193

191194
return true;
192195
} catch (error) {

0 commit comments

Comments
 (0)