Skip to content

Commit 871db79

Browse files
committed
优化自动匹配和记住集episode偏移功能
1 parent 028835c commit 871db79

2 files changed

Lines changed: 7 additions & 7 deletions

File tree

danmu_api/apis/dandan-api.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,7 @@ function extractPlatformFromTitle(title) {
577577
}
578578

579579
// 根据集数匹配episode(优先使用集标题中的集数,其次使用episodeNumber,最后使用数组索引)
580-
function findEpisodeByNumber(filteredEpisodes, targetEpisode, platform = null) {
580+
function findEpisodeByNumber(filteredEpisodes, episode, targetEpisode, platform = null) {
581581
if (!filteredEpisodes || filteredEpisodes.length === 0) {
582582
return null;
583583
}
@@ -599,7 +599,7 @@ function findEpisodeByNumber(filteredEpisodes, targetEpisode, platform = null) {
599599
// 策略1:从集标题中提取集数进行匹配
600600
for (const ep of platformEpisodes) {
601601
const extractedNumber = extractEpisodeNumberFromTitle(ep.episodeTitle);
602-
if (extractedNumber === targetEpisode) {
602+
if (episode === targetEpisode && extractedNumber === targetEpisode) {
603603
log("info", `Found episode by title number: ${ep.episodeTitle} (extracted: ${extractedNumber})`);
604604
return ep;
605605
}
@@ -711,7 +711,7 @@ async function matchAniAndEpByAi(season, episode, year, searchData, title, req,
711711
log("info", "过滤后的集标题", filteredEpisodes.map(episode => episode.episodeTitle));
712712

713713
// 匹配集数 (注意:findEpisodeByNumber 已增强支持模糊平台匹配)
714-
filteredEpisode = findEpisodeByNumber(filteredEpisodes, episode);
714+
filteredEpisode = findEpisodeByNumber(filteredEpisodes, episode, episode);
715715
} else {
716716
// 电影模式逻辑
717717
if (bangumiData.bangumi.episodes.length > 0) {
@@ -856,7 +856,7 @@ async function matchAniAndEp(season, episode, year, searchData, title, req, plat
856856
}
857857

858858
// 匹配集数 (注意:findEpisodeByNumber 已增强支持模糊平台匹配)
859-
matchedEpisode = findEpisodeByNumber(filteredEpisodes, targetEpisode, platform);
859+
matchedEpisode = findEpisodeByNumber(filteredEpisodes, episode, targetEpisode, platform);
860860
} else {
861861
// 电影模式逻辑
862862
if (bangumiData.bangumi.episodes.length > 0) {
@@ -943,7 +943,7 @@ async function fallbackMatchAniAndEp(searchData, req, season, episode, year, res
943943
}
944944

945945
// 使用新的集数匹配策略
946-
const matchedEpisode = findEpisodeByNumber(filteredEpisodes, targetEpisode, null);
946+
const matchedEpisode = findEpisodeByNumber(filteredEpisodes, episode, targetEpisode, null);
947947
if (matchedEpisode) {
948948
resEpisode = matchedEpisode;
949949
resAnime = anime;
@@ -1640,7 +1640,7 @@ export async function getComment(path, queryFormat, segmentFlag, clientIp, inclu
16401640

16411641
if (clientIp) {
16421642
const lastSearch = getLastSearch(clientIp);
1643-
if (lastSearch && lastSearch.episodeId === commentId && lastSearch.title && lastSearch.season && lastSearch.episode && episodeTitle) {
1643+
if (lastSearch && lastSearch.title && lastSearch.season && lastSearch.episode && episodeTitle) {
16441644
lastTitle = lastSearch.title;
16451645
lastSeason = lastSearch.season;
16461646
offset = `${lastSearch.episode}:${episodeTitle}`;

danmu_api/configs/globals.js

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

1515
// 静态常量
16-
VERSION: '1.18.8',
16+
VERSION: '1.18.9',
1717
MAX_LOGS: 1000, // 日志存储,最多保存 1000 行
1818
MAX_RECORDS: 100, // 请求记录最大数量
1919

0 commit comments

Comments
 (0)