diff options
Diffstat (limited to 'MediaBrowser.Controller/Library')
| -rw-r--r-- | MediaBrowser.Controller/Library/ILibraryManager.cs | 36 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/IMediaSourceManager.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/IMusicManager.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/IUserDataManager.cs | 9 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/IUserManager.cs | 16 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/IUserViewManager.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/ItemResolveArgs.cs | 43 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/NameExtensions.cs | 44 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/TVUtils.cs | 8 |
9 files changed, 53 insertions, 123 deletions
diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index b726c267c..05845102b 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -181,15 +181,8 @@ namespace MediaBrowser.Controller.Library /// <param name="sortBy">The sort by.</param> /// <param name="sortOrder">The sort order.</param> /// <returns>IEnumerable{BaseItem}.</returns> - IEnumerable<BaseItem> Sort(IEnumerable<BaseItem> items, User user, IEnumerable<string> sortBy, - SortOrder sortOrder); - - /// <summary> - /// Ensure supplied item has only one instance throughout - /// </summary> - /// <param name="item">The item.</param> - /// <returns>The proper instance to the item</returns> - BaseItem GetOrAddByReferenceItem(BaseItem item); + IEnumerable<BaseItem> Sort(IEnumerable<BaseItem> items, User user, IEnumerable<string> sortBy, SortOrder sortOrder); + IEnumerable<BaseItem> Sort(IEnumerable<BaseItem> items, User user, IEnumerable<Tuple<string, SortOrder>> orderBy); /// <summary> /// Gets the user root folder. @@ -202,16 +195,14 @@ namespace MediaBrowser.Controller.Library /// </summary> /// <param name="item">The item.</param> /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task.</returns> - Task CreateItem(BaseItem item, CancellationToken cancellationToken); + void CreateItem(BaseItem item, CancellationToken cancellationToken); /// <summary> /// Creates the items. /// </summary> /// <param name="items">The items.</param> /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task.</returns> - Task CreateItems(IEnumerable<BaseItem> items, CancellationToken cancellationToken); + void CreateItems(IEnumerable<BaseItem> items, CancellationToken cancellationToken); /// <summary> /// Updates the item. @@ -284,7 +275,7 @@ namespace MediaBrowser.Controller.Library /// </summary> /// <param name="paths">The paths.</param> /// <returns>IEnumerable{System.String}.</returns> - IEnumerable<FileSystemMetadata> NormalizeRootPathList(IEnumerable<FileSystemMetadata> paths); + List<FileSystemMetadata> NormalizeRootPathList(IEnumerable<FileSystemMetadata> paths); /// <summary> /// Registers the item. @@ -310,7 +301,7 @@ namespace MediaBrowser.Controller.Library /// <param name="sortName">Name of the sort.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task<UserView>.</returns> - Task<UserView> GetNamedView(User user, + UserView GetNamedView(User user, string name, string parentId, string viewType, @@ -326,7 +317,7 @@ namespace MediaBrowser.Controller.Library /// <param name="sortName">Name of the sort.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task<UserView>.</returns> - Task<UserView> GetNamedView(User user, + UserView GetNamedView(User user, string name, string viewType, string sortName, @@ -370,7 +361,7 @@ namespace MediaBrowser.Controller.Library /// <param name="sortName">Name of the sort.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task<UserView>.</returns> - Task<UserView> GetShadowView(BaseItem parent, + UserView GetShadowView(BaseItem parent, string viewType, string sortName, CancellationToken cancellationToken); @@ -478,8 +469,7 @@ namespace MediaBrowser.Controller.Library /// </summary> /// <param name="item">The item.</param> /// <param name="people">The people.</param> - /// <returns>Task.</returns> - Task UpdatePeople(BaseItem item, List<PersonInfo> people); + void UpdatePeople(BaseItem item, List<PersonInfo> people); /// <summary> /// Gets the item ids. @@ -520,21 +510,21 @@ namespace MediaBrowser.Controller.Library /// <param name="image">The image.</param> /// <param name="imageIndex">Index of the image.</param> /// <returns>Task.</returns> - Task<ItemImageInfo> ConvertImageToLocal(IHasImages item, ItemImageInfo image, int imageIndex); + Task<ItemImageInfo> ConvertImageToLocal(IHasMetadata item, ItemImageInfo image, int imageIndex); /// <summary> /// Gets the items. /// </summary> /// <param name="query">The query.</param> /// <returns>QueryResult<BaseItem>.</returns> - IEnumerable<BaseItem> GetItemList(InternalItemsQuery query); + List<BaseItem> GetItemList(InternalItemsQuery query); - IEnumerable<BaseItem> GetItemList(InternalItemsQuery query, bool allowExternalContent); + List<BaseItem> GetItemList(InternalItemsQuery query, bool allowExternalContent); /// <summary> /// Gets the items. /// </summary> - IEnumerable<BaseItem> GetItemList(InternalItemsQuery query, List<BaseItem> parents); + List<BaseItem> GetItemList(InternalItemsQuery query, List<BaseItem> parents); /// <summary> /// Gets the items result. diff --git a/MediaBrowser.Controller/Library/IMediaSourceManager.cs b/MediaBrowser.Controller/Library/IMediaSourceManager.cs index 2f8f37789..204033e1d 100644 --- a/MediaBrowser.Controller/Library/IMediaSourceManager.cs +++ b/MediaBrowser.Controller/Library/IMediaSourceManager.cs @@ -24,19 +24,19 @@ namespace MediaBrowser.Controller.Library /// </summary> /// <param name="itemId">The item identifier.</param> /// <returns>IEnumerable<MediaStream>.</returns> - IEnumerable<MediaStream> GetMediaStreams(Guid itemId); + List<MediaStream> GetMediaStreams(Guid itemId); /// <summary> /// Gets the media streams. /// </summary> /// <param name="mediaSourceId">The media source identifier.</param> /// <returns>IEnumerable<MediaStream>.</returns> - IEnumerable<MediaStream> GetMediaStreams(string mediaSourceId); + List<MediaStream> GetMediaStreams(string mediaSourceId); /// <summary> /// Gets the media streams. /// </summary> /// <param name="query">The query.</param> /// <returns>IEnumerable<MediaStream>.</returns> - IEnumerable<MediaStream> GetMediaStreams(MediaStreamQuery query); + List<MediaStream> GetMediaStreams(MediaStreamQuery query); /// <summary> /// Gets the playack media sources. @@ -56,7 +56,7 @@ namespace MediaBrowser.Controller.Library /// <param name="enablePathSubstitution">if set to <c>true</c> [enable path substitution].</param> /// <param name="user">The user.</param> /// <returns>IEnumerable<MediaSourceInfo>.</returns> - IEnumerable<MediaSourceInfo> GetStaticMediaSources(IHasMediaSources item, bool enablePathSubstitution, User user = null); + List<MediaSourceInfo> GetStaticMediaSources(IHasMediaSources item, bool enablePathSubstitution, User user = null); /// <summary> /// Gets the static media source. diff --git a/MediaBrowser.Controller/Library/IMusicManager.cs b/MediaBrowser.Controller/Library/IMusicManager.cs index 95ba671b4..535e6df7e 100644 --- a/MediaBrowser.Controller/Library/IMusicManager.cs +++ b/MediaBrowser.Controller/Library/IMusicManager.cs @@ -10,16 +10,16 @@ namespace MediaBrowser.Controller.Library /// <summary> /// Gets the instant mix from song. /// </summary> - IEnumerable<Audio> GetInstantMixFromItem(BaseItem item, User user, DtoOptions dtoOptions); - + List<BaseItem> GetInstantMixFromItem(BaseItem item, User user, DtoOptions dtoOptions); + /// <summary> /// Gets the instant mix from artist. /// </summary> - IEnumerable<Audio> GetInstantMixFromArtist(MusicArtist artist, User user, DtoOptions dtoOptions); - + List<BaseItem> GetInstantMixFromArtist(MusicArtist artist, User user, DtoOptions dtoOptions); + /// <summary> /// Gets the instant mix from genre. /// </summary> - IEnumerable<Audio> GetInstantMixFromGenres(IEnumerable<string> genres, User user, DtoOptions dtoOptions); + List<BaseItem> GetInstantMixFromGenres(IEnumerable<string> genres, User user, DtoOptions dtoOptions); } } diff --git a/MediaBrowser.Controller/Library/IUserDataManager.cs b/MediaBrowser.Controller/Library/IUserDataManager.cs index e9954545e..cd4bd2e34 100644 --- a/MediaBrowser.Controller/Library/IUserDataManager.cs +++ b/MediaBrowser.Controller/Library/IUserDataManager.cs @@ -4,7 +4,6 @@ using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using System; using System.Threading; -using System.Threading.Tasks; using MediaBrowser.Model.Querying; namespace MediaBrowser.Controller.Library @@ -28,7 +27,7 @@ namespace MediaBrowser.Controller.Library /// <param name="reason">The reason.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> - Task SaveUserData(Guid userId, IHasUserData item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken); + void SaveUserData(Guid userId, IHasUserData item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken); UserItemData GetUserData(IHasUserData user, IHasUserData item); @@ -40,14 +39,14 @@ namespace MediaBrowser.Controller.Library /// </summary> UserItemDataDto GetUserDataDto(IHasUserData item, User user); - UserItemDataDto GetUserDataDto(IHasUserData item, BaseItemDto itemDto, User user, List<ItemFields> fields); + UserItemDataDto GetUserDataDto(IHasUserData item, BaseItemDto itemDto, User user, ItemFields[] fields); /// <summary> /// Get all user data for the given user /// </summary> /// <param name="userId"></param> /// <returns></returns> - IEnumerable<UserItemData> GetAllUserData(Guid userId); + List<UserItemData> GetAllUserData(Guid userId); /// <summary> /// Save the all provided user data for the given user @@ -56,7 +55,7 @@ namespace MediaBrowser.Controller.Library /// <param name="userData"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - Task SaveAllUserData(Guid userId, IEnumerable<UserItemData> userData, CancellationToken cancellationToken); + void SaveAllUserData(Guid userId, UserItemData[] userData, CancellationToken cancellationToken); /// <summary> /// Updates playstate for an item and returns true or false indicating if it was played to completion diff --git a/MediaBrowser.Controller/Library/IUserManager.cs b/MediaBrowser.Controller/Library/IUserManager.cs index ef68d2560..6da3e53aa 100644 --- a/MediaBrowser.Controller/Library/IUserManager.cs +++ b/MediaBrowser.Controller/Library/IUserManager.cs @@ -91,7 +91,7 @@ namespace MediaBrowser.Controller.Library /// <param name="user">The user.</param> /// <exception cref="System.ArgumentNullException">user</exception> /// <exception cref="System.ArgumentException"></exception> - Task UpdateUser(User user); + void UpdateUser(User user); /// <summary> /// Creates the user. @@ -116,7 +116,7 @@ namespace MediaBrowser.Controller.Library /// </summary> /// <param name="user">The user.</param> /// <returns>Task.</returns> - Task ResetPassword(User user); + void ResetPassword(User user); /// <summary> /// Gets the offline user dto. @@ -130,7 +130,7 @@ namespace MediaBrowser.Controller.Library /// </summary> /// <param name="user">The user.</param> /// <returns>Task.</returns> - Task ResetEasyPassword(User user); + void ResetEasyPassword(User user); /// <summary> /// Changes the password. @@ -138,7 +138,7 @@ namespace MediaBrowser.Controller.Library /// <param name="user">The user.</param> /// <param name="newPasswordSha1">The new password sha1.</param> /// <returns>Task.</returns> - Task ChangePassword(User user, string newPasswordSha1); + void ChangePassword(User user, string newPasswordSha1); /// <summary> /// Changes the easy password. @@ -146,7 +146,7 @@ namespace MediaBrowser.Controller.Library /// <param name="user">The user.</param> /// <param name="newPasswordSha1">The new password sha1.</param> /// <returns>Task.</returns> - Task ChangeEasyPassword(User user, string newPasswordSha1); + void ChangeEasyPassword(User user, string newPasswordSha1); /// <summary> /// Gets the user dto. @@ -179,7 +179,7 @@ namespace MediaBrowser.Controller.Library /// </summary> /// <param name="pin">The pin.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns> - Task<PinRedeemResult> RedeemPasswordResetPin(string pin); + PinRedeemResult RedeemPasswordResetPin(string pin); /// <summary> /// Gets the user policy. @@ -201,14 +201,14 @@ namespace MediaBrowser.Controller.Library /// <param name="userId">The user identifier.</param> /// <param name="newConfiguration">The new configuration.</param> /// <returns>Task.</returns> - Task UpdateConfiguration(string userId, UserConfiguration newConfiguration); + void UpdateConfiguration(string userId, UserConfiguration newConfiguration); /// <summary> /// Updates the user policy. /// </summary> /// <param name="userId">The user identifier.</param> /// <param name="userPolicy">The user policy.</param> - Task UpdateUserPolicy(string userId, UserPolicy userPolicy); + void UpdateUserPolicy(string userId, UserPolicy userPolicy); /// <summary> /// Makes the valid username. diff --git a/MediaBrowser.Controller/Library/IUserViewManager.cs b/MediaBrowser.Controller/Library/IUserViewManager.cs index b46ece49d..76182c641 100644 --- a/MediaBrowser.Controller/Library/IUserViewManager.cs +++ b/MediaBrowser.Controller/Library/IUserViewManager.cs @@ -11,7 +11,7 @@ namespace MediaBrowser.Controller.Library { public interface IUserViewManager { - Task<IEnumerable<Folder>> GetUserViews(UserViewQuery query, CancellationToken cancellationToken); + Task<Folder[]> GetUserViews(UserViewQuery query, CancellationToken cancellationToken); Task<UserView> GetUserSubView(string name, string parentId, string type, string sortName, CancellationToken cancellationToken); diff --git a/MediaBrowser.Controller/Library/ItemResolveArgs.cs b/MediaBrowser.Controller/Library/ItemResolveArgs.cs index 76b6d8768..56392eee7 100644 --- a/MediaBrowser.Controller/Library/ItemResolveArgs.cs +++ b/MediaBrowser.Controller/Library/ItemResolveArgs.cs @@ -4,7 +4,6 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; - using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.IO; using MediaBrowser.Model.Configuration; @@ -40,20 +39,7 @@ namespace MediaBrowser.Controller.Library /// Gets the file system children. /// </summary> /// <value>The file system children.</value> - public IEnumerable<FileSystemMetadata> FileSystemChildren - { - get - { - var dict = FileSystemDictionary; - - if (dict == null) - { - return new List<FileSystemMetadata>(); - } - - return dict.Values; - } - } + public FileSystemMetadata[] FileSystemChildren { get; set; } public LibraryOptions LibraryOptions { get; set; } @@ -63,12 +49,6 @@ namespace MediaBrowser.Controller.Library } /// <summary> - /// Gets or sets the file system dictionary. - /// </summary> - /// <value>The file system dictionary.</value> - public Dictionary<string, FileSystemMetadata> FileSystemDictionary { get; set; } - - /// <summary> /// Gets or sets the parent. /// </summary> /// <value>The parent.</value> @@ -153,7 +133,14 @@ namespace MediaBrowser.Controller.Library // Not officially supported but in some cases we can handle it. if (item == null) { - item = parent.GetParents().OfType<T>().FirstOrDefault(); + var parents = parent.GetParents(); + foreach (var currentParent in parents) + { + if (currentParent is T) + { + return true; + } + } } return item != null; @@ -186,12 +173,12 @@ namespace MediaBrowser.Controller.Library /// Gets the physical locations. /// </summary> /// <value>The physical locations.</value> - public IEnumerable<string> PhysicalLocations + public string[] PhysicalLocations { get { var paths = string.IsNullOrWhiteSpace(Path) ? new string[] { } : new[] { Path }; - return AdditionalLocations == null ? paths : paths.Concat(AdditionalLocations); + return AdditionalLocations == null ? paths : paths.Concat(AdditionalLocations).ToArray(); } } @@ -224,13 +211,11 @@ namespace MediaBrowser.Controller.Library throw new ArgumentNullException(); } - if (FileSystemDictionary != null) + foreach (var file in FileSystemChildren) { - FileSystemMetadata entry; - - if (FileSystemDictionary.TryGetValue(path, out entry)) + if (string.Equals(file.FullName, path, StringComparison.Ordinal)) { - return entry; + return file; } } diff --git a/MediaBrowser.Controller/Library/NameExtensions.cs b/MediaBrowser.Controller/Library/NameExtensions.cs index 693b7b221..bab334a6d 100644 --- a/MediaBrowser.Controller/Library/NameExtensions.cs +++ b/MediaBrowser.Controller/Library/NameExtensions.cs @@ -1,7 +1,5 @@ using System; using System.Collections.Generic; -using System.Globalization; -using System.Linq; using MediaBrowser.Controller.Extensions; using MediaBrowser.Model.Extensions; @@ -9,25 +7,6 @@ namespace MediaBrowser.Controller.Library { public static class NameExtensions { - public static bool EqualsAny(IEnumerable<string> names, string x) - { - x = NormalizeForComparison(x); - - return names.Any(y => string.Compare(x, y, StringComparison.OrdinalIgnoreCase) == 0); - //return names.Any(y => string.Compare(x, y, CultureInfo.InvariantCulture, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace) == 0); - } - - private static string NormalizeForComparison(string name) - { - if (name == null) - { - return string.Empty; - } - - return name; - //return name.RemoveDiacritics(); - } - private static string RemoveDiacritics(string name) { if (name == null) @@ -44,27 +23,4 @@ namespace MediaBrowser.Controller.Library return names.DistinctBy(RemoveDiacritics, StringComparer.OrdinalIgnoreCase); } } - - public class DistinctNameComparer : IComparer<string>, IEqualityComparer<string> - { - public int Compare(string x, string y) - { - if (string.IsNullOrWhiteSpace(x) && string.IsNullOrWhiteSpace(y)) - { - return 0; - } - - return string.Compare(x.RemoveDiacritics(), y.RemoveDiacritics(), StringComparison.OrdinalIgnoreCase); - } - - public bool Equals(string x, string y) - { - return Compare(x, y) == 0; - } - - public int GetHashCode(string obj) - { - return (obj ?? string.Empty).GetHashCode(); - } - } } diff --git a/MediaBrowser.Controller/Library/TVUtils.cs b/MediaBrowser.Controller/Library/TVUtils.cs index 29421ebaf..7c82ec293 100644 --- a/MediaBrowser.Controller/Library/TVUtils.cs +++ b/MediaBrowser.Controller/Library/TVUtils.cs @@ -22,13 +22,13 @@ namespace MediaBrowser.Controller.Library /// </summary> /// <param name="day">The day.</param> /// <returns>List{DayOfWeek}.</returns> - public static List<DayOfWeek> GetAirDays(string day) + public static DayOfWeek[] GetAirDays(string day) { if (!string.IsNullOrWhiteSpace(day)) { if (day.Equals("Daily", StringComparison.OrdinalIgnoreCase)) { - return new List<DayOfWeek> + return new DayOfWeek[] { DayOfWeek.Sunday, DayOfWeek.Monday, @@ -44,13 +44,13 @@ namespace MediaBrowser.Controller.Library if (Enum.TryParse(day, true, out value)) { - return new List<DayOfWeek> + return new DayOfWeek[] { value }; } - return new List<DayOfWeek>(); + return new DayOfWeek[]{}; } return null; } |
