Merge pull request #283 from Bond-009/gpl-cleanup

Post GPL cleanup
pull/702/head
Andrew Rabert 6 years ago committed by GitHub
commit e4a041b832

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -1,21 +1,18 @@
using MediaBrowser.Controller.Playlists;
using MediaBrowser.Controller.TV;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Querying;
using System;
using System.Collections.Generic;
using System.Linq;
using MediaBrowser.Model.Serialization;
using System.Threading.Tasks;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Collections;
namespace MediaBrowser.Controller.Entities
{
public class UserView : Folder, IHasCollectionType
{
public string ViewType { get; set; }
public Guid DisplayParentId { get; set; }
public new Guid DisplayParentId { get; set; }
public Guid? UserId { get; set; }
@ -68,14 +65,6 @@ namespace MediaBrowser.Controller.Entities
}
}
//public override double? GetDefaultPrimaryImageAspectRatio()
//{
// double value = 16;
// value /= 9;
// return value;
//}
public override int GetChildCount(User user)
{
return GetChildren(user, true).Count;
@ -161,8 +150,8 @@ namespace MediaBrowser.Controller.Entities
public static bool IsEligibleForGrouping(Folder folder)
{
var collectionFolder = folder as ICollectionFolder;
return collectionFolder != null && IsEligibleForGrouping(collectionFolder.CollectionType);
return folder is ICollectionFolder collectionFolder
&& IsEligibleForGrouping(collectionFolder.CollectionType);
}
private static string[] ViewTypesEligibleForGrouping = new string[]
@ -195,7 +184,7 @@ namespace MediaBrowser.Controller.Entities
protected override Task ValidateChildrenInternal(IProgress<double> progress, System.Threading.CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, Providers.MetadataRefreshOptions refreshOptions, Providers.IDirectoryService directoryService)
{
return Task.FromResult(true);
return Task.CompletedTask;
}
[IgnoreDataMember]

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

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

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

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

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

@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Threading;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Dlna;
@ -12,8 +11,6 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.MediaInfo;
using MediaBrowser.Model.Extensions;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Model.Reflection;
namespace MediaBrowser.Controller.MediaEncoding
{
@ -343,19 +340,19 @@ namespace MediaBrowser.Controller.MediaEncoding
public int GetVideoProfileScore(string profile)
{
var list = new []
string[] list =
{
"Constrained Baseline",
"ConstrainedBaseline",
"Baseline",
"Extended",
"Main",
"High",
"Progressive High",
"Constrained High"
"ProgressiveHigh",
"ConstrainedHigh"
};
// strip spaces because they may be stripped out on the query string
return Array.FindIndex(list, t => string.Equals(t.Replace(" ", ""), profile.Replace(" ", ""), StringComparison.OrdinalIgnoreCase));
return Array.FindIndex(list, t => string.Equals(t, profile.Replace(" ", ""), StringComparison.OrdinalIgnoreCase));
}
public string GetInputPathArgument(EncodingJobInfo state)
@ -516,18 +513,12 @@ namespace MediaBrowser.Controller.MediaEncoding
public string NormalizeTranscodingLevel(string videoCodec, string level)
{
double requestLevel;
// Clients may direct play higher than level 41, but there's no reason to transcode higher
if (double.TryParse(level, NumberStyles.Any, _usCulture, out requestLevel))
if (double.TryParse(level, NumberStyles.Any, _usCulture, out double requestLevel)
&& string.Equals(videoCodec, "h264", StringComparison.OrdinalIgnoreCase)
&& requestLevel > 41)
{
if (string.Equals(videoCodec, "h264", StringComparison.OrdinalIgnoreCase))
{
if (requestLevel > 41)
{
return "41";
}
}
return "41";
}
return level;
@ -623,7 +614,7 @@ namespace MediaBrowser.Controller.MediaEncoding
// h264 (h264_qsv)
else if (string.Equals(videoEncoder, "h264_qsv", StringComparison.OrdinalIgnoreCase))
{
string[] valid_h264_qsv = new string[] { "veryslow", "slower", "slow", "medium", "fast", "faster", "veryfast" };
string[] valid_h264_qsv = { "veryslow", "slower", "slow", "medium", "fast", "faster", "veryfast" };
if (valid_h264_qsv.Contains(encodingOptions.H264Preset, StringComparer.OrdinalIgnoreCase))
{
@ -1958,12 +1949,12 @@ namespace MediaBrowser.Controller.MediaEncoding
}
else
{
state.PlayableStreamFileNames = new string[] { };
state.PlayableStreamFileNames = Array.Empty<string>();
}
}
else
{
state.PlayableStreamFileNames = new string[] { };
state.PlayableStreamFileNames = Array.Empty<string>();
}
if (mediaSource.Timestamp.HasValue)

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

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

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

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

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

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

@ -15,14 +15,14 @@ namespace MediaBrowser.Controller.Playlists
{
public class Playlist : Folder, IHasShares
{
public static string[] SupportedExtensions = new string[] {
".m3u",
".m3u8",
".pls",
".wpl",
".zpl"
};
public static string[] SupportedExtensions =
{
".m3u",
".m3u8",
".pls",
".wpl",
".zpl"
};
public Guid OwnerUserId { get; set; }
@ -30,7 +30,7 @@ namespace MediaBrowser.Controller.Playlists
public Playlist()
{
Shares = new Share[] { };
Shares = Array.Empty<Share>();
}
[IgnoreDataMember]
@ -131,7 +131,7 @@ namespace MediaBrowser.Controller.Playlists
protected override Task ValidateChildrenInternal(IProgress<double> progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
{
return Task.FromResult(true);
return Task.CompletedTask;
}
public override List<BaseItem> GetChildren(User user, bool includeLinkedChildren, InternalItemsQuery query)
@ -186,8 +186,7 @@ namespace MediaBrowser.Controller.Playlists
private static IEnumerable<BaseItem> GetPlaylistItems(BaseItem item, User user, string mediaType, DtoOptions options)
{
var musicGenre = item as MusicGenre;
if (musicGenre != null)
if (item is MusicGenre musicGenre)
{
return LibraryManager.GetItemList(new InternalItemsQuery(user)
{
@ -199,8 +198,7 @@ namespace MediaBrowser.Controller.Playlists
});
}
var musicArtist = item as MusicArtist;
if (musicArtist != null)
if (item is MusicArtist musicArtist)
{
return LibraryManager.GetItemList(new InternalItemsQuery(user)
{
@ -212,8 +210,7 @@ namespace MediaBrowser.Controller.Playlists
});
}
var folder = item as Folder;
if (folder != null)
if (item is Folder folder)
{
var query = new InternalItemsQuery(user)
{

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

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

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

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

@ -74,4 +74,4 @@ namespace MediaBrowser.Controller.Providers
return userData;
}
}
}
}

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

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

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

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

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

@ -77,12 +77,12 @@ namespace MediaBrowser.LocalMetadata.Images
return directoryService.GetFileSystemEntries(path)
.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)
.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)
@ -106,7 +106,7 @@ namespace MediaBrowser.LocalMetadata.Images
IEnumerable<FileSystemMetadata> files = paths.SelectMany(i => _fileSystem.GetFiles(i, BaseItem.SupportedImageExtensions, true, false));
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>();

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

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

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

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

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

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

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

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

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

@ -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[] {};
}
}
}

@ -5,22 +5,6 @@ namespace MediaBrowser.Model.Devices
{
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; }
/// <summary>

@ -5,11 +5,6 @@ namespace MediaBrowser.Model.Devices
{
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>
/// Gets or sets a value indicating whether [supports synchronize].
/// </summary>

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

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

@ -1,7 +1,6 @@
using MediaBrowser.Model.MediaInfo;
using System;
using System.Collections.Generic;
using System.Linq;
namespace MediaBrowser.Model.Dlna
{
@ -28,7 +27,7 @@ namespace MediaBrowser.Model.Dlna
DlnaFlags flagValue = DlnaFlags.BackgroundTransferMode |
DlnaFlags.InteractiveTransferMode |
DlnaFlags.DlnaV15;
string dlnaflags = string.Format(";DLNA.ORG_FLAGS={0}",
DlnaMaps.FlagsToString(flagValue));

@ -1,13 +1,12 @@
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Extensions;
namespace MediaBrowser.Model.Dlna
{
public class ResolutionNormalizer
{
private static readonly ResolutionConfiguration[] Configurations =
new []
private static readonly ResolutionConfiguration[] Configurations =
new[]
{
new ResolutionConfiguration(426, 320000),
new ResolutionConfiguration(640, 400000),
@ -20,24 +19,24 @@ namespace MediaBrowser.Model.Dlna
public static ResolutionOptions Normalize(int? inputBitrate,
int? unused1,
int? unused2,
int outputBitrate,
string inputCodec,
int outputBitrate,
string inputCodec,
string outputCodec,
int? maxWidth,
int? maxHeight)
{
// If the bitrate isn't changing, then don't downlscale the resolution
if (inputBitrate.HasValue && outputBitrate >= inputBitrate.Value)
{
if (maxWidth.HasValue || maxHeight.HasValue)
{
return new ResolutionOptions
{
MaxWidth = maxWidth,
MaxHeight = maxHeight
};
}
}
// If the bitrate isn't changing, then don't downlscale the resolution
if (inputBitrate.HasValue && outputBitrate >= inputBitrate.Value)
{
if (maxWidth.HasValue || maxHeight.HasValue)
{
return new ResolutionOptions
{
MaxWidth = maxWidth,
MaxHeight = maxHeight
};
}
}
var resolutionConfig = GetResolutionConfiguration(outputBitrate);
if (resolutionConfig != null)
@ -90,8 +89,8 @@ namespace MediaBrowser.Model.Dlna
{
var inputScaleFactor = GetVideoBitrateScaleFactor(inputVideoCodec);
var outputScaleFactor = GetVideoBitrateScaleFactor(outputVideoCodec);
var scaleFactor = outputScaleFactor/inputScaleFactor;
var newBitrate = scaleFactor*bitrate;
var scaleFactor = outputScaleFactor / inputScaleFactor;
var newBitrate = scaleFactor * bitrate;
return Convert.ToInt32(newBitrate);
}

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

@ -1,7 +1,5 @@
using MediaBrowser.Model.Extensions;
using System.Collections.Generic;
using System.Xml.Serialization;
using MediaBrowser.Model.Dlna;
namespace MediaBrowser.Model.Dlna
{
@ -43,4 +41,4 @@ namespace MediaBrowser.Model.Dlna
return languages.Length == 0 || ListHelper.ContainsIgnoreCase(languages, subLanguage);
}
}
}
}

@ -4,10 +4,8 @@ using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Library;
using MediaBrowser.Model.LiveTv;
using MediaBrowser.Model.Providers;
using MediaBrowser.Model.Sync;
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Serialization;
namespace MediaBrowser.Model.Dto
{
@ -67,7 +65,6 @@ namespace MediaBrowser.Model.Dto
public int? AirsBeforeSeasonNumber { get; set; }
public int? AirsAfterSeasonNumber { get; set; }
public int? AirsBeforeEpisodeNumber { get; set; }
public bool? DisplaySpecialsWithSeasons { get; set; }
public bool? CanDelete { get; set; }
public bool? CanDownload { get; set; }
@ -156,7 +153,6 @@ namespace MediaBrowser.Model.Dto
/// <value>The channel identifier.</value>
public Guid ChannelId { get; set; }
public string ChannelName { get; set; }
public string ServiceName { get; set; }
/// <summary>
/// Gets or sets the overview.
@ -479,26 +475,6 @@ namespace MediaBrowser.Model.Dto
public int? PartCount { 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>
/// Gets or sets the image tags.
/// </summary>
@ -601,12 +577,6 @@ namespace MediaBrowser.Model.Dto
/// <value>The end date.</value>
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>
/// Gets or sets the locked fields.
/// </summary>
@ -677,11 +647,6 @@ namespace MediaBrowser.Model.Dto
public double? Altitude { get; set; }
public int? IsoSpeedRating { get; set; }
/// <summary>
/// Used by RecordingGroup
/// </summary>
public int? RecordingCount { get; set; }
/// <summary>
/// Gets or sets the series timer identifier.
/// </summary>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -21,18 +21,6 @@ namespace MediaBrowser.Model.Notifications
/// </summary>
/// <value><c>true</c> if enabled; otherwise, <c>false</c>.</value>
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>
/// Gets or sets the disabled services.
@ -48,9 +36,9 @@ namespace MediaBrowser.Model.Notifications
public NotificationOption()
{
DisabledServices = new string[] {};
DisabledMonitorUsers = new string[] {};
SendToUsers = new string[] {};
DisabledServices = Array.Empty<string>();
DisabledMonitorUsers = Array.Empty<string>();
SendToUsers = Array.Empty<string>();
}
}
}
}

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

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

@ -1,5 +1,4 @@
using System.Collections.Generic;
using System;
using System;
namespace MediaBrowser.Model.Notifications
{
@ -14,16 +13,5 @@ namespace MediaBrowser.Model.Notifications
public string Category { 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[] {};
}
}
}
}

@ -1,11 +1,10 @@
using System.Collections.Generic;
using System;
using System;
namespace MediaBrowser.Model.Playlists
{
public class PlaylistCreationRequest
{
public string Name { get; set; }
public string Name { get; set; }
public Guid[] ItemIdList { get; set; }

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

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

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

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

@ -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[] {};
}
}
}

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

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

@ -1,20 +1,11 @@
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Chapters;
using MediaBrowser.Controller.Chapters;
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.Persistence;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.Providers.Chapters
{

Loading…
Cancel
Save