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+)))?\\."
}