Post GPL cleanup

This commit is contained in:
Bond_009 2018-12-27 22:43:48 +01:00
parent c6618d0a5f
commit 340a2c6512
99 changed files with 327 additions and 1053 deletions

View File

@ -2,7 +2,6 @@
using MediaBrowser.Common.Net; using MediaBrowser.Common.Net;
using MediaBrowser.Controller; using MediaBrowser.Controller;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Connect;
using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;

View File

@ -55,12 +55,11 @@ namespace MediaBrowser.Api
return Request.Headers[name]; return Request.Headers[name];
} }
private static readonly string[] EmptyStringArray = Array.Empty<string>();
public static string[] SplitValue(string value, char delim) public static string[] SplitValue(string value, char delim)
{ {
if (string.IsNullOrWhiteSpace(value)) if (string.IsNullOrWhiteSpace(value))
{ {
return EmptyStringArray; return Array.Empty<string>();
} }
return value.Split(new[] { delim }, StringSplitOptions.RemoveEmptyEntries); return value.Split(new[] { delim }, StringSplitOptions.RemoveEmptyEntries);

View File

@ -1,4 +1,5 @@
using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Authentication;
using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.Net; using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Devices; using MediaBrowser.Controller.Devices;
@ -10,11 +11,9 @@ using MediaBrowser.Model.Connect;
using MediaBrowser.Model.Dto; using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Users; using MediaBrowser.Model.Users;
using System; using System;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Model.Services; using MediaBrowser.Model.Services;
using MediaBrowser.Controller.Authentication;
namespace MediaBrowser.Api namespace MediaBrowser.Api
{ {

View File

@ -1,8 +1,4 @@
using System; using System.Threading.Tasks;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Users; using MediaBrowser.Model.Users;

View File

@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
namespace MediaBrowser.Controller.Chapters namespace MediaBrowser.Controller.Chapters
@ -9,12 +8,6 @@ namespace MediaBrowser.Controller.Chapters
/// </summary> /// </summary>
public interface IChapterManager public interface IChapterManager
{ {
/// <summary>
/// Gets the chapters.
/// </summary>
/// <param name="itemId">The item identifier.</param>
/// <returns>List{ChapterInfo}.</returns>
/// <summary> /// <summary>
/// Saves the chapters. /// Saves the chapters.
/// </summary> /// </summary>

View File

@ -20,8 +20,8 @@ namespace MediaBrowser.Controller.Collections
public CollectionCreationOptions() public CollectionCreationOptions()
{ {
ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
ItemIdList = new string[] {}; ItemIdList = Array.Empty<string>();
UserIds = new Guid[] {}; UserIds = Array.Empty<Guid>();
} }
} }
} }

View File

@ -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);
}
}

View File

@ -2,7 +2,6 @@
using MediaBrowser.Model.Dto; using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Querying; using MediaBrowser.Model.Querying;
using System.Collections.Generic; using System.Collections.Generic;
using MediaBrowser.Controller.Sync;
namespace MediaBrowser.Controller.Dto namespace MediaBrowser.Controller.Dto
{ {

View File

@ -20,7 +20,7 @@ namespace MediaBrowser.Controller.Entities
{ {
public AggregateFolder() public AggregateFolder()
{ {
PhysicalLocationsList = new string[] { }; PhysicalLocationsList = Array.Empty<string>();
} }
[IgnoreDataMember] [IgnoreDataMember]

View File

@ -2,13 +2,8 @@
using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Dto; using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.MediaInfo;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading;
using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Persistence;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
@ -36,8 +31,8 @@ namespace MediaBrowser.Controller.Entities.Audio
public Audio() public Audio()
{ {
Artists = new string[] {}; Artists = Array.Empty<string>();
AlbumArtists = new string[] {}; AlbumArtists = Array.Empty<string>();
} }
public override double GetDefaultPrimaryImageAspectRatio() public override double GetDefaultPrimaryImageAspectRatio()

View File

@ -23,8 +23,8 @@ namespace MediaBrowser.Controller.Entities.Audio
public MusicAlbum() public MusicAlbum()
{ {
Artists = new string[] {}; Artists = Array.Empty<string>();
AlbumArtists = new string[] {}; AlbumArtists = Array.Empty<string>();
} }
[IgnoreDataMember] [IgnoreDataMember]

View File

@ -129,13 +129,12 @@ namespace MediaBrowser.Controller.Entities.Audio
return base.IsSaveLocalMetadataEnabled(); 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) protected override Task ValidateChildrenInternal(IProgress<double> progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
{ {
if (IsAccessedByName) if (IsAccessedByName)
{ {
// Should never get in here anyway // Should never get in here anyway
return _cachedTask; return Task.CompletedTask;
} }
return base.ValidateChildrenInternal(progress, cancellationToken, recursive, refreshChildMetadata, refreshOptions, directoryService); return base.ValidateChildrenInternal(progress, cancellationToken, recursive, refreshChildMetadata, refreshOptions, directoryService);

View File

@ -35,24 +35,24 @@ namespace MediaBrowser.Controller.Entities
/// </summary> /// </summary>
public abstract class BaseItem : IHasProviderIds, IHasLookupInfo<ItemLookupInfo> public abstract class BaseItem : IHasProviderIds, IHasLookupInfo<ItemLookupInfo>
{ {
protected static MetadataFields[] EmptyMetadataFieldsArray = new MetadataFields[] { }; protected static MetadataFields[] EmptyMetadataFieldsArray = Array.Empty<MetadataFields>();
protected static MediaUrl[] EmptyMediaUrlArray = new MediaUrl[] { }; protected static MediaUrl[] EmptyMediaUrlArray = Array.Empty<MediaUrl>();
protected static ItemImageInfo[] EmptyItemImageInfoArray = new ItemImageInfo[] { }; protected static ItemImageInfo[] EmptyItemImageInfoArray = Array.Empty<ItemImageInfo>();
public static readonly LinkedChild[] EmptyLinkedChildArray = new LinkedChild[] { }; public static readonly LinkedChild[] EmptyLinkedChildArray = Array.Empty<LinkedChild>();
protected BaseItem() protected BaseItem()
{ {
ThemeSongIds = new Guid[] {}; ThemeSongIds = Array.Empty<Guid>();
ThemeVideoIds = new Guid[] {}; ThemeVideoIds = Array.Empty<Guid>();
Tags = new string[] {}; Tags = Array.Empty<string>();
Genres = new string[] {}; Genres = Array.Empty<string>();
Studios = new string[] {}; Studios = Array.Empty<string>();
ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
LockedFields = EmptyMetadataFieldsArray; LockedFields = EmptyMetadataFieldsArray;
ImageInfos = EmptyItemImageInfoArray; ImageInfos = EmptyItemImageInfoArray;
ProductionLocations = new string[] {}; ProductionLocations = Array.Empty<string>();
RemoteTrailers = new MediaUrl[] { }; RemoteTrailers = Array.Empty<MediaUrl>();
ExtraIds = new Guid[] {}; ExtraIds = Array.Empty<Guid>();
} }
public static readonly char[] SlugReplaceChars = { '?', '/', '&' }; public static readonly char[] SlugReplaceChars = { '?', '/', '&' };
@ -62,7 +62,6 @@ namespace MediaBrowser.Controller.Entities
/// The supported image extensions /// The supported image extensions
/// </summary> /// </summary>
public static readonly string[] SupportedImageExtensions = { ".png", ".jpg", ".jpeg", ".tbn", ".gif" }; public static readonly string[] SupportedImageExtensions = { ".png", ".jpg", ".jpeg", ".tbn", ".gif" };
public static readonly List<string> SupportedImageExtensionsList = SupportedImageExtensions.ToList();
/// <summary> /// <summary>
/// The trailer folder name /// The trailer folder name
@ -2895,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); 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 MediaUrl[] RemoteTrailers { get; set; }
public IEnumerable<BaseItem> GetExtras() public IEnumerable<BaseItem> GetExtras()
@ -2913,7 +2916,8 @@ namespace MediaBrowser.Controller.Entities
} }
public virtual bool IsHD { public virtual bool IsHD {
get{ get
{
return Height >= 720; return Height >= 720;
} }
} }
@ -2922,12 +2926,14 @@ namespace MediaBrowser.Controller.Entities
public int Width { get; set; } public int Width { get; set; }
public int Height { get; set; } public int Height { get; set; }
public Guid[] ExtraIds { get; set; } public Guid[] ExtraIds { get; set; }
public virtual long GetRunTimeTicksForPlayState() { public virtual long GetRunTimeTicksForPlayState()
{
return RunTimeTicks ?? 0; return RunTimeTicks ?? 0;
} }
// what does this do? // what does this do?
public static ExtraType[] DisplayExtraTypes = new[] {Model.Entities.ExtraType.ThemeSong, Model.Entities.ExtraType.ThemeVideo }; public static ExtraType[] DisplayExtraTypes = new[] {Model.Entities.ExtraType.ThemeSong, Model.Entities.ExtraType.ThemeVideo };
public virtual bool SupportsExternalTransfer { public virtual bool SupportsExternalTransfer
{
get { get {
return false; return false;
} }

View File

@ -31,18 +31,10 @@ namespace MediaBrowser.Controller.Entities
public CollectionFolder() public CollectionFolder()
{ {
PhysicalLocationsList = new string[] { }; PhysicalLocationsList = Array.Empty<string>();
PhysicalFolderIds = new Guid[] { }; PhysicalFolderIds = Array.Empty<Guid>();
} }
//public override double? GetDefaultPrimaryImageAspectRatio()
//{
// double value = 16;
// value /= 9;
// return value;
//}
[IgnoreDataMember] [IgnoreDataMember]
public override bool SupportsPlayedStatus public override bool SupportsPlayedStatus
{ {
@ -339,7 +331,7 @@ namespace MediaBrowser.Controller.Entities
/// <returns>Task.</returns> /// <returns>Task.</returns>
protected override Task ValidateChildrenInternal(IProgress<double> progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService) 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> /// <summary>

View File

@ -12,10 +12,10 @@ namespace MediaBrowser.Controller.Entities
{ {
public Game() public Game()
{ {
MultiPartGameFiles = new string[] {}; MultiPartGameFiles = Array.Empty<string>();
RemoteTrailers = EmptyMediaUrlArray; RemoteTrailers = EmptyMediaUrlArray;
LocalTrailerIds = new Guid[] {}; LocalTrailerIds = Array.Empty<Guid>();
RemoteTrailerIds = new Guid[] {}; RemoteTrailerIds = Array.Empty<Guid>();
} }
public Guid[] LocalTrailerIds { get; set; } public Guid[] LocalTrailerIds { get; set; }
@ -38,12 +38,6 @@ namespace MediaBrowser.Controller.Entities
get { return false; } get { return false; }
} }
/// <summary>
/// Gets or sets the remote trailers.
/// </summary>
/// <value>The remote trailers.</value>
public MediaUrl[] RemoteTrailers { get; set; }
/// <summary> /// <summary>
/// Gets the type of the media. /// Gets the type of the media.
/// </summary> /// </summary>

View File

@ -4,7 +4,6 @@ using System.Collections.Generic;
using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Configuration;
using System.Linq; using System.Linq;
using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Dto;
using MediaBrowser.Model.Querying;
namespace MediaBrowser.Controller.Entities namespace MediaBrowser.Controller.Entities
{ {
@ -48,7 +47,6 @@ namespace MediaBrowser.Controller.Entities
public string PresentationUniqueKey { get; set; } public string PresentationUniqueKey { get; set; }
public string Path { get; set; } public string Path { get; set; }
public string PathNotStartsWith { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string Person { get; set; } public string Person { get; set; }
@ -160,8 +158,6 @@ namespace MediaBrowser.Controller.Entities
public bool EnableGroupByMetadataKey { get; set; } public bool EnableGroupByMetadataKey { get; set; }
public bool? HasChapterImages { 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 ValueTuple<string, SortOrder>[] OrderBy { get; set; }
public DateTime? MinDateCreated { get; set; } public DateTime? MinDateCreated { get; set; }
@ -180,44 +176,44 @@ namespace MediaBrowser.Controller.Entities
public InternalItemsQuery() public InternalItemsQuery()
{ {
AlbumArtistIds = new Guid[] {}; AlbumArtistIds = Array.Empty<Guid>();
AlbumIds = new Guid[] {}; AlbumIds = Array.Empty<Guid>();
AncestorIds = new Guid[] {}; AncestorIds = Array.Empty<Guid>();
ArtistIds = new Guid[] {}; ArtistIds = Array.Empty<Guid>();
BlockUnratedItems = new UnratedItem[] { }; BlockUnratedItems = Array.Empty<UnratedItem>();
BoxSetLibraryFolders = new Guid[] {}; BoxSetLibraryFolders = Array.Empty<Guid>();
ChannelIds = new Guid[] {}; ChannelIds = Array.Empty<Guid>();
ContributingArtistIds = new Guid[] {}; ContributingArtistIds = Array.Empty<Guid>();
DtoOptions = new DtoOptions(); DtoOptions = new DtoOptions();
EnableTotalRecordCount = true; EnableTotalRecordCount = true;
ExcludeArtistIds = new Guid[] {}; ExcludeArtistIds = Array.Empty<Guid>();
ExcludeInheritedTags = new string[] {}; ExcludeInheritedTags = Array.Empty<string>();
ExcludeItemIds = new Guid[] {}; ExcludeItemIds = Array.Empty<Guid>();
ExcludeItemTypes = new string[] {}; ExcludeItemTypes = Array.Empty<string>();
ExcludeProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); ExcludeProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
ExcludeTags = new string[] {}; ExcludeTags = Array.Empty<string>();
GenreIds = new Guid[] {}; GenreIds = Array.Empty<Guid>();
Genres = new string[] {}; Genres = Array.Empty<string>();
GroupByPresentationUniqueKey = true; GroupByPresentationUniqueKey = true;
HasAnyProviderId = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); HasAnyProviderId = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
ImageTypes = new ImageType[] { }; ImageTypes = Array.Empty<ImageType>();
IncludeItemTypes = new string[] {}; IncludeItemTypes = Array.Empty<string>();
ItemIds = new Guid[] {}; ItemIds = Array.Empty<Guid>();
MediaTypes = new string[] {}; MediaTypes = Array.Empty<string>();
MinSimilarityScore = 20; MinSimilarityScore = 20;
OfficialRatings = new string[] {}; OfficialRatings = Array.Empty<string>();
OrderBy = Array.Empty<ValueTuple<string, SortOrder>>(); OrderBy = Array.Empty<ValueTuple<string, SortOrder>>();
PersonIds = new Guid[] {}; PersonIds = Array.Empty<Guid>();
PersonTypes = new string[] {}; PersonTypes = Array.Empty<string>();
PresetViews = new string[] {}; PresetViews = Array.Empty<string>();
SeriesStatuses = new SeriesStatus[] { }; SeriesStatuses = Array.Empty<SeriesStatus>();
SourceTypes = new SourceType[] { }; SourceTypes = Array.Empty<SourceType>();
StudioIds = new Guid[] {}; StudioIds = Array.Empty<Guid>();
Tags = new string[] {}; Tags = Array.Empty<string>();
TopParentIds = new Guid[] {}; TopParentIds = Array.Empty<Guid>();
TrailerTypes = new TrailerType[] { }; TrailerTypes = Array.Empty<TrailerType>();
VideoTypes = new VideoType[] { }; VideoTypes = Array.Empty<VideoType>();
Years = new int[] { }; Years = Array.Empty<int>();
} }
public InternalItemsQuery(User user) public InternalItemsQuery(User user)

View File

@ -14,8 +14,8 @@ namespace MediaBrowser.Controller.Entities
public InternalPeopleQuery() public InternalPeopleQuery()
{ {
PersonTypes = new string[] { }; PersonTypes = Array.Empty<string>();
ExcludePersonTypes = new string[] { }; ExcludePersonTypes = Array.Empty<string>();
} }
} }
} }

View File

@ -19,8 +19,8 @@ namespace MediaBrowser.Controller.Entities.Movies
public BoxSet() public BoxSet()
{ {
RemoteTrailers = EmptyMediaUrlArray; RemoteTrailers = EmptyMediaUrlArray;
LocalTrailerIds = new Guid[] { }; LocalTrailerIds = Array.Empty<Guid>();
RemoteTrailerIds = new Guid[] { }; RemoteTrailerIds = Array.Empty<Guid>();
DisplayOrder = ItemSortBy.PremiereDate; DisplayOrder = ItemSortBy.PremiereDate;
} }
@ -52,12 +52,6 @@ namespace MediaBrowser.Controller.Entities.Movies
public Guid[] LocalTrailerIds { get; set; } public Guid[] LocalTrailerIds { get; set; }
public Guid[] RemoteTrailerIds { get; set; } public Guid[] RemoteTrailerIds { get; set; }
/// <summary>
/// Gets or sets the remote trailers.
/// </summary>
/// <value>The remote trailers.</value>
public MediaUrl[] RemoteTrailers { get; set; }
/// <summary> /// <summary>
/// Gets or sets the display order. /// Gets or sets the display order.
/// </summary> /// </summary>
@ -70,12 +64,7 @@ namespace MediaBrowser.Controller.Entities.Movies
} }
public override double GetDefaultPrimaryImageAspectRatio() public override double GetDefaultPrimaryImageAspectRatio()
{ => 2 / 3;
double value = 2;
value /= 3;
return value;
}
public override UnratedItem GetBlockUnratedType() public override UnratedItem GetBlockUnratedType()
{ {
@ -254,7 +243,7 @@ namespace MediaBrowser.Controller.Entities.Movies
return FlattenItems(boxset.GetLinkedChildren(), expandedFolders); return FlattenItems(boxset.GetLinkedChildren(), expandedFolders);
} }
return new BaseItem[] { }; return Array.Empty<BaseItem>();
} }
return new[] { item }; return new[] { item };

View File

@ -6,8 +6,6 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
@ -32,8 +30,6 @@ namespace MediaBrowser.Controller.Entities.Movies
public Guid[] LocalTrailerIds { get; set; } public Guid[] LocalTrailerIds { get; set; }
public Guid[] RemoteTrailerIds { get; set; } public Guid[] RemoteTrailerIds { get; set; }
public MediaUrl[] RemoteTrailers { get; set; }
/// <summary> /// <summary>
/// Gets or sets the name of the TMDB collection. /// Gets or sets the name of the TMDB collection.
/// </summary> /// </summary>
@ -55,10 +51,7 @@ namespace MediaBrowser.Controller.Entities.Movies
return 0; return 0;
} }
double value = 2; return 2 / 3;
value /= 3;
return value;
} }
protected override async Task<bool> RefreshedOwnedItems(MetadataRefreshOptions options, List<FileSystemMetadata> fileSystemChildren, CancellationToken cancellationToken) protected override async Task<bool> RefreshedOwnedItems(MetadataRefreshOptions options, List<FileSystemMetadata> fileSystemChildren, CancellationToken cancellationToken)

View File

@ -14,7 +14,7 @@ namespace MediaBrowser.Controller.Entities
public MusicVideo() public MusicVideo()
{ {
Artists = new string[] {}; Artists = Array.Empty<string>();
} }
[IgnoreDataMember] [IgnoreDataMember]

View File

@ -58,6 +58,7 @@ namespace MediaBrowser.Controller.Entities
public override double GetDefaultPrimaryImageAspectRatio() public override double GetDefaultPrimaryImageAspectRatio()
{ {
// REVIEW: @bond
if (Width.HasValue && Height.HasValue) if (Width.HasValue && Height.HasValue)
{ {
double width = Width.Value; double width = Width.Value;
@ -85,8 +86,8 @@ namespace MediaBrowser.Controller.Entities
return base.GetDefaultPrimaryImageAspectRatio(); return base.GetDefaultPrimaryImageAspectRatio();
} }
public int? Width { get; set; } public new int? Width { get; set; }
public int? Height { get; set; } public new int? Height { get; set; }
public string CameraMake { get; set; } public string CameraMake { get; set; }
public string CameraModel { get; set; } public string CameraModel { get; set; }
public string Software { get; set; } public string Software { get; set; }

View File

@ -1,4 +1,4 @@
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using System; using System;
@ -19,13 +19,12 @@ namespace MediaBrowser.Controller.Entities.TV
public Episode() public Episode()
{ {
RemoteTrailers = EmptyMediaUrlArray; RemoteTrailers = EmptyMediaUrlArray;
LocalTrailerIds = new Guid[] {}; LocalTrailerIds = Array.Empty<Guid>();
RemoteTrailerIds = new Guid[] {}; RemoteTrailerIds = Array.Empty<Guid>();
} }
public Guid[] LocalTrailerIds { get; set; } public Guid[] LocalTrailerIds { get; set; }
public Guid[] RemoteTrailerIds { get; set; } public Guid[] RemoteTrailerIds { get; set; }
public MediaUrl[] RemoteTrailers { get; set; }
/// <summary> /// <summary>
/// Gets the season in which it aired. /// Gets the season in which it aired.
@ -112,10 +111,7 @@ namespace MediaBrowser.Controller.Entities.TV
return 0; return 0;
} }
double value = 16; return 16 / 9;
value /= 9;
return value;
} }
public override List<string> GetUserDataKeys() public override List<string> GetUserDataKeys()

View File

@ -102,10 +102,11 @@ namespace MediaBrowser.Controller.Entities.TV
get get
{ {
var seriesId = SeriesId; var seriesId = SeriesId;
if (seriesId.Equals(Guid.Empty)) { if (seriesId == Guid.Empty)
{
seriesId = FindSeriesId(); 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() public Guid FindSeriesId()
{ {
var series = FindParent<Series>(); var series = FindParent<Series>();
return series == null ? Guid.Empty: series.Id; return series == null ? Guid.Empty : series.Id;
} }
/// <summary> /// <summary>

View File

@ -23,9 +23,9 @@ namespace MediaBrowser.Controller.Entities.TV
public Series() public Series()
{ {
RemoteTrailers = EmptyMediaUrlArray; RemoteTrailers = EmptyMediaUrlArray;
LocalTrailerIds = new Guid[] {}; LocalTrailerIds = Array.Empty<Guid>();
RemoteTrailerIds = new Guid[] {}; RemoteTrailerIds = Array.Empty<Guid>();
AirDays = new DayOfWeek[] { }; AirDays = Array.Empty<DayOfWeek>();
} }
public DayOfWeek[] AirDays { get; set; } public DayOfWeek[] AirDays { get; set; }
@ -73,8 +73,6 @@ namespace MediaBrowser.Controller.Entities.TV
public Guid[] LocalTrailerIds { get; set; } public Guid[] LocalTrailerIds { get; set; }
public Guid[] RemoteTrailerIds { get; set; } public Guid[] RemoteTrailerIds { get; set; }
public MediaUrl[] RemoteTrailers { get; set; }
/// <summary> /// <summary>
/// airdate, dvd or absolute /// airdate, dvd or absolute
/// </summary> /// </summary>

View File

@ -15,18 +15,13 @@ namespace MediaBrowser.Controller.Entities
{ {
public Trailer() public Trailer()
{ {
TrailerTypes = new TrailerType[] { }; TrailerTypes = Array.Empty<TrailerType>();
} }
public TrailerType[] TrailerTypes { get; set; } public TrailerType[] TrailerTypes { get; set; }
public override double GetDefaultPrimaryImageAspectRatio() public override double GetDefaultPrimaryImageAspectRatio()
{ => 2 / 3;
double value = 2;
value /= 3;
return value;
}
public override UnratedItem GetBlockUnratedType() public override UnratedItem GetBlockUnratedType()
{ {

View File

@ -1,21 +1,18 @@
using MediaBrowser.Controller.Playlists; using MediaBrowser.Controller.Playlists;
using MediaBrowser.Controller.TV; using MediaBrowser.Controller.TV;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Querying; using MediaBrowser.Model.Querying;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Collections;
namespace MediaBrowser.Controller.Entities namespace MediaBrowser.Controller.Entities
{ {
public class UserView : Folder, IHasCollectionType public class UserView : Folder, IHasCollectionType
{ {
public string ViewType { get; set; } public string ViewType { get; set; }
public Guid DisplayParentId { get; set; } public new Guid DisplayParentId { get; set; }
public Guid? UserId { 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) public override int GetChildCount(User user)
{ {
return GetChildren(user, true).Count; return GetChildren(user, true).Count;
@ -161,8 +150,8 @@ namespace MediaBrowser.Controller.Entities
public static bool IsEligibleForGrouping(Folder folder) public static bool IsEligibleForGrouping(Folder folder)
{ {
var collectionFolder = folder as ICollectionFolder; return folder is ICollectionFolder collectionFolder
return collectionFolder != null && IsEligibleForGrouping(collectionFolder.CollectionType); && IsEligibleForGrouping(collectionFolder.CollectionType);
} }
private static string[] ViewTypesEligibleForGrouping = new string[] 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) 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] [IgnoreDataMember]

View File

@ -10,7 +10,6 @@ using System.Globalization;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.Extensions;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Extensions;
@ -132,8 +131,6 @@ namespace MediaBrowser.Controller.Entities
public bool HasSubtitles { get; set; } public bool HasSubtitles { get; set; }
public bool IsPlaceHolder { get; set; } public bool IsPlaceHolder { get; set; }
public bool IsShortcut { get; set; }
public string ShortcutPath { get; set; }
/// <summary> /// <summary>
/// Gets or sets the default index of the video stream. /// Gets or sets the default index of the video stream.
@ -173,7 +170,7 @@ namespace MediaBrowser.Controller.Entities
} }
else else
{ {
return new string[] {}; return Array.Empty<string>();
} }
return mediaEncoder.GetPlayableStreamFileNames(Path, videoType); return mediaEncoder.GetPlayableStreamFileNames(Path, videoType);
} }
@ -186,9 +183,9 @@ namespace MediaBrowser.Controller.Entities
public Video() public Video()
{ {
AdditionalParts = new string[] {}; AdditionalParts = Array.Empty<string>();
LocalAlternateVersions = new string[] {}; LocalAlternateVersions = Array.Empty<string>();
SubtitleFiles = new string[] {}; SubtitleFiles = Array.Empty<string>();
LinkedAlternateVersions = EmptyLinkedChildArray; LinkedAlternateVersions = EmptyLinkedChildArray;
} }
@ -215,10 +212,10 @@ namespace MediaBrowser.Controller.Entities
{ {
if (!string.IsNullOrEmpty(PrimaryVersionId)) if (!string.IsNullOrEmpty(PrimaryVersionId))
{ {
var item = LibraryManager.GetItemById(PrimaryVersionId) as Video; var item = LibraryManager.GetItemById(PrimaryVersionId);
if (item != null) if (item is Video video)
{ {
return item.MediaSourceCount; return video.MediaSourceCount;
} }
} }
return LinkedAlternateVersions.Length + LocalAlternateVersions.Length + 1; return LinkedAlternateVersions.Length + LocalAlternateVersions.Length + 1;
@ -366,7 +363,7 @@ namespace MediaBrowser.Controller.Entities
/// Gets the additional parts. /// Gets the additional parts.
/// </summary> /// </summary>
/// <returns>IEnumerable{Video}.</returns> /// <returns>IEnumerable{Video}.</returns>
public IEnumerable<Video> GetAdditionalParts() public IOrderedEnumerable<Video> GetAdditionalParts()
{ {
return GetAdditionalPartIds() return GetAdditionalPartIds()
.Select(i => LibraryManager.GetItemById(i)) .Select(i => LibraryManager.GetItemById(i))
@ -420,8 +417,7 @@ namespace MediaBrowser.Controller.Entities
{ {
var updateType = base.UpdateFromResolvedItem(newItem); var updateType = base.UpdateFromResolvedItem(newItem);
var newVideo = newItem as Video; if (newItem is Video newVideo)
if (newVideo != null)
{ {
if (!AdditionalParts.SequenceEqual(newVideo.AdditionalParts, StringComparer.Ordinal)) if (!AdditionalParts.SequenceEqual(newVideo.AdditionalParts, StringComparer.Ordinal))
{ {
@ -463,7 +459,7 @@ namespace MediaBrowser.Controller.Entities
.Select(i => i.FullName) .Select(i => i.FullName)
.ToArray(); .ToArray();
} }
return new string[] {}; return Array.Empty<string>();
} }
/// <summary> /// <summary>
@ -618,9 +614,5 @@ namespace MediaBrowser.Controller.Entities
return list; return list;
} }
public static bool IsHD (Video video) {
return video.Height >= 720;
}
} }
} }

View File

@ -5,7 +5,6 @@ using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using System; using System;
using System.Threading; using System.Threading;
using MediaBrowser.Model.Querying;
namespace MediaBrowser.Controller.Library namespace MediaBrowser.Controller.Library
{ {

View File

@ -2,10 +2,7 @@
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
@ -169,6 +166,7 @@ namespace MediaBrowser.Controller.Library
AdditionalLocations.Add(path); AdditionalLocations.Add(path);
} }
// REVIEW: @bond
/// <summary> /// <summary>
/// Gets the physical locations. /// Gets the physical locations.
/// </summary> /// </summary>
@ -177,7 +175,7 @@ namespace MediaBrowser.Controller.Library
{ {
get 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(); return AdditionalLocations == null ? paths : paths.Concat(AdditionalLocations).ToArray();
} }
} }
@ -261,7 +259,7 @@ namespace MediaBrowser.Controller.Library
} }
/// <summary> /// <summary>
/// Equalses the specified args. /// Equals the specified args.
/// </summary> /// </summary>
/// <param name="args">The args.</param> /// <param name="args">The args.</param>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>

View File

@ -47,50 +47,19 @@ namespace MediaBrowser.Controller.LiveTv
return list; return list;
} }
public static double GetDefaultPrimaryImageAspectRatio(IHasProgramAttributes item)
{
var serviceName = item.ServiceName;
if (item.IsMovie)
{
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;
}
}
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;
}
}
}
private static string EmbyServiceName = "Emby"; private static string EmbyServiceName = "Emby";
public override double GetDefaultPrimaryImageAspectRatio() public override double GetDefaultPrimaryImageAspectRatio()
{ {
return GetDefaultPrimaryImageAspectRatio(this); var serviceName = ServiceName;
if (string.Equals(serviceName, EmbyServiceName, StringComparison.OrdinalIgnoreCase) || string.Equals(serviceName, "Next Pvr", StringComparison.OrdinalIgnoreCase))
{
return 2 / 3;
}
else
{
return 16 / 9;
}
} }
[IgnoreDataMember] [IgnoreDataMember]

View File

@ -10,11 +10,11 @@ namespace MediaBrowser.Controller.LiveTv
{ {
public TimerInfo() public TimerInfo()
{ {
Genres = new string[] { }; Genres = Array.Empty<string>();
KeepUntil = KeepUntil.UntilDeleted; KeepUntil = KeepUntil.UntilDeleted;
ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
SeriesProviderIds = 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; } public Dictionary<string, string> ProviderIds { get; set; }

View File

@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Threading;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dlna;
@ -12,8 +11,6 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.MediaInfo;
using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Extensions;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Model.Reflection;
namespace MediaBrowser.Controller.MediaEncoding namespace MediaBrowser.Controller.MediaEncoding
{ {
@ -343,19 +340,19 @@ namespace MediaBrowser.Controller.MediaEncoding
public int GetVideoProfileScore(string profile) public int GetVideoProfileScore(string profile)
{ {
var list = new [] string[] list =
{ {
"Constrained Baseline", "ConstrainedBaseline",
"Baseline", "Baseline",
"Extended", "Extended",
"Main", "Main",
"High", "High",
"Progressive High", "ProgressiveHigh",
"Constrained High" "ConstrainedHigh"
}; };
// strip spaces because they may be stripped out on the query string // 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) public string GetInputPathArgument(EncodingJobInfo state)
@ -516,19 +513,13 @@ namespace MediaBrowser.Controller.MediaEncoding
public string NormalizeTranscodingLevel(string videoCodec, string level) 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 // 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)
if (string.Equals(videoCodec, "h264", StringComparison.OrdinalIgnoreCase)) && requestLevel > 41)
{
if (requestLevel > 41)
{ {
return "41"; return "41";
} }
}
}
return level; return level;
} }
@ -623,7 +614,7 @@ namespace MediaBrowser.Controller.MediaEncoding
// h264 (h264_qsv) // h264 (h264_qsv)
else if (string.Equals(videoEncoder, "h264_qsv", StringComparison.OrdinalIgnoreCase)) 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)) if (valid_h264_qsv.Contains(encodingOptions.H264Preset, StringComparer.OrdinalIgnoreCase))
{ {
@ -1958,12 +1949,12 @@ namespace MediaBrowser.Controller.MediaEncoding
} }
else else
{ {
state.PlayableStreamFileNames = new string[] { }; state.PlayableStreamFileNames = Array.Empty<string>();
} }
} }
else else
{ {
state.PlayableStreamFileNames = new string[] { }; state.PlayableStreamFileNames = Array.Empty<string>();
} }
if (mediaSource.Timestamp.HasValue) if (mediaSource.Timestamp.HasValue)

View File

@ -207,7 +207,7 @@ namespace MediaBrowser.Controller.MediaEncoding
} }
} }
return new string[] { }; return Array.Empty<string>();
} }
public string GetRequestedLevel(string codec) public string GetRequestedLevel(string codec)
@ -317,10 +317,10 @@ namespace MediaBrowser.Controller.MediaEncoding
_logger = logger; _logger = logger;
TranscodingType = jobType; TranscodingType = jobType;
RemoteHttpHeaders = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); RemoteHttpHeaders = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
PlayableStreamFileNames = new string[] { }; PlayableStreamFileNames = Array.Empty<string>();
SupportedAudioCodecs = new string[] { }; SupportedAudioCodecs = Array.Empty<string>();
SupportedVideoCodecs = new string[] { }; SupportedVideoCodecs = Array.Empty<string>();
SupportedSubtitleCodecs = new string[] { }; SupportedSubtitleCodecs = Array.Empty<string>();
} }
public bool IsSegmentedLiveStream public bool IsSegmentedLiveStream

View File

@ -10,7 +10,6 @@ namespace MediaBrowser.Controller.MediaEncoding
public class EncodingJobOptions : BaseEncodingJobOptions public class EncodingJobOptions : BaseEncodingJobOptions
{ {
public string OutputDirectory { get; set; } public string OutputDirectory { get; set; }
public string ItemId { get; set; } public string ItemId { get; set; }
public string MediaSourceId { get; set; } public string MediaSourceId { get; set; }
public string AudioCodec { get; set; } public string AudioCodec { get; set; }

View File

@ -18,7 +18,7 @@ namespace MediaBrowser.Controller.MediaEncoding
public MediaInfoRequest() public MediaInfoRequest()
{ {
PlayableStreamFileNames = new string[] {}; PlayableStreamFileNames = Array.Empty<string>();
} }
} }
} }

View File

@ -1,7 +1,6 @@
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using System; using System;
namespace MediaBrowser.Controller.Net namespace MediaBrowser.Controller.Net
{ {
public class AuthorizationInfo public class AuthorizationInfo
@ -12,12 +11,7 @@ namespace MediaBrowser.Controller.Net
/// <value>The user identifier.</value> /// <value>The user identifier.</value>
public Guid UserId { public Guid UserId {
get { get {
if (User == null) { return User == null ? Guid.Empty : User.Id;
return Guid.Empty;
}
else {
return User.Id;
}
} }
} }

View File

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Specialized;
using MediaBrowser.Model.Services; using MediaBrowser.Model.Services;
namespace MediaBrowser.Controller.Net namespace MediaBrowser.Controller.Net
@ -7,7 +6,6 @@ namespace MediaBrowser.Controller.Net
/// <summary> /// <summary>
/// Class WebSocketConnectEventArgs /// Class WebSocketConnectEventArgs
/// </summary> /// </summary>
public class WebSocketConnectingEventArgs : EventArgs public class WebSocketConnectingEventArgs : EventArgs
{ {
/// <summary> /// <summary>

View File

@ -4,7 +4,6 @@ using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using System; using System;
namespace MediaBrowser.Controller.Playlists namespace MediaBrowser.Controller.Playlists
{ {
public interface IPlaylistManager public interface IPlaylistManager

View File

@ -15,8 +15,8 @@ namespace MediaBrowser.Controller.Playlists
{ {
public class Playlist : Folder, IHasShares public class Playlist : Folder, IHasShares
{ {
public static string[] SupportedExtensions = new string[] { public static string[] SupportedExtensions =
{
".m3u", ".m3u",
".m3u8", ".m3u8",
".pls", ".pls",
@ -30,7 +30,7 @@ namespace MediaBrowser.Controller.Playlists
public Playlist() public Playlist()
{ {
Shares = new Share[] { }; Shares = Array.Empty<Share>();
} }
[IgnoreDataMember] [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) 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) 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) private static IEnumerable<BaseItem> GetPlaylistItems(BaseItem item, User user, string mediaType, DtoOptions options)
{ {
var musicGenre = item as MusicGenre; if (item is MusicGenre musicGenre)
if (musicGenre != null)
{ {
return LibraryManager.GetItemList(new InternalItemsQuery(user) return LibraryManager.GetItemList(new InternalItemsQuery(user)
{ {
@ -199,8 +198,7 @@ namespace MediaBrowser.Controller.Playlists
}); });
} }
var musicArtist = item as MusicArtist; if (item is MusicArtist musicArtist)
if (musicArtist != null)
{ {
return LibraryManager.GetItemList(new InternalItemsQuery(user) return LibraryManager.GetItemList(new InternalItemsQuery(user)
{ {
@ -212,8 +210,7 @@ namespace MediaBrowser.Controller.Playlists
}); });
} }
var folder = item as Folder; if (item is Folder folder)
if (folder != null)
{ {
var query = new InternalItemsQuery(user) var query = new InternalItemsQuery(user)
{ {

View File

@ -22,7 +22,7 @@ namespace MediaBrowser.Controller.Providers
{ {
ArtistProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); ArtistProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
SongInfos = new List<SongInfo>(); SongInfos = new List<SongInfo>();
AlbumArtists = EmptyStringArray; AlbumArtists = Array.Empty<string>();
} }
} }
} }

View File

@ -20,7 +20,7 @@ namespace MediaBrowser.Controller.Providers
ImageRefreshMode = MetadataRefreshMode.Default; ImageRefreshMode = MetadataRefreshMode.Default;
DirectoryService = directoryService; DirectoryService = directoryService;
ReplaceImages = new ImageType[] { }; ReplaceImages = Array.Empty<ImageType>();
IsAutomated = true; IsAutomated = true;
} }

View File

@ -6,8 +6,6 @@ namespace MediaBrowser.Controller.Providers
{ {
public class ItemLookupInfo : IHasProviderIds public class ItemLookupInfo : IHasProviderIds
{ {
protected static string[] EmptyStringArray = new string[] { };
/// <summary> /// <summary>
/// Gets or sets the name. /// Gets or sets the name.
/// </summary> /// </summary>

View File

@ -1,8 +1,6 @@
using System; using System;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
@ -47,7 +45,7 @@ namespace MediaBrowser.Controller.Providers
{ {
if (RefreshPaths == null) if (RefreshPaths == null)
{ {
RefreshPaths = new string[] { }; RefreshPaths = Array.Empty<string>();
} }
RefreshPaths = copy.RefreshPaths.ToArray(); RefreshPaths = copy.RefreshPaths.ToArray();

View File

@ -1,3 +1,4 @@
using System;
namespace MediaBrowser.Controller.Providers namespace MediaBrowser.Controller.Providers
{ {
@ -9,8 +10,8 @@ namespace MediaBrowser.Controller.Providers
public SongInfo() public SongInfo()
{ {
Artists = EmptyStringArray; Artists = Array.Empty<string>();
AlbumArtists = EmptyStringArray; AlbumArtists = Array.Empty<string>();
} }
} }
} }

View File

@ -1,6 +1,5 @@
using System; using System;
namespace MediaBrowser.Controller.Session namespace MediaBrowser.Controller.Session
{ {
public class AuthenticationRequest public class AuthenticationRequest
@ -9,7 +8,6 @@ namespace MediaBrowser.Controller.Session
public Guid UserId { get; set; } public Guid UserId { get; set; }
public string Password { get; set; } public string Password { get; set; }
public string PasswordSha1 { get; set; } public string PasswordSha1 { get; set; }
public string PasswordMd5 { get; set; }
public string App { get; set; } public string App { get; set; }
public string AppVersion { get; set; } public string AppVersion { get; set; }
public string DeviceId { get; set; } public string DeviceId { get; set; }

View File

@ -5,7 +5,6 @@ using MediaBrowser.Controller.Security;
using MediaBrowser.Model.Dto; using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Events; using MediaBrowser.Model.Events;
using MediaBrowser.Model.Session; using MediaBrowser.Model.Session;
using MediaBrowser.Model.Users;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading; using System.Threading;

View File

@ -22,9 +22,9 @@ namespace MediaBrowser.Controller.Session
_sessionManager = sessionManager; _sessionManager = sessionManager;
_logger = logger; _logger = logger;
AdditionalUsers = new SessionUserInfo[] { }; AdditionalUsers = Array.Empty<SessionUserInfo>();
PlayState = new PlayerStateInfo(); PlayState = new PlayerStateInfo();
SessionControllers = new ISessionController[] { }; SessionControllers = Array.Empty<ISessionController>();
} }
public PlayerStateInfo PlayState { get; set; } public PlayerStateInfo PlayState { get; set; }
@ -49,7 +49,7 @@ namespace MediaBrowser.Controller.Session
{ {
if (Capabilities == null) if (Capabilities == null)
{ {
return new string[] {}; return Array.Empty<string>();
} }
return Capabilities.PlayableMediaTypes; return Capabilities.PlayableMediaTypes;
} }
@ -363,7 +363,7 @@ namespace MediaBrowser.Controller.Session
StopAutomaticProgress(); StopAutomaticProgress();
var controllers = SessionControllers.ToList(); var controllers = SessionControllers.ToList();
SessionControllers = new ISessionController[] { }; SessionControllers = Array.Empty<ISessionController>();
foreach (var controller in controllers) foreach (var controller in controllers)
{ {

View File

@ -32,8 +32,8 @@ namespace MediaBrowser.Controller.Subtitles
SearchAllProviders = true; SearchAllProviders = true;
ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
DisabledSubtitleFetchers = new string[] {}; DisabledSubtitleFetchers = Array.Empty<string>();
SubtitleFetcherOrder = new string[] {}; SubtitleFetcherOrder = Array.Empty<string>();
} }
} }
} }

View File

@ -77,12 +77,12 @@ namespace MediaBrowser.LocalMetadata.Images
return directoryService.GetFileSystemEntries(path) return directoryService.GetFileSystemEntries(path)
.Where(i => BaseItem.SupportedImageExtensions.Contains(i.Extension, StringComparer.OrdinalIgnoreCase) || i.IsDirectory) .Where(i => BaseItem.SupportedImageExtensions.Contains(i.Extension, StringComparer.OrdinalIgnoreCase) || i.IsDirectory)
.OrderBy(i => BaseItem.SupportedImageExtensionsList.IndexOf(i.Extension ?? string.Empty)); .OrderBy(i => Array.IndexOf(BaseItem.SupportedImageExtensions, i.Extension ?? string.Empty));
} }
return directoryService.GetFiles(path) return directoryService.GetFiles(path)
.Where(i => BaseItem.SupportedImageExtensions.Contains(i.Extension, StringComparer.OrdinalIgnoreCase)) .Where(i => BaseItem.SupportedImageExtensions.Contains(i.Extension, StringComparer.OrdinalIgnoreCase))
.OrderBy(i => BaseItem.SupportedImageExtensionsList.IndexOf(i.Extension ?? string.Empty)); .OrderBy(i => Array.IndexOf(BaseItem.SupportedImageExtensions, i.Extension ?? string.Empty));
} }
public List<LocalImageInfo> GetImages(BaseItem item, IDirectoryService directoryService) public List<LocalImageInfo> GetImages(BaseItem item, IDirectoryService directoryService)
@ -106,7 +106,7 @@ namespace MediaBrowser.LocalMetadata.Images
IEnumerable<FileSystemMetadata> files = paths.SelectMany(i => _fileSystem.GetFiles(i, BaseItem.SupportedImageExtensions, true, false)); IEnumerable<FileSystemMetadata> files = paths.SelectMany(i => _fileSystem.GetFiles(i, BaseItem.SupportedImageExtensions, true, false));
files = files files = files
.OrderBy(i => BaseItem.SupportedImageExtensionsList.IndexOf(i.Extension ?? string.Empty)); .OrderBy(i => Array.IndexOf(BaseItem.SupportedImageExtensions, i.Extension ?? string.Empty));
var list = new List<LocalImageInfo>(); var list = new List<LocalImageInfo>();

View File

@ -1,4 +1,4 @@
using System.Collections.Generic; using System;
namespace MediaBrowser.Model.Channels namespace MediaBrowser.Model.Channels
{ {
@ -76,10 +76,9 @@ namespace MediaBrowser.Model.Channels
public ChannelFeatures() public ChannelFeatures()
{ {
MediaTypes = new ChannelMediaType[] { }; MediaTypes = Array.Empty<ChannelMediaType>();
ContentTypes = new ChannelMediaContentType[] { }; ContentTypes = Array.Empty<ChannelMediaContentType>();
DefaultSortFields = Array.Empty<ChannelItemSortField>();
DefaultSortFields = new ChannelItemSortField[] { };
} }
} }
} }

View File

@ -6,7 +6,6 @@ namespace MediaBrowser.Model.Configuration
{ {
public class LibraryOptions public class LibraryOptions
{ {
public bool EnableArchiveMediaFiles { get; set; }
public bool EnablePhotos { get; set; } public bool EnablePhotos { get; set; }
public bool EnableRealtimeMonitor { get; set; } public bool EnableRealtimeMonitor { get; set; }
public bool EnableChapterImageExtraction { get; set; } public bool EnableChapterImageExtraction { get; set; }
@ -65,10 +64,10 @@ namespace MediaBrowser.Model.Configuration
public LibraryOptions() public LibraryOptions()
{ {
TypeOptions = new TypeOptions[] { }; TypeOptions = Array.Empty<TypeOptions>();
DisabledSubtitleFetchers = new string[] { }; DisabledSubtitleFetchers = Array.Empty<string>();
SubtitleFetcherOrder = new string[] { }; SubtitleFetcherOrder = Array.Empty<string>();
DisabledLocalMetadataReaders = new string[] { }; DisabledLocalMetadataReaders = Array.Empty<string>();
SkipSubtitlesIfAudioTrackMatches = true; SkipSubtitlesIfAudioTrackMatches = true;
RequirePerfectSubtitleMatch = true; RequirePerfectSubtitleMatch = true;
@ -76,7 +75,7 @@ namespace MediaBrowser.Model.Configuration
EnablePhotos = true; EnablePhotos = true;
SaveSubtitlesWithMedia = true; SaveSubtitlesWithMedia = true;
EnableRealtimeMonitor = true; EnableRealtimeMonitor = true;
PathInfos = new MediaPathInfo[] { }; PathInfos = Array.Empty<MediaPathInfo>();
EnableInternetProviders = true; EnableInternetProviders = true;
EnableAutomaticSeriesGrouping = true; EnableAutomaticSeriesGrouping = true;
SeasonZeroDisplayName = "Specials"; SeasonZeroDisplayName = "Specials";
@ -141,11 +140,11 @@ namespace MediaBrowser.Model.Configuration
public TypeOptions() public TypeOptions()
{ {
MetadataFetchers = new string[] { }; MetadataFetchers = Array.Empty<string>();
MetadataFetcherOrder = new string[] { }; MetadataFetcherOrder = Array.Empty<string>();
ImageFetchers = new string[] { }; ImageFetchers = Array.Empty<string>();
ImageFetcherOrder = new string[] { }; ImageFetcherOrder = Array.Empty<string>();
ImageOptions = new ImageOption[] { }; ImageOptions = Array.Empty<ImageOption>();
} }
public static Dictionary<string, ImageOption[]> DefaultImageOptions = new Dictionary<string, ImageOption[]> public static Dictionary<string, ImageOption[]> DefaultImageOptions = new Dictionary<string, ImageOption[]>

View File

@ -1,5 +1,4 @@
using MediaBrowser.Model.Extensions; using System;
using System;
namespace MediaBrowser.Model.Configuration namespace MediaBrowser.Model.Configuration
{ {
@ -21,18 +20,12 @@ namespace MediaBrowser.Model.Configuration
public MetadataOptions() public MetadataOptions()
{ {
DisabledMetadataSavers = new string[] { }; DisabledMetadataSavers = Array.Empty<string>();
LocalMetadataReaderOrder = new string[] { }; LocalMetadataReaderOrder = Array.Empty<string>();
DisabledMetadataFetchers = Array.Empty<string>();
DisabledMetadataFetchers = new string[] { }; MetadataFetcherOrder = Array.Empty<string>();
MetadataFetcherOrder = new string[] { }; DisabledImageFetchers = Array.Empty<string>();
DisabledImageFetchers = new string[] { }; ImageFetcherOrder = Array.Empty<string>();
ImageFetcherOrder = new string[] { };
}
public bool IsMetadataSaverEnabled(string name)
{
return !ListHelper.ContainsIgnoreCase(DisabledMetadataSavers, name);
} }
} }
} }

View File

@ -1,4 +1,4 @@
using System.Collections.Generic; using System;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
namespace MediaBrowser.Model.Configuration namespace MediaBrowser.Model.Configuration
@ -25,8 +25,8 @@ namespace MediaBrowser.Model.Configuration
public MetadataPluginSummary() public MetadataPluginSummary()
{ {
SupportedImageTypes = new ImageType[] { }; SupportedImageTypes = Array.Empty<ImageType>();
Plugins = new MetadataPlugin[] { }; Plugins = Array.Empty<MetadataPlugin>();
} }
} }
} }

View File

@ -173,8 +173,6 @@ namespace MediaBrowser.Model.Configuration
public int RemoteClientBitrateLimit { get; set; } public int RemoteClientBitrateLimit { get; set; }
public int SchemaVersion { get; set; }
public bool EnableFolderView { get; set; } public bool EnableFolderView { get; set; }
public bool EnableGroupingIntoCollections { get; set; } public bool EnableGroupingIntoCollections { get; set; }
public bool DisplaySpecialsWithinSeasons { get; set; } public bool DisplaySpecialsWithinSeasons { get; set; }
@ -201,13 +199,13 @@ namespace MediaBrowser.Model.Configuration
/// </summary> /// </summary>
public ServerConfiguration() public ServerConfiguration()
{ {
UninstalledPlugins = new string[] { }; UninstalledPlugins = Array.Empty<string>();
RemoteIPFilter = new string[] { }; RemoteIPFilter = Array.Empty<string>();
LocalNetworkSubnets = new string[] { }; LocalNetworkSubnets = Array.Empty<string>();
LocalNetworkAddresses = new string[] { }; LocalNetworkAddresses = Array.Empty<string>();
CodecsUsed = new string[] { }; CodecsUsed = Array.Empty<string>();
ImageExtractionTimeoutMs = 0; ImageExtractionTimeoutMs = 0;
PathSubstitutions = new PathSubstitution[] { }; PathSubstitutions = Array.Empty<PathSubstitution>();
EnableSimpleArtistDetection = true; EnableSimpleArtistDetection = true;
DisplaySpecialsWithinSeasons = true; DisplaySpecialsWithinSeasons = true;
@ -235,7 +233,7 @@ namespace MediaBrowser.Model.Configuration
LibraryMonitorDelay = 60; LibraryMonitorDelay = 60;
ContentTypes = new NameValuePair[] { }; ContentTypes = Array.Empty<NameValuePair>();
PreferredMetadataLanguage = "en"; PreferredMetadataLanguage = "en";
MetadataCountryCode = "US"; MetadataCountryCode = "US";
@ -248,56 +246,51 @@ namespace MediaBrowser.Model.Configuration
MetadataOptions = new[] MetadataOptions = new[]
{ {
new MetadataOptions {ItemType = "Book"}, new MetadataOptions()
{
new MetadataOptions ItemType = "Book"
},
new MetadataOptions()
{ {
ItemType = "Movie" ItemType = "Movie"
}, },
new MetadataOptions new MetadataOptions
{ {
ItemType = "MusicVideo", ItemType = "MusicVideo",
DisabledMetadataFetchers = new []{ "The Open Movie Database" }, DisabledMetadataFetchers = new [] { "The Open Movie Database" },
DisabledImageFetchers = new []{ "The Open Movie Database", "FanArt" } DisabledImageFetchers = new [] { "The Open Movie Database", "FanArt" }
}, },
new MetadataOptions new MetadataOptions
{ {
ItemType = "Series", ItemType = "Series",
DisabledMetadataFetchers = new []{ "TheMovieDb" }, DisabledMetadataFetchers = new [] { "TheMovieDb" },
DisabledImageFetchers = new []{ "TheMovieDb" } DisabledImageFetchers = new [] { "TheMovieDb" }
}, },
new MetadataOptions new MetadataOptions
{ {
ItemType = "MusicAlbum", ItemType = "MusicAlbum",
DisabledMetadataFetchers = new []{ "TheAudioDB" } DisabledMetadataFetchers = new [] { "TheAudioDB" }
}, },
new MetadataOptions new MetadataOptions
{ {
ItemType = "MusicArtist", ItemType = "MusicArtist",
DisabledMetadataFetchers = new []{ "TheAudioDB" } DisabledMetadataFetchers = new [] { "TheAudioDB" }
}, },
new MetadataOptions new MetadataOptions
{ {
ItemType = "BoxSet" ItemType = "BoxSet"
}, },
new MetadataOptions new MetadataOptions
{ {
ItemType = "Season", ItemType = "Season",
DisabledMetadataFetchers = new []{ "TheMovieDb" }, DisabledMetadataFetchers = new [] { "TheMovieDb" },
DisabledImageFetchers = new [] { "FanArt" } DisabledImageFetchers = new [] { "FanArt" }
}, },
new MetadataOptions new MetadataOptions
{ {
ItemType = "Episode", ItemType = "Episode",
DisabledMetadataFetchers = new []{ "The Open Movie Database", "TheMovieDb" }, DisabledMetadataFetchers = new [] { "The Open Movie Database", "TheMovieDb" },
DisabledImageFetchers = new []{ "The Open Movie Database", "TheMovieDb" } DisabledImageFetchers = new [] { "The Open Movie Database", "TheMovieDb" }
} }
}; };
} }

View File

@ -57,10 +57,10 @@ namespace MediaBrowser.Model.Configuration
HidePlayedInLatest = true; HidePlayedInLatest = true;
PlayDefaultAudioTrack = true; PlayDefaultAudioTrack = true;
LatestItemsExcludes = new string[] {}; LatestItemsExcludes = Array.Empty<string>();
OrderedViews = new string[] {}; OrderedViews = Array.Empty<string>();
MyMediaExcludes = new string[] {}; MyMediaExcludes = Array.Empty<string>();
GroupedFolders = new string[] {}; GroupedFolders = Array.Empty<string>();
} }
} }
} }

View File

@ -1,17 +0,0 @@

namespace MediaBrowser.Model.Connect
{
public class ConnectAuthenticationExchangeResult
{
/// <summary>
/// Gets or sets the local user identifier.
/// </summary>
/// <value>The local user identifier.</value>
public string LocalUserId { get; set; }
/// <summary>
/// Gets or sets the access token.
/// </summary>
/// <value>The access token.</value>
public string AccessToken { get; set; }
}
}

View File

@ -1,17 +0,0 @@

namespace MediaBrowser.Model.Connect
{
public class ConnectAuthenticationResult
{
/// <summary>
/// Gets or sets the user.
/// </summary>
/// <value>The user.</value>
public ConnectUser User { get; set; }
/// <summary>
/// Gets or sets the access token.
/// </summary>
/// <value>The access token.</value>
public string AccessToken { get; set; }
}
}

View File

@ -14,8 +14,8 @@ namespace MediaBrowser.Model.Connect
public ConnectAuthorization() public ConnectAuthorization()
{ {
EnabledLibraries = new string[] {}; EnabledLibraries = Array.Empty<string>();
EnabledChannels = new string[] {}; EnabledChannels = Array.Empty<string>();
} }
} }
} }

View File

@ -1,19 +0,0 @@
using System;
namespace MediaBrowser.Model.Connect
{
public class ConnectAuthorizationRequest
{
public string SendingUserId { get; set; }
public string ConnectUserName { get; set; }
public string[] EnabledLibraries { get; set; }
public bool EnableLiveTv { get; set; }
public string[] EnabledChannels { get; set; }
public ConnectAuthorizationRequest()
{
EnabledLibraries = new string[] {};
EnabledChannels = new string[] {};
}
}
}

View File

@ -5,22 +5,6 @@ namespace MediaBrowser.Model.Devices
{ {
public class DeviceInfo public class DeviceInfo
{ {
/// <summary>
/// Gets or sets the name of the reported.
/// </summary>
/// <value>The name of the reported.</value>
public string ReportedName { get; set; }
/// <summary>
/// Gets or sets the name of the custom.
/// </summary>
/// <value>The name of the custom.</value>
public string CustomName { get; set; }
/// <summary>
/// Gets or sets the camera upload path.
/// </summary>
/// <value>The camera upload path.</value>
public string CameraUploadPath { get; set; }
public string Name { get; set; } public string Name { get; set; }
/// <summary> /// <summary>

View File

@ -5,11 +5,6 @@ namespace MediaBrowser.Model.Devices
{ {
public class DeviceQuery public class DeviceQuery
{ {
/// <summary>
/// Gets or sets a value indicating whether [supports unique identifier].
/// </summary>
/// <value><c>null</c> if [supports unique identifier] contains no value, <c>true</c> if [supports unique identifier]; otherwise, <c>false</c>.</value>
public bool? SupportsPersistentIdentifier { get; set; }
/// <summary> /// <summary>
/// Gets or sets a value indicating whether [supports synchronize]. /// Gets or sets a value indicating whether [supports synchronize].
/// </summary> /// </summary>

View File

@ -10,15 +10,12 @@ namespace MediaBrowser.Model.Devices
public DevicesOptions() public DevicesOptions()
{ {
EnabledCameraUploadDevices = new string[] {}; EnabledCameraUploadDevices = Array.Empty<string>();
} }
} }
public class DeviceOptions public class DeviceOptions
{ {
public string[] EnabledCameraUploadDevices { get; set; }
public string CameraUploadPath { get; set; }
public bool EnableCameraUploadSubfolders { get; set; }
public string CustomName { get; set; } public string CustomName { get; set; }
} }
} }

View File

@ -1,7 +1,5 @@
using System; using System;
using System.Collections.Generic;
using System.Xml.Serialization; using System.Xml.Serialization;
using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Extensions;
namespace MediaBrowser.Model.Dlna namespace MediaBrowser.Model.Dlna
@ -17,7 +15,7 @@ namespace MediaBrowser.Model.Dlna
public ContainerProfile() public ContainerProfile()
{ {
Conditions = new ProfileCondition[] { }; Conditions = Array.Empty<ProfileCondition>();
} }
public string[] GetContainers() public string[] GetContainers()
@ -25,13 +23,11 @@ namespace MediaBrowser.Model.Dlna
return SplitValue(Container); return SplitValue(Container);
} }
private static readonly string[] EmptyStringArray = Array.Empty<string>();
public static string[] SplitValue(string value) public static string[] SplitValue(string value)
{ {
if (string.IsNullOrEmpty(value)) if (string.IsNullOrEmpty(value))
{ {
return EmptyStringArray; return Array.Empty<string>();
} }
return value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); return value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

View File

@ -1,7 +1,6 @@
using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.MediaInfo;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
namespace MediaBrowser.Model.Dlna namespace MediaBrowser.Model.Dlna
{ {

View File

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Extensions;
namespace MediaBrowser.Model.Dlna namespace MediaBrowser.Model.Dlna
@ -7,7 +6,7 @@ namespace MediaBrowser.Model.Dlna
public class ResolutionNormalizer public class ResolutionNormalizer
{ {
private static readonly ResolutionConfiguration[] Configurations = private static readonly ResolutionConfiguration[] Configurations =
new [] new[]
{ {
new ResolutionConfiguration(426, 320000), new ResolutionConfiguration(426, 320000),
new ResolutionConfiguration(640, 400000), new ResolutionConfiguration(640, 400000),
@ -90,8 +89,8 @@ namespace MediaBrowser.Model.Dlna
{ {
var inputScaleFactor = GetVideoBitrateScaleFactor(inputVideoCodec); var inputScaleFactor = GetVideoBitrateScaleFactor(inputVideoCodec);
var outputScaleFactor = GetVideoBitrateScaleFactor(outputVideoCodec); var outputScaleFactor = GetVideoBitrateScaleFactor(outputVideoCodec);
var scaleFactor = outputScaleFactor/inputScaleFactor; var scaleFactor = outputScaleFactor / inputScaleFactor;
var newBitrate = scaleFactor*bitrate; var newBitrate = scaleFactor * bitrate;
return Convert.ToInt32(newBitrate); return Convert.ToInt32(newBitrate);
} }

View File

@ -18,10 +18,10 @@ namespace MediaBrowser.Model.Dlna
{ {
public StreamInfo() public StreamInfo()
{ {
AudioCodecs = new string[] { }; AudioCodecs = Array.Empty<string>();
VideoCodecs = new string[] { }; VideoCodecs = Array.Empty<string>();
SubtitleCodecs = new string[] { }; SubtitleCodecs = Array.Empty<string>();
TranscodeReasons = new TranscodeReason[] { }; TranscodeReasons = Array.Empty<TranscodeReason>();
StreamOptions = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); StreamOptions = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
} }

View File

@ -1,7 +1,5 @@
using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Extensions;
using System.Collections.Generic;
using System.Xml.Serialization; using System.Xml.Serialization;
using MediaBrowser.Model.Dlna;
namespace MediaBrowser.Model.Dlna namespace MediaBrowser.Model.Dlna
{ {

View File

@ -4,10 +4,8 @@ using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Library; using MediaBrowser.Model.Library;
using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.LiveTv;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Sync;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using MediaBrowser.Model.Serialization;
namespace MediaBrowser.Model.Dto namespace MediaBrowser.Model.Dto
{ {
@ -67,7 +65,6 @@ namespace MediaBrowser.Model.Dto
public int? AirsBeforeSeasonNumber { get; set; } public int? AirsBeforeSeasonNumber { get; set; }
public int? AirsAfterSeasonNumber { get; set; } public int? AirsAfterSeasonNumber { get; set; }
public int? AirsBeforeEpisodeNumber { get; set; } public int? AirsBeforeEpisodeNumber { get; set; }
public bool? DisplaySpecialsWithSeasons { get; set; }
public bool? CanDelete { get; set; } public bool? CanDelete { get; set; }
public bool? CanDownload { get; set; } public bool? CanDownload { get; set; }
@ -156,7 +153,6 @@ namespace MediaBrowser.Model.Dto
/// <value>The channel identifier.</value> /// <value>The channel identifier.</value>
public Guid ChannelId { get; set; } public Guid ChannelId { get; set; }
public string ChannelName { get; set; } public string ChannelName { get; set; }
public string ServiceName { get; set; }
/// <summary> /// <summary>
/// Gets or sets the overview. /// Gets or sets the overview.
@ -479,26 +475,6 @@ namespace MediaBrowser.Model.Dto
public int? PartCount { get; set; } public int? PartCount { get; set; }
public int? MediaSourceCount { get; set; } public int? MediaSourceCount { get; set; }
/// <summary>
/// Determines whether the specified type is type.
/// </summary>
/// <param name="type">The type.</param>
/// <returns><c>true</c> if the specified type is type; otherwise, <c>false</c>.</returns>
public bool IsType(Type type)
{
return IsType(type.Name);
}
/// <summary>
/// Determines whether the specified type is type.
/// </summary>
/// <param name="type">The type.</param>
/// <returns><c>true</c> if the specified type is type; otherwise, <c>false</c>.</returns>
public bool IsType(string type)
{
return StringHelper.EqualsIgnoreCase(Type, type);
}
/// <summary> /// <summary>
/// Gets or sets the image tags. /// Gets or sets the image tags.
/// </summary> /// </summary>
@ -601,12 +577,6 @@ namespace MediaBrowser.Model.Dto
/// <value>The end date.</value> /// <value>The end date.</value>
public DateTime? EndDate { get; set; } public DateTime? EndDate { get; set; }
/// <summary>
/// Gets or sets the home page URL.
/// </summary>
/// <value>The home page URL.</value>
public string HomePageUrl { get; set; }
/// <summary> /// <summary>
/// Gets or sets the locked fields. /// Gets or sets the locked fields.
/// </summary> /// </summary>
@ -677,11 +647,6 @@ namespace MediaBrowser.Model.Dto
public double? Altitude { get; set; } public double? Altitude { get; set; }
public int? IsoSpeedRating { get; set; } public int? IsoSpeedRating { get; set; }
/// <summary>
/// Used by RecordingGroup
/// </summary>
public int? RecordingCount { get; set; }
/// <summary> /// <summary>
/// Gets or sets the series timer identifier. /// Gets or sets the series timer identifier.
/// </summary> /// </summary>

View File

@ -1,38 +0,0 @@
using MediaBrowser.Model.Serialization;
namespace MediaBrowser.Model.Dto
{
/// <summary>
/// Class ChapterInfo
/// </summary>
public class ChapterInfoDto
{
/// <summary>
/// Gets or sets the start position ticks.
/// </summary>
/// <value>The start position ticks.</value>
public long StartPositionTicks { get; set; }
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>The name.</value>
public string Name { get; set; }
/// <summary>
/// Gets or sets the image tag.
/// </summary>
/// <value>The image tag.</value>
public string ImageTag { get; set; }
/// <summary>
/// Gets a value indicating whether this instance has image.
/// </summary>
/// <value><c>true</c> if this instance has image; otherwise, <c>false</c>.</value>
[IgnoreDataMember]
public bool HasImage
{
get { return ImageTag != null; }
}
}
}

View File

@ -1,5 +1,4 @@
using System.Collections.Generic; using System;
using System;
namespace MediaBrowser.Model.Dto namespace MediaBrowser.Model.Dto
{ {
@ -43,7 +42,7 @@ namespace MediaBrowser.Model.Dto
/// </summary> /// </summary>
public GameSystemSummary() public GameSystemSummary()
{ {
GameFileExtensions = new string[] {}; GameFileExtensions = Array.Empty<string>();
} }
} }
} }

View File

@ -1,5 +1,4 @@
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.MediaInfo;
using System.Collections.Generic; using System.Collections.Generic;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
@ -73,7 +72,7 @@ namespace MediaBrowser.Model.Dto
public MediaSourceInfo() public MediaSourceInfo()
{ {
Formats = new string[] { }; Formats = Array.Empty<string>();
MediaStreams = new List<MediaStream>(); MediaStreams = new List<MediaStream>();
RequiredHttpHeaders = new Dictionary<string, string>(); RequiredHttpHeaders = new Dictionary<string, string>();
SupportsTranscoding = true; SupportsTranscoding = true;
@ -115,12 +114,6 @@ namespace MediaBrowser.Model.Dto
public int? DefaultAudioStreamIndex { get; set; } public int? DefaultAudioStreamIndex { get; set; }
public int? DefaultSubtitleStreamIndex { get; set; } public int? DefaultSubtitleStreamIndex { get; set; }
[IgnoreDataMember]
public MediaStream DefaultAudioStream
{
get { return GetDefaultAudioStream(DefaultAudioStreamIndex); }
}
public MediaStream GetDefaultAudioStream(int? defaultIndex) public MediaStream GetDefaultAudioStream(int? defaultIndex)
{ {
if (defaultIndex.HasValue) if (defaultIndex.HasValue)

View File

@ -1,7 +1,7 @@
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Globalization; using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Providers; using MediaBrowser.Model.Providers;
using System.Collections.Generic; using System;
namespace MediaBrowser.Model.Dto namespace MediaBrowser.Model.Dto
{ {
@ -17,11 +17,11 @@ namespace MediaBrowser.Model.Dto
public MetadataEditorInfo() public MetadataEditorInfo()
{ {
ParentalRatingOptions = new ParentalRating[] { }; ParentalRatingOptions = Array.Empty<ParentalRating>();
Countries = new CountryInfo[] { }; Countries = Array.Empty<CountryInfo>();
Cultures = new CultureDto[] { }; Cultures = Array.Empty<CultureDto>();
ExternalIdInfos = new ExternalIdInfo[] { }; ExternalIdInfos = Array.Empty<ExternalIdInfo>();
ContentTypeOptions = new NameValuePair[] { }; ContentTypeOptions = Array.Empty<NameValuePair>();
} }
} }
} }

View File

@ -2,7 +2,6 @@
using MediaBrowser.Model.Connect; using MediaBrowser.Model.Connect;
using MediaBrowser.Model.Users; using MediaBrowser.Model.Users;
using System; using System;
using MediaBrowser.Model.Serialization;
namespace MediaBrowser.Model.Dto namespace MediaBrowser.Model.Dto
{ {

View File

@ -51,12 +51,12 @@ namespace MediaBrowser.Model.Entities
/// </summary> /// </summary>
public LibraryUpdateInfo() public LibraryUpdateInfo()
{ {
FoldersAddedTo = new string[] { }; FoldersAddedTo = Array.Empty<string>();
FoldersRemovedFrom = new string[] { }; FoldersRemovedFrom = Array.Empty<string>();
ItemsAdded = new string[] { }; ItemsAdded = Array.Empty<string>();
ItemsRemoved = new string[] { }; ItemsRemoved = Array.Empty<string>();
ItemsUpdated = new string[] { }; ItemsUpdated = Array.Empty<string>();
CollectionFolders = new string[] { }; CollectionFolders = Array.Empty<string>();
} }
} }
} }

View File

@ -34,7 +34,7 @@ namespace MediaBrowser.Model.Entities
/// </summary> /// </summary>
public VirtualFolderInfo() public VirtualFolderInfo()
{ {
Locations = new string[] {}; Locations = Array.Empty<string>();
} }
/// <summary> /// <summary>

View File

@ -46,7 +46,7 @@ namespace MediaBrowser.Model.Globalization
public CultureDto() public CultureDto()
{ {
ThreeLetterISOLanguageNames = new string[] {}; ThreeLetterISOLanguageNames = Array.Empty<string>();
} }
} }
} }

View File

@ -27,7 +27,7 @@ namespace MediaBrowser.Model.Library
public UserViewQuery() public UserViewQuery()
{ {
IncludeExternalContent = true; IncludeExternalContent = true;
PresetViews = new string[] {}; PresetViews = Array.Empty<string>();
} }
} }
} }

View File

@ -98,7 +98,7 @@ namespace MediaBrowser.Model.LiveTv
public LiveTvChannelQuery() public LiveTvChannelQuery()
{ {
EnableUserData = true; EnableUserData = true;
SortBy = new string[] {}; SortBy = Array.Empty<string>();
} }
} }
} }

View File

@ -25,8 +25,8 @@ namespace MediaBrowser.Model.LiveTv
public LiveTvInfo() public LiveTvInfo()
{ {
Services = new LiveTvServiceInfo[] { }; Services = Array.Empty<LiveTvServiceInfo>();
EnabledUsers = new string[] {}; EnabledUsers = Array.Empty<string>();
} }
} }
} }

View File

@ -25,9 +25,9 @@ namespace MediaBrowser.Model.LiveTv
public LiveTvOptions() public LiveTvOptions()
{ {
TunerHosts = new TunerHostInfo[] { }; TunerHosts = Array.Empty<TunerHostInfo>();
ListingProviders = new ListingsProviderInfo[] { }; ListingProviders = Array.Empty<ListingsProviderInfo>();
MediaLocationsCreated = new string[] { }; MediaLocationsCreated = Array.Empty<string>();
RecordingPostProcessorArguments = "\"{path}\""; RecordingPostProcessorArguments = "\"{path}\"";
} }
} }
@ -76,13 +76,13 @@ namespace MediaBrowser.Model.LiveTv
public ListingsProviderInfo() public ListingsProviderInfo()
{ {
NewsCategories = new string[] { "news", "journalism", "documentary", "current affairs" }; NewsCategories = new [] { "news", "journalism", "documentary", "current affairs" };
SportsCategories = new string[] { "sports", "basketball", "baseball", "football" }; SportsCategories = new [] { "sports", "basketball", "baseball", "football" };
KidsCategories = new string[] { "kids", "family", "children", "childrens", "disney" }; KidsCategories = new [] { "kids", "family", "children", "childrens", "disney" };
MovieCategories = new string[] { "movie" }; MovieCategories = new [] { "movie" };
EnabledTuners = new string[] { }; EnabledTuners = Array.Empty<string>();
EnableAllTuners = true; EnableAllTuners = true;
ChannelMappings = new NameValuePair[] {}; ChannelMappings = Array.Empty<NameValuePair>();
} }
} }
} }

View File

@ -52,7 +52,7 @@ namespace MediaBrowser.Model.LiveTv
public LiveTvServiceInfo() public LiveTvServiceInfo()
{ {
Tuners = new string[] { }; Tuners = Array.Empty<string>();
} }
} }
} }

View File

@ -1,117 +0,0 @@
using MediaBrowser.Model.Entities;
using System;
using MediaBrowser.Model.Querying;
namespace MediaBrowser.Model.LiveTv
{
/// <summary>
/// Class ProgramQuery.
/// </summary>
public class ProgramQuery
{
public ProgramQuery()
{
ChannelIds = new Guid[] { };
OrderBy = new Tuple<string, SortOrder>[] { };
Genres = new string[] {};
GenreIds = new Guid[] { };
EnableTotalRecordCount = true;
EnableUserData = true;
}
public bool EnableTotalRecordCount { get; set; }
public bool EnableUserData { get; set; }
/// <summary>
/// Fields to return within the items, in addition to basic information
/// </summary>
/// <value>The fields.</value>
public ItemFields[] Fields { get; set; }
public bool? EnableImages { get; set; }
public int? ImageTypeLimit { get; set; }
public ImageType[] EnableImageTypes { get; set; }
/// <summary>
/// Gets or sets the channel ids.
/// </summary>
/// <value>The channel ids.</value>
public Guid[] ChannelIds { get; set; }
/// <summary>
/// Gets or sets the user identifier.
/// </summary>
/// <value>The user identifier.</value>
public string UserId { get; set; }
public string SeriesTimerId { get; set; }
public string Name { get; set; }
/// <summary>
/// The earliest date for which a program starts to return
/// </summary>
public DateTime? MinStartDate { get; set; }
/// <summary>
/// The latest date for which a program starts to return
/// </summary>
public DateTime? MaxStartDate { get; set; }
/// <summary>
/// The earliest date for which a program ends to return
/// </summary>
public DateTime? MinEndDate { get; set; }
/// <summary>
/// The latest date for which a program ends to return
/// </summary>
public DateTime? MaxEndDate { get; set; }
/// <summary>
/// Used to specific whether to return news or not
/// </summary>
/// <remarks>If set to null, all programs will be returned</remarks>
public bool? IsNews { get; set; }
/// <summary>
/// Used to specific whether to return movies or not
/// </summary>
/// <remarks>If set to null, all programs will be returned</remarks>
public bool? IsMovie { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance is kids.
/// </summary>
/// <value><c>null</c> if [is kids] contains no value, <c>true</c> if [is kids]; otherwise, <c>false</c>.</value>
public bool? IsKids { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance is sports.
/// </summary>
/// <value><c>null</c> if [is sports] contains no value, <c>true</c> if [is sports]; otherwise, <c>false</c>.</value>
public bool? IsSports { get; set; }
/// <summary>
/// Skips over a given number of items within the results. Use for paging.
/// </summary>
public int? StartIndex { get; set; }
public bool? IsSeries { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance has aired.
/// </summary>
/// <value><c>null</c> if [has aired] contains no value, <c>true</c> if [has aired]; otherwise, <c>false</c>.</value>
public bool? HasAired { get; set; }
/// <summary>
/// The maximum number of items to return
/// </summary>
public int? Limit { get; set; }
public Tuple<string, SortOrder>[] OrderBy { get; set; }
/// <summary>
/// Limit results to items containing specific genres
/// </summary>
/// <value>The genres.</value>
public Guid[] GenreIds { get; set; }
public string[] Genres { get; set; }
}
}

View File

@ -1,73 +0,0 @@
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Querying;
using System;
namespace MediaBrowser.Model.LiveTv
{
public class RecommendedProgramQuery
{
/// <summary>
/// Fields to return within the items, in addition to basic information
/// </summary>
/// <value>The fields.</value>
public ItemFields[] Fields { get; set; }
public bool? EnableImages { get; set; }
public int? ImageTypeLimit { get; set; }
public ImageType[] EnableImageTypes { get; set; }
public Guid[] GenreIds { get; set; }
public bool EnableTotalRecordCount { get; set; }
public RecommendedProgramQuery()
{
EnableTotalRecordCount = true;
GenreIds = new Guid[] { };
}
/// <summary>
/// Gets or sets the user identifier.
/// </summary>
/// <value>The user identifier.</value>
public string UserId { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance is airing.
/// </summary>
/// <value><c>true</c> if this instance is airing; otherwise, <c>false</c>.</value>
public bool? IsAiring { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance has aired.
/// </summary>
/// <value><c>null</c> if [has aired] contains no value, <c>true</c> if [has aired]; otherwise, <c>false</c>.</value>
public bool? HasAired { get; set; }
/// <summary>
/// The maximum number of items to return
/// </summary>
/// <value>The limit.</value>
public int? Limit { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance is movie.
/// </summary>
/// <value><c>null</c> if [is movie] contains no value, <c>true</c> if [is movie]; otherwise, <c>false</c>.</value>
public bool? IsNews { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance is movie.
/// </summary>
/// <value><c>null</c> if [is movie] contains no value, <c>true</c> if [is movie]; otherwise, <c>false</c>.</value>
public bool? IsMovie { get; set; }
public bool? IsSeries { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance is kids.
/// </summary>
/// <value><c>null</c> if [is kids] contains no value, <c>true</c> if [is kids]; otherwise, <c>false</c>.</value>
public bool? IsKids { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance is sports.
/// </summary>
/// <value><c>null</c> if [is sports] contains no value, <c>true</c> if [is sports]; otherwise, <c>false</c>.</value>
public bool? IsSports { get; set; }
}
}

View File

@ -7,8 +7,6 @@ namespace MediaBrowser.Model.MediaInfo
{ {
public class MediaInfo : MediaSourceInfo, IHasProviderIds public class MediaInfo : MediaSourceInfo, IHasProviderIds
{ {
private static readonly string[] EmptyStringArray = new string[] {};
public ChapterInfo[] Chapters { get; set; } public ChapterInfo[] Chapters { get; set; }
/// <summary> /// <summary>
@ -56,12 +54,12 @@ namespace MediaBrowser.Model.MediaInfo
public MediaInfo() public MediaInfo()
{ {
Chapters = new ChapterInfo[] { }; Chapters = Array.Empty<ChapterInfo>();
Artists = new string[] {}; Artists = Array.Empty<string>();
AlbumArtists = EmptyStringArray; AlbumArtists = Array.Empty<string>();
Studios = new string[] {}; Studios = Array.Empty<string>();
Genres = new string[] {}; Genres = Array.Empty<string>();
People = new BaseItemPerson[] { }; People = Array.Empty<BaseItemPerson>();
ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
} }
} }

View File

@ -1,5 +1,4 @@
using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dlna;
using System.Collections.Generic;
using System; using System;
namespace MediaBrowser.Model.MediaInfo namespace MediaBrowser.Model.MediaInfo

View File

@ -22,18 +22,6 @@ namespace MediaBrowser.Model.Notifications
/// <value><c>true</c> if enabled; otherwise, <c>false</c>.</value> /// <value><c>true</c> if enabled; otherwise, <c>false</c>.</value>
public bool Enabled { get; set; } public bool Enabled { get; set; }
/// <summary>
/// Gets or sets the title format string.
/// </summary>
/// <value>The title format string.</value>
public string Title { get; set; }
/// <summary>
/// Gets or sets the description.
/// </summary>
/// <value>The description.</value>
public string Description { get; set; }
/// <summary> /// <summary>
/// Gets or sets the disabled services. /// Gets or sets the disabled services.
/// </summary> /// </summary>
@ -48,9 +36,9 @@ namespace MediaBrowser.Model.Notifications
public NotificationOption() public NotificationOption()
{ {
DisabledServices = new string[] {}; DisabledServices = Array.Empty<string>();
DisabledMonitorUsers = new string[] {}; DisabledMonitorUsers = Array.Empty<string>();
SendToUsers = new string[] {}; SendToUsers = Array.Empty<string>();
} }
} }
} }

View File

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
namespace MediaBrowser.Model.Notifications namespace MediaBrowser.Model.Notifications
{ {
@ -22,8 +21,6 @@ namespace MediaBrowser.Model.Notifications
/// </summary> /// </summary>
public string NotificationType { get; set; } public string NotificationType { get; set; }
public Dictionary<string, string> Variables { get; set; }
public SendToUserType? SendToUserMode { get; set; } public SendToUserType? SendToUserMode { get; set; }
public NotificationRequest() public NotificationRequest()

View File

@ -1,8 +0,0 @@
namespace MediaBrowser.Model.Notifications
{
public class NotificationServiceInfo
{
public string Name { get; set; }
public string Id { get; set; }
}
}

View File

@ -1,5 +1,4 @@
using System.Collections.Generic; using System;
using System;
namespace MediaBrowser.Model.Notifications namespace MediaBrowser.Model.Notifications
{ {
@ -14,16 +13,5 @@ namespace MediaBrowser.Model.Notifications
public string Category { get; set; } public string Category { get; set; }
public bool IsBasedOnUserEvent { get; set; } public bool IsBasedOnUserEvent { get; set; }
public string DefaultTitle { get; set; }
public string DefaultDescription { get; set; }
public string[] Variables { get; set; }
public NotificationTypeInfo()
{
Variables = new string[] {};
}
} }
} }

View File

@ -1,5 +1,4 @@
using System.Collections.Generic; using System;
using System;
namespace MediaBrowser.Model.Playlists namespace MediaBrowser.Model.Playlists
{ {

View File

@ -18,7 +18,7 @@ namespace MediaBrowser.Model.Providers
public SubtitleOptions() public SubtitleOptions()
{ {
DownloadLanguages = new string[] {}; DownloadLanguages = Array.Empty<string>();
SkipIfAudioTrackMatches = true; SkipIfAudioTrackMatches = true;
RequirePerfectMatch = true; RequirePerfectMatch = true;

View File

@ -12,10 +12,10 @@ namespace MediaBrowser.Model.Querying
public QueryFiltersLegacy() public QueryFiltersLegacy()
{ {
Genres = new string[] {}; Genres = Array.Empty<string>();
Tags = new string[] {}; Tags = Array.Empty<string>();
OfficialRatings = new string[] {}; OfficialRatings = Array.Empty<string>();
Years = new int[] { }; Years = Array.Empty<int>();
} }
} }
public class QueryFilters public class QueryFilters
@ -25,8 +25,8 @@ namespace MediaBrowser.Model.Querying
public QueryFilters() public QueryFilters()
{ {
Tags = new string[] {}; Tags = Array.Empty<string>();
Genres = new NameGuidPair[] { }; Genres = Array.Empty<NameGuidPair>();
} }
} }
} }

View File

@ -57,9 +57,9 @@ namespace MediaBrowser.Model.Search
IncludePeople = true; IncludePeople = true;
IncludeStudios = true; IncludeStudios = true;
MediaTypes = new string[] {}; MediaTypes = Array.Empty<string>();
IncludeItemTypes = new string[] {}; IncludeItemTypes = Array.Empty<string>();
ExcludeItemTypes = new string[] {}; ExcludeItemTypes = Array.Empty<string>();
} }
} }
} }

View File

@ -25,8 +25,8 @@ namespace MediaBrowser.Model.Session
public ClientCapabilities() public ClientCapabilities()
{ {
PlayableMediaTypes = new string[] {}; PlayableMediaTypes = Array.Empty<string>();
SupportedCommands = new string[] {}; SupportedCommands = Array.Empty<string>();
SupportsPersistentIdentifier = true; SupportsPersistentIdentifier = true;
} }
} }

View File

@ -1,117 +0,0 @@
using MediaBrowser.Model.Dto;
using System;
using System.Collections.Generic;
namespace MediaBrowser.Model.Session
{
public class SessionInfoDto
{
/// <summary>
/// Gets or sets the supported commands.
/// </summary>
/// <value>The supported commands.</value>
public string[] SupportedCommands { get; set; }
/// <summary>
/// Gets or sets the playable media types.
/// </summary>
/// <value>The playable media types.</value>
public string[] PlayableMediaTypes { get; set; }
/// <summary>
/// Gets or sets the id.
/// </summary>
/// <value>The id.</value>
public string Id { get; set; }
public string ServerId { get; set; }
/// <summary>
/// Gets or sets the user id.
/// </summary>
/// <value>The user id.</value>
public string UserId { get; set; }
/// <summary>
/// Gets or sets the user primary image tag.
/// </summary>
/// <value>The user primary image tag.</value>
public string UserPrimaryImageTag { get; set; }
public string RemoteEndPoint { get; set; }
/// <summary>
/// Gets or sets the name of the user.
/// </summary>
/// <value>The name of the user.</value>
public string UserName { get; set; }
/// <summary>
/// Gets or sets the additional users present.
/// </summary>
/// <value>The additional users present.</value>
public SessionUserInfo[] AdditionalUsers { get; set; }
/// <summary>
/// Gets or sets the application version.
/// </summary>
/// <value>The application version.</value>
public string ApplicationVersion { get; set; }
/// <summary>
/// Gets or sets the type of the client.
/// </summary>
/// <value>The type of the client.</value>
public string Client { get; set; }
/// <summary>
/// Gets or sets the last activity date.
/// </summary>
/// <value>The last activity date.</value>
public DateTime LastActivityDate { get; set; }
/// <summary>
/// Gets or sets the name of the device.
/// </summary>
/// <value>The name of the device.</value>
public string DeviceName { get; set; }
public string DeviceType { get; set; }
/// <summary>
/// Gets or sets the now playing item.
/// </summary>
/// <value>The now playing item.</value>
public BaseItemDto NowPlayingItem { get; set; }
/// <summary>
/// Gets or sets the device id.
/// </summary>
/// <value>The device id.</value>
public string DeviceId { get; set; }
/// <summary>
/// Gets or sets the application icon URL.
/// </summary>
/// <value>The application icon URL.</value>
public string AppIconUrl { get; set; }
/// <summary>
/// Gets or sets a value indicating whether [supports remote control].
/// </summary>
/// <value><c>true</c> if [supports remote control]; otherwise, <c>false</c>.</value>
public bool SupportsRemoteControl { get; set; }
public PlayerStateInfo PlayState { get; set; }
public TranscodingInfo TranscodingInfo { get; set; }
public SessionInfoDto()
{
AdditionalUsers = new SessionUserInfo[] { };
PlayableMediaTypes = new string[] {};
SupportedCommands = new string[] {};
}
}
}

View File

@ -1,6 +1,4 @@
using System; using System;
using System.Collections.Generic;
using MediaBrowser.Model.Sync;
namespace MediaBrowser.Model.Sync namespace MediaBrowser.Model.Sync
{ {
@ -108,7 +106,7 @@ namespace MediaBrowser.Model.Sync
public SyncJob() public SyncJob()
{ {
RequestedItemIds = new Guid[] { }; RequestedItemIds = Array.Empty<Guid>();
} }
} }
} }

View File

@ -78,7 +78,7 @@ namespace MediaBrowser.Model.Users
public UserPolicy() public UserPolicy()
{ {
EnableContentDeletion = true; EnableContentDeletion = true;
EnableContentDeletionFromFolders = new string[] { }; EnableContentDeletionFromFolders = Array.Empty<string>();
EnableSyncTranscoding = true; EnableSyncTranscoding = true;
EnableMediaConversion = true; EnableMediaConversion = true;
@ -97,20 +97,20 @@ namespace MediaBrowser.Model.Users
EnableSharedDeviceControl = true; EnableSharedDeviceControl = true;
BlockedTags = new string[] { }; BlockedTags = Array.Empty<string>();
BlockUnratedItems = new UnratedItem[] { }; BlockUnratedItems = Array.Empty<UnratedItem>();
EnableUserPreferenceAccess = true; EnableUserPreferenceAccess = true;
AccessSchedules = new AccessSchedule[] { }; AccessSchedules = Array.Empty<AccessSchedule>();
EnableAllChannels = true; EnableAllChannels = true;
EnabledChannels = new string[] { }; EnabledChannels = Array.Empty<string>();
EnableAllFolders = true; EnableAllFolders = true;
EnabledFolders = new string[] { }; EnabledFolders = Array.Empty<string>();
EnabledDevices = new string[] { }; EnabledDevices = Array.Empty<string>();
EnableAllDevices = true; EnableAllDevices = true;
EnableContentDownloading = true; EnableContentDownloading = true;

View File

@ -1,20 +1,11 @@
using MediaBrowser.Common.Configuration; using MediaBrowser.Controller.Chapters;
using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Chapters;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.Providers.Chapters namespace MediaBrowser.Providers.Chapters
{ {