diff --git a/Kyoo.Common/Kyoo.Common.csproj b/Kyoo.Common/Kyoo.Common.csproj index 5114f299..f286e422 100644 --- a/Kyoo.Common/Kyoo.Common.csproj +++ b/Kyoo.Common/Kyoo.Common.csproj @@ -11,7 +11,7 @@ SDG GPL-3.0-or-later true - 1.0.12 + 1.0.13 diff --git a/Kyoo/Controllers/PluginManager.cs b/Kyoo/Controllers/PluginManager.cs index 3db6de80..4ea5db81 100644 --- a/Kyoo/Controllers/PluginManager.cs +++ b/Kyoo/Controllers/PluginManager.cs @@ -87,7 +87,7 @@ namespace Kyoo.Controllers } catch (Exception ex) { - Console.Error.WriteLine($"Error loading the plugin at {path}.\nException: {ex.Message}"); + Console.Error.WriteLine($"Error loading the plugin at {path}.\nException: {ex.Message}\n\n"); return null; } }).Where(x => x != null).ToList(); diff --git a/Kyoo/Controllers/TaskManager.cs b/Kyoo/Controllers/TaskManager.cs index 43a04593..8ed3b70b 100644 --- a/Kyoo/Controllers/TaskManager.cs +++ b/Kyoo/Controllers/TaskManager.cs @@ -36,7 +36,14 @@ namespace Kyoo.Controllers { (ITask task, string arguments) = _queuedTasks.Dequeue(); _runningTask = task; - await task.Run(_serviceProvider, _taskToken.Token, arguments); + try + { + await task.Run(_serviceProvider, _taskToken.Token, arguments); + } + catch (Exception e) + { + Console.Error.WriteLine($"An unhandled exception occured while running the task {task.Name}.\nInner exception: {e.Message}\n\n"); + } } else { @@ -106,7 +113,8 @@ namespace Kyoo.Controllers foreach (ITask task in prerunTasks) task.Run(_serviceProvider, _taskToken.Token); foreach (IPlugin plugin in _pluginManager.GetAllPlugins()) - _tasks.AddRange(plugin.Tasks.Select(x => (x, DateTime.Now + GetTaskDelay(x.Slug)))); + if (plugin.Tasks != null) + _tasks.AddRange(plugin.Tasks.Select(x => (x, DateTime.Now + GetTaskDelay(x.Slug)))); } public IEnumerable GetAllTasks() diff --git a/Kyoo/appsettings.json b/Kyoo/appsettings.json index 73f5338a..b8e3412f 100644 --- a/Kyoo/appsettings.json +++ b/Kyoo/appsettings.json @@ -26,5 +26,5 @@ "profilePicturePath": "users/", "plugins": "plugins/", "defaultPermissions": "read,play", - "regex": "(\\/(?.*)\\/)?.*\\/(?.+?)(( S(?\\d+)E(?\\d+)| (?\\d+)))?\\.", + "regex": "(\\/(?.*)\\/)?.*\\/(?.+?)(( S(?\\d+)E(?\\d+)| (?\\d+)))?\\." }