Optimize match

This commit is contained in:
cxfksword
2022-10-13 17:51:38 +08:00
parent c777c26b09
commit 52eb972baa
2 changed files with 22 additions and 3 deletions

View File

@@ -279,7 +279,8 @@ public class LibraryManagerEventsHelper : IDisposable
if (epId <= 0)
{
// 搜索查找匹配的视频
var seasonId = await GetMatchSeasonId(item, item.Name).ConfigureAwait(false);
var searchName = this.GetSearchMovieName(item.Name);
var seasonId = await GetMatchSeasonId(item, searchName).ConfigureAwait(false);
var season = await _api.GetSeasonAsync(seasonId, CancellationToken.None).ConfigureAwait(false);
if (season == null)
{
@@ -643,6 +644,19 @@ public class LibraryManagerEventsHelper : IDisposable
return;
}
var indexNumber = episode.IndexNumber ?? 0;
if (indexNumber <= 0)
{
_logger.LogInformation("匹配失败,缺少集号. [{0}]{1}}", season.Name, episode.Name);
continue;
}
if (indexNumber > seasonData.Episodes.Length)
{
_logger.LogInformation("匹配失败,集号过大. [{0}]{1}} indexNumber: {2}", season.Name, episode.Name, indexNumber);
continue;
}
if (seasonData.Episodes.Length == episodes.Count)
{
epId = seasonData.Episodes[idx].Id;
@@ -826,6 +840,11 @@ public class LibraryManagerEventsHelper : IDisposable
}
}
private string GetSearchMovieName(string movieName)
{
// 去掉可能存在的季名称
return Regex.Replace(movieName, @"\s*第.季", "");
}
private string GetSearchSeasonName(string seriesName, int seasonIndexNumber)
{

View File

@@ -29,7 +29,7 @@ jellyfin的b站弹幕自动下载插件会匹配b站番剧和电影视频
* 新加入的影片会自动获取弹幕(只匹配番剧和电影视频),旧影片可以通过计划任务**扫描媒体库匹配弹幕**手动执行获取
* 可以在元数据中手动指定匹配的视频ID如播放链接`https://www.bilibili.com/bangumi/play/ep682965`对应的视频ID就是`682965`
* 对于电视剧和动画可以在元数据中指定季ID如播放链接`https://www.bilibili.com/bangumi/play/ss1564`对应的季ID就是`1564`只要集数和b站的集数的一致每季视频的弹幕会自动获取
* 对于电视剧和动画可以在元数据中指定季ID如播放链接`https://www.bilibili.com/bangumi/play/ss1564`对应的季ID就是`1564`只要集数和b站的集数的一致并正确填写了集号,每季视频的弹幕会自动获取
* 同时生成ass弹幕需要在插件配置中打开默认是关闭的
> 电影或季元数据也支持手动指定BV号来匹配UP主上传的视频弹幕。多P视频和剧集是按顺序一一对应匹配的所以保证jellyfin中剧集有正确的集号很重要
@@ -45,7 +45,7 @@ jellyfin的b站弹幕自动下载插件会匹配b站番剧和电影视频
xml格式
* [弹弹play](https://www.dandanplay.com/) (Windows/Mac/Android)
* [fileball](https://fileball.app/) (iOS/iPadOS/AppleTV)
* [Fileball](https://fileball.app/) (iOS/iPadOS/AppleTV)
ass格式