repo creation with initial code after cloning public repo

This commit is contained in:
2026-02-19 07:36:25 -05:00
commit 460884fea3
2860 changed files with 650825 additions and 0 deletions
@@ -0,0 +1,52 @@
#pragma warning disable CS1591
using System.Collections.Generic;
using Jellyfin.Data.Enums;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.IO;
namespace MediaBrowser.Controller.Resolvers
{
/// <summary>
/// Interface IItemResolver.
/// </summary>
public interface IItemResolver
{
/// <summary>
/// Gets the priority.
/// </summary>
/// <value>The priority.</value>
ResolverPriority Priority { get; }
/// <summary>
/// Resolves the path.
/// </summary>
/// <param name="args">The args.</param>
/// <returns>BaseItem.</returns>
BaseItem? ResolvePath(ItemResolveArgs args);
}
public interface IMultiItemResolver
{
MultiItemResolverResult ResolveMultiple(
Folder parent,
List<FileSystemMetadata> files,
CollectionType? collectionType,
IDirectoryService directoryService);
}
public class MultiItemResolverResult
{
public MultiItemResolverResult()
{
Items = new List<BaseItem>();
ExtraFiles = new List<FileSystemMetadata>();
}
public List<BaseItem> Items { get; set; }
public List<FileSystemMetadata> ExtraFiles { get; set; }
}
}
@@ -0,0 +1,19 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.IO;
namespace MediaBrowser.Controller.Resolvers
{
/// <summary>
/// Provides a base "rule" that anyone can use to have paths ignored by the resolver.
/// </summary>
public interface IResolverIgnoreRule
{
/// <summary>
/// Checks whether or not the file should be ignored.
/// </summary>
/// <param name="fileInfo">The file information.</param>
/// <param name="parent">The parent BaseItem.</param>
/// <returns>True if the file should be ignored.</returns>
bool ShouldIgnore(FileSystemMetadata fileInfo, BaseItem? parent);
}
}
@@ -0,0 +1,55 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
namespace MediaBrowser.Controller.Resolvers
{
/// <summary>
/// Class ItemResolver.
/// </summary>
/// <typeparam name="T">The type of BaseItem.</typeparam>
public abstract class ItemResolver<T> : IItemResolver
where T : BaseItem, new()
{
/// <summary>
/// Gets the priority.
/// </summary>
/// <value>The priority.</value>
public virtual ResolverPriority Priority => ResolverPriority.First;
/// <summary>
/// Resolves the specified args.
/// </summary>
/// <param name="args">The args.</param>
/// <returns>`0.</returns>
protected internal virtual T? Resolve(ItemResolveArgs args)
{
return null;
}
/// <summary>
/// Sets initial values on the newly resolved item.
/// </summary>
/// <param name="item">The item.</param>
/// <param name="args">The args.</param>
protected virtual void SetInitialItemValues(T item, ItemResolveArgs args)
{
}
/// <summary>
/// Resolves the path.
/// </summary>
/// <param name="args">The args.</param>
/// <returns>BaseItem.</returns>
public BaseItem? ResolvePath(ItemResolveArgs args)
{
var item = Resolve(args);
if (item is not null)
{
SetInitialItemValues(item, args);
}
return item;
}
}
}
@@ -0,0 +1,43 @@
namespace MediaBrowser.Controller.Resolvers
{
/// <summary>
/// Enum ResolverPriority.
/// </summary>
public enum ResolverPriority
{
/// <summary>
/// The highest priority. Used by plugins to bypass the default server resolvers.
/// </summary>
Plugin = 0,
/// <summary>
/// The first.
/// </summary>
First = 1,
/// <summary>
/// The second.
/// </summary>
Second = 2,
/// <summary>
/// The third.
/// </summary>
Third = 3,
/// <summary>
/// The Fourth.
/// </summary>
Fourth = 4,
/// <summary>
/// The Fifth.
/// </summary>
Fifth = 5,
/// <summary>
/// The last.
/// </summary>
Last = 6
}
}