Skip to content

Commit a51c145

Browse files
committed
Optimize identity
1 parent a7431c5 commit a51c145

File tree

3 files changed

+17
-13
lines changed

3 files changed

+17
-13
lines changed

Jellyfin.Plugin.MetaShark/Providers/BaseProvider.cs

+8-4
Original file line numberDiff line numberDiff line change
@@ -492,14 +492,18 @@ public string MapCrewToPersonType(Crew crew)
492492
}
493493

494494

495-
496495
protected string GetOriginalFileName(ItemLookupInfo info)
497496
{
498-
// movie放在文件夹中时,应该使用文件夹名
499497
switch (info)
500498
{
501-
case SeriesInfo:
502-
case SeasonInfo:
499+
case MovieInfo:
500+
// 当movie放在文件夹中并只有一部影片时, info.name是根据文件夹名解析的,但info.Path是影片的路径名
501+
// 当movie放在文件夹中并有多部影片时,info.Name和info.Path都是具体的影片
502+
var directoryName = Path.GetFileName(Path.GetDirectoryName(info.Path));
503+
if (directoryName != null && directoryName.Contains(info.Name))
504+
{
505+
return directoryName;
506+
}
503507
return Path.GetFileNameWithoutExtension(info.Path) ?? info.Name;
504508
default:
505509
return Path.GetFileNameWithoutExtension(info.Path) ?? info.Name;

Jellyfin.Plugin.MetaShark/Providers/MovieProvider.cs

+8-8
Original file line numberDiff line numberDiff line change
@@ -90,16 +90,9 @@ public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(MovieInfo in
9090
/// <inheritdoc />
9191
public async Task<MetadataResult<Movie>> GetMetadata(MovieInfo info, CancellationToken cancellationToken)
9292
{
93-
this.Log($"GetMovieMetadata of [name]: {info.Name}");
93+
this.Log($"GetMovieMetadata of [name]: {info.Name} IsAutomated: {info.IsAutomated}");
9494
var result = new MetadataResult<Movie>();
9595

96-
// 处理extras影片
97-
var extraResult = this.HandleExtraType(info);
98-
if (extraResult != null)
99-
{
100-
return extraResult;
101-
}
102-
10396
// 使用刷新元数据时,providerIds会保留旧有值,只有识别/新增才会没值
10497
var sid = info.GetProviderId(DoubanProviderId);
10598
var tmdbId = info.GetProviderId(MetadataProvider.Tmdb);
@@ -109,6 +102,13 @@ public async Task<MetadataResult<Movie>> GetMetadata(MovieInfo info, Cancellatio
109102
var hasDoubanMeta = metaSource != MetaSource.Tmdb && !string.IsNullOrEmpty(sid);
110103
if (!hasDoubanMeta && !hasTmdbMeta)
111104
{
105+
// 处理extras影片
106+
var extraResult = this.HandleExtraType(info);
107+
if (extraResult != null)
108+
{
109+
return extraResult;
110+
}
111+
112112
// 自动扫描搜索匹配元数据
113113
sid = await this.GuessByDoubanAsync(info, cancellationToken).ConfigureAwait(false);
114114
}

Jellyfin.Plugin.MetaShark/Providers/SeriesProvider.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(SeriesInfo i
8181
/// <inheritdoc />
8282
public async Task<MetadataResult<Series>> GetMetadata(SeriesInfo info, CancellationToken cancellationToken)
8383
{
84-
this.Log($"GetSeriesMetadata of [name]: {info.Name} [providerIds]: {info.ProviderIds.ToJson()} IsAutomated: {info.IsAutomated}");
84+
this.Log($"GetSeriesMetadata of [name]: {info.Name} IsAutomated: {info.IsAutomated}");
8585
var result = new MetadataResult<Series>();
8686

8787
var sid = info.GetProviderId(DoubanProviderId);

0 commit comments

Comments
 (0)