|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
#nullable disable
|
|
|
|
|
|
|
|
|
|
#pragma warning disable CS1591
|
|
|
|
|
#pragma warning disable CA1002, CS1591
|
|
|
|
|
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
@ -31,6 +31,29 @@ namespace MediaBrowser.Controller.Library
|
|
|
|
|
/// </summary>
|
|
|
|
|
public interface ILibraryManager
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Occurs when [item added].
|
|
|
|
|
/// </summary>
|
|
|
|
|
event EventHandler<ItemChangeEventArgs> ItemAdded;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Occurs when [item updated].
|
|
|
|
|
/// </summary>
|
|
|
|
|
event EventHandler<ItemChangeEventArgs> ItemUpdated;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Occurs when [item removed].
|
|
|
|
|
/// </summary>
|
|
|
|
|
event EventHandler<ItemChangeEventArgs> ItemRemoved;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets the root folder.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value>The root folder.</value>
|
|
|
|
|
AggregateFolder RootFolder { get; }
|
|
|
|
|
|
|
|
|
|
bool IsScanRunning { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Resolves the path.
|
|
|
|
|
/// </summary>
|
|
|
|
@ -57,16 +80,10 @@ namespace MediaBrowser.Controller.Library
|
|
|
|
|
LibraryOptions libraryOptions,
|
|
|
|
|
string collectionType = null);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets the root folder.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <value>The root folder.</value>
|
|
|
|
|
AggregateFolder RootFolder { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets a Person.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="name">The name.</param>
|
|
|
|
|
/// <param name="name">The name of the person.</param>
|
|
|
|
|
/// <returns>Task{Person}.</returns>
|
|
|
|
|
Person GetPerson(string name);
|
|
|
|
|
|
|
|
|
@ -81,7 +98,7 @@ namespace MediaBrowser.Controller.Library
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets the artist.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="name">The name.</param>
|
|
|
|
|
/// <param name="name">The name of the artist.</param>
|
|
|
|
|
/// <returns>Task{Artist}.</returns>
|
|
|
|
|
MusicArtist GetArtist(string name);
|
|
|
|
|
|
|
|
|
@ -90,21 +107,21 @@ namespace MediaBrowser.Controller.Library
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets a Studio.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="name">The name.</param>
|
|
|
|
|
/// <param name="name">The name of the studio.</param>
|
|
|
|
|
/// <returns>Task{Studio}.</returns>
|
|
|
|
|
Studio GetStudio(string name);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets a Genre.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="name">The name.</param>
|
|
|
|
|
/// <param name="name">The name of the genre.</param>
|
|
|
|
|
/// <returns>Task{Genre}.</returns>
|
|
|
|
|
Genre GetGenre(string name);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets the genre.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="name">The name.</param>
|
|
|
|
|
/// <param name="name">The name of the music genre.</param>
|
|
|
|
|
/// <returns>Task{MusicGenre}.</returns>
|
|
|
|
|
MusicGenre GetMusicGenre(string name);
|
|
|
|
|
|
|
|
|
@ -113,7 +130,7 @@ namespace MediaBrowser.Controller.Library
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="value">The value.</param>
|
|
|
|
|
/// <returns>Task{Year}.</returns>
|
|
|
|
|
/// <exception cref="ArgumentOutOfRangeException"></exception>
|
|
|
|
|
/// <exception cref="ArgumentOutOfRangeException">Throws if year is invalid.</exception>
|
|
|
|
|
Year GetYear(int value);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@ -205,16 +222,26 @@ namespace MediaBrowser.Controller.Library
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Creates the item.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="item">Item to create.</param>
|
|
|
|
|
/// <param name="parent">Parent of new item.</param>
|
|
|
|
|
void CreateItem(BaseItem item, BaseItem parent);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Creates the items.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="items">Items to create.</param>
|
|
|
|
|
/// <param name="parent">Parent of new items.</param>
|
|
|
|
|
/// <param name="cancellationToken">CancellationToken to use for operation.</param>
|
|
|
|
|
void CreateItems(IReadOnlyList<BaseItem> items, BaseItem parent, CancellationToken cancellationToken);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Updates the item.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="items">Items to update.</param>
|
|
|
|
|
/// <param name="parent">Parent of updated items.</param>
|
|
|
|
|
/// <param name="updateReason">Reason for update.</param>
|
|
|
|
|
/// <param name="cancellationToken">CancellationToken to use for operation.</param>
|
|
|
|
|
/// <returns>Returns a Task that can be awaited.</returns>
|
|
|
|
|
Task UpdateItemsAsync(IReadOnlyList<BaseItem> items, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@ -224,6 +251,7 @@ namespace MediaBrowser.Controller.Library
|
|
|
|
|
/// <param name="parent">The parent item.</param>
|
|
|
|
|
/// <param name="updateReason">The update reason.</param>
|
|
|
|
|
/// <param name="cancellationToken">The cancellation token.</param>
|
|
|
|
|
/// <returns>Returns a Task that can be awaited.</returns>
|
|
|
|
|
Task UpdateItemAsync(BaseItem item, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@ -233,23 +261,6 @@ namespace MediaBrowser.Controller.Library
|
|
|
|
|
/// <returns>BaseItem.</returns>
|
|
|
|
|
BaseItem RetrieveItem(Guid id);
|
|
|
|
|
|
|
|
|
|
bool IsScanRunning { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Occurs when [item added].
|
|
|
|
|
/// </summary>
|
|
|
|
|
event EventHandler<ItemChangeEventArgs> ItemAdded;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Occurs when [item updated].
|
|
|
|
|
/// </summary>
|
|
|
|
|
event EventHandler<ItemChangeEventArgs> ItemUpdated;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Occurs when [item removed].
|
|
|
|
|
/// </summary>
|
|
|
|
|
event EventHandler<ItemChangeEventArgs> ItemRemoved;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Finds the type of the collection.
|
|
|
|
|
/// </summary>
|
|
|
|
@ -294,16 +305,25 @@ namespace MediaBrowser.Controller.Library
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Deletes the item.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="item">Item to delete.</param>
|
|
|
|
|
/// <param name="options">Options to use for deletion.</param>
|
|
|
|
|
void DeleteItem(BaseItem item, DeleteOptions options);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Deletes the item.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="item">Item to delete.</param>
|
|
|
|
|
/// <param name="options">Options to use for deletion.</param>
|
|
|
|
|
/// <param name="notifyParentItem">Notify parent of deletion.</param>
|
|
|
|
|
void DeleteItem(BaseItem item, DeleteOptions options, bool notifyParentItem);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Deletes the item.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="item">Item to delete.</param>
|
|
|
|
|
/// <param name="options">Options to use for deletion.</param>
|
|
|
|
|
/// <param name="parent">Parent of item.</param>
|
|
|
|
|
/// <param name="notifyParentItem">Notify parent of deletion.</param>
|
|
|
|
|
void DeleteItem(BaseItem item, DeleteOptions options, BaseItem parent, bool notifyParentItem);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@ -314,6 +334,7 @@ namespace MediaBrowser.Controller.Library
|
|
|
|
|
/// <param name="parentId">The parent identifier.</param>
|
|
|
|
|
/// <param name="viewType">Type of the view.</param>
|
|
|
|
|
/// <param name="sortName">Name of the sort.</param>
|
|
|
|
|
/// <returns>The named view.</returns>
|
|
|
|
|
UserView GetNamedView(
|
|
|
|
|
User user,
|
|
|
|
|
string name,
|
|
|
|
@ -328,6 +349,7 @@ 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>
|
|
|
|
|
/// <returns>The named view.</returns>
|
|
|
|
|
UserView GetNamedView(
|
|
|
|
|
User user,
|
|
|
|
|
string name,
|
|
|
|
@ -340,6 +362,7 @@ 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>
|
|
|
|
|
/// <returns>The named view.</returns>
|
|
|
|
|
UserView GetNamedView(
|
|
|
|
|
string name,
|
|
|
|
|
string viewType,
|
|
|
|
@ -397,6 +420,9 @@ namespace MediaBrowser.Controller.Library
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Fills the missing episode numbers from path.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="episode">Episode to use.</param>
|
|
|
|
|
/// <param name="forceRefresh">Option to force refresh of episode numbers.</param>
|
|
|
|
|
/// <returns>True if successful.</returns>
|
|
|
|
|
bool FillMissingEpisodeNumbersFromPath(Episode episode, bool forceRefresh);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@ -539,6 +565,9 @@ namespace MediaBrowser.Controller.Library
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets the items.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="query">The query to use.</param>
|
|
|
|
|
/// <param name="parents">Items to use for query.</param>
|
|
|
|
|
/// <returns>List of items.</returns>
|
|
|
|
|
List<BaseItem> GetItemList(InternalItemsQuery query, List<BaseItem> parents);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|