mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-11-16 02:18:54 -07:00
Merge pull request #5738 from cvium/resolve-from-path
Resolve name from episode folder
This commit is contained in:
commit
cd543f7e50
@ -68,6 +68,11 @@ namespace Emby.Naming.TV
|
|||||||
var parsingResult = new EpisodePathParser(_options)
|
var parsingResult = new EpisodePathParser(_options)
|
||||||
.Parse(path, isDirectory, isNamed, isOptimistic, supportsAbsoluteNumbers, fillExtendedInfo);
|
.Parse(path, isDirectory, isNamed, isOptimistic, supportsAbsoluteNumbers, fillExtendedInfo);
|
||||||
|
|
||||||
|
if (!parsingResult.Success && !isStub)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return new EpisodeInfo(path)
|
return new EpisodeInfo(path)
|
||||||
{
|
{
|
||||||
Container = container,
|
Container = container,
|
||||||
|
@ -48,6 +48,7 @@ using MediaBrowser.Providers.MediaInfo;
|
|||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Episode = MediaBrowser.Controller.Entities.TV.Episode;
|
using Episode = MediaBrowser.Controller.Entities.TV.Episode;
|
||||||
|
using EpisodeInfo = Emby.Naming.TV.EpisodeInfo;
|
||||||
using Genre = MediaBrowser.Controller.Entities.Genre;
|
using Genre = MediaBrowser.Controller.Entities.Genre;
|
||||||
using Person = MediaBrowser.Controller.Entities.Person;
|
using Person = MediaBrowser.Controller.Entities.Person;
|
||||||
using VideoResolver = Emby.Naming.Video.VideoResolver;
|
using VideoResolver = Emby.Naming.Video.VideoResolver;
|
||||||
@ -2516,7 +2517,7 @@ namespace Emby.Server.Implementations.Library
|
|||||||
public bool FillMissingEpisodeNumbersFromPath(Episode episode, bool forceRefresh)
|
public bool FillMissingEpisodeNumbersFromPath(Episode episode, bool forceRefresh)
|
||||||
{
|
{
|
||||||
var series = episode.Series;
|
var series = episode.Series;
|
||||||
bool? isAbsoluteNaming = series == null ? false : string.Equals(series.DisplayOrder, "absolute", StringComparison.OrdinalIgnoreCase);
|
bool? isAbsoluteNaming = series != null && string.Equals(series.DisplayOrder, "absolute", StringComparison.OrdinalIgnoreCase);
|
||||||
if (!isAbsoluteNaming.Value)
|
if (!isAbsoluteNaming.Value)
|
||||||
{
|
{
|
||||||
// In other words, no filter applied
|
// In other words, no filter applied
|
||||||
@ -2528,9 +2529,23 @@ namespace Emby.Server.Implementations.Library
|
|||||||
var isFolder = episode.VideoType == VideoType.BluRay || episode.VideoType == VideoType.Dvd;
|
var isFolder = episode.VideoType == VideoType.BluRay || episode.VideoType == VideoType.Dvd;
|
||||||
|
|
||||||
// TODO nullable - what are we trying to do there with empty episodeInfo?
|
// TODO nullable - what are we trying to do there with empty episodeInfo?
|
||||||
var episodeInfo = episode.IsFileProtocol
|
EpisodeInfo episodeInfo = null;
|
||||||
? resolver.Resolve(episode.Path, isFolder, null, null, isAbsoluteNaming) ?? new Naming.TV.EpisodeInfo(episode.Path)
|
if (episode.IsFileProtocol)
|
||||||
: new Naming.TV.EpisodeInfo(episode.Path);
|
{
|
||||||
|
episodeInfo = resolver.Resolve(episode.Path, isFolder, null, null, isAbsoluteNaming);
|
||||||
|
// Resolve from parent folder if it's not the Season folder
|
||||||
|
if (episodeInfo == null && episode.Parent.GetType() == typeof(Folder))
|
||||||
|
{
|
||||||
|
episodeInfo = resolver.Resolve(episode.Parent.Path, true, null, null, isAbsoluteNaming);
|
||||||
|
if (episodeInfo != null)
|
||||||
|
{
|
||||||
|
// add the container
|
||||||
|
episodeInfo.Container = Path.GetExtension(episode.Path)?.TrimStart('.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
episodeInfo ??= new EpisodeInfo(episode.Path);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user