From d8390d306c5d5a29ad15bf88ddf630204cee7925 Mon Sep 17 00:00:00 2001 From: Robert Date: Sat, 25 Mar 2023 15:00:28 +0100 Subject: [PATCH] Update built-in plugins by build date not by version --- src/Artemis.Core/Constants.cs | 2 +- src/Artemis.Core/Plugins/PluginInfo.cs | 4 ++-- .../Services/PluginManagementService.cs | 24 ++++--------------- .../Services/Updating/UpdateService.cs | 2 +- 4 files changed, 9 insertions(+), 23 deletions(-) diff --git a/src/Artemis.Core/Constants.cs b/src/Artemis.Core/Constants.cs index 252d3b85a..fd0300579 100644 --- a/src/Artemis.Core/Constants.cs +++ b/src/Artemis.Core/Constants.cs @@ -81,7 +81,7 @@ public static class Constants /// public static readonly PluginInfo CorePluginInfo = new() { - Guid = Guid.Parse("ffffffff-ffff-ffff-ffff-ffffffffffff"), Name = "Artemis Core", Version = new Version(2, 0) + Guid = Guid.Parse("ffffffff-ffff-ffff-ffff-ffffffffffff"), Name = "Artemis Core", Version = CurrentVersion }; /// diff --git a/src/Artemis.Core/Plugins/PluginInfo.cs b/src/Artemis.Core/Plugins/PluginInfo.cs index 43b8319c0..6421749f8 100644 --- a/src/Artemis.Core/Plugins/PluginInfo.cs +++ b/src/Artemis.Core/Plugins/PluginInfo.cs @@ -25,7 +25,7 @@ public class PluginInfo : CorePropertyChanged, IPrerequisitesSubject private Plugin _plugin = null!; private Uri? _repository; private bool _requiresAdmin; - private Version _version = null!; + private string _version = null!; private Uri? _website; internal PluginInfo() @@ -107,7 +107,7 @@ public class PluginInfo : CorePropertyChanged, IPrerequisitesSubject /// The version of the plugin /// [JsonProperty(Required = Required.Always)] - public Version Version + public string Version { get => _version; internal set => SetAndNotify(ref _version, value); diff --git a/src/Artemis.Core/Services/PluginManagementService.cs b/src/Artemis.Core/Services/PluginManagementService.cs index 92cb4d23b..06b9b6368 100644 --- a/src/Artemis.Core/Services/PluginManagementService.cs +++ b/src/Artemis.Core/Services/PluginManagementService.cs @@ -54,7 +54,7 @@ internal class PluginManagementService : IPluginManagementService // Remove the old directory if it exists if (Directory.Exists(pluginDirectory.FullName)) pluginDirectory.DeleteRecursively(); - + // Extract everything in the same archive directory to the unique plugin directory Utilities.CreateAccessibleDirectory(pluginDirectory.FullName); string metaDataDirectory = metaDataFileEntry.FullName.Replace(metaDataFileEntry.Name, ""); @@ -69,7 +69,7 @@ internal class PluginManagementService : IPluginManagementService zipArchiveEntry.ExtractToFile(target); } } - + if (createLockFile) File.Create(Path.Combine(pluginDirectory.FullName, "artemis.lock")).Close(); } @@ -137,26 +137,12 @@ internal class PluginManagementService : IPluginManagementService _logger.Debug("Copying missing built-in plugin {builtInPluginInfo}", builtInPluginInfo); CopyBuiltInPlugin(archive, preferred); } - else + else if (metaDataFileEntry.LastWriteTime > File.GetLastWriteTime(metadataFile)) { - PluginInfo pluginInfo; try { - // Compare versions, copy if the same when debugging - pluginInfo = CoreJson.DeserializeObject(File.ReadAllText(metadataFile))!; - } - catch (Exception e) - { - throw new ArtemisPluginException($"Failed read plugin metadata needed to install built-in plugin: {e.Message}", e); - } - - try - { - if (builtInPluginInfo.Version > pluginInfo.Version) - { - _logger.Debug("Copying updated built-in plugin from {pluginInfo} to {builtInPluginInfo}", pluginInfo, builtInPluginInfo); - CopyBuiltInPlugin(archive, preferred); - } + _logger.Debug("Copying updated built-in plugin {builtInPluginInfo}", builtInPluginInfo); + CopyBuiltInPlugin(archive, preferred); } catch (Exception e) { diff --git a/src/Artemis.UI/Services/Updating/UpdateService.cs b/src/Artemis.UI/Services/Updating/UpdateService.cs index e264d9431..a492ee96d 100644 --- a/src/Artemis.UI/Services/Updating/UpdateService.cs +++ b/src/Artemis.UI/Services/Updating/UpdateService.cs @@ -89,7 +89,7 @@ public class UpdateService : IUpdateService } } - // if (updated) + if (updated) _updateNotificationProvider.Value.ShowInstalledNotification(currentVersion); }