diff options
Diffstat (limited to 'MediaBrowser.Controller')
62 files changed, 258 insertions, 487 deletions
diff --git a/MediaBrowser.Controller/Authentication/IAuthenticationProvider.cs b/MediaBrowser.Controller/Authentication/IAuthenticationProvider.cs index becb3ea62..82308296f 100644 --- a/MediaBrowser.Controller/Authentication/IAuthenticationProvider.cs +++ b/MediaBrowser.Controller/Authentication/IAuthenticationProvider.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Threading; -using System.Threading.Tasks; +using System.Threading.Tasks; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Users; diff --git a/MediaBrowser.Controller/Chapters/IChapterManager.cs b/MediaBrowser.Controller/Chapters/IChapterManager.cs index 2a20eb365..161e87094 100644 --- a/MediaBrowser.Controller/Chapters/IChapterManager.cs +++ b/MediaBrowser.Controller/Chapters/IChapterManager.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.Threading.Tasks; using MediaBrowser.Model.Entities; namespace MediaBrowser.Controller.Chapters @@ -10,12 +9,6 @@ namespace MediaBrowser.Controller.Chapters public interface IChapterManager { /// <summary> - /// Gets the chapters. - /// </summary> - /// <param name="itemId">The item identifier.</param> - /// <returns>List{ChapterInfo}.</returns> - - /// <summary> /// Saves the chapters. /// </summary> void SaveChapters(string itemId, List<ChapterInfo> chapters); diff --git a/MediaBrowser.Controller/Collections/CollectionCreationOptions.cs b/MediaBrowser.Controller/Collections/CollectionCreationOptions.cs index 727b487a7..5363e035c 100644 --- a/MediaBrowser.Controller/Collections/CollectionCreationOptions.cs +++ b/MediaBrowser.Controller/Collections/CollectionCreationOptions.cs @@ -20,8 +20,8 @@ namespace MediaBrowser.Controller.Collections public CollectionCreationOptions() { ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - ItemIdList = new string[] {}; - UserIds = new Guid[] {}; + ItemIdList = Array.Empty<string>(); + UserIds = Array.Empty<Guid>(); } } } diff --git a/MediaBrowser.Controller/Connect/IConnectManager.cs b/MediaBrowser.Controller/Connect/IConnectManager.cs deleted file mode 100644 index 8ac61bf2b..000000000 --- a/MediaBrowser.Controller/Connect/IConnectManager.cs +++ /dev/null @@ -1,45 +0,0 @@ -using MediaBrowser.Controller.Entities; -using MediaBrowser.Model.Connect; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace MediaBrowser.Controller.Connect -{ - public interface IConnectManager - { - /// <summary> - /// Gets the wan API address. - /// </summary> - /// <value>The wan API address.</value> - string WanApiAddress { get; } - - /// <summary> - /// Links the user. - /// </summary> - /// <param name="userId">The user identifier.</param> - /// <param name="connectUsername">The connect username.</param> - /// <returns>Task.</returns> - Task<UserLinkResult> LinkUser(string userId, string connectUsername); - - /// <summary> - /// Removes the link. - /// </summary> - /// <param name="userId">The user identifier.</param> - /// <returns>Task.</returns> - Task RemoveConnect(string userId); - - User GetUserFromExchangeToken(string token); - - /// <summary> - /// Authenticates the specified username. - /// </summary> - Task<ConnectAuthenticationResult> Authenticate(string username, string password, string passwordMd5); - - /// <summary> - /// Determines whether [is authorization token valid] [the specified token]. - /// </summary> - /// <param name="token">The token.</param> - /// <returns><c>true</c> if [is authorization token valid] [the specified token]; otherwise, <c>false</c>.</returns> - bool IsAuthorizationTokenValid(string token); - } -} diff --git a/MediaBrowser.Controller/Dto/IDtoService.cs b/MediaBrowser.Controller/Dto/IDtoService.cs index 219b36789..37e83e45a 100644 --- a/MediaBrowser.Controller/Dto/IDtoService.cs +++ b/MediaBrowser.Controller/Dto/IDtoService.cs @@ -2,7 +2,6 @@ using MediaBrowser.Model.Dto; using MediaBrowser.Model.Querying; using System.Collections.Generic; -using MediaBrowser.Controller.Sync; namespace MediaBrowser.Controller.Dto { diff --git a/MediaBrowser.Controller/Entities/AggregateFolder.cs b/MediaBrowser.Controller/Entities/AggregateFolder.cs index 4f4b3483c..a4601c270 100644 --- a/MediaBrowser.Controller/Entities/AggregateFolder.cs +++ b/MediaBrowser.Controller/Entities/AggregateFolder.cs @@ -20,7 +20,7 @@ namespace MediaBrowser.Controller.Entities { public AggregateFolder() { - PhysicalLocationsList = new string[] { }; + PhysicalLocationsList = Array.Empty<string>(); } [IgnoreDataMember] diff --git a/MediaBrowser.Controller/Entities/Audio/Audio.cs b/MediaBrowser.Controller/Entities/Audio/Audio.cs index d07e31d8a..1aeae6052 100644 --- a/MediaBrowser.Controller/Entities/Audio/Audio.cs +++ b/MediaBrowser.Controller/Entities/Audio/Audio.cs @@ -2,13 +2,8 @@ using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; -using MediaBrowser.Model.MediaInfo; using System; using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Threading; -using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Persistence; using MediaBrowser.Model.Serialization; @@ -36,8 +31,8 @@ namespace MediaBrowser.Controller.Entities.Audio public Audio() { - Artists = new string[] {}; - AlbumArtists = new string[] {}; + Artists = Array.Empty<string>(); + AlbumArtists = Array.Empty<string>(); } public override double GetDefaultPrimaryImageAspectRatio() diff --git a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs index 48b5c64b2..870e6e07e 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs @@ -23,8 +23,8 @@ namespace MediaBrowser.Controller.Entities.Audio public MusicAlbum() { - Artists = new string[] {}; - AlbumArtists = new string[] {}; + Artists = Array.Empty<string>(); + AlbumArtists = Array.Empty<string>(); } [IgnoreDataMember] diff --git a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs index 82dece84b..56ed10ced 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs @@ -1,5 +1,4 @@ -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Providers; +using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Users; @@ -9,9 +8,8 @@ using System.Linq; using MediaBrowser.Model.Serialization; using System.Threading; using System.Threading.Tasks; -using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Extensions; -using MediaBrowser.Model.Extensions; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.Entities.Audio { @@ -131,13 +129,12 @@ namespace MediaBrowser.Controller.Entities.Audio return base.IsSaveLocalMetadataEnabled(); } - private readonly Task _cachedTask = Task.FromResult(true); protected override Task ValidateChildrenInternal(IProgress<double> progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService) { if (IsAccessedByName) { // Should never get in here anyway - return _cachedTask; + return Task.CompletedTask; } return base.ValidateChildrenInternal(progress, cancellationToken, recursive, refreshChildMetadata, refreshOptions, directoryService); @@ -245,7 +242,7 @@ namespace MediaBrowser.Controller.Entities.Audio var newPath = GetRebasedPath(); if (!string.Equals(Path, newPath, StringComparison.Ordinal)) { - Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); + Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); return true; } } diff --git a/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs b/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs index d60ce83ad..ec68eaf8b 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs @@ -1,9 +1,8 @@ using System; using System.Collections.Generic; using MediaBrowser.Model.Serialization; -using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Extensions; -using MediaBrowser.Model.Extensions; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.Entities.Audio { @@ -119,7 +118,7 @@ namespace MediaBrowser.Controller.Entities.Audio var newPath = GetRebasedPath(); if (!string.Equals(Path, newPath, StringComparison.Ordinal)) { - Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); + Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); return true; } return base.RequiresRefresh(); diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index e3b5b5117..a268e6d76 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -1,41 +1,32 @@ using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Channels; -using MediaBrowser.Controller.Collections; using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Library; -using MediaBrowser.Model.Logging; using MediaBrowser.Model.Users; using System; using System.Collections.Generic; using System.Globalization; -using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; - -using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Extensions; -using MediaBrowser.Controller.IO; -using MediaBrowser.Controller.MediaEncoding; using MediaBrowser.Controller.Sorting; using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Globalization; using MediaBrowser.Model.IO; using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.Providers; -using MediaBrowser.Model.Querying; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.MediaInfo; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.Entities { @@ -44,24 +35,24 @@ namespace MediaBrowser.Controller.Entities /// </summary> public abstract class BaseItem : IHasProviderIds, IHasLookupInfo<ItemLookupInfo> { - protected static MetadataFields[] EmptyMetadataFieldsArray = new MetadataFields[] { }; - protected static MediaUrl[] EmptyMediaUrlArray = new MediaUrl[] { }; - protected static ItemImageInfo[] EmptyItemImageInfoArray = new ItemImageInfo[] { }; - public static readonly LinkedChild[] EmptyLinkedChildArray = new LinkedChild[] { }; + protected static MetadataFields[] EmptyMetadataFieldsArray = Array.Empty<MetadataFields>(); + protected static MediaUrl[] EmptyMediaUrlArray = Array.Empty<MediaUrl>(); + protected static ItemImageInfo[] EmptyItemImageInfoArray = Array.Empty<ItemImageInfo>(); + public static readonly LinkedChild[] EmptyLinkedChildArray = Array.Empty<LinkedChild>(); protected BaseItem() { - ThemeSongIds = new Guid[] {}; - ThemeVideoIds = new Guid[] {}; - Tags = new string[] {}; - Genres = new string[] {}; - Studios = new string[] {}; + ThemeSongIds = Array.Empty<Guid>(); + ThemeVideoIds = Array.Empty<Guid>(); + Tags = Array.Empty<string>(); + Genres = Array.Empty<string>(); + Studios = Array.Empty<string>(); ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); LockedFields = EmptyMetadataFieldsArray; ImageInfos = EmptyItemImageInfoArray; - ProductionLocations = new string[] {}; - RemoteTrailers = new MediaUrl[] { }; - ExtraIds = new Guid[] {}; + ProductionLocations = Array.Empty<string>(); + RemoteTrailers = Array.Empty<MediaUrl>(); + ExtraIds = Array.Empty<Guid>(); } public static readonly char[] SlugReplaceChars = { '?', '/', '&' }; @@ -71,7 +62,6 @@ namespace MediaBrowser.Controller.Entities /// The supported image extensions /// </summary> public static readonly string[] SupportedImageExtensions = { ".png", ".jpg", ".jpeg", ".tbn", ".gif" }; - public static readonly List<string> SupportedImageExtensionsList = SupportedImageExtensions.ToList(); /// <summary> /// The trailer folder name @@ -798,7 +788,7 @@ namespace MediaBrowser.Controller.Entities builder.Append(chunkBuilder); } - //Logger.Debug("ModifySortChunks Start: {0} End: {1}", name, builder.ToString()); + //logger.LogDebug("ModifySortChunks Start: {0} End: {1}", name, builder.ToString()); return builder.ToString().RemoveDiacritics(); } @@ -1414,7 +1404,7 @@ namespace MediaBrowser.Controller.Entities } catch (Exception ex) { - Logger.ErrorException("Error refreshing owned items for {0}", ex, Path ?? Name); + Logger.LogError(ex, "Error refreshing owned items for {path}", Path ?? Name); } } @@ -1802,7 +1792,7 @@ namespace MediaBrowser.Controller.Entities if (!isAllowed) { - Logger.Debug("{0} has an unrecognized parental rating of {1}.", Name, rating); + Logger.LogDebug("{0} has an unrecognized parental rating of {1}.", Name, rating); } return isAllowed; @@ -2058,7 +2048,7 @@ namespace MediaBrowser.Controller.Entities if (itemByPath == null) { - //Logger.Warn("Unable to find linked item at path {0}", info.Path); + //Logger.LogWarning("Unable to find linked item at path {0}", info.Path); } return itemByPath; @@ -2070,7 +2060,7 @@ namespace MediaBrowser.Controller.Entities if (item == null) { - //Logger.Warn("Unable to find linked item at path {0}", info.Path); + //Logger.LogWarning("Unable to find linked item at path {0}", info.Path); } return item; @@ -2213,7 +2203,7 @@ namespace MediaBrowser.Controller.Entities /// <returns>Task.</returns> public virtual void ChangedExternally() { - ProviderManager.QueueRefresh(Id, new MetadataRefreshOptions(FileSystem) + ProviderManager.QueueRefresh(Id, new MetadataRefreshOptions(new DirectoryService(Logger, FileSystem)) { }, RefreshPriority.High); @@ -2904,6 +2894,10 @@ namespace MediaBrowser.Controller.Entities return ThemeVideoIds.Select(LibraryManager.GetItemById).Where(i => i.ExtraType.Equals(Model.Entities.ExtraType.ThemeVideo)).OrderBy(i => i.SortName); } + /// <summary> + /// Gets or sets the remote trailers. + /// </summary> + /// <value>The remote trailers.</value> public MediaUrl[] RemoteTrailers { get; set; } public IEnumerable<BaseItem> GetExtras() @@ -2922,21 +2916,24 @@ namespace MediaBrowser.Controller.Entities } public virtual bool IsHD { - get{ + get + { return Height >= 720; - } + } } public bool IsShortcut{ get; set;} public string ShortcutPath{ get; set;} public int Width { get; set; } public int Height { get; set; } public Guid[] ExtraIds { get; set; } - public virtual long GetRunTimeTicksForPlayState() { + public virtual long GetRunTimeTicksForPlayState() + { return RunTimeTicks ?? 0; } // what does this do? public static ExtraType[] DisplayExtraTypes = new[] {Model.Entities.ExtraType.ThemeSong, Model.Entities.ExtraType.ThemeVideo }; - public virtual bool SupportsExternalTransfer { + public virtual bool SupportsExternalTransfer + { get { return false; } diff --git a/MediaBrowser.Controller/Entities/CollectionFolder.cs b/MediaBrowser.Controller/Entities/CollectionFolder.cs index 19a8c24b8..75d6b9381 100644 --- a/MediaBrowser.Controller/Entities/CollectionFolder.cs +++ b/MediaBrowser.Controller/Entities/CollectionFolder.cs @@ -1,13 +1,13 @@ -using MediaBrowser.Controller.IO; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Providers; -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; +using MediaBrowser.Controller.IO; +using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Configuration; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; @@ -15,6 +15,8 @@ using MediaBrowser.Model.Extensions; using MediaBrowser.Model.IO; using MediaBrowser.Model.Serialization; +using Microsoft.Extensions.Logging; + namespace MediaBrowser.Controller.Entities { /// <summary> @@ -29,18 +31,10 @@ namespace MediaBrowser.Controller.Entities public CollectionFolder() { - PhysicalLocationsList = new string[] { }; - PhysicalFolderIds = new Guid[] { }; + PhysicalLocationsList = Array.Empty<string>(); + PhysicalFolderIds = Array.Empty<Guid>(); } - //public override double? GetDefaultPrimaryImageAspectRatio() - //{ - // double value = 16; - // value /= 9; - - // return value; - //} - [IgnoreDataMember] public override bool SupportsPlayedStatus { @@ -103,7 +97,7 @@ namespace MediaBrowser.Controller.Entities } catch (Exception ex) { - Logger.ErrorException("Error loading library options", ex); + Logger.LogError(ex, "Error loading library options"); return new LibraryOptions(); } @@ -337,7 +331,7 @@ namespace MediaBrowser.Controller.Entities /// <returns>Task.</returns> protected override Task ValidateChildrenInternal(IProgress<double> progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService) { - return Task.FromResult(true); + return Task.CompletedTask; } /// <summary> diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 81072b6e7..dbe30f9a5 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -10,7 +10,6 @@ using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; - using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities.Audio; @@ -23,6 +22,7 @@ using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Extensions; using MediaBrowser.Controller.Collections; using MediaBrowser.Controller.Configuration; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.Entities { @@ -264,7 +264,7 @@ namespace MediaBrowser.Controller.Entities /// </summary> protected virtual List<BaseItem> LoadChildren() { - //Logger.Debug("Loading children from {0} {1} {2}", GetType().Name, Id, Path); + //logger.LogDebug("Loading children from {0} {1} {2}", GetType().Name, Id, Path); //just load our children from the repo - the library will be validated and maintained in other processes return GetCachedChildren(); } @@ -303,7 +303,7 @@ namespace MediaBrowser.Controller.Entities var id = child.Id; if (dictionary.ContainsKey(id)) { - Logger.Error("Found folder containing items with duplicate id. Path: {0}, Child Name: {1}", + Logger.LogError("Found folder containing items with duplicate id. Path: {path}, Child Name: {ChildName}", Path ?? Name, child.Path ?? child.Name); } @@ -371,6 +371,7 @@ namespace MediaBrowser.Controller.Entities } catch (Exception ex) { + Logger.LogError(ex, "Error retrieving children folder"); return; } @@ -419,13 +420,9 @@ namespace MediaBrowser.Controller.Entities foreach (var item in itemsRemoved) { - if (!item.IsFileProtocol) - { - } - - else + if (item.IsFileProtocol) { - Logger.Debug("Removed item: " + item.Path); + Logger.LogDebug("Removed item: " + item.Path); item.SetParent(null); LibraryManager.DeleteItem(item, new DeleteOptions { DeleteFileLocation = false }, this, false); @@ -571,14 +568,9 @@ namespace MediaBrowser.Controller.Entities await child.RefreshMetadata(refreshOptions, cancellationToken).ConfigureAwait(false); } - if (recursive) + if (recursive && child is Folder folder) { - var folder = child as Folder; - - if (folder != null) - { - await folder.RefreshMetadataRecursive(folder.Children.ToList(), refreshOptions, true, progress, cancellationToken); - } + await folder.RefreshMetadataRecursive(folder.Children.ToList(), refreshOptions, true, progress, cancellationToken); } } } @@ -782,7 +774,7 @@ namespace MediaBrowser.Controller.Entities { if (query.IncludeItemTypes.Length == 1 && string.Equals(query.IncludeItemTypes[0], typeof(BoxSet).Name, StringComparison.OrdinalIgnoreCase)) { - Logger.Debug("Query requires post-filtering due to BoxSet query"); + Logger.LogDebug("Query requires post-filtering due to BoxSet query"); return true; } @@ -795,7 +787,7 @@ namespace MediaBrowser.Controller.Entities { if (!(this is ICollectionFolder)) { - Logger.Debug("Query requires post-filtering due to LinkedChildren. Type: " + GetType().Name); + Logger.LogDebug("Query requires post-filtering due to LinkedChildren. Type: " + GetType().Name); return true; } } @@ -803,68 +795,68 @@ namespace MediaBrowser.Controller.Entities // Filter by Video3DFormat if (query.Is3D.HasValue) { - Logger.Debug("Query requires post-filtering due to Is3D"); + Logger.LogDebug("Query requires post-filtering due to Is3D"); return true; } if (query.HasOfficialRating.HasValue) { - Logger.Debug("Query requires post-filtering due to HasOfficialRating"); + Logger.LogDebug("Query requires post-filtering due to HasOfficialRating"); return true; } if (query.IsPlaceHolder.HasValue) { - Logger.Debug("Query requires post-filtering due to IsPlaceHolder"); + Logger.LogDebug("Query requires post-filtering due to IsPlaceHolder"); return true; } if (query.HasSpecialFeature.HasValue) { - Logger.Debug("Query requires post-filtering due to HasSpecialFeature"); + Logger.LogDebug("Query requires post-filtering due to HasSpecialFeature"); return true; } if (query.HasSubtitles.HasValue) { - Logger.Debug("Query requires post-filtering due to HasSubtitles"); + Logger.LogDebug("Query requires post-filtering due to HasSubtitles"); return true; } if (query.HasTrailer.HasValue) { - Logger.Debug("Query requires post-filtering due to HasTrailer"); + Logger.LogDebug("Query requires post-filtering due to HasTrailer"); return true; } // Filter by VideoType if (query.VideoTypes.Length > 0) { - Logger.Debug("Query requires post-filtering due to VideoTypes"); + Logger.LogDebug("Query requires post-filtering due to VideoTypes"); return true; } if (CollapseBoxSetItems(query, this, query.User, ConfigurationManager)) { - Logger.Debug("Query requires post-filtering due to CollapseBoxSetItems"); + Logger.LogDebug("Query requires post-filtering due to CollapseBoxSetItems"); return true; } if (!string.IsNullOrEmpty(query.AdjacentTo)) { - Logger.Debug("Query requires post-filtering due to AdjacentTo"); + Logger.LogDebug("Query requires post-filtering due to AdjacentTo"); return true; } if (query.SeriesStatuses.Length > 0) { - Logger.Debug("Query requires post-filtering due to SeriesStatuses"); + Logger.LogDebug("Query requires post-filtering due to SeriesStatuses"); return true; } if (query.AiredDuringSeason.HasValue) { - Logger.Debug("Query requires post-filtering due to AiredDuringSeason"); + Logger.LogDebug("Query requires post-filtering due to AiredDuringSeason"); return true; } @@ -872,7 +864,7 @@ namespace MediaBrowser.Controller.Entities { if (query.IncludeItemTypes.Length == 1 && query.IncludeItemTypes.Contains(typeof(Series).Name)) { - Logger.Debug("Query requires post-filtering due to IsPlayed"); + Logger.LogDebug("Query requires post-filtering due to IsPlayed"); return true; } } @@ -1575,7 +1567,7 @@ namespace MediaBrowser.Controller.Entities { try { - Logger.Debug("Found shortcut at {0}", i.FullName); + Logger.LogDebug("Found shortcut at {0}", i.FullName); var resolvedPath = CollectionFolder.ApplicationHost.ExpandVirtualPath(FileSystem.ResolveShortcut(i.FullName)); @@ -1588,13 +1580,13 @@ namespace MediaBrowser.Controller.Entities }; } - Logger.Error("Error resolving shortcut {0}", i.FullName); + Logger.LogError("Error resolving shortcut {0}", i.FullName); return null; } catch (IOException ex) { - Logger.ErrorException("Error resolving shortcut {0}", ex, i.FullName); + Logger.LogError(ex, "Error resolving shortcut {0}", i.FullName); return null; } }) @@ -1605,7 +1597,7 @@ namespace MediaBrowser.Controller.Entities if (!newShortcutLinks.SequenceEqual(currentShortcutLinks, new LinkedChildComparer(FileSystem))) { - Logger.Info("Shortcut links have changed for {0}", Path); + Logger.LogInformation("Shortcut links have changed for {0}", Path); newShortcutLinks.AddRange(LinkedChildren.Where(i => i.Type == LinkedChildType.Manual)); LinkedChildren = newShortcutLinks.ToArray(); diff --git a/MediaBrowser.Controller/Entities/Game.cs b/MediaBrowser.Controller/Entities/Game.cs index e4c417c8a..4efc5648e 100644 --- a/MediaBrowser.Controller/Entities/Game.cs +++ b/MediaBrowser.Controller/Entities/Game.cs @@ -1,11 +1,10 @@ -using MediaBrowser.Controller.Providers; +using System; +using System.Collections.Generic; +using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; -using System; -using System.Collections.Generic; using MediaBrowser.Model.IO; using MediaBrowser.Model.Serialization; -using System; namespace MediaBrowser.Controller.Entities { @@ -13,10 +12,10 @@ namespace MediaBrowser.Controller.Entities { public Game() { - MultiPartGameFiles = new string[] {}; + MultiPartGameFiles = Array.Empty<string>(); RemoteTrailers = EmptyMediaUrlArray; - LocalTrailerIds = new Guid[] {}; - RemoteTrailerIds = new Guid[] {}; + LocalTrailerIds = Array.Empty<Guid>(); + RemoteTrailerIds = Array.Empty<Guid>(); } public Guid[] LocalTrailerIds { get; set; } @@ -40,12 +39,6 @@ namespace MediaBrowser.Controller.Entities } /// <summary> - /// Gets or sets the remote trailers. - /// </summary> - /// <value>The remote trailers.</value> - public MediaUrl[] RemoteTrailers { get; set; } - - /// <summary> /// Gets the type of the media. /// </summary> /// <value>The type of the media.</value> diff --git a/MediaBrowser.Controller/Entities/GameGenre.cs b/MediaBrowser.Controller/Entities/GameGenre.cs index 63493ad4a..ba178d3c3 100644 --- a/MediaBrowser.Controller/Entities/GameGenre.cs +++ b/MediaBrowser.Controller/Entities/GameGenre.cs @@ -1,9 +1,8 @@ using System; using System.Collections.Generic; using MediaBrowser.Model.Serialization; -using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Extensions; -using MediaBrowser.Model.Extensions; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.Entities { @@ -102,7 +101,7 @@ namespace MediaBrowser.Controller.Entities var newPath = GetRebasedPath(); if (!string.Equals(Path, newPath, StringComparison.Ordinal)) { - Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); + Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); return true; } return base.RequiresRefresh(); diff --git a/MediaBrowser.Controller/Entities/Genre.cs b/MediaBrowser.Controller/Entities/Genre.cs index 94a5984df..57ffe2744 100644 --- a/MediaBrowser.Controller/Entities/Genre.cs +++ b/MediaBrowser.Controller/Entities/Genre.cs @@ -2,9 +2,8 @@ using MediaBrowser.Controller.Entities.Audio; using System; using System.Collections.Generic; -using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Extensions; -using MediaBrowser.Model.Extensions; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.Entities { @@ -114,7 +113,7 @@ namespace MediaBrowser.Controller.Entities var newPath = GetRebasedPath(); if (!string.Equals(Path, newPath, StringComparison.Ordinal)) { - Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); + Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); return true; } return base.RequiresRefresh(); diff --git a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs index ff57c2471..bb99c0a84 100644 --- a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs +++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using MediaBrowser.Model.Configuration; using System.Linq; using MediaBrowser.Controller.Dto; -using MediaBrowser.Model.Querying; namespace MediaBrowser.Controller.Entities { @@ -48,7 +47,6 @@ namespace MediaBrowser.Controller.Entities public string PresentationUniqueKey { get; set; } public string Path { get; set; } - public string PathNotStartsWith { get; set; } public string Name { get; set; } public string Person { get; set; } @@ -160,8 +158,6 @@ namespace MediaBrowser.Controller.Entities public bool EnableGroupByMetadataKey { get; set; } public bool? HasChapterImages { get; set; } - // why tuple vs value tuple? - //public Tuple<string, SortOrder>[] OrderBy { get; set; } public ValueTuple<string, SortOrder>[] OrderBy { get; set; } public DateTime? MinDateCreated { get; set; } @@ -180,44 +176,44 @@ namespace MediaBrowser.Controller.Entities public InternalItemsQuery() { - AlbumArtistIds = new Guid[] {}; - AlbumIds = new Guid[] {}; - AncestorIds = new Guid[] {}; - ArtistIds = new Guid[] {}; - BlockUnratedItems = new UnratedItem[] { }; - BoxSetLibraryFolders = new Guid[] {}; - ChannelIds = new Guid[] {}; - ContributingArtistIds = new Guid[] {}; + AlbumArtistIds = Array.Empty<Guid>(); + AlbumIds = Array.Empty<Guid>(); + AncestorIds = Array.Empty<Guid>(); + ArtistIds = Array.Empty<Guid>(); + BlockUnratedItems = Array.Empty<UnratedItem>(); + BoxSetLibraryFolders = Array.Empty<Guid>(); + ChannelIds = Array.Empty<Guid>(); + ContributingArtistIds = Array.Empty<Guid>(); DtoOptions = new DtoOptions(); EnableTotalRecordCount = true; - ExcludeArtistIds = new Guid[] {}; - ExcludeInheritedTags = new string[] {}; - ExcludeItemIds = new Guid[] {}; - ExcludeItemTypes = new string[] {}; + ExcludeArtistIds = Array.Empty<Guid>(); + ExcludeInheritedTags = Array.Empty<string>(); + ExcludeItemIds = Array.Empty<Guid>(); + ExcludeItemTypes = Array.Empty<string>(); ExcludeProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - ExcludeTags = new string[] {}; - GenreIds = new Guid[] {}; - Genres = new string[] {}; + ExcludeTags = Array.Empty<string>(); + GenreIds = Array.Empty<Guid>(); + Genres = Array.Empty<string>(); GroupByPresentationUniqueKey = true; HasAnyProviderId = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - ImageTypes = new ImageType[] { }; - IncludeItemTypes = new string[] {}; - ItemIds = new Guid[] {}; - MediaTypes = new string[] {}; + ImageTypes = Array.Empty<ImageType>(); + IncludeItemTypes = Array.Empty<string>(); + ItemIds = Array.Empty<Guid>(); + MediaTypes = Array.Empty<string>(); MinSimilarityScore = 20; - OfficialRatings = new string[] {}; + OfficialRatings = Array.Empty<string>(); OrderBy = Array.Empty<ValueTuple<string, SortOrder>>(); - PersonIds = new Guid[] {}; - PersonTypes = new string[] {}; - PresetViews = new string[] {}; - SeriesStatuses = new SeriesStatus[] { }; - SourceTypes = new SourceType[] { }; - StudioIds = new Guid[] {}; - Tags = new string[] {}; - TopParentIds = new Guid[] {}; - TrailerTypes = new TrailerType[] { }; - VideoTypes = new VideoType[] { }; - Years = new int[] { }; + PersonIds = Array.Empty<Guid>(); + PersonTypes = Array.Empty<string>(); + PresetViews = Array.Empty<string>(); + SeriesStatuses = Array.Empty<SeriesStatus>(); + SourceTypes = Array.Empty<SourceType>(); + StudioIds = Array.Empty<Guid>(); + Tags = Array.Empty<string>(); + TopParentIds = Array.Empty<Guid>(); + TrailerTypes = Array.Empty<TrailerType>(); + VideoTypes = Array.Empty<VideoType>(); + Years = Array.Empty<int>(); } public InternalItemsQuery(User user) diff --git a/MediaBrowser.Controller/Entities/InternalPeopleQuery.cs b/MediaBrowser.Controller/Entities/InternalPeopleQuery.cs index 7e00834e3..ce3e9e070 100644 --- a/MediaBrowser.Controller/Entities/InternalPeopleQuery.cs +++ b/MediaBrowser.Controller/Entities/InternalPeopleQuery.cs @@ -14,8 +14,8 @@ namespace MediaBrowser.Controller.Entities public InternalPeopleQuery() { - PersonTypes = new string[] { }; - ExcludePersonTypes = new string[] { }; + PersonTypes = Array.Empty<string>(); + ExcludePersonTypes = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs index 5918bf981..e888a5582 100644 --- a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs +++ b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs @@ -19,8 +19,8 @@ namespace MediaBrowser.Controller.Entities.Movies public BoxSet() { RemoteTrailers = EmptyMediaUrlArray; - LocalTrailerIds = new Guid[] { }; - RemoteTrailerIds = new Guid[] { }; + LocalTrailerIds = Array.Empty<Guid>(); + RemoteTrailerIds = Array.Empty<Guid>(); DisplayOrder = ItemSortBy.PremiereDate; } @@ -53,12 +53,6 @@ namespace MediaBrowser.Controller.Entities.Movies public Guid[] RemoteTrailerIds { get; set; } /// <summary> - /// Gets or sets the remote trailers. - /// </summary> - /// <value>The remote trailers.</value> - public MediaUrl[] RemoteTrailers { get; set; } - - /// <summary> /// Gets or sets the display order. /// </summary> /// <value>The display order.</value> @@ -70,12 +64,7 @@ namespace MediaBrowser.Controller.Entities.Movies } public override double GetDefaultPrimaryImageAspectRatio() - { - double value = 2; - value /= 3; - - return value; - } + => 2 / 3; public override UnratedItem GetBlockUnratedType() { @@ -254,7 +243,7 @@ namespace MediaBrowser.Controller.Entities.Movies return FlattenItems(boxset.GetLinkedChildren(), expandedFolders); } - return new BaseItem[] { }; + return Array.Empty<BaseItem>(); } return new[] { item }; diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs index 878b1b860..4f743991b 100644 --- a/MediaBrowser.Controller/Entities/Movies/Movie.cs +++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs @@ -6,8 +6,6 @@ using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; - -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using MediaBrowser.Model.Providers; using MediaBrowser.Model.Serialization; @@ -32,8 +30,6 @@ namespace MediaBrowser.Controller.Entities.Movies public Guid[] LocalTrailerIds { get; set; } public Guid[] RemoteTrailerIds { get; set; } - public MediaUrl[] RemoteTrailers { get; set; } - /// <summary> /// Gets or sets the name of the TMDB collection. /// </summary> @@ -55,10 +51,7 @@ namespace MediaBrowser.Controller.Entities.Movies return 0; } - double value = 2; - value /= 3; - - return value; + return 2 / 3; } protected override async Task<bool> RefreshedOwnedItems(MetadataRefreshOptions options, List<FileSystemMetadata> fileSystemChildren, CancellationToken cancellationToken) diff --git a/MediaBrowser.Controller/Entities/MusicVideo.cs b/MediaBrowser.Controller/Entities/MusicVideo.cs index 78f9d0671..4015a1178 100644 --- a/MediaBrowser.Controller/Entities/MusicVideo.cs +++ b/MediaBrowser.Controller/Entities/MusicVideo.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Controller.Entities public MusicVideo() { - Artists = new string[] {}; + Artists = Array.Empty<string>(); } [IgnoreDataMember] diff --git a/MediaBrowser.Controller/Entities/Person.cs b/MediaBrowser.Controller/Entities/Person.cs index 64d775094..5c35a7411 100644 --- a/MediaBrowser.Controller/Entities/Person.cs +++ b/MediaBrowser.Controller/Entities/Person.cs @@ -1,11 +1,10 @@ using MediaBrowser.Controller.Providers; using System; using System.Collections.Generic; -using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Extensions; using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Serialization; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.Entities { @@ -137,7 +136,7 @@ namespace MediaBrowser.Controller.Entities var newPath = GetRebasedPath(); if (!string.Equals(Path, newPath, StringComparison.Ordinal)) { - Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); + Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); return true; } return base.RequiresRefresh(); diff --git a/MediaBrowser.Controller/Entities/Photo.cs b/MediaBrowser.Controller/Entities/Photo.cs index 01c10831d..662aa4249 100644 --- a/MediaBrowser.Controller/Entities/Photo.cs +++ b/MediaBrowser.Controller/Entities/Photo.cs @@ -58,6 +58,7 @@ namespace MediaBrowser.Controller.Entities public override double GetDefaultPrimaryImageAspectRatio() { + // REVIEW: @bond if (Width.HasValue && Height.HasValue) { double width = Width.Value; @@ -85,8 +86,8 @@ namespace MediaBrowser.Controller.Entities return base.GetDefaultPrimaryImageAspectRatio(); } - public int? Width { get; set; } - public int? Height { get; set; } + public new int? Width { get; set; } + public new int? Height { get; set; } public string CameraMake { get; set; } public string CameraModel { get; set; } public string Software { get; set; } diff --git a/MediaBrowser.Controller/Entities/Studio.cs b/MediaBrowser.Controller/Entities/Studio.cs index 29f617539..c076cd680 100644 --- a/MediaBrowser.Controller/Entities/Studio.cs +++ b/MediaBrowser.Controller/Entities/Studio.cs @@ -1,9 +1,8 @@ using System; using System.Collections.Generic; using MediaBrowser.Model.Serialization; -using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Extensions; -using MediaBrowser.Model.Extensions; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.Entities { @@ -115,7 +114,7 @@ namespace MediaBrowser.Controller.Entities var newPath = GetRebasedPath(); if (!string.Equals(Path, newPath, StringComparison.Ordinal)) { - Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); + Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); return true; } return base.RequiresRefresh(); diff --git a/MediaBrowser.Controller/Entities/TV/Episode.cs b/MediaBrowser.Controller/Entities/TV/Episode.cs index 201579731..00e055c51 100644 --- a/MediaBrowser.Controller/Entities/TV/Episode.cs +++ b/MediaBrowser.Controller/Entities/TV/Episode.cs @@ -1,4 +1,4 @@ -using MediaBrowser.Controller.Providers; +using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using System; @@ -7,6 +7,7 @@ using System.Globalization; using System.Linq; using MediaBrowser.Model.IO; using MediaBrowser.Model.Serialization; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.Entities.TV { @@ -18,13 +19,12 @@ namespace MediaBrowser.Controller.Entities.TV public Episode() { RemoteTrailers = EmptyMediaUrlArray; - LocalTrailerIds = new Guid[] {}; - RemoteTrailerIds = new Guid[] {}; + LocalTrailerIds = Array.Empty<Guid>(); + RemoteTrailerIds = Array.Empty<Guid>(); } public Guid[] LocalTrailerIds { get; set; } public Guid[] RemoteTrailerIds { get; set; } - public MediaUrl[] RemoteTrailers { get; set; } /// <summary> /// Gets the season in which it aired. @@ -111,10 +111,7 @@ namespace MediaBrowser.Controller.Entities.TV return 0; } - double value = 16; - value /= 9; - - return value; + return 16 / 9; } public override List<string> GetUserDataKeys() @@ -363,7 +360,7 @@ namespace MediaBrowser.Controller.Entities.TV } catch (Exception ex) { - Logger.ErrorException("Error in FillMissingEpisodeNumbersFromPath. Episode: {0}", ex, Path ?? Name ?? Id.ToString()); + Logger.LogError(ex, "Error in FillMissingEpisodeNumbersFromPath. Episode: {Episode}", Path ?? Name ?? Id.ToString()); } } } diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs index b5f77df55..cb3a7f345 100644 --- a/MediaBrowser.Controller/Entities/TV/Season.cs +++ b/MediaBrowser.Controller/Entities/TV/Season.cs @@ -102,10 +102,11 @@ namespace MediaBrowser.Controller.Entities.TV get { var seriesId = SeriesId; - if (seriesId.Equals(Guid.Empty)) { + if (seriesId == Guid.Empty) + { seriesId = FindSeriesId(); } - return !seriesId.Equals(Guid.Empty) ? (LibraryManager.GetItemById(seriesId) as Series) : null; + return seriesId == Guid.Empty ? null : (LibraryManager.GetItemById(seriesId) as Series); } } @@ -227,7 +228,7 @@ namespace MediaBrowser.Controller.Entities.TV public Guid FindSeriesId() { var series = FindParent<Series>(); - return series == null ? Guid.Empty: series.Id; + return series == null ? Guid.Empty : series.Id; } /// <summary> diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs index 88fde1760..d4a62626e 100644 --- a/MediaBrowser.Controller/Entities/TV/Series.cs +++ b/MediaBrowser.Controller/Entities/TV/Series.cs @@ -23,9 +23,9 @@ namespace MediaBrowser.Controller.Entities.TV public Series() { RemoteTrailers = EmptyMediaUrlArray; - LocalTrailerIds = new Guid[] {}; - RemoteTrailerIds = new Guid[] {}; - AirDays = new DayOfWeek[] { }; + LocalTrailerIds = Array.Empty<Guid>(); + RemoteTrailerIds = Array.Empty<Guid>(); + AirDays = Array.Empty<DayOfWeek>(); } public DayOfWeek[] AirDays { get; set; } @@ -73,8 +73,6 @@ namespace MediaBrowser.Controller.Entities.TV public Guid[] LocalTrailerIds { get; set; } public Guid[] RemoteTrailerIds { get; set; } - public MediaUrl[] RemoteTrailers { get; set; } - /// <summary> /// airdate, dvd or absolute /// </summary> diff --git a/MediaBrowser.Controller/Entities/Trailer.cs b/MediaBrowser.Controller/Entities/Trailer.cs index 4f2a5631b..2ef268ed1 100644 --- a/MediaBrowser.Controller/Entities/Trailer.cs +++ b/MediaBrowser.Controller/Entities/Trailer.cs @@ -15,18 +15,13 @@ namespace MediaBrowser.Controller.Entities { public Trailer() { - TrailerTypes = new TrailerType[] { }; + TrailerTypes = Array.Empty<TrailerType>(); } public TrailerType[] TrailerTypes { get; set; } public override double GetDefaultPrimaryImageAspectRatio() - { - double value = 2; - value /= 3; - - return value; - } + => 2 / 3; public override UnratedItem GetBlockUnratedType() { diff --git a/MediaBrowser.Controller/Entities/UserView.cs b/MediaBrowser.Controller/Entities/UserView.cs index 984cad481..b7c9884ff 100644 --- a/MediaBrowser.Controller/Entities/UserView.cs +++ b/MediaBrowser.Controller/Entities/UserView.cs @@ -1,21 +1,18 @@ using MediaBrowser.Controller.Playlists; using MediaBrowser.Controller.TV; -using MediaBrowser.Model.Entities; using MediaBrowser.Model.Querying; using System; using System.Collections.Generic; using System.Linq; using MediaBrowser.Model.Serialization; using System.Threading.Tasks; -using MediaBrowser.Controller.Dto; -using MediaBrowser.Controller.Collections; namespace MediaBrowser.Controller.Entities { public class UserView : Folder, IHasCollectionType { public string ViewType { get; set; } - public Guid DisplayParentId { get; set; } + public new Guid DisplayParentId { get; set; } public Guid? UserId { get; set; } @@ -68,14 +65,6 @@ namespace MediaBrowser.Controller.Entities } } - //public override double? GetDefaultPrimaryImageAspectRatio() - //{ - // double value = 16; - // value /= 9; - - // return value; - //} - public override int GetChildCount(User user) { return GetChildren(user, true).Count; @@ -161,8 +150,8 @@ namespace MediaBrowser.Controller.Entities public static bool IsEligibleForGrouping(Folder folder) { - var collectionFolder = folder as ICollectionFolder; - return collectionFolder != null && IsEligibleForGrouping(collectionFolder.CollectionType); + return folder is ICollectionFolder collectionFolder + && IsEligibleForGrouping(collectionFolder.CollectionType); } private static string[] ViewTypesEligibleForGrouping = new string[] @@ -195,7 +184,7 @@ namespace MediaBrowser.Controller.Entities protected override Task ValidateChildrenInternal(IProgress<double> progress, System.Threading.CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, Providers.MetadataRefreshOptions refreshOptions, Providers.IDirectoryService directoryService) { - return Task.FromResult(true); + return Task.CompletedTask; } [IgnoreDataMember] diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs index 36035a2bb..b50a12d52 100644 --- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs +++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs @@ -5,7 +5,7 @@ using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Playlists; using MediaBrowser.Controller.TV; using MediaBrowser.Model.Entities; -using MediaBrowser.Model.Logging; +using Microsoft.Extensions.Logging; using MediaBrowser.Model.Querying; using System; using System.Collections.Generic; @@ -259,10 +259,9 @@ namespace MediaBrowser.Controller.Entities { return _libraryManager.GetGenre(i); } - catch + catch (Exception ex) { - // Full exception logged at lower levels - _logger.Error("Error getting genre"); + _logger.LogError(ex, "Error getting genre"); return null; } @@ -383,10 +382,9 @@ namespace MediaBrowser.Controller.Entities { return _libraryManager.GetGenre(i); } - catch + catch (Exception ex) { - // Full exception logged at lower levels - _logger.Error("Error getting genre"); + _logger.LogError(ex, "Error getting genre"); return null; } diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs index 65f5b8382..2db200ee2 100644 --- a/MediaBrowser.Controller/Entities/Video.cs +++ b/MediaBrowser.Controller/Entities/Video.cs @@ -10,7 +10,6 @@ using System.Globalization; using System.Linq; using System.Threading; using System.Threading.Tasks; -using MediaBrowser.Common.Extensions; using MediaBrowser.Model.IO; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Extensions; @@ -132,8 +131,6 @@ namespace MediaBrowser.Controller.Entities public bool HasSubtitles { get; set; } public bool IsPlaceHolder { get; set; } - public bool IsShortcut { get; set; } - public string ShortcutPath { get; set; } /// <summary> /// Gets or sets the default index of the video stream. @@ -173,7 +170,7 @@ namespace MediaBrowser.Controller.Entities } else { - return new string[] {}; + return Array.Empty<string>(); } return mediaEncoder.GetPlayableStreamFileNames(Path, videoType); } @@ -186,9 +183,9 @@ namespace MediaBrowser.Controller.Entities public Video() { - AdditionalParts = new string[] {}; - LocalAlternateVersions = new string[] {}; - SubtitleFiles = new string[] {}; + AdditionalParts = Array.Empty<string>(); + LocalAlternateVersions = Array.Empty<string>(); + SubtitleFiles = Array.Empty<string>(); LinkedAlternateVersions = EmptyLinkedChildArray; } @@ -215,10 +212,10 @@ namespace MediaBrowser.Controller.Entities { if (!string.IsNullOrEmpty(PrimaryVersionId)) { - var item = LibraryManager.GetItemById(PrimaryVersionId) as Video; - if (item != null) + var item = LibraryManager.GetItemById(PrimaryVersionId); + if (item is Video video) { - return item.MediaSourceCount; + return video.MediaSourceCount; } } return LinkedAlternateVersions.Length + LocalAlternateVersions.Length + 1; @@ -366,7 +363,7 @@ namespace MediaBrowser.Controller.Entities /// Gets the additional parts. /// </summary> /// <returns>IEnumerable{Video}.</returns> - public IEnumerable<Video> GetAdditionalParts() + public IOrderedEnumerable<Video> GetAdditionalParts() { return GetAdditionalPartIds() .Select(i => LibraryManager.GetItemById(i)) @@ -420,8 +417,7 @@ namespace MediaBrowser.Controller.Entities { var updateType = base.UpdateFromResolvedItem(newItem); - var newVideo = newItem as Video; - if (newVideo != null) + if (newItem is Video newVideo) { if (!AdditionalParts.SequenceEqual(newVideo.AdditionalParts, StringComparer.Ordinal)) { @@ -463,7 +459,7 @@ namespace MediaBrowser.Controller.Entities .Select(i => i.FullName) .ToArray(); } - return new string[] {}; + return Array.Empty<string>(); } /// <summary> @@ -618,9 +614,5 @@ namespace MediaBrowser.Controller.Entities return list; } - - public static bool IsHD (Video video) { - return video.Height >= 720; - } } } diff --git a/MediaBrowser.Controller/Entities/Year.cs b/MediaBrowser.Controller/Entities/Year.cs index 81e030cea..8e3cd0b70 100644 --- a/MediaBrowser.Controller/Entities/Year.cs +++ b/MediaBrowser.Controller/Entities/Year.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Globalization; using MediaBrowser.Model.Serialization; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.Entities { @@ -121,7 +122,7 @@ namespace MediaBrowser.Controller.Entities var newPath = GetRebasedPath(); if (!string.Equals(Path, newPath, StringComparison.Ordinal)) { - Logger.Debug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); + Logger.LogDebug("{0} path has changed from {1} to {2}", GetType().Name, Path, newPath); return true; } return base.RequiresRefresh(); diff --git a/MediaBrowser.Controller/IO/FileData.cs b/MediaBrowser.Controller/IO/FileData.cs index e1fabee4f..c0cf51ab2 100644 --- a/MediaBrowser.Controller/IO/FileData.cs +++ b/MediaBrowser.Controller/IO/FileData.cs @@ -1,6 +1,6 @@ using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Logging; +using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using MediaBrowser.Model.IO; @@ -77,7 +77,7 @@ namespace MediaBrowser.Controller.IO if (string.IsNullOrEmpty(newPath)) { //invalid shortcut - could be old or target could just be unavailable - logger.Warn("Encountered invalid shortcut: " + fullName); + logger.LogWarning("Encountered invalid shortcut: " + fullName); continue; } @@ -91,7 +91,7 @@ namespace MediaBrowser.Controller.IO } catch (Exception ex) { - logger.ErrorException("Error resolving shortcut from {0}", ex, fullName); + logger.LogError(ex, "Error resolving shortcut from {path}", fullName); } } else if (flattenFolderDepth > 0 && isDirectory) diff --git a/MediaBrowser.Controller/IResourceFileManager.cs b/MediaBrowser.Controller/IResourceFileManager.cs index ae73f4b4c..64f1b9f7a 100644 --- a/MediaBrowser.Controller/IResourceFileManager.cs +++ b/MediaBrowser.Controller/IResourceFileManager.cs @@ -4,7 +4,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Net; using MediaBrowser.Controller.Plugins; using MediaBrowser.Model.Extensions; -using MediaBrowser.Model.Logging; +using Microsoft.Extensions.Logging; using MediaBrowser.Model.Net; using MediaBrowser.Model.Serialization; using System; diff --git a/MediaBrowser.Controller/IServerApplicationHost.cs b/MediaBrowser.Controller/IServerApplicationHost.cs index 830c160e3..4dc559031 100644 --- a/MediaBrowser.Controller/IServerApplicationHost.cs +++ b/MediaBrowser.Controller/IServerApplicationHost.cs @@ -24,12 +24,6 @@ namespace MediaBrowser.Controller Task<PublicSystemInfo> GetPublicSystemInfo(CancellationToken cancellationToken); - /// <summary> - /// Gets a value indicating whether [supports automatic run at startup]. - /// </summary> - /// <value><c>true</c> if [supports automatic run at startup]; otherwise, <c>false</c>.</value> - bool SupportsAutoRunAtStartup { get; } - bool CanLaunchWebBrowser { get; } /// <summary> diff --git a/MediaBrowser.Controller/Library/IUserDataManager.cs b/MediaBrowser.Controller/Library/IUserDataManager.cs index 11d77f81a..f3f81378b 100644 --- a/MediaBrowser.Controller/Library/IUserDataManager.cs +++ b/MediaBrowser.Controller/Library/IUserDataManager.cs @@ -5,7 +5,6 @@ using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using System; using System.Threading; -using MediaBrowser.Model.Querying; namespace MediaBrowser.Controller.Library { diff --git a/MediaBrowser.Controller/Library/ItemResolveArgs.cs b/MediaBrowser.Controller/Library/ItemResolveArgs.cs index 7197425f3..9812802e7 100644 --- a/MediaBrowser.Controller/Library/ItemResolveArgs.cs +++ b/MediaBrowser.Controller/Library/ItemResolveArgs.cs @@ -2,10 +2,7 @@ using MediaBrowser.Controller.Providers; using System; using System.Collections.Generic; -using System.IO; using System.Linq; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.IO; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.IO; @@ -169,6 +166,7 @@ namespace MediaBrowser.Controller.Library AdditionalLocations.Add(path); } + // REVIEW: @bond /// <summary> /// Gets the physical locations. /// </summary> @@ -177,7 +175,7 @@ namespace MediaBrowser.Controller.Library { get { - var paths = string.IsNullOrEmpty(Path) ? new string[] { } : new[] { Path }; + var paths = string.IsNullOrEmpty(Path) ? Array.Empty<string>() : new[] { Path }; return AdditionalLocations == null ? paths : paths.Concat(AdditionalLocations).ToArray(); } } @@ -261,7 +259,7 @@ namespace MediaBrowser.Controller.Library } /// <summary> - /// Equalses the specified args. + /// Equals the specified args. /// </summary> /// <param name="args">The args.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> diff --git a/MediaBrowser.Controller/Library/Profiler.cs b/MediaBrowser.Controller/Library/Profiler.cs index 3957c3020..745e49920 100644 --- a/MediaBrowser.Controller/Library/Profiler.cs +++ b/MediaBrowser.Controller/Library/Profiler.cs @@ -1,4 +1,4 @@ -using MediaBrowser.Model.Logging; +using Microsoft.Extensions.Logging; using System; using System.Diagnostics; @@ -67,7 +67,7 @@ namespace MediaBrowser.Controller.Library message = string.Format("{0} took {1} seconds.", _name, ((float)_stopwatch.ElapsedMilliseconds / 1000).ToString("#0.000")); } - _logger.Info(message); + _logger.LogInformation(message); } } diff --git a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs index fa3aab4f2..4dc6c7517 100644 --- a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs +++ b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs @@ -47,52 +47,21 @@ namespace MediaBrowser.Controller.LiveTv return list; } - public static double GetDefaultPrimaryImageAspectRatio(IHasProgramAttributes item) + private static string EmbyServiceName = "Emby"; + public override double GetDefaultPrimaryImageAspectRatio() { - var serviceName = item.ServiceName; + var serviceName = ServiceName; - if (item.IsMovie) + if (string.Equals(serviceName, EmbyServiceName, StringComparison.OrdinalIgnoreCase) || string.Equals(serviceName, "Next Pvr", StringComparison.OrdinalIgnoreCase)) { - if (string.Equals(serviceName, EmbyServiceName, StringComparison.OrdinalIgnoreCase) || string.Equals(serviceName, "Next Pvr", StringComparison.OrdinalIgnoreCase)) - { - double value = 2; - value /= 3; - - return value; - } - else - { - double value = 16; - value /= 9; - - return value; - } + return 2 / 3; } else { - if (string.Equals(serviceName, EmbyServiceName, StringComparison.OrdinalIgnoreCase) || string.Equals(serviceName, "Next Pvr", StringComparison.OrdinalIgnoreCase)) - { - double value = 2; - value /= 3; - - return value; - } - else - { - double value = 16; - value /= 9; - - return value; - } + return 16 / 9; } } - private static string EmbyServiceName = "Emby"; - public override double GetDefaultPrimaryImageAspectRatio() - { - return GetDefaultPrimaryImageAspectRatio(this); - } - [IgnoreDataMember] public override SourceType SourceType { diff --git a/MediaBrowser.Controller/LiveTv/TimerInfo.cs b/MediaBrowser.Controller/LiveTv/TimerInfo.cs index baf0b0b13..c9eb6fee6 100644 --- a/MediaBrowser.Controller/LiveTv/TimerInfo.cs +++ b/MediaBrowser.Controller/LiveTv/TimerInfo.cs @@ -10,11 +10,11 @@ namespace MediaBrowser.Controller.LiveTv { public TimerInfo() { - Genres = new string[] { }; + Genres = Array.Empty<string>(); KeepUntil = KeepUntil.UntilDeleted; ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); SeriesProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - Tags = new string[] { }; + Tags = Array.Empty<string>(); } public Dictionary<string, string> ProviderIds { get; set; } diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index 8e816080c..4567f62dd 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -6,7 +6,7 @@ </ItemGroup> <ItemGroup> - <Compile Include="..\SharedVersion.cs"/> + <Compile Include="..\SharedVersion.cs" /> </ItemGroup> <PropertyGroup> diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 881e318ce..4fb9a711e 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; -using System.Threading; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Dlna; @@ -12,8 +11,6 @@ using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.Extensions; -using MediaBrowser.Common.Configuration; -using MediaBrowser.Model.Reflection; namespace MediaBrowser.Controller.MediaEncoding { @@ -343,19 +340,19 @@ namespace MediaBrowser.Controller.MediaEncoding public int GetVideoProfileScore(string profile) { - var list = new [] + string[] list = { - "Constrained Baseline", + "ConstrainedBaseline", "Baseline", "Extended", "Main", "High", - "Progressive High", - "Constrained High" + "ProgressiveHigh", + "ConstrainedHigh" }; // strip spaces because they may be stripped out on the query string - return Array.FindIndex(list, t => string.Equals(t.Replace(" ", ""), profile.Replace(" ", ""), StringComparison.OrdinalIgnoreCase)); + return Array.FindIndex(list, t => string.Equals(t, profile.Replace(" ", ""), StringComparison.OrdinalIgnoreCase)); } public string GetInputPathArgument(EncodingJobInfo state) @@ -516,18 +513,12 @@ namespace MediaBrowser.Controller.MediaEncoding public string NormalizeTranscodingLevel(string videoCodec, string level) { - double requestLevel; - // Clients may direct play higher than level 41, but there's no reason to transcode higher - if (double.TryParse(level, NumberStyles.Any, _usCulture, out requestLevel)) + if (double.TryParse(level, NumberStyles.Any, _usCulture, out double requestLevel) + && string.Equals(videoCodec, "h264", StringComparison.OrdinalIgnoreCase) + && requestLevel > 41) { - if (string.Equals(videoCodec, "h264", StringComparison.OrdinalIgnoreCase)) - { - if (requestLevel > 41) - { - return "41"; - } - } + return "41"; } return level; @@ -623,7 +614,7 @@ namespace MediaBrowser.Controller.MediaEncoding // h264 (h264_qsv) else if (string.Equals(videoEncoder, "h264_qsv", StringComparison.OrdinalIgnoreCase)) { - string[] valid_h264_qsv = new string[] { "veryslow", "slower", "slow", "medium", "fast", "faster", "veryfast" }; + string[] valid_h264_qsv = { "veryslow", "slower", "slow", "medium", "fast", "faster", "veryfast" }; if (valid_h264_qsv.Contains(encodingOptions.H264Preset, StringComparer.OrdinalIgnoreCase)) { @@ -1958,12 +1949,12 @@ namespace MediaBrowser.Controller.MediaEncoding } else { - state.PlayableStreamFileNames = new string[] { }; + state.PlayableStreamFileNames = Array.Empty<string>(); } } else { - state.PlayableStreamFileNames = new string[] { }; + state.PlayableStreamFileNames = Array.Empty<string>(); } if (mediaSource.Timestamp.HasValue) diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs b/MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs index 3d2871e65..3f6da59d8 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs @@ -8,10 +8,10 @@ using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; -using MediaBrowser.Model.Logging; using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Session; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.MediaEncoding { @@ -207,7 +207,7 @@ namespace MediaBrowser.Controller.MediaEncoding } } - return new string[] { }; + return Array.Empty<string>(); } public string GetRequestedLevel(string codec) @@ -317,10 +317,10 @@ namespace MediaBrowser.Controller.MediaEncoding _logger = logger; TranscodingType = jobType; RemoteHttpHeaders = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - PlayableStreamFileNames = new string[] { }; - SupportedAudioCodecs = new string[] { }; - SupportedVideoCodecs = new string[] { }; - SupportedSubtitleCodecs = new string[] { }; + PlayableStreamFileNames = Array.Empty<string>(); + SupportedAudioCodecs = Array.Empty<string>(); + SupportedVideoCodecs = Array.Empty<string>(); + SupportedSubtitleCodecs = Array.Empty<string>(); } public bool IsSegmentedLiveStream @@ -727,7 +727,6 @@ namespace MediaBrowser.Controller.MediaEncoding return count; } - protected void DisposeIsoMount() { if (IsoMount != null) @@ -738,7 +737,7 @@ namespace MediaBrowser.Controller.MediaEncoding } catch (Exception ex) { - _logger.ErrorException("Error disposing iso mount", ex); + _logger.LogError(ex, "Error disposing iso mount"); } IsoMount = null; diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs b/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs index 7333149c2..101748a5a 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs @@ -10,14 +10,10 @@ namespace MediaBrowser.Controller.MediaEncoding public class EncodingJobOptions : BaseEncodingJobOptions { public string OutputDirectory { get; set; } - - public string DeviceId { get; set; } public string ItemId { get; set; } public string MediaSourceId { get; set; } public string AudioCodec { get; set; } - public DeviceProfile DeviceProfile { get; set; } - public bool ReadInputAtNativeFramerate { get; set; } /// <summary> diff --git a/MediaBrowser.Controller/MediaEncoding/JobLogger.cs b/MediaBrowser.Controller/MediaEncoding/JobLogger.cs index 5f3f79d77..8bb826bd1 100644 --- a/MediaBrowser.Controller/MediaEncoding/JobLogger.cs +++ b/MediaBrowser.Controller/MediaEncoding/JobLogger.cs @@ -1,10 +1,10 @@ using MediaBrowser.Model.Extensions; -using MediaBrowser.Model.Logging; using System; using System.Globalization; using System.IO; using System.Linq; using System.Text; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.MediaEncoding { @@ -43,7 +43,7 @@ namespace MediaBrowser.Controller.MediaEncoding } catch (Exception ex) { - _logger.ErrorException("Error reading ffmpeg log", ex); + _logger.LogError(ex, "Error reading ffmpeg log"); } } diff --git a/MediaBrowser.Controller/MediaEncoding/MediaInfoRequest.cs b/MediaBrowser.Controller/MediaEncoding/MediaInfoRequest.cs index 1d7222801..b191f9905 100644 --- a/MediaBrowser.Controller/MediaEncoding/MediaInfoRequest.cs +++ b/MediaBrowser.Controller/MediaEncoding/MediaInfoRequest.cs @@ -18,7 +18,7 @@ namespace MediaBrowser.Controller.MediaEncoding public MediaInfoRequest() { - PlayableStreamFileNames = new string[] {}; + PlayableStreamFileNames = Array.Empty<string>(); } } } diff --git a/MediaBrowser.Controller/Net/AuthorizationInfo.cs b/MediaBrowser.Controller/Net/AuthorizationInfo.cs index a68060db5..848d8fa15 100644 --- a/MediaBrowser.Controller/Net/AuthorizationInfo.cs +++ b/MediaBrowser.Controller/Net/AuthorizationInfo.cs @@ -1,7 +1,6 @@ using MediaBrowser.Controller.Entities; using System; - namespace MediaBrowser.Controller.Net { public class AuthorizationInfo @@ -12,12 +11,7 @@ namespace MediaBrowser.Controller.Net /// <value>The user identifier.</value> public Guid UserId { get { - if (User == null) { - return Guid.Empty; - } - else { - return User.Id; - } + return User == null ? Guid.Empty : User.Id; } } diff --git a/MediaBrowser.Controller/Net/BasePeriodicWebSocketListener.cs b/MediaBrowser.Controller/Net/BasePeriodicWebSocketListener.cs index 7df96b777..31ec149bf 100644 --- a/MediaBrowser.Controller/Net/BasePeriodicWebSocketListener.cs +++ b/MediaBrowser.Controller/Net/BasePeriodicWebSocketListener.cs @@ -1,5 +1,4 @@ -using MediaBrowser.Model.Logging; -using MediaBrowser.Model.Net; +using MediaBrowser.Model.Net; using MediaBrowser.Model.Threading; using System.Collections.Generic; using System.Globalization; @@ -8,6 +7,7 @@ using System.Net.WebSockets; using System.Threading.Tasks; using System.Threading; using System; +using Microsoft.Extensions.Logging; namespace MediaBrowser.Controller.Net { @@ -114,7 +114,7 @@ namespace MediaBrowser.Controller.Net var cancellationTokenSource = new CancellationTokenSource(); - Logger.Debug("{1} Begin transmitting over websocket to {0}", message.Connection.RemoteEndPoint, GetType().Name); + Logger.LogDebug("{1} Begin transmitting over websocket to {0}", message.Connection.RemoteEndPoint, GetType().Name); var timer = SendOnTimer ? TimerFactory.Create(TimerCallback, message.Connection, Timeout.Infinite, Timeout.Infinite) : @@ -229,7 +229,7 @@ namespace MediaBrowser.Controller.Net } catch (Exception ex) { - Logger.ErrorException("Error sending web socket message {0}", ex, Name); + Logger.LogError(ex, "Error sending web socket message {Name}", Name); DisposeConnection(tuple); } } @@ -257,7 +257,7 @@ namespace MediaBrowser.Controller.Net /// <param name="connection">The connection.</param> private void DisposeConnection(Tuple<IWebSocketConnection, CancellationTokenSource, ITimer, TStateType> connection) { - Logger.Debug("{1} stop transmitting over websocket to {0}", connection.Item1.RemoteEndPoint, GetType().Name); + Logger.LogDebug("{1} stop transmitting over websocket to {0}", connection.Item1.RemoteEndPoint, GetType().Name); var timer = connection.Item3; diff --git a/MediaBrowser.Controller/Net/WebSocketConnectEventArgs.cs b/MediaBrowser.Controller/Net/WebSocketConnectEventArgs.cs index b200f883a..26abbc2d2 100644 --- a/MediaBrowser.Controller/Net/WebSocketConnectEventArgs.cs +++ b/MediaBrowser.Controller/Net/WebSocketConnectEventArgs.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Specialized; using MediaBrowser.Model.Services; namespace MediaBrowser.Controller.Net @@ -7,7 +6,6 @@ namespace MediaBrowser.Controller.Net /// <summary> /// Class WebSocketConnectEventArgs /// </summary> - public class WebSocketConnectingEventArgs : EventArgs { /// <summary> diff --git a/MediaBrowser.Controller/Playlists/IPlaylistManager.cs b/MediaBrowser.Controller/Playlists/IPlaylistManager.cs index 5e790111d..d481bf7c5 100644 --- a/MediaBrowser.Controller/Playlists/IPlaylistManager.cs +++ b/MediaBrowser.Controller/Playlists/IPlaylistManager.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using System.Threading.Tasks; using System; - namespace MediaBrowser.Controller.Playlists { public interface IPlaylistManager diff --git a/MediaBrowser.Controller/Playlists/Playlist.cs b/MediaBrowser.Controller/Playlists/Playlist.cs index 78614340a..642dfde80 100644 --- a/MediaBrowser.Controller/Playlists/Playlist.cs +++ b/MediaBrowser.Controller/Playlists/Playlist.cs @@ -15,14 +15,14 @@ namespace MediaBrowser.Controller.Playlists { public class Playlist : Folder, IHasShares { - public static string[] SupportedExtensions = new string[] { - - ".m3u", - ".m3u8", - ".pls", - ".wpl", - ".zpl" - }; + public static string[] SupportedExtensions = + { + ".m3u", + ".m3u8", + ".pls", + ".wpl", + ".zpl" + }; public Guid OwnerUserId { get; set; } @@ -30,7 +30,7 @@ namespace MediaBrowser.Controller.Playlists public Playlist() { - Shares = new Share[] { }; + Shares = Array.Empty<Share>(); } [IgnoreDataMember] @@ -131,7 +131,7 @@ namespace MediaBrowser.Controller.Playlists protected override Task ValidateChildrenInternal(IProgress<double> progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService) { - return Task.FromResult(true); + return Task.CompletedTask; } public override List<BaseItem> GetChildren(User user, bool includeLinkedChildren, InternalItemsQuery query) @@ -186,8 +186,7 @@ namespace MediaBrowser.Controller.Playlists private static IEnumerable<BaseItem> GetPlaylistItems(BaseItem item, User user, string mediaType, DtoOptions options) { - var musicGenre = item as MusicGenre; - if (musicGenre != null) + if (item is MusicGenre musicGenre) { return LibraryManager.GetItemList(new InternalItemsQuery(user) { @@ -199,8 +198,7 @@ namespace MediaBrowser.Controller.Playlists }); } - var musicArtist = item as MusicArtist; - if (musicArtist != null) + if (item is MusicArtist musicArtist) { return LibraryManager.GetItemList(new InternalItemsQuery(user) { @@ -212,8 +210,7 @@ namespace MediaBrowser.Controller.Playlists }); } - var folder = item as Folder; - if (folder != null) + if (item is Folder folder) { var query = new InternalItemsQuery(user) { diff --git a/MediaBrowser.Controller/Providers/AlbumInfo.cs b/MediaBrowser.Controller/Providers/AlbumInfo.cs index 74feb4ea2..b0b443fc0 100644 --- a/MediaBrowser.Controller/Providers/AlbumInfo.cs +++ b/MediaBrowser.Controller/Providers/AlbumInfo.cs @@ -22,7 +22,7 @@ namespace MediaBrowser.Controller.Providers { ArtistProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); SongInfos = new List<SongInfo>(); - AlbumArtists = EmptyStringArray; + AlbumArtists = Array.Empty<string>(); } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Controller/Providers/DirectoryService.cs b/MediaBrowser.Controller/Providers/DirectoryService.cs index 65192671e..9bb2f5bed 100644 --- a/MediaBrowser.Controller/Providers/DirectoryService.cs +++ b/MediaBrowser.Controller/Providers/DirectoryService.cs @@ -1,10 +1,7 @@ -using MediaBrowser.Model.Logging; +using Microsoft.Extensions.Logging; using System; -using System.Collections.Concurrent; using System.Collections.Generic; -using System.IO; using System.Linq; -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; namespace MediaBrowser.Controller.Providers @@ -26,18 +23,13 @@ namespace MediaBrowser.Controller.Providers _fileSystem = fileSystem; } - public DirectoryService(IFileSystem fileSystem) - : this(new NullLogger(), fileSystem) - { - } - public FileSystemMetadata[] GetFileSystemEntries(string path) { FileSystemMetadata[] entries; if (!_cache.TryGetValue(path, out entries)) { - //_logger.Debug("Getting files for " + path); + //_logger.LogDebug("Getting files for " + path); entries = _fileSystem.GetFileSystemEntries(path).ToArray(); diff --git a/MediaBrowser.Controller/Providers/ImageRefreshOptions.cs b/MediaBrowser.Controller/Providers/ImageRefreshOptions.cs index 942d25071..6cc8a691e 100644 --- a/MediaBrowser.Controller/Providers/ImageRefreshOptions.cs +++ b/MediaBrowser.Controller/Providers/ImageRefreshOptions.cs @@ -20,7 +20,7 @@ namespace MediaBrowser.Controller.Providers ImageRefreshMode = MetadataRefreshMode.Default; DirectoryService = directoryService; - ReplaceImages = new ImageType[] { }; + ReplaceImages = Array.Empty<ImageType>(); IsAutomated = true; } @@ -30,4 +30,4 @@ namespace MediaBrowser.Controller.Providers (ReplaceAllImages || ReplaceImages.Contains(type)); } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Controller/Providers/ItemLookupInfo.cs b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs index 98122e776..dc7a04135 100644 --- a/MediaBrowser.Controller/Providers/ItemLookupInfo.cs +++ b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs @@ -6,8 +6,6 @@ namespace MediaBrowser.Controller.Providers { public class ItemLookupInfo : IHasProviderIds { - protected static string[] EmptyStringArray = new string[] { }; - /// <summary> /// Gets or sets the name. /// </summary> diff --git a/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs b/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs index 3e34075a6..3dbcc5305 100644 --- a/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs +++ b/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs @@ -1,10 +1,8 @@ using System; -using System.Collections.Generic; using System.Linq; using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; -using MediaBrowser.Model.Logging; +using Microsoft.Extensions.Logging; using MediaBrowser.Model.Providers; namespace MediaBrowser.Controller.Providers @@ -24,11 +22,6 @@ namespace MediaBrowser.Controller.Providers public bool ForceSave { get; set; } public bool EnableRemoteContentProbe { get; set; } - public MetadataRefreshOptions(IFileSystem fileSystem) - : this(new DirectoryService(new NullLogger(), fileSystem)) - { - } - public MetadataRefreshOptions(IDirectoryService directoryService) : base(directoryService) { @@ -52,7 +45,7 @@ namespace MediaBrowser.Controller.Providers { if (RefreshPaths == null) { - RefreshPaths = new string[] { }; + RefreshPaths = Array.Empty<string>(); } RefreshPaths = copy.RefreshPaths.ToArray(); diff --git a/MediaBrowser.Controller/Providers/MetadataResult.cs b/MediaBrowser.Controller/Providers/MetadataResult.cs index f35d41ca4..271f784d7 100644 --- a/MediaBrowser.Controller/Providers/MetadataResult.cs +++ b/MediaBrowser.Controller/Providers/MetadataResult.cs @@ -74,4 +74,4 @@ namespace MediaBrowser.Controller.Providers return userData; } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Controller/Providers/SongInfo.cs b/MediaBrowser.Controller/Providers/SongInfo.cs index e3a6f5d37..61e950130 100644 --- a/MediaBrowser.Controller/Providers/SongInfo.cs +++ b/MediaBrowser.Controller/Providers/SongInfo.cs @@ -1,3 +1,4 @@ +using System; namespace MediaBrowser.Controller.Providers { @@ -9,8 +10,8 @@ namespace MediaBrowser.Controller.Providers public SongInfo() { - Artists = EmptyStringArray; - AlbumArtists = EmptyStringArray; + Artists = Array.Empty<string>(); + AlbumArtists = Array.Empty<string>(); } } -}
\ No newline at end of file +} diff --git a/MediaBrowser.Controller/Session/AuthenticationRequest.cs b/MediaBrowser.Controller/Session/AuthenticationRequest.cs index eb64db8c3..0489cf9b6 100644 --- a/MediaBrowser.Controller/Session/AuthenticationRequest.cs +++ b/MediaBrowser.Controller/Session/AuthenticationRequest.cs @@ -1,6 +1,5 @@ using System; - namespace MediaBrowser.Controller.Session { public class AuthenticationRequest @@ -9,7 +8,6 @@ namespace MediaBrowser.Controller.Session public Guid UserId { get; set; } public string Password { get; set; } public string PasswordSha1 { get; set; } - public string PasswordMd5 { get; set; } public string App { get; set; } public string AppVersion { get; set; } public string DeviceId { get; set; } diff --git a/MediaBrowser.Controller/Session/ISessionManager.cs b/MediaBrowser.Controller/Session/ISessionManager.cs index b7719e556..eca345cbc 100644 --- a/MediaBrowser.Controller/Session/ISessionManager.cs +++ b/MediaBrowser.Controller/Session/ISessionManager.cs @@ -5,7 +5,6 @@ using MediaBrowser.Controller.Security; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Events; using MediaBrowser.Model.Session; -using MediaBrowser.Model.Users; using System; using System.Collections.Generic; using System.Threading; diff --git a/MediaBrowser.Controller/Session/SessionInfo.cs b/MediaBrowser.Controller/Session/SessionInfo.cs index 869d3fcb0..77e786ead 100644 --- a/MediaBrowser.Controller/Session/SessionInfo.cs +++ b/MediaBrowser.Controller/Session/SessionInfo.cs @@ -1,11 +1,11 @@ -using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Logging; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Session; +using System; +using Microsoft.Extensions.Logging; using MediaBrowser.Model.Threading; using System.Linq; -using System; namespace MediaBrowser.Controller.Session { @@ -22,9 +22,9 @@ namespace MediaBrowser.Controller.Session _sessionManager = sessionManager; _logger = logger; - AdditionalUsers = new SessionUserInfo[] { }; + AdditionalUsers = Array.Empty<SessionUserInfo>(); PlayState = new PlayerStateInfo(); - SessionControllers = new ISessionController[] { }; + SessionControllers = Array.Empty<ISessionController>(); } public PlayerStateInfo PlayState { get; set; } @@ -49,7 +49,7 @@ namespace MediaBrowser.Controller.Session { if (Capabilities == null) { - return new string[] {}; + return Array.Empty<string>(); } return Capabilities.PlayableMediaTypes; } @@ -231,7 +231,7 @@ namespace MediaBrowser.Controller.Session } var newController = factory(this); - _logger.Debug("Creating new {0}", newController.GetType().Name); + _logger.LogDebug("Creating new {0}", newController.GetType().Name); controllers.Add(newController); SessionControllers = controllers.ToArray(); @@ -337,7 +337,7 @@ namespace MediaBrowser.Controller.Session } catch (Exception ex) { - _logger.ErrorException("Error reporting playback progress", ex); + _logger.LogError(ex, "Error reporting playback progress"); } } @@ -363,7 +363,7 @@ namespace MediaBrowser.Controller.Session StopAutomaticProgress(); var controllers = SessionControllers.ToList(); - SessionControllers = new ISessionController[] { }; + SessionControllers = Array.Empty<ISessionController>(); foreach (var controller in controllers) { @@ -371,7 +371,7 @@ namespace MediaBrowser.Controller.Session if (disposable != null) { - _logger.Debug("Disposing session controller {0}", disposable.GetType().Name); + _logger.LogDebug("Disposing session controller {0}", disposable.GetType().Name); try { @@ -379,7 +379,7 @@ namespace MediaBrowser.Controller.Session } catch (Exception ex) { - _logger.ErrorException("Error disposing session controller", ex); + _logger.LogError(ex, "Error disposing session controller"); } } } diff --git a/MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs b/MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs index 84bf28c05..daef6db79 100644 --- a/MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs +++ b/MediaBrowser.Controller/Subtitles/SubtitleSearchRequest.cs @@ -32,8 +32,8 @@ namespace MediaBrowser.Controller.Subtitles SearchAllProviders = true; ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - DisabledSubtitleFetchers = new string[] {}; - SubtitleFetcherOrder = new string[] {}; + DisabledSubtitleFetchers = Array.Empty<string>(); + SubtitleFetcherOrder = Array.Empty<string>(); } } -}
\ No newline at end of file +} |
