mirror of
				https://github.com/zoriya/Kyoo.git
				synced 2025-11-04 03:27:14 -05:00 
			
		
		
		
	Cleaning plugin requirements
This commit is contained in:
		
							parent
							
								
									3e8dbc84a8
								
							
						
					
					
						commit
						709e12191d
					
				@ -1,20 +0,0 @@
 | 
				
			|||||||
using System;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace Kyoo.Models.Exceptions
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	/// <summary>
 | 
					 | 
				
			||||||
	/// An exception raised when a plugin requires dependencies that can't be found with the current configuration.
 | 
					 | 
				
			||||||
	/// </summary>
 | 
					 | 
				
			||||||
	[Serializable]
 | 
					 | 
				
			||||||
	public class MissingDependencyException : Exception
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		/// <summary>
 | 
					 | 
				
			||||||
		/// Create a new <see cref="MissingDependencyException"/> with a custom message
 | 
					 | 
				
			||||||
		/// </summary>
 | 
					 | 
				
			||||||
		/// <param name="plugin">The name of the plugin that can't be loaded.</param>
 | 
					 | 
				
			||||||
		/// <param name="dependency">The name of the missing dependency.</param>
 | 
					 | 
				
			||||||
		public MissingDependencyException(string plugin, string dependency)
 | 
					 | 
				
			||||||
			: base($"No {dependency} are available in Kyoo but the plugin {plugin} requires it.")
 | 
					 | 
				
			||||||
		{}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -4,7 +4,6 @@ using System.IO;
 | 
				
			|||||||
using System.Linq;
 | 
					using System.Linq;
 | 
				
			||||||
using System.Reflection;
 | 
					using System.Reflection;
 | 
				
			||||||
using System.Runtime.Loader;
 | 
					using System.Runtime.Loader;
 | 
				
			||||||
using Kyoo.Models.Exceptions;
 | 
					 | 
				
			||||||
using Microsoft.AspNetCore.Builder;
 | 
					using Microsoft.AspNetCore.Builder;
 | 
				
			||||||
using Microsoft.Extensions.Configuration;
 | 
					using Microsoft.Extensions.Configuration;
 | 
				
			||||||
using Microsoft.Extensions.DependencyInjection;
 | 
					using Microsoft.Extensions.DependencyInjection;
 | 
				
			||||||
@ -106,8 +105,8 @@ namespace Kyoo.Controllers
 | 
				
			|||||||
				if (missing == null)
 | 
									if (missing == null)
 | 
				
			||||||
					return true;
 | 
										return true;
 | 
				
			||||||
				
 | 
									
 | 
				
			||||||
				Exception error = new MissingDependencyException(plugin.Name, missing.Name);
 | 
									_logger.LogCritical("No {Dependency} available in Kyoo but the plugin {Plugin} requires it", 
 | 
				
			||||||
				_logger.LogCritical(error, "A plugin's dependency could not be met");
 | 
										missing.Name, plugin.Name);
 | 
				
			||||||
				return false;
 | 
									return false;
 | 
				
			||||||
			}));
 | 
								}));
 | 
				
			||||||
			
 | 
								
 | 
				
			||||||
 | 
				
			|||||||
@ -48,7 +48,20 @@ namespace Kyoo
 | 
				
			|||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/// <inheritdoc />
 | 
							/// <inheritdoc />
 | 
				
			||||||
		public ICollection<Type> Requires => ArraySegment<Type>.Empty;
 | 
							public ICollection<Type> Requires => new []
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								typeof(ILibraryRepository),
 | 
				
			||||||
 | 
								typeof(ILibraryItemRepository),
 | 
				
			||||||
 | 
								typeof(ICollectionRepository),
 | 
				
			||||||
 | 
								typeof(IShowRepository),
 | 
				
			||||||
 | 
								typeof(ISeasonRepository),
 | 
				
			||||||
 | 
								typeof(IEpisodeRepository),
 | 
				
			||||||
 | 
								typeof(ITrackRepository),
 | 
				
			||||||
 | 
								typeof(IPeopleRepository),
 | 
				
			||||||
 | 
								typeof(IStudioRepository),
 | 
				
			||||||
 | 
								typeof(IGenreRepository),
 | 
				
			||||||
 | 
								typeof(IProviderRepository)
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/// <inheritdoc />
 | 
							/// <inheritdoc />
 | 
				
			||||||
        public void Configure(IServiceCollection services, ICollection<Type> availableTypes)
 | 
					        public void Configure(IServiceCollection services, ICollection<Type> availableTypes)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user