Optimize identity

This commit is contained in:
cxfksword 2023-03-18 23:37:01 +08:00
parent a7431c5bd5
commit a51c145361
3 changed files with 17 additions and 13 deletions

View File

@ -492,14 +492,18 @@ namespace Jellyfin.Plugin.MetaShark.Providers
} }
protected string GetOriginalFileName(ItemLookupInfo info) protected string GetOriginalFileName(ItemLookupInfo info)
{ {
// movie放在文件夹中时应该使用文件夹名
switch (info) switch (info)
{ {
case SeriesInfo: case MovieInfo:
case SeasonInfo: // 当movie放在文件夹中并只有一部影片时, info.name是根据文件夹名解析的但info.Path是影片的路径名
// 当movie放在文件夹中并有多部影片时info.Name和info.Path都是具体的影片
var directoryName = Path.GetFileName(Path.GetDirectoryName(info.Path));
if (directoryName != null && directoryName.Contains(info.Name))
{
return directoryName;
}
return Path.GetFileNameWithoutExtension(info.Path) ?? info.Name; return Path.GetFileNameWithoutExtension(info.Path) ?? info.Name;
default: default:
return Path.GetFileNameWithoutExtension(info.Path) ?? info.Name; return Path.GetFileNameWithoutExtension(info.Path) ?? info.Name;

View File

@ -90,16 +90,9 @@ namespace Jellyfin.Plugin.MetaShark.Providers
/// <inheritdoc /> /// <inheritdoc />
public async Task<MetadataResult<Movie>> GetMetadata(MovieInfo info, CancellationToken cancellationToken) public async Task<MetadataResult<Movie>> GetMetadata(MovieInfo info, CancellationToken cancellationToken)
{ {
this.Log($"GetMovieMetadata of [name]: {info.Name}"); this.Log($"GetMovieMetadata of [name]: {info.Name} IsAutomated: {info.IsAutomated}");
var result = new MetadataResult<Movie>(); var result = new MetadataResult<Movie>();
// 处理extras影片
var extraResult = this.HandleExtraType(info);
if (extraResult != null)
{
return extraResult;
}
// 使用刷新元数据时providerIds会保留旧有值只有识别/新增才会没值 // 使用刷新元数据时providerIds会保留旧有值只有识别/新增才会没值
var sid = info.GetProviderId(DoubanProviderId); var sid = info.GetProviderId(DoubanProviderId);
var tmdbId = info.GetProviderId(MetadataProvider.Tmdb); var tmdbId = info.GetProviderId(MetadataProvider.Tmdb);
@ -109,6 +102,13 @@ namespace Jellyfin.Plugin.MetaShark.Providers
var hasDoubanMeta = metaSource != MetaSource.Tmdb && !string.IsNullOrEmpty(sid); var hasDoubanMeta = metaSource != MetaSource.Tmdb && !string.IsNullOrEmpty(sid);
if (!hasDoubanMeta && !hasTmdbMeta) if (!hasDoubanMeta && !hasTmdbMeta)
{ {
// 处理extras影片
var extraResult = this.HandleExtraType(info);
if (extraResult != null)
{
return extraResult;
}
// 自动扫描搜索匹配元数据 // 自动扫描搜索匹配元数据
sid = await this.GuessByDoubanAsync(info, cancellationToken).ConfigureAwait(false); sid = await this.GuessByDoubanAsync(info, cancellationToken).ConfigureAwait(false);
} }

View File

@ -81,7 +81,7 @@ namespace Jellyfin.Plugin.MetaShark.Providers
/// <inheritdoc /> /// <inheritdoc />
public async Task<MetadataResult<Series>> GetMetadata(SeriesInfo info, CancellationToken cancellationToken) public async Task<MetadataResult<Series>> GetMetadata(SeriesInfo info, CancellationToken cancellationToken)
{ {
this.Log($"GetSeriesMetadata of [name]: {info.Name} [providerIds]: {info.ProviderIds.ToJson()} IsAutomated: {info.IsAutomated}"); this.Log($"GetSeriesMetadata of [name]: {info.Name} IsAutomated: {info.IsAutomated}");
var result = new MetadataResult<Series>(); var result = new MetadataResult<Series>();
var sid = info.GetProviderId(DoubanProviderId); var sid = info.GetProviderId(DoubanProviderId);