aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/Entities/Video.cs9
-rw-r--r--MediaBrowser.Model/Querying/ItemFields.cs5
-rw-r--r--MediaBrowser.Server.Implementations/Dto/DtoService.cs66
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs6
4 files changed, 47 insertions, 39 deletions
diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs
index 25f47aead..76e0e1fc5 100644
--- a/MediaBrowser.Controller/Entities/Video.cs
+++ b/MediaBrowser.Controller/Entities/Video.cs
@@ -418,12 +418,13 @@ namespace MediaBrowser.Controller.Entities
{
IEnumerable<FileSystemInfo> files;
- var path = Path;
- var currentFilename = System.IO.Path.GetFileNameWithoutExtension(path) ?? string.Empty;
-
// Only support this for video files. For folder rips, they'll have to use the linking feature
if (VideoType == VideoType.VideoFile || VideoType == VideoType.Iso)
{
+ var path = Path;
+
+ var filenamePrefix = System.IO.Path.GetFileName(System.IO.Path.GetDirectoryName(path));
+
files = fileSystemChildren.Where(i =>
{
if ((i.Attributes & FileAttributes.Directory) == FileAttributes.Directory)
@@ -433,7 +434,7 @@ namespace MediaBrowser.Controller.Entities
return !string.Equals(i.FullName, path, StringComparison.OrdinalIgnoreCase) &&
EntityResolutionHelper.IsVideoFile(i.FullName) &&
- i.Name.StartsWith(currentFilename, StringComparison.OrdinalIgnoreCase);
+ i.Name.StartsWith(filenamePrefix + " - ", StringComparison.OrdinalIgnoreCase);
});
}
else
diff --git a/MediaBrowser.Model/Querying/ItemFields.cs b/MediaBrowser.Model/Querying/ItemFields.cs
index 405ba3d77..65509fd6d 100644
--- a/MediaBrowser.Model/Querying/ItemFields.cs
+++ b/MediaBrowser.Model/Querying/ItemFields.cs
@@ -52,6 +52,11 @@ namespace MediaBrowser.Model.Querying
DisplayPreferencesId,
/// <summary>
+ /// The display media type
+ /// </summary>
+ DisplayMediaType,
+
+ /// <summary>
/// The external urls
/// </summary>
ExternalUrls,
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
index f6753fc00..c94cdda84 100644
--- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs
+++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
@@ -725,7 +725,11 @@ namespace MediaBrowser.Server.Implementations.Dto
dto.DateCreated = item.DateCreated;
}
- dto.DisplayMediaType = item.DisplayMediaType;
+ if (fields.Contains(ItemFields.DisplayMediaType))
+ {
+ dto.DisplayMediaType = item.DisplayMediaType;
+ }
+
dto.IsUnidentified = item.IsUnidentified;
if (fields.Contains(ItemFields.Settings))
@@ -1351,7 +1355,7 @@ namespace MediaBrowser.Server.Implementations.Dto
{
var name = "";
- var stream = video.GetDefaultVideoStream();
+ var videoStream = video.GetDefaultVideoStream();
if (video.Video3DFormat.HasValue)
{
@@ -1393,44 +1397,42 @@ namespace MediaBrowser.Server.Implementations.Dto
}
name = name.Trim();
}
- else if (video.VideoType == VideoType.VideoFile)
+
+ if (videoStream != null)
{
- if (stream != null)
+ if (videoStream.Width.HasValue)
{
- if (stream.Width.HasValue)
+ if (videoStream.Width.Value >= 3800)
{
- if (stream.Width.Value >= 3800)
- {
- name = name + " " + "4K";
- name = name.Trim();
- }
- else if (stream.Width.Value >= 1900)
- {
- name = name + " " + "1080P";
- name = name.Trim();
- }
- else if (stream.Width.Value >= 1270)
- {
- name = name + " " + "720P";
- name = name.Trim();
- }
- else if (stream.Width.Value >= 700)
- {
- name = name + " " + "480p";
- name = name.Trim();
- }
- else
- {
- name = name + " " + "SD";
- name = name.Trim();
- }
+ name = name + " " + "4K";
+ name = name.Trim();
+ }
+ else if (videoStream.Width.Value >= 1900)
+ {
+ name = name + " " + "1080P";
+ name = name.Trim();
+ }
+ else if (videoStream.Width.Value >= 1270)
+ {
+ name = name + " " + "720P";
+ name = name.Trim();
+ }
+ else if (videoStream.Width.Value >= 700)
+ {
+ name = name + " " + "480p";
+ name = name.Trim();
+ }
+ else
+ {
+ name = name + " " + "SD";
+ name = name.Trim();
}
}
}
- if (stream != null && !string.IsNullOrWhiteSpace(stream.Codec))
+ if (videoStream != null && !string.IsNullOrWhiteSpace(videoStream.Codec))
{
- name = name + " " + stream.Codec.ToUpper();
+ name = name + " " + videoStream.Codec.ToUpper();
name = name.Trim();
}
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
index b11457ec5..d7b2b1321 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
@@ -396,7 +396,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
private T GetMovieWithAlternateVersions<T>(IEnumerable<T> movies)
where T : Video, new()
{
- var sortedMovies = movies.OrderBy(i => i.Path.Length).ToList();
+ var sortedMovies = movies.OrderBy(i => i.Path).ToList();
// Cap this at five to help avoid incorrect matching
if (sortedMovies.Count > 5)
@@ -406,11 +406,11 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
var firstMovie = sortedMovies[0];
- var filenamePrefix = Path.GetFileNameWithoutExtension(firstMovie.Path);
+ var filenamePrefix = Path.GetFileName(Path.GetDirectoryName(firstMovie.Path));
if (!string.IsNullOrWhiteSpace(filenamePrefix))
{
- if (sortedMovies.Skip(1).All(i => Path.GetFileNameWithoutExtension(i.Path).StartsWith(filenamePrefix + " - ", StringComparison.OrdinalIgnoreCase)))
+ if (sortedMovies.All(i => Path.GetFileNameWithoutExtension(i.Path).StartsWith(filenamePrefix + " - ", StringComparison.OrdinalIgnoreCase)))
{
firstMovie.HasLocalAlternateVersions = true;