Merge branch 'master' into event-rewrite-1

# Conflicts:
#	Emby.Dlna/Emby.Dlna.csproj
#	Emby.Dlna/Eventing/DlnaEventManager.cs
#	Emby.Dlna/Service/BaseService.cs
#	Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs
#	MediaBrowser.Controller/Subtitles/SubtitleDownloadEventArgs.cs
This commit is contained in:
Patrick Barron
2020-08-24 20:04:13 -04:00
408 changed files with 2671 additions and 1671 deletions

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Threading.Tasks;
using Jellyfin.Data.Entities;
using MediaBrowser.Model.Users;
@@ -11,7 +13,9 @@ namespace MediaBrowser.Controller.Authentication
bool IsEnabled { get; }
Task<ProviderAuthenticationResult> Authenticate(string username, string password);
bool HasPassword(User user);
Task ChangePassword(User user, string newPassword);
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Threading.Tasks;
using Jellyfin.Data.Entities;
@@ -12,6 +14,7 @@ namespace MediaBrowser.Controller.Authentication
bool IsEnabled { get; }
Task<ForgotPasswordResult> StartForgotPasswordProcess(User user, bool isInNetwork);
Task<PinRedeemResult> RedeemPasswordResetPin(string pin);
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Globalization;
using System.Linq;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using MediaBrowser.Controller.Entities;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Collections.Generic;
namespace MediaBrowser.Controller.Channels

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
namespace MediaBrowser.Controller.Channels
{
public enum ChannelItemType

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
namespace MediaBrowser.Controller.Channels
{
public enum ChannelParentalRating

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
namespace MediaBrowser.Controller.Channels
{
public class ChannelSearchInfo

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Threading;
@@ -31,6 +33,7 @@ namespace MediaBrowser.Controller.Channels
ChannelFeatures[] GetAllChannelFeatures();
bool EnableMediaSourceDisplay(BaseItem item);
bool CanDelete(BaseItem item);
Task DeleteItem(BaseItem item);

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
namespace MediaBrowser.Controller.Channels
{
public interface IHasCacheKey

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@@ -30,6 +32,7 @@ namespace MediaBrowser.Controller.Channels
public interface ISupportsDelete
{
bool CanDelete(BaseItem item);
Task DeleteItem(string id, CancellationToken cancellationToken);
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Collections.Generic;
using MediaBrowser.Model.Channels;
@@ -5,6 +7,14 @@ namespace MediaBrowser.Controller.Channels
{
public class InternalChannelFeatures
{
public InternalChannelFeatures()
{
MediaTypes = new List<ChannelMediaType>();
ContentTypes = new List<ChannelMediaContentType>();
DefaultSortFields = new List<ChannelItemSortField>();
}
/// <summary>
/// Gets or sets the media types.
/// </summary>
@@ -48,13 +58,5 @@ namespace MediaBrowser.Controller.Channels
/// </summary>
/// <value><c>true</c> if [supports downloading]; otherwise, <c>false</c>.</value>
public bool SupportsContentDownloading { get; set; }
public InternalChannelFeatures()
{
MediaTypes = new List<ChannelMediaType>();
ContentTypes = new List<ChannelMediaContentType>();
DefaultSortFields = new List<ChannelItemSortField>();
}
}
}

View File

@@ -1,7 +1,8 @@
#pragma warning disable CS1591
using System;
using MediaBrowser.Model.Channels;
namespace MediaBrowser.Controller.Channels
{
public class InternalChannelItemQuery

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Entities;
@@ -6,6 +8,13 @@ namespace MediaBrowser.Controller.Collections
{
public class CollectionCreationOptions : IHasProviderIds
{
public CollectionCreationOptions()
{
ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
ItemIdList = Array.Empty<string>();
UserIds = Array.Empty<Guid>();
}
public string Name { get; set; }
public Guid? ParentId { get; set; }
@@ -17,12 +26,5 @@ namespace MediaBrowser.Controller.Collections
public string[] ItemIdList { get; set; }
public Guid[] UserIds { get; set; }
public CollectionCreationOptions()
{
ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
ItemIdList = Array.Empty<string>();
UserIds = Array.Empty<Guid>();
}
}
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using MediaBrowser.Controller.Entities;

View File

@@ -1,5 +1,8 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Jellyfin.Data.Entities;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
@@ -27,24 +30,23 @@ namespace MediaBrowser.Controller.Collections
/// Creates the collection.
/// </summary>
/// <param name="options">The options.</param>
BoxSet CreateCollection(CollectionCreationOptions options);
Task<BoxSet> CreateCollectionAsync(CollectionCreationOptions options);
/// <summary>
/// Adds to collection.
/// </summary>
/// <param name="collectionId">The collection identifier.</param>
/// <param name="itemIds">The item ids.</param>
void AddToCollection(Guid collectionId, IEnumerable<string> itemIds);
/// <returns><see cref="Task"/> representing the asynchronous operation.</returns>
Task AddToCollectionAsync(Guid collectionId, IEnumerable<Guid> itemIds);
/// <summary>
/// Removes from collection.
/// </summary>
/// <param name="collectionId">The collection identifier.</param>
/// <param name="itemIds">The item ids.</param>
void RemoveFromCollection(Guid collectionId, IEnumerable<string> itemIds);
void AddToCollection(Guid collectionId, IEnumerable<Guid> itemIds);
void RemoveFromCollection(Guid collectionId, IEnumerable<Guid> itemIds);
/// <returns>A <see cref="Task"/> representing the asynchronous operation.</returns>
Task RemoveFromCollectionAsync(Guid collectionId, IEnumerable<Guid> itemIds);
/// <summary>
/// Collapses the items within box sets.

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using Jellyfin.Data.Entities;
using Jellyfin.Data.Events;
@@ -9,6 +11,8 @@ namespace MediaBrowser.Controller.Devices
{
public interface IDeviceManager
{
event EventHandler<GenericEventArgs<Tuple<string, DeviceOptions>>> DeviceOptionsUpdated;
/// <summary>
/// Saves the capabilities.
/// </summary>
@@ -44,7 +48,7 @@ namespace MediaBrowser.Controller.Devices
bool CanAccessDevice(User user, string deviceId);
void UpdateDeviceOptions(string deviceId, DeviceOptions options);
DeviceOptions GetDeviceOptions(string deviceId);
event EventHandler<GenericEventArgs<Tuple<string, DeviceOptions>>> DeviceOptionsUpdated;
}
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Collections.Generic;
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Model.Dlna;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Drawing;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.IO;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
namespace MediaBrowser.Controller.Drawing
{
public class ImageCollageOptions
@@ -7,16 +9,19 @@ namespace MediaBrowser.Controller.Drawing
/// </summary>
/// <value>The input paths.</value>
public string[] InputPaths { get; set; }
/// <summary>
/// Gets or sets the output path.
/// </summary>
/// <value>The output path.</value>
public string OutputPath { get; set; }
/// <summary>
/// Gets or sets the width.
/// </summary>
/// <value>The width.</value>
public int Width { get; set; }
/// <summary>
/// Gets or sets the height.
/// </summary>

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Drawing;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.IO;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Entities;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.IO;
using MediaBrowser.Model.Drawing;
@@ -11,6 +13,7 @@ namespace MediaBrowser.Controller.Drawing
/// </summary>
/// <value>The stream.</value>
public Stream Stream { get; set; }
/// <summary>
/// Gets or sets the format.
/// </summary>

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Linq;
using MediaBrowser.Model.Entities;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
@@ -57,6 +59,7 @@ namespace MediaBrowser.Controller.Entities
private Guid[] _childrenIds = null;
private readonly object _childIdsLock = new object();
protected override List<BaseItem> LoadChildren()
{
lock (_childIdsLock)

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Linq;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Collections.Generic;
namespace MediaBrowser.Controller.Entities.Audio

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
namespace MediaBrowser.Controller.Entities.Audio
{
public interface IHasMusicGenres

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Linq;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Linq;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Text.Json.Serialization;
using Jellyfin.Data.Enums;
@@ -15,8 +17,10 @@ namespace MediaBrowser.Controller.Entities
[JsonIgnore]
public string SeriesPresentationUniqueKey { get; set; }
[JsonIgnore]
public string SeriesName { get; set; }
[JsonIgnore]
public Guid SeriesId { get; set; }

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -1390,7 +1392,7 @@ namespace MediaBrowser.Controller.Entities
new List<FileSystemMetadata>();
var ownedItemsChanged = await RefreshedOwnedItems(options, files, cancellationToken).ConfigureAwait(false);
LibraryManager.UpdateImages(this); // ensure all image properties in DB are fresh
await LibraryManager.UpdateImagesAsync(this).ConfigureAwait(false); // ensure all image properties in DB are fresh
if (ownedItemsChanged)
{
@@ -2279,7 +2281,7 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
/// <param name="type">The type.</param>
/// <param name="index">The index.</param>
public void DeleteImage(ImageType type, int index)
public async Task DeleteImageAsync(ImageType type, int index)
{
var info = GetImageInfo(type, index);
@@ -2297,7 +2299,7 @@ namespace MediaBrowser.Controller.Entities
FileSystem.DeleteFile(info.Path);
}
UpdateToRepository(ItemUpdateType.ImageUpdate, CancellationToken.None);
await UpdateToRepositoryAsync(ItemUpdateType.ImageUpdate, CancellationToken.None).ConfigureAwait(false);
}
public void RemoveImage(ItemImageInfo image)
@@ -2310,10 +2312,8 @@ namespace MediaBrowser.Controller.Entities
ImageInfos = ImageInfos.Except(deletedImages).ToArray();
}
public virtual void UpdateToRepository(ItemUpdateType updateReason, CancellationToken cancellationToken)
{
LibraryManager.UpdateItem(this, GetParent(), updateReason, cancellationToken);
}
public virtual Task UpdateToRepositoryAsync(ItemUpdateType updateReason, CancellationToken cancellationToken)
=> LibraryManager.UpdateItemAsync(this, GetParent(), updateReason, cancellationToken);
/// <summary>
/// Validates that images within the item are still on the filesystem.
@@ -2558,7 +2558,7 @@ namespace MediaBrowser.Controller.Entities
return type == ImageType.Backdrop || type == ImageType.Screenshot || type == ImageType.Chapter;
}
public void SwapImages(ImageType type, int index1, int index2)
public Task SwapImagesAsync(ImageType type, int index1, int index2)
{
if (!AllowsMultipleImages(type))
{
@@ -2571,13 +2571,13 @@ namespace MediaBrowser.Controller.Entities
if (info1 == null || info2 == null)
{
// Nothing to do
return;
return Task.CompletedTask;
}
if (!info1.IsLocalFile || !info2.IsLocalFile)
{
// TODO: Not supported yet
return;
return Task.CompletedTask;
}
var path1 = info1.Path;
@@ -2594,7 +2594,7 @@ namespace MediaBrowser.Controller.Entities
info2.Width = 0;
info2.Height = 0;
UpdateToRepository(ItemUpdateType.ImageUpdate, CancellationToken.None);
return UpdateToRepositoryAsync(ItemUpdateType.ImageUpdate, CancellationToken.None);
}
public virtual bool IsPlayed(User user)

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Linq;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Text.Json.Serialization;
namespace MediaBrowser.Controller.Entities
@@ -26,13 +28,5 @@ namespace MediaBrowser.Controller.Entities
[JsonIgnore]
public override bool SupportsPeople => false;
// public override double? GetDefaultPrimaryImageAspectRatio()
//{
// double value = 16;
// value /= 9;
// return value;
//}
}
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Linq;
using System.Text.Json.Serialization;
@@ -49,11 +51,13 @@ namespace MediaBrowser.Controller.Entities
return SeriesId;
}
/// <inheritdoc />
public override bool CanDownload()
{
return IsFileProtocol;
}
/// <inheritdoc />
public override UnratedItem GetBlockUnratedType()
{
return UnratedItem.Book;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.IO;

View File

@@ -350,12 +350,12 @@ namespace MediaBrowser.Controller.Entities
if (currentChild.UpdateFromResolvedItem(child) > ItemUpdateType.None)
{
currentChild.UpdateToRepository(ItemUpdateType.MetadataImport, cancellationToken);
await currentChild.UpdateToRepositoryAsync(ItemUpdateType.MetadataImport, cancellationToken).ConfigureAwait(false);
}
else
{
// metadata is up-to-date; make sure DB has correct images dimensions and hash
LibraryManager.UpdateImages(currentChild);
await LibraryManager.UpdateImagesAsync(currentChild).ConfigureAwait(false);
}
continue;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
namespace MediaBrowser.Controller.Entities

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Dto;
@@ -7,15 +9,19 @@ namespace MediaBrowser.Controller.Entities
{
public interface IHasMediaSources
{
/// <summary>
/// Gets the media sources.
/// </summary>
List<MediaSourceInfo> GetMediaSources(bool enablePathSubstitution);
List<MediaStream> GetMediaStreams();
Guid Id { get; set; }
long? RunTimeTicks { get; set; }
string Path { get; }
/// <summary>
/// Gets the media sources.
/// </summary>
List<MediaSourceInfo> GetMediaSources(bool enablePathSubstitution);
List<MediaStream> GetMediaStreams();
}
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using MediaBrowser.Model.LiveTv;
namespace MediaBrowser.Controller.Entities

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
namespace MediaBrowser.Controller.Entities
@@ -10,13 +12,16 @@ namespace MediaBrowser.Controller.Entities
/// <value>The name of the series.</value>
string SeriesName { get; set; }
string FindSeriesName();
string FindSeriesSortName();
Guid SeriesId { get; set; }
Guid FindSeriesId();
string SeriesPresentationUniqueKey { get; set; }
string FindSeriesName();
string FindSeriesSortName();
Guid FindSeriesId();
string FindSeriesPresentationUniqueKey();
}
}

View File

@@ -1,4 +1,7 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
namespace MediaBrowser.Controller.Entities
{
@@ -8,6 +11,6 @@ namespace MediaBrowser.Controller.Entities
/// Gets or sets the special feature ids.
/// </summary>
/// <value>The special feature ids.</value>
Guid[] SpecialFeatureIds { get; set; }
IReadOnlyList<Guid> SpecialFeatureIds { get; set; }
}
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
namespace MediaBrowser.Controller.Entities

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Entities;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Collections.Generic;
namespace MediaBrowser.Controller.Entities

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Threading;
using System.Threading.Tasks;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
namespace MediaBrowser.Controller.Entities
{
public interface ISupportsPlaceHolders

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Linq;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
namespace MediaBrowser.Controller.Entities

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Text.Json.Serialization;
using MediaBrowser.Model.Entities;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Globalization;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Linq;

View File

@@ -1,5 +1,8 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text.Json.Serialization;
using System.Threading;
@@ -17,8 +20,6 @@ namespace MediaBrowser.Controller.Entities.Movies
/// </summary>
public class Movie : Video, IHasSpecialFeatures, IHasTrailers, IHasLookupInfo<MovieInfo>, ISupportsBoxSetGrouping
{
public Guid[] SpecialFeatureIds { get; set; }
public Movie()
{
SpecialFeatureIds = Array.Empty<Guid>();
@@ -27,6 +28,9 @@ namespace MediaBrowser.Controller.Entities.Movies
RemoteTrailerIds = Array.Empty<Guid>();
}
/// <inheritdoc />
public IReadOnlyList<Guid> SpecialFeatureIds { get; set; }
/// <inheritdoc />
public IReadOnlyList<Guid> LocalTrailerIds { get; set; }
@@ -46,6 +50,9 @@ namespace MediaBrowser.Controller.Entities.Movies
set => TmdbCollectionName = value;
}
[JsonIgnore]
public override bool StopRefreshIfLocalMetadataFound => false;
public override double GetDefaultPrimaryImageAspectRatio()
{
// hack for tv plugins
@@ -105,6 +112,7 @@ namespace MediaBrowser.Controller.Entities.Movies
return itemsChanged;
}
/// <inheritdoc />
public override UnratedItem GetBlockUnratedType()
{
return UnratedItem.Movie;
@@ -133,6 +141,7 @@ namespace MediaBrowser.Controller.Entities.Movies
return info;
}
/// <inheritdoc />
public override bool BeforeMetadataRefresh(bool replaceAllMetdata)
{
var hasChanges = base.BeforeMetadataRefresh(replaceAllMetdata);
@@ -169,6 +178,7 @@ namespace MediaBrowser.Controller.Entities.Movies
return hasChanges;
}
/// <inheritdoc />
public override List<ExternalUrl> GetRelatedUrls()
{
var list = base.GetRelatedUrls();
@@ -179,14 +189,11 @@ namespace MediaBrowser.Controller.Entities.Movies
list.Add(new ExternalUrl
{
Name = "Trakt",
Url = string.Format("https://trakt.tv/movies/{0}", imdbId)
Url = string.Format(CultureInfo.InvariantCulture, "https://trakt.tv/movies/{0}", imdbId)
});
}
return list;
}
[JsonIgnore]
public override bool StopRefreshIfLocalMetadataFound => false;
}
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Linq;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using MediaBrowser.Model.Entities;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Text.Json.Serialization;
using MediaBrowser.Model.Drawing;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Text.Json.Serialization;
namespace MediaBrowser.Controller.Entities

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
namespace MediaBrowser.Controller.Entities
{
public interface IHasShares

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
namespace MediaBrowser.Controller.Entities
{
public enum SourceType

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Globalization;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Linq;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -496,7 +498,7 @@ namespace MediaBrowser.Controller.Entities.TV
list.Add(new ExternalUrl
{
Name = "Trakt",
Url = string.Format("https://trakt.tv/shows/{0}", imdbId)
Url = string.Format(CultureInfo.InvariantCulture, "https://trakt.tv/shows/{0}", imdbId)
});
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Linq;

View File

@@ -1,5 +1,8 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text.Json.Serialization;
using Jellyfin.Data.Enums;
using MediaBrowser.Controller.Providers;
@@ -86,7 +89,7 @@ namespace MediaBrowser.Controller.Entities
list.Add(new ExternalUrl
{
Name = "Trakt",
Url = string.Format("https://trakt.tv/movies/{0}", imdbId)
Url = string.Format(CultureInfo.InvariantCulture, "https://trakt.tv/movies/{0}", imdbId)
});
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Text.Json.Serialization;
@@ -24,6 +26,7 @@ namespace MediaBrowser.Controller.Entities
/// The _rating.
/// </summary>
private double? _rating;
/// <summary>
/// Gets or sets the users 0-10 rating.
/// </summary>
@@ -75,11 +78,13 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
/// <value><c>true</c> if played; otherwise, <c>false</c>.</value>
public bool Played { get; set; }
/// <summary>
/// Gets or sets the index of the audio stream.
/// </summary>
/// <value>The index of the audio stream.</value>
public int? AudioStreamIndex { get; set; }
/// <summary>
/// Gets or sets the index of the subtitle stream.
/// </summary>

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Linq;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Linq;
@@ -6,7 +8,6 @@ using System.Threading.Tasks;
using Jellyfin.Data.Entities;
using MediaBrowser.Controller.TV;
using MediaBrowser.Model.Querying;
using Microsoft.Extensions.Logging;
namespace MediaBrowser.Controller.Entities
{

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -8,7 +10,6 @@ using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.TV;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Querying;
using Microsoft.Extensions.Logging;
@@ -672,9 +673,7 @@ namespace MediaBrowser.Controller.Entities
var isPlaceHolder = false;
var hasPlaceHolder = item as ISupportsPlaceHolders;
if (hasPlaceHolder != null)
if (item is ISupportsPlaceHolders hasPlaceHolder)
{
isPlaceHolder = hasPlaceHolder.IsPlaceHolder;
}
@@ -689,13 +688,11 @@ namespace MediaBrowser.Controller.Entities
{
var filterValue = query.HasSpecialFeature.Value;
var movie = item as IHasSpecialFeatures;
if (movie != null)
if (item is IHasSpecialFeatures movie)
{
var ok = filterValue
? movie.SpecialFeatureIds.Length > 0
: movie.SpecialFeatureIds.Length == 0;
? movie.SpecialFeatureIds.Count > 0
: movie.SpecialFeatureIds.Count == 0;
if (!ok)
{

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -495,9 +497,10 @@ namespace MediaBrowser.Controller.Entities
}
}
public override void UpdateToRepository(ItemUpdateType updateReason, CancellationToken cancellationToken)
/// <inheritdoc />
public override async Task UpdateToRepositoryAsync(ItemUpdateType updateReason, CancellationToken cancellationToken)
{
base.UpdateToRepository(updateReason, cancellationToken);
await base.UpdateToRepositoryAsync(updateReason, cancellationToken).ConfigureAwait(false);
var localAlternates = GetLocalAlternateVersionIds()
.Select(i => LibraryManager.GetItemById(i))
@@ -514,7 +517,7 @@ namespace MediaBrowser.Controller.Entities
item.Genres = Genres;
item.ProviderIds = ProviderIds;
item.UpdateToRepository(ItemUpdateType.MetadataDownload, cancellationToken);
await item.UpdateToRepositoryAsync(ItemUpdateType.MetadataDownload, cancellationToken).ConfigureAwait(false);
}
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Globalization;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Globalization;
using System.Linq;

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using Jellyfin.Data.Entities;

View File

@@ -8,28 +8,17 @@ using Microsoft.Extensions.Logging;
namespace MediaBrowser.Controller.IO
{
/// <summary>
/// Provides low level File access that is much faster than the File/Directory api's
/// Provides low level File access that is much faster than the File/Directory api's.
/// </summary>
public static class FileData
{
private static Dictionary<string, FileSystemMetadata> GetFileSystemDictionary(FileSystemMetadata[] list)
{
var dict = new Dictionary<string, FileSystemMetadata>(StringComparer.OrdinalIgnoreCase);
foreach (var file in list)
{
dict[file.FullName] = file;
}
return dict;
}
/// <summary>
/// Gets the filtered file system entries.
/// </summary>
/// <param name="directoryService">The directory service.</param>
/// <param name="path">The path.</param>
/// <param name="fileSystem">The file system.</param>
/// <param name="appHost">The application host.</param>
/// <param name="logger">The logger.</param>
/// <param name="args">The args.</param>
/// <param name="flattenFolderDepth">The flatten folder depth.</param>

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
namespace MediaBrowser.Controller
{
public interface IResourceFileManager

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Net;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using MediaBrowser.Common.Configuration;
namespace MediaBrowser.Controller
@@ -81,6 +83,10 @@ namespace MediaBrowser.Controller
/// <value>The internal metadata path.</value>
string InternalMetadataPath { get; }
/// <summary>
/// Gets the virtual internal metadata path, either a custom path or the default.
/// </summary>
/// <value>The virtual internal metadata path.</value>
string VirtualInternalMetadataPath { get; }
/// <summary>

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
namespace MediaBrowser.Controller.Library
{
public class DeleteOptions

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Threading;
@@ -63,6 +65,7 @@ namespace MediaBrowser.Controller.Library
/// Finds the by path.
/// </summary>
/// <param name="path">The path.</param>
/// <param name="isFolder"><c>true</c> is the path is a directory; otherwise <c>false</c>.</param>
/// <returns>BaseItem.</returns>
BaseItem FindByPath(string path, bool? isFolder);
@@ -72,6 +75,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="name">The name.</param>
/// <returns>Task{Artist}.</returns>
MusicArtist GetArtist(string name);
MusicArtist GetArtist(string name, DtoOptions options);
/// <summary>
/// Gets a Studio.
@@ -124,7 +128,7 @@ namespace MediaBrowser.Controller.Library
/// </summary>
void QueueLibraryScan();
void UpdateImages(BaseItem item, bool forceUpdate = false);
Task UpdateImagesAsync(BaseItem item, bool forceUpdate = false);
/// <summary>
/// Gets the default view.
@@ -179,6 +183,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="sortOrder">The sort order.</param>
/// <returns>IEnumerable{BaseItem}.</returns>
IEnumerable<BaseItem> Sort(IEnumerable<BaseItem> items, User user, IEnumerable<string> sortBy, SortOrder sortOrder);
IEnumerable<BaseItem> Sort(IEnumerable<BaseItem> items, User user, IEnumerable<ValueTuple<string, SortOrder>> orderBy);
/// <summary>
@@ -200,9 +205,16 @@ namespace MediaBrowser.Controller.Library
/// <summary>
/// Updates the item.
/// </summary>
void UpdateItems(IReadOnlyList<BaseItem> items, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken);
Task UpdateItemsAsync(IReadOnlyList<BaseItem> items, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken);
void UpdateItem(BaseItem item, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken);
/// <summary>
/// Updates the item.
/// </summary>
/// <param name="item">The item.</param>
/// <param name="parent">The parent item.</param>
/// <param name="updateReason">The update reason.</param>
/// <param name="cancellationToken">The cancellation token.</param>
Task UpdateItemAsync(BaseItem item, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken);
/// <summary>
/// Retrieves the item.
@@ -317,7 +329,8 @@ namespace MediaBrowser.Controller.Library
/// <param name="name">The name.</param>
/// <param name="viewType">Type of the view.</param>
/// <param name="sortName">Name of the sort.</param>
UserView GetNamedView(string name,
UserView GetNamedView(
string name,
string viewType,
string sortName);
@@ -329,7 +342,8 @@ namespace MediaBrowser.Controller.Library
/// <param name="viewType">Type of the view.</param>
/// <param name="sortName">Name of the sort.</param>
/// <param name="uniqueId">The unique identifier.</param>
UserView GetNamedView(string name,
UserView GetNamedView(
string name,
Guid parentId,
string viewType,
string sortName,
@@ -341,7 +355,8 @@ namespace MediaBrowser.Controller.Library
/// <param name="parent">The parent.</param>
/// <param name="viewType">Type of the view.</param>
/// <param name="sortName">Name of the sort.</param>
UserView GetShadowView(BaseItem parent,
UserView GetShadowView(
BaseItem parent,
string viewType,
string sortName);
@@ -393,7 +408,9 @@ namespace MediaBrowser.Controller.Library
/// <param name="fileSystemChildren">The file system children.</param>
/// <param name="directoryService">The directory service.</param>
/// <returns>IEnumerable&lt;Trailer&gt;.</returns>
IEnumerable<Video> FindTrailers(BaseItem owner, List<FileSystemMetadata> fileSystemChildren,
IEnumerable<Video> FindTrailers(
BaseItem owner,
List<FileSystemMetadata> fileSystemChildren,
IDirectoryService directoryService);
/// <summary>
@@ -403,7 +420,9 @@ namespace MediaBrowser.Controller.Library
/// <param name="fileSystemChildren">The file system children.</param>
/// <param name="directoryService">The directory service.</param>
/// <returns>IEnumerable&lt;Video&gt;.</returns>
IEnumerable<Video> FindExtras(BaseItem owner, List<FileSystemMetadata> fileSystemChildren,
IEnumerable<Video> FindExtras(
BaseItem owner,
List<FileSystemMetadata> fileSystemChildren,
IDirectoryService directoryService);
/// <summary>
@@ -522,16 +541,25 @@ namespace MediaBrowser.Controller.Library
Guid GetMusicGenreId(string name);
Task AddVirtualFolder(string name, string collectionType, LibraryOptions options, bool refreshLibrary);
Task RemoveVirtualFolder(string name, bool refreshLibrary);
void AddMediaPath(string virtualFolderName, MediaPathInfo path);
void UpdateMediaPath(string virtualFolderName, MediaPathInfo path);
void RemoveMediaPath(string virtualFolderName, string path);
QueryResult<(BaseItem, ItemCounts)> GetGenres(InternalItemsQuery query);
QueryResult<(BaseItem, ItemCounts)> GetMusicGenres(InternalItemsQuery query);
QueryResult<(BaseItem, ItemCounts)> GetStudios(InternalItemsQuery query);
QueryResult<(BaseItem, ItemCounts)> GetArtists(InternalItemsQuery query);
QueryResult<(BaseItem, ItemCounts)> GetAlbumArtists(InternalItemsQuery query);
QueryResult<(BaseItem, ItemCounts)> GetAllArtists(InternalItemsQuery query);
int GetCount(InternalItemsQuery query);

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
namespace MediaBrowser.Controller.Library

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.Dto;
@@ -6,8 +8,6 @@ namespace MediaBrowser.Controller.Library
{
public interface ILiveStream
{
Task Open(CancellationToken openCancellationToken);
Task Close();
int ConsumerCount { get; set; }
string OriginalStreamId { get; set; }
@@ -19,5 +19,9 @@ namespace MediaBrowser.Controller.Library
MediaSourceInfo MediaSource { get; set; }
string UniqueId { get; }
Task Open(CancellationToken openCancellationToken);
Task Close();
}
}

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.IO;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using MediaBrowser.Controller.Entities;
namespace MediaBrowser.Controller.Library

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Collections.Generic;
using Jellyfin.Data.Entities;
using MediaBrowser.Controller.Dto;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Threading;
@@ -28,6 +30,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="reason">The reason.</param>
/// <param name="cancellationToken">The cancellation token.</param>
void SaveUserData(Guid userId, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken);
void SaveUserData(User user, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken);
UserItemData GetUserData(User user, BaseItem item);

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using MediaBrowser.Controller.Dto;
@@ -10,6 +12,7 @@ namespace MediaBrowser.Controller.Library
public interface IUserViewManager
{
Folder[] GetUserViews(UserViewQuery query);
UserView GetUserSubView(Guid parentId, string type, string localizationKey, string sortName);
List<Tuple<BaseItem, List<BaseItem>>> GetLatestItems(LatestItemsQuery request, DtoOptions options);

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
namespace MediaBrowser.Controller.Library

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using MediaBrowser.Controller.Entities;
namespace MediaBrowser.Controller.Library

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Linq;

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
namespace MediaBrowser.Controller.Library

View File

@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
using MediaBrowser.Controller.Entities;

Some files were not shown because too many files have changed in this diff Show More