mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-17 22:43:07 +03:00
Changes as recommended.
This commit is contained in:
@@ -96,9 +96,10 @@ namespace Emby.Server.Implementations
|
||||
|
||||
foreach (var file in plugin.DllFiles)
|
||||
{
|
||||
Assembly assembly;
|
||||
try
|
||||
{
|
||||
plugin.Assembly = Assembly.LoadFrom(file);
|
||||
assembly = Assembly.LoadFrom(file);
|
||||
}
|
||||
catch (FileLoadException ex)
|
||||
{
|
||||
@@ -107,8 +108,8 @@ namespace Emby.Server.Implementations
|
||||
continue;
|
||||
}
|
||||
|
||||
_logger.LogInformation("Loaded assembly {Assembly} from {Path}", plugin.Assembly.FullName, file);
|
||||
yield return plugin.Assembly;
|
||||
_logger.LogInformation("Loaded assembly {Assembly} from {Path}", assembly.FullName, file);
|
||||
yield return assembly;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -203,6 +204,7 @@ namespace Emby.Server.Implementations
|
||||
return true;
|
||||
}
|
||||
|
||||
_logger.LogWarning("Unable to delete {Path}, so marking as deleteOnStartup.", plugin.Path);
|
||||
// Unable to delete, so disable.
|
||||
return ChangePluginState(plugin, PluginStatus.DeleteOnStartup);
|
||||
}
|
||||
@@ -310,10 +312,7 @@ namespace Emby.Server.Implementations
|
||||
throw new ArgumentNullException(nameof(assembly));
|
||||
}
|
||||
|
||||
var plugin = _plugins.Where(
|
||||
p => assembly.Equals(p.Assembly)
|
||||
|| string.Equals(assembly.Location, assembly.Location, StringComparison.OrdinalIgnoreCase))
|
||||
.FirstOrDefault();
|
||||
var plugin = _plugins.Where(p => p.DllFiles.Contains(assembly.Location)).FirstOrDefault();
|
||||
if (plugin == null)
|
||||
{
|
||||
// A plugin's assembly didn't cause this issue, so ignore it.
|
||||
@@ -366,20 +365,7 @@ namespace Emby.Server.Implementations
|
||||
}
|
||||
|
||||
plugin.Manifest.Status = state;
|
||||
SaveManifest(plugin.Manifest, plugin.Path);
|
||||
try
|
||||
{
|
||||
var data = JsonSerializer.Serialize(plugin.Manifest, _jsonOptions);
|
||||
File.WriteAllText(Path.Combine(plugin.Path, "meta.json"), data, Encoding.UTF8);
|
||||
return true;
|
||||
}
|
||||
#pragma warning disable CA1031 // Do not catch general exception types
|
||||
catch (Exception e)
|
||||
#pragma warning restore CA1031 // Do not catch general exception types
|
||||
{
|
||||
_logger.LogWarning(e, "Unable to disable plugin {Path}", plugin.Path);
|
||||
return false;
|
||||
}
|
||||
return SaveManifest(plugin.Manifest, plugin.Path);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -509,15 +495,14 @@ namespace Emby.Server.Implementations
|
||||
// Attempt a cleanup of old folders.
|
||||
try
|
||||
{
|
||||
_logger.LogDebug("Deleting {Path}", plugin.Path);
|
||||
Directory.Delete(plugin.Path, true);
|
||||
_logger.LogDebug("Deleted {Path}", plugin.Path);
|
||||
_plugins.Remove(plugin);
|
||||
}
|
||||
#pragma warning disable CA1031 // Do not catch general exception types
|
||||
catch (Exception e)
|
||||
catch
|
||||
#pragma warning restore CA1031 // Do not catch general exception types
|
||||
{
|
||||
_logger.LogWarning(e, "Unable to delete {Path}", plugin.Path);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -670,21 +655,23 @@ namespace Emby.Server.Implementations
|
||||
_logger.LogWarning(e, "Unable to delete {Path}", path);
|
||||
}
|
||||
|
||||
versions.RemoveAt(x);
|
||||
}
|
||||
|
||||
if (!cleaned)
|
||||
{
|
||||
if (manifest == null)
|
||||
if (cleaned)
|
||||
{
|
||||
_logger.LogWarning("Unable to disable plugin {Path}", entry.Path);
|
||||
continue;
|
||||
versions.RemoveAt(x);
|
||||
}
|
||||
|
||||
if (manifest.Status != PluginStatus.DeleteOnStartup)
|
||||
else
|
||||
{
|
||||
manifest.Status = PluginStatus.DeleteOnStartup;
|
||||
SaveManifest(manifest, entry.Path);
|
||||
if (manifest == null)
|
||||
{
|
||||
_logger.LogWarning("Unable to disable plugin {Path}", entry.Path);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (manifest.Status != PluginStatus.DeleteOnStartup)
|
||||
{
|
||||
manifest.Status = PluginStatus.DeleteOnStartup;
|
||||
SaveManifest(manifest, entry.Path);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user