aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-05-06 16:20:25 -0400
committerGitHub <noreply@github.com>2017-05-06 16:20:25 -0400
commit21edff3ac2175190e0bca98c9a2f967c79ee57c2 (patch)
tree6beddce4dffa97eb199da99867f6b493ce197e64 /MediaBrowser.Controller/Entities
parent3e29d73d0c77c682e161c413703d5e36a8466885 (diff)
parent90452d2faf5e0f34698873707e9e505df3c52f9c (diff)
Merge pull request #2618 from MediaBrowser/beta
Beta
Diffstat (limited to 'MediaBrowser.Controller/Entities')
-rw-r--r--MediaBrowser.Controller/Entities/Audio/Audio.cs3
-rw-r--r--MediaBrowser.Controller/Entities/Audio/MusicGenre.cs2
-rw-r--r--MediaBrowser.Controller/Entities/AudioBook.cs4
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs33
-rw-r--r--MediaBrowser.Controller/Entities/Book.cs4
-rw-r--r--MediaBrowser.Controller/Entities/CollectionFolder.cs6
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs27
-rw-r--r--MediaBrowser.Controller/Entities/Game.cs2
-rw-r--r--MediaBrowser.Controller/Entities/GameGenre.cs2
-rw-r--r--MediaBrowser.Controller/Entities/Genre.cs2
-rw-r--r--MediaBrowser.Controller/Entities/IHasSeries.cs1
-rw-r--r--MediaBrowser.Controller/Entities/InternalItemsQuery.cs4
-rw-r--r--MediaBrowser.Controller/Entities/LinkedChild.cs10
-rw-r--r--MediaBrowser.Controller/Entities/Movies/BoxSet.cs6
-rw-r--r--MediaBrowser.Controller/Entities/TV/Episode.cs5
-rw-r--r--MediaBrowser.Controller/Entities/TV/Season.cs7
-rw-r--r--MediaBrowser.Controller/Entities/UserViewBuilder.cs29
-rw-r--r--MediaBrowser.Controller/Entities/Video.cs55
18 files changed, 84 insertions, 118 deletions
diff --git a/MediaBrowser.Controller/Entities/Audio/Audio.cs b/MediaBrowser.Controller/Entities/Audio/Audio.cs
index 59b5a38692..92d8d95bcf 100644
--- a/MediaBrowser.Controller/Entities/Audio/Audio.cs
+++ b/MediaBrowser.Controller/Entities/Audio/Audio.cs
@@ -9,7 +9,6 @@ using System.Globalization;
using System.Linq;
using System.Threading;
using MediaBrowser.Common.Extensions;
-using MediaBrowser.Controller.Channels;
using MediaBrowser.Model.Serialization;
namespace MediaBrowser.Controller.Entities.Audio
@@ -24,8 +23,6 @@ namespace MediaBrowser.Controller.Entities.Audio
IHasLookupInfo<SongInfo>,
IHasMediaSources
{
- public List<ChannelMediaInfo> ChannelMediaSources { get; set; }
-
/// <summary>
/// Gets or sets the artist.
/// </summary>
diff --git a/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs b/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs
index e26e0dfce3..2f99e530e3 100644
--- a/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs
+++ b/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs
@@ -112,7 +112,7 @@ namespace MediaBrowser.Controller.Entities.Audio
public IEnumerable<BaseItem> GetTaggedItems(InternalItemsQuery query)
{
- query.Genres = new[] { Name };
+ query.GenreIds = new[] { Id.ToString("N") };
query.IncludeItemTypes = new[] { typeof(MusicVideo).Name, typeof(Audio).Name, typeof(MusicAlbum).Name, typeof(MusicArtist).Name };
return LibraryManager.GetItemList(query);
diff --git a/MediaBrowser.Controller/Entities/AudioBook.cs b/MediaBrowser.Controller/Entities/AudioBook.cs
index 8b1c338f16..1bdcfb881e 100644
--- a/MediaBrowser.Controller/Entities/AudioBook.cs
+++ b/MediaBrowser.Controller/Entities/AudioBook.cs
@@ -31,12 +31,10 @@ namespace MediaBrowser.Controller.Entities
public string SeriesName { get; set; }
[IgnoreDataMember]
public Guid? SeriesId { get; set; }
- [IgnoreDataMember]
- public string SeriesSortName { get; set; }
public string FindSeriesSortName()
{
- return SeriesSortName;
+ return SeriesName;
}
public string FindSeriesName()
{
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index c8ea4c506f..999f6db3fc 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -84,6 +84,7 @@ namespace MediaBrowser.Controller.Entities
public long? Size { get; set; }
public string Container { get; set; }
+
[IgnoreDataMember]
public string Tagline { get; set; }
@@ -288,7 +289,7 @@ namespace MediaBrowser.Controller.Entities
return Path;
}
- return System.IO.Path.GetDirectoryName(Path);
+ return FileSystem.GetDirectoryName(Path);
}
}
@@ -835,20 +836,6 @@ namespace MediaBrowser.Controller.Entities
public float? CriticRating { get; set; }
/// <summary>
- /// Gets or sets the critic rating summary.
- /// </summary>
- /// <value>The critic rating summary.</value>
- [IgnoreDataMember]
- public string CriticRatingSummary { get; set; }
-
- /// <summary>
- /// Gets or sets the official rating description.
- /// </summary>
- /// <value>The official rating description.</value>
- [IgnoreDataMember]
- public string OfficialRatingDescription { get; set; }
-
- /// <summary>
/// Gets or sets the custom rating.
/// </summary>
/// <value>The custom rating.</value>
@@ -1824,7 +1811,7 @@ namespace MediaBrowser.Controller.Entities
/// <returns>Task.</returns>
public virtual Task ChangedExternally()
{
- ProviderManager.QueueRefresh(Id, new MetadataRefreshOptions(FileSystem));
+ ProviderManager.QueueRefresh(Id, new MetadataRefreshOptions(FileSystem), RefreshPriority.High);
return Task.FromResult(true);
}
@@ -1924,7 +1911,7 @@ namespace MediaBrowser.Controller.Entities
{
var allFiles = ImageInfos
.Where(i => i.IsLocalFile)
- .Select(i => System.IO.Path.GetDirectoryName(i.Path))
+ .Select(i => FileSystem.GetDirectoryName(i.Path))
.Distinct(StringComparer.OrdinalIgnoreCase)
.SelectMany(directoryService.GetFilePaths)
.ToList();
@@ -2099,7 +2086,7 @@ namespace MediaBrowser.Controller.Entities
var extensions = new[] { ".nfo", ".xml", ".srt" }.ToList();
extensions.AddRange(SupportedImageExtensionsList);
- return FileSystem.GetFiles(System.IO.Path.GetDirectoryName(Path), extensions.ToArray(), false, false)
+ return FileSystem.GetFiles(FileSystem.GetDirectoryName(Path), extensions.ToArray(), false, false)
.Where(i => System.IO.Path.GetFileNameWithoutExtension(i.FullName).StartsWith(filename, StringComparison.OrdinalIgnoreCase))
.ToList();
}
@@ -2298,16 +2285,6 @@ namespace MediaBrowser.Controller.Entities
ownedItem.CustomRating = item.CustomRating;
newOptions.ForceSave = true;
}
- if (!string.Equals(item.CriticRatingSummary, ownedItem.CriticRatingSummary, StringComparison.Ordinal))
- {
- ownedItem.CriticRatingSummary = item.CriticRatingSummary;
- newOptions.ForceSave = true;
- }
- if (!string.Equals(item.OfficialRatingDescription, ownedItem.OfficialRatingDescription, StringComparison.Ordinal))
- {
- ownedItem.OfficialRatingDescription = item.OfficialRatingDescription;
- newOptions.ForceSave = true;
- }
}
return ownedItem.RefreshMetadata(newOptions, cancellationToken);
diff --git a/MediaBrowser.Controller/Entities/Book.cs b/MediaBrowser.Controller/Entities/Book.cs
index a6da389f05..7cb2425899 100644
--- a/MediaBrowser.Controller/Entities/Book.cs
+++ b/MediaBrowser.Controller/Entities/Book.cs
@@ -24,12 +24,10 @@ namespace MediaBrowser.Controller.Entities
public string SeriesName { get; set; }
[IgnoreDataMember]
public Guid? SeriesId { get; set; }
- [IgnoreDataMember]
- public string SeriesSortName { get; set; }
public string FindSeriesSortName()
{
- return SeriesSortName;
+ return SeriesName;
}
public string FindSeriesName()
{
diff --git a/MediaBrowser.Controller/Entities/CollectionFolder.cs b/MediaBrowser.Controller/Entities/CollectionFolder.cs
index 62ea21a798..24474ba559 100644
--- a/MediaBrowser.Controller/Entities/CollectionFolder.cs
+++ b/MediaBrowser.Controller/Entities/CollectionFolder.cs
@@ -213,7 +213,7 @@ namespace MediaBrowser.Controller.Entities
.SelectMany(c => c.LinkedChildren)
.ToList();
- var changed = !linkedChildren.SequenceEqual(LinkedChildren, new LinkedChildComparer());
+ var changed = !linkedChildren.SequenceEqual(LinkedChildren, new LinkedChildComparer(FileSystem));
LinkedChildren = linkedChildren;
@@ -332,13 +332,13 @@ namespace MediaBrowser.Controller.Entities
.OfType<Folder>()
.ToList();
- return PhysicalLocations.Where(i => !string.Equals(i, Path, StringComparison.OrdinalIgnoreCase)).SelectMany(i => GetPhysicalParents(i, rootChildren)).DistinctBy(i => i.Id);
+ return PhysicalLocations.Where(i => !FileSystem.AreEqual(i, Path)).SelectMany(i => GetPhysicalParents(i, rootChildren)).DistinctBy(i => i.Id);
}
private IEnumerable<Folder> GetPhysicalParents(string path, List<Folder> rootChildren)
{
var result = rootChildren
- .Where(i => string.Equals(i.Path, path, StringComparison.OrdinalIgnoreCase))
+ .Where(i => FileSystem.AreEqual(i.Path, path))
.ToList();
if (result.Count == 0)
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 268fefbd3e..edac27f99b 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -640,7 +640,7 @@ namespace MediaBrowser.Controller.Entities
return true;
}
- path = System.IO.Path.GetDirectoryName(path);
+ path = FileSystem.GetDirectoryName(path);
}
return allLibraryPaths.Any(i => ContainsPath(i, originalPath));
@@ -1206,11 +1206,17 @@ namespace MediaBrowser.Controller.Entities
return GetLinkedChildren();
}
- var locations = user.RootFolder
- .Children
+ if (LinkedChildren.Count == 0)
+ {
+ return new List<BaseItem>();
+ }
+
+ var allUserRootChildren = user.RootFolder.Children.OfType<Folder>().ToList();
+
+ var collectionFolderIds = allUserRootChildren
.OfType<CollectionFolder>()
.Where(i => i.IsVisible(user))
- .SelectMany(i => i.PhysicalLocations)
+ .Select(i => i.Id)
.ToList();
return LinkedChildren
@@ -1228,9 +1234,16 @@ namespace MediaBrowser.Controller.Entities
return null;
}
}
- else if (childLocationType == LocationType.FileSystem && !locations.Any(l => FileSystem.ContainsSubPath(l, child.Path)))
+ else if (childLocationType == LocationType.FileSystem)
{
- return null;
+ var itemCollectionFolderIds =
+ LibraryManager.GetCollectionFolders(child, allUserRootChildren)
+ .Select(f => f.Id).ToList();
+
+ if (!itemCollectionFolderIds.Any(collectionFolderIds.Contains))
+ {
+ return null;
+ }
}
}
@@ -1323,7 +1336,7 @@ namespace MediaBrowser.Controller.Entities
}
else { newShortcutLinks = new List<LinkedChild>(); }
- if (!newShortcutLinks.SequenceEqual(currentShortcutLinks, new LinkedChildComparer()))
+ if (!newShortcutLinks.SequenceEqual(currentShortcutLinks, new LinkedChildComparer(FileSystem)))
{
Logger.Info("Shortcut links have changed for {0}", Path);
diff --git a/MediaBrowser.Controller/Entities/Game.cs b/MediaBrowser.Controller/Entities/Game.cs
index d19552c07f..baefc9dfa8 100644
--- a/MediaBrowser.Controller/Entities/Game.cs
+++ b/MediaBrowser.Controller/Entities/Game.cs
@@ -105,7 +105,7 @@ namespace MediaBrowser.Controller.Entities
return new[] {
new FileSystemMetadata
{
- FullName = System.IO.Path.GetDirectoryName(Path),
+ FullName = FileSystem.GetDirectoryName(Path),
IsDirectory = true
}
};
diff --git a/MediaBrowser.Controller/Entities/GameGenre.cs b/MediaBrowser.Controller/Entities/GameGenre.cs
index 4187167b95..093b191b6b 100644
--- a/MediaBrowser.Controller/Entities/GameGenre.cs
+++ b/MediaBrowser.Controller/Entities/GameGenre.cs
@@ -81,7 +81,7 @@ namespace MediaBrowser.Controller.Entities
public IEnumerable<BaseItem> GetTaggedItems(InternalItemsQuery query)
{
- query.Genres = new[] { Name };
+ query.GenreIds = new[] { Id.ToString("N") };
query.IncludeItemTypes = new[] { typeof(Game).Name };
return LibraryManager.GetItemList(query);
diff --git a/MediaBrowser.Controller/Entities/Genre.cs b/MediaBrowser.Controller/Entities/Genre.cs
index 9769efdd01..6569a1e6c0 100644
--- a/MediaBrowser.Controller/Entities/Genre.cs
+++ b/MediaBrowser.Controller/Entities/Genre.cs
@@ -93,7 +93,7 @@ namespace MediaBrowser.Controller.Entities
public IEnumerable<BaseItem> GetTaggedItems(InternalItemsQuery query)
{
- query.Genres = new[] { Name };
+ query.GenreIds = new[] { Id.ToString("N") };
query.ExcludeItemTypes = new[] { typeof(Game).Name, typeof(MusicVideo).Name, typeof(Audio.Audio).Name, typeof(MusicAlbum).Name, typeof(MusicArtist).Name };
return LibraryManager.GetItemList(query);
diff --git a/MediaBrowser.Controller/Entities/IHasSeries.cs b/MediaBrowser.Controller/Entities/IHasSeries.cs
index 203be93e88..20efdc2b8b 100644
--- a/MediaBrowser.Controller/Entities/IHasSeries.cs
+++ b/MediaBrowser.Controller/Entities/IHasSeries.cs
@@ -11,7 +11,6 @@ namespace MediaBrowser.Controller.Entities
/// <value>The name of the series.</value>
string SeriesName { get; set; }
string FindSeriesName();
- string SeriesSortName { get; set; }
string FindSeriesSortName();
Guid? SeriesId { get; set; }
Guid? FindSeriesId();
diff --git a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
index ea4d60a446..092461c842 100644
--- a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
+++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs
@@ -129,7 +129,6 @@ namespace MediaBrowser.Controller.Entities
public string[] AncestorIds { get; set; }
public string[] TopParentIds { get; set; }
- public LocationType[] LocationTypes { get; set; }
public string[] PresetViews { get; set; }
public SourceType[] SourceTypes { get; set; }
public SourceType[] ExcludeSourceTypes { get; set; }
@@ -176,7 +175,6 @@ namespace MediaBrowser.Controller.Entities
case ItemFields.DateCreated:
case ItemFields.SortName:
case ItemFields.Overview:
- case ItemFields.OfficialRatingDescription:
case ItemFields.HomePageUrl:
case ItemFields.VoteCount:
case ItemFields.DisplayMediaType:
@@ -187,7 +185,6 @@ namespace MediaBrowser.Controller.Entities
case ItemFields.OriginalTitle:
case ItemFields.Tags:
case ItemFields.DateLastMediaAdded:
- case ItemFields.CriticRatingSummary:
return fields.Count == 0 || fields.Contains(name);
default:
return true;
@@ -230,7 +227,6 @@ namespace MediaBrowser.Controller.Entities
TopParentIds = new string[] { };
ExcludeTags = new string[] { };
ExcludeInheritedTags = new string[] { };
- LocationTypes = new LocationType[] { };
PresetViews = new string[] { };
SourceTypes = new SourceType[] { };
ExcludeSourceTypes = new SourceType[] { };
diff --git a/MediaBrowser.Controller/Entities/LinkedChild.cs b/MediaBrowser.Controller/Entities/LinkedChild.cs
index 4d3c13c6e3..6031a2448a 100644
--- a/MediaBrowser.Controller/Entities/LinkedChild.cs
+++ b/MediaBrowser.Controller/Entities/LinkedChild.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using MediaBrowser.Model.IO;
using MediaBrowser.Model.Serialization;
namespace MediaBrowser.Controller.Entities
@@ -40,11 +41,18 @@ namespace MediaBrowser.Controller.Entities
public class LinkedChildComparer : IEqualityComparer<LinkedChild>
{
+ private readonly IFileSystem _fileSystem;
+
+ public LinkedChildComparer(IFileSystem fileSystem)
+ {
+ _fileSystem = fileSystem;
+ }
+
public bool Equals(LinkedChild x, LinkedChild y)
{
if (x.Type == y.Type)
{
- return string.Equals(x.Path, y.Path, StringComparison.OrdinalIgnoreCase);
+ return _fileSystem.AreEqual(x.Path, y.Path);
}
return false;
}
diff --git a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs
index 030831717a..3f733ce035 100644
--- a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs
+++ b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs
@@ -152,9 +152,7 @@ namespace MediaBrowser.Controller.Entities.Movies
var currentOfficialRating = OfficialRating;
// Gather all possible ratings
- var ratings = GetRecursiveChildren()
- .Concat(GetLinkedChildren())
- .Where(i => i is Movie || i is Series || i is MusicAlbum || i is Game)
+ var ratings = GetRecursiveChildren(i => i is Movie || i is Series || i is MusicAlbum || i is Game)
.Select(i => i.OfficialRating)
.Where(i => !string.IsNullOrEmpty(i))
.Distinct(StringComparer.OrdinalIgnoreCase)
@@ -205,7 +203,7 @@ namespace MediaBrowser.Controller.Entities.Movies
if (base.IsVisible(user))
{
- return GetChildren(user, true).Any();
+ return base.GetChildren(user, true).Any();
}
return false;
diff --git a/MediaBrowser.Controller/Entities/TV/Episode.cs b/MediaBrowser.Controller/Entities/TV/Episode.cs
index 31bf8d28bd..c2f7a6168b 100644
--- a/MediaBrowser.Controller/Entities/TV/Episode.cs
+++ b/MediaBrowser.Controller/Entities/TV/Episode.cs
@@ -57,13 +57,10 @@ namespace MediaBrowser.Controller.Entities.TV
/// <value>The index number.</value>
public int? IndexNumberEnd { get; set; }
- [IgnoreDataMember]
- public string SeriesSortName { get; set; }
-
public string FindSeriesSortName()
{
var series = Series;
- return series == null ? SeriesSortName : series.SortName;
+ return series == null ? SeriesName : series.SortName;
}
[IgnoreDataMember]
diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs
index be268782d5..ed04b5ddcb 100644
--- a/MediaBrowser.Controller/Entities/TV/Season.cs
+++ b/MediaBrowser.Controller/Entities/TV/Season.cs
@@ -51,9 +51,6 @@ namespace MediaBrowser.Controller.Entities.TV
get { return SeriesId; }
}
- [IgnoreDataMember]
- public string SeriesSortName { get; set; }
-
public override double? GetDefaultPrimaryImageAspectRatio()
{
double value = 2;
@@ -65,7 +62,7 @@ namespace MediaBrowser.Controller.Entities.TV
public string FindSeriesSortName()
{
var series = Series;
- return series == null ? SeriesSortName : series.SortName;
+ return series == null ? SeriesName : series.SortName;
}
// Genre, Rating and Stuido will all be the same
@@ -125,7 +122,7 @@ namespace MediaBrowser.Controller.Entities.TV
return series.Path;
}
- return System.IO.Path.GetDirectoryName(Path);
+ return FileSystem.GetDirectoryName(Path);
}
}
diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
index f879d0fd8f..8da069f62b 100644
--- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs
+++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs
@@ -586,7 +586,7 @@ namespace MediaBrowser.Controller.Entities
{
query.Recursive = true;
query.ParentId = queryParent.Id;
- query.Genres = new[] { displayParent.Name };
+ query.GenreIds = new[] { displayParent.Id.ToString("N") };
query.SetUser(user);
query.IncludeItemTypes = new[] { typeof(Movie).Name };
@@ -729,7 +729,7 @@ namespace MediaBrowser.Controller.Entities
{
query.Recursive = true;
query.ParentId = queryParent.Id;
- query.Genres = new[] { displayParent.Name };
+ query.GenreIds = new[] { displayParent.Id.ToString("N") };
query.SetUser(user);
query.IncludeItemTypes = new[] { typeof(Series).Name };
@@ -905,6 +905,11 @@ namespace MediaBrowser.Controller.Entities
return false;
}
+ if (request.GenreIds.Length > 0)
+ {
+ return false;
+ }
+
if (request.HasImdbId.HasValue)
{
return false;
@@ -1768,26 +1773,6 @@ namespace MediaBrowser.Controller.Entities
return new List<Folder> { parent };
}
- private IEnumerable<BaseItem> GetRecursiveChildren(Folder parent, User user, IEnumerable<string> viewTypes)
- {
- if (parent == null || parent is UserView)
- {
- if (user == null)
- {
- return GetMediaFolders(null, viewTypes).SelectMany(i => i.GetRecursiveChildren());
- }
-
- return GetMediaFolders(user, viewTypes).SelectMany(i => i.GetRecursiveChildren(user));
- }
-
- if (user == null)
- {
- return parent.GetRecursiveChildren();
- }
-
- return parent.GetRecursiveChildren(user);
- }
-
private async Task<QueryResult<BaseItem>> GetLiveTvView(Folder queryParent, User user, InternalItemsQuery query)
{
if (query.Recursive)
diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs
index 0618fc489e..90aa3690a9 100644
--- a/MediaBrowser.Controller/Entities/Video.cs
+++ b/MediaBrowser.Controller/Entities/Video.cs
@@ -33,7 +33,6 @@ namespace MediaBrowser.Controller.Entities
public List<string> AdditionalParts { get; set; }
public List<string> LocalAlternateVersions { get; set; }
public List<LinkedChild> LinkedAlternateVersions { get; set; }
- public List<ChannelMediaInfo> ChannelMediaSources { get; set; }
[IgnoreDataMember]
public override bool SupportsPlayedStatus
@@ -158,7 +157,6 @@ namespace MediaBrowser.Controller.Entities
PlayableStreamFileNames = new List<string>();
AdditionalParts = new List<string>();
LocalAlternateVersions = new List<string>();
- Tags = new List<string>();
SubtitleFiles = new List<string>();
LinkedAlternateVersions = new List<LinkedChild>();
}
@@ -313,7 +311,7 @@ namespace MediaBrowser.Controller.Entities
{
if (IsStacked)
{
- return System.IO.Path.GetDirectoryName(Path);
+ return FileSystem.GetDirectoryName(Path);
}
if (!IsPlaceHolder)
@@ -591,41 +589,46 @@ namespace MediaBrowser.Controller.Entities
.ToList();
}
- private static MediaSourceInfo GetVersionInfo(bool enablePathSubstitution, Video i, MediaSourceType type)
+ private static MediaSourceInfo GetVersionInfo(bool enablePathSubstitution, Video media, MediaSourceType type)
{
- var mediaStreams = MediaSourceManager.GetMediaStreams(i.Id)
+ if (media == null)
+ {
+ throw new ArgumentNullException("media");
+ }
+
+ var mediaStreams = MediaSourceManager.GetMediaStreams(media.Id)
.ToList();
- var locationType = i.LocationType;
+ var locationType = media.LocationType;
var info = new MediaSourceInfo
{
- Id = i.Id.ToString("N"),
- IsoType = i.IsoType,
+ Id = media.Id.ToString("N"),
+ IsoType = media.IsoType,
Protocol = locationType == LocationType.Remote ? MediaProtocol.Http : MediaProtocol.File,
MediaStreams = mediaStreams,
- Name = GetMediaSourceName(i, mediaStreams),
- Path = enablePathSubstitution ? GetMappedPath(i, i.Path, locationType) : i.Path,
- RunTimeTicks = i.RunTimeTicks,
- Video3DFormat = i.Video3DFormat,
- VideoType = i.VideoType,
- Container = i.Container,
- Size = i.Size,
- Timestamp = i.Timestamp,
+ Name = GetMediaSourceName(media, mediaStreams),
+ Path = enablePathSubstitution ? GetMappedPath(media, media.Path, locationType) : media.Path,
+ RunTimeTicks = media.RunTimeTicks,
+ Video3DFormat = media.Video3DFormat,
+ VideoType = media.VideoType,
+ Container = media.Container,
+ Size = media.Size,
+ Timestamp = media.Timestamp,
Type = type,
- PlayableStreamFileNames = i.PlayableStreamFileNames.ToList(),
- SupportsDirectStream = i.VideoType == VideoType.VideoFile,
- IsRemote = i.IsShortcut
+ PlayableStreamFileNames = media.PlayableStreamFileNames.ToList(),
+ SupportsDirectStream = media.VideoType == VideoType.VideoFile,
+ IsRemote = media.IsShortcut
};
if (info.Protocol == MediaProtocol.File)
{
- info.ETag = i.DateModified.Ticks.ToString(CultureInfo.InvariantCulture).GetMD5().ToString("N");
+ info.ETag = media.DateModified.Ticks.ToString(CultureInfo.InvariantCulture).GetMD5().ToString("N");
}
- if (i.IsShortcut)
+ if (media.IsShortcut)
{
- info.Path = i.ShortcutPath;
+ info.Path = media.ShortcutPath;
if (info.Path.StartsWith("Http", StringComparison.OrdinalIgnoreCase))
{
@@ -647,16 +650,16 @@ namespace MediaBrowser.Controller.Entities
if (string.IsNullOrEmpty(info.Container))
{
- if (i.VideoType == VideoType.VideoFile || i.VideoType == VideoType.Iso)
+ if (media.VideoType == VideoType.VideoFile || media.VideoType == VideoType.Iso)
{
- if (!string.IsNullOrWhiteSpace(i.Path) && locationType != LocationType.Remote && locationType != LocationType.Virtual)
+ if (!string.IsNullOrWhiteSpace(media.Path) && locationType != LocationType.Remote && locationType != LocationType.Virtual)
{
- info.Container = System.IO.Path.GetExtension(i.Path).TrimStart('.');
+ info.Container = System.IO.Path.GetExtension(media.Path).TrimStart('.');
}
}
}
- info.Bitrate = i.TotalBitrate;
+ info.Bitrate = media.TotalBitrate;
info.InferTotalBitrate();
return info;