From 81f655803d50ce75c270d06d409d1f1c190a6d79 Mon Sep 17 00:00:00 2001 From: Jim Cartlidge Date: Sun, 13 Sep 2020 16:30:04 +0100 Subject: Modified to work with manifests. --- .../Plugins/PlugInManifest.cs | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Emby.Server.Implementations/Plugins/PlugInManifest.cs (limited to 'Emby.Server.Implementations/Plugins') diff --git a/Emby.Server.Implementations/Plugins/PlugInManifest.cs b/Emby.Server.Implementations/Plugins/PlugInManifest.cs new file mode 100644 index 0000000000..e334d65e50 --- /dev/null +++ b/Emby.Server.Implementations/Plugins/PlugInManifest.cs @@ -0,0 +1,32 @@ +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +using System; + +namespace Emby.Server.Implementations.Plugins +{ + /// + /// Defines a Plugin manifest file. + /// + public class PlugInManifest + { + public string Category { get; set; } + + public string Changelog { get; set; } + + public string Description { get; set; } + + public Guid Guid { get; set; } + + public string Name { get; set; } + + public string Overview { get; set; } + + public string Owner { get; set; } + + public string TargetAbi { get; set; } + + public DateTime Timestamp { get; set; } + + public string Version { get; set; } +} +} -- cgit v1.2.3 From ea0eb9a6ffc8a667c9d9d455121d3f48d72fa360 Mon Sep 17 00:00:00 2001 From: BaronGreenback Date: Sun, 13 Sep 2020 17:42:40 +0100 Subject: Update PlugInManifest.cs Added comments. --- .../Plugins/PlugInManifest.cs | 34 ++++++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) (limited to 'Emby.Server.Implementations/Plugins') diff --git a/Emby.Server.Implementations/Plugins/PlugInManifest.cs b/Emby.Server.Implementations/Plugins/PlugInManifest.cs index e334d65e50..fa48d73c55 100644 --- a/Emby.Server.Implementations/Plugins/PlugInManifest.cs +++ b/Emby.Server.Implementations/Plugins/PlugInManifest.cs @@ -1,5 +1,3 @@ -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member - using System; namespace Emby.Server.Implementations.Plugins @@ -9,24 +7,54 @@ namespace Emby.Server.Implementations.Plugins /// public class PlugInManifest { + /// + /// Gets or sets the category of the plugin. + /// public string Category { get; set; } + /// + /// Gets or sets the changelog information. + /// public string Changelog { get; set; } + /// + /// Gets or sets the description of the plugin. + /// public string Description { get; set; } + /// + /// Gets or sets the Global Unique Identifier for the plugin. + /// public Guid Guid { get; set; } + /// + /// Gets or sets the Name of the plugin. + /// public string Name { get; set; } + /// + /// Gets or sets an overview of the plugin. + /// public string Overview { get; set; } + /// + /// Gets or sets the owner of the plugin. + /// public string Owner { get; set; } + /// + /// Gets or sets the compatibility version for the plugin. + /// public string TargetAbi { get; set; } + /// + /// Gets or sets the timestamp of the plugin. + /// public DateTime Timestamp { get; set; } + /// + /// Gets or sets the Version number of the plugin. + /// public string Version { get; set; } -} + } } -- cgit v1.2.3 From f73e744785fc8016e858c9f676ac0b04ee4f564b Mon Sep 17 00:00:00 2001 From: BaronGreenback Date: Mon, 14 Sep 2020 17:58:10 +0100 Subject: Update Emby.Server.Implementations/Plugins/PlugInManifest.cs Co-authored-by: dkanada --- Emby.Server.Implementations/Plugins/PlugInManifest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Emby.Server.Implementations/Plugins') diff --git a/Emby.Server.Implementations/Plugins/PlugInManifest.cs b/Emby.Server.Implementations/Plugins/PlugInManifest.cs index fa48d73c55..b874676d84 100644 --- a/Emby.Server.Implementations/Plugins/PlugInManifest.cs +++ b/Emby.Server.Implementations/Plugins/PlugInManifest.cs @@ -5,7 +5,7 @@ namespace Emby.Server.Implementations.Plugins /// /// Defines a Plugin manifest file. /// - public class PlugInManifest + public class PluginManifest { /// /// Gets or sets the category of the plugin. -- cgit v1.2.3 From d27d2a8990afb80ba137688121f85b831599d45a Mon Sep 17 00:00:00 2001 From: Jim Cartlidge Date: Mon, 14 Sep 2020 18:23:50 +0100 Subject: Renamed file. --- Emby.Server.Implementations/ApplicationHost.cs | 35 ++++++++++++++-------- .../Plugins/PlugInManifest.cs | 20 ++++++------- 2 files changed, 33 insertions(+), 22 deletions(-) (limited to 'Emby.Server.Implementations/Plugins') diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index 878ea30fc7..d1e28cce5c 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -1051,27 +1051,38 @@ namespace Emby.Server.Implementations var dllList = new List(); var versions = new List<(Version PluginVersion, string Name, string Path)>(); var directories = Directory.EnumerateDirectories(path, "*.*", SearchOption.TopDirectoryOnly); + string metafile; foreach (var dir in directories) { try { - var manifest = _jsonSerializer.DeserializeFromFile(Path.Combine(dir, "meta.json")); - - if (!Version.TryParse(manifest.TargetAbi, out var targetAbi)) + metafile = Path.Combine(dir, "meta.json"); + if (File.Exists(metafile)) { - targetAbi = new Version(0, 0, 0, 1); - } + var manifest = _jsonSerializer.DeserializeFromFile(metafile); - if (!Version.TryParse(manifest.Version, out var version)) - { - version = new Version(0, 0, 0, 1); - } + if (!Version.TryParse(manifest.TargetAbi, out var targetAbi)) + { + targetAbi = new Version(0, 0, 0, 1); + } - if (targetAbi >= ApplicationVersion) + if (!Version.TryParse(manifest.Version, out var version)) + { + version = new Version(0, 0, 0, 1); + } + + if (ApplicationVersion <= targetAbi) + { + // Only load Plugins if the plugin is built for this version or below. + versions.Add((version, manifest.Name, dir)); + } + } + else { - // Only load Plugins for this version or below. - versions.Add((version, manifest.Name, dir)); + metafile = dir.Split(new char[] { Path.DirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries).Last(); + // Add it under the path name and version 0.0.0.1. + versions.Add((new Version("0.0.0.1"), metafile, dir)); } } catch diff --git a/Emby.Server.Implementations/Plugins/PlugInManifest.cs b/Emby.Server.Implementations/Plugins/PlugInManifest.cs index b874676d84..33762791bc 100644 --- a/Emby.Server.Implementations/Plugins/PlugInManifest.cs +++ b/Emby.Server.Implementations/Plugins/PlugInManifest.cs @@ -9,52 +9,52 @@ namespace Emby.Server.Implementations.Plugins { /// /// Gets or sets the category of the plugin. - /// + /// public string Category { get; set; } /// /// Gets or sets the changelog information. - /// + /// public string Changelog { get; set; } /// /// Gets or sets the description of the plugin. - /// + /// public string Description { get; set; } /// /// Gets or sets the Global Unique Identifier for the plugin. - /// + /// public Guid Guid { get; set; } /// /// Gets or sets the Name of the plugin. - /// + /// public string Name { get; set; } /// /// Gets or sets an overview of the plugin. - /// + /// public string Overview { get; set; } /// /// Gets or sets the owner of the plugin. - /// + /// public string Owner { get; set; } /// /// Gets or sets the compatibility version for the plugin. - /// + /// public string TargetAbi { get; set; } /// /// Gets or sets the timestamp of the plugin. - /// + /// public DateTime Timestamp { get; set; } /// /// Gets or sets the Version number of the plugin. - /// + /// public string Version { get; set; } } } -- cgit v1.2.3 From ad00b93be54115674750b1b89421f9e5ea1807cb Mon Sep 17 00:00:00 2001 From: BaronGreenback Date: Wed, 16 Sep 2020 14:14:10 +0100 Subject: Rename PlugInManifest.cs to PluginManifest.cs --- .../Plugins/PlugInManifest.cs | 60 ---------------------- .../Plugins/PluginManifest.cs | 60 ++++++++++++++++++++++ 2 files changed, 60 insertions(+), 60 deletions(-) delete mode 100644 Emby.Server.Implementations/Plugins/PlugInManifest.cs create mode 100644 Emby.Server.Implementations/Plugins/PluginManifest.cs (limited to 'Emby.Server.Implementations/Plugins') diff --git a/Emby.Server.Implementations/Plugins/PlugInManifest.cs b/Emby.Server.Implementations/Plugins/PlugInManifest.cs deleted file mode 100644 index 33762791bc..0000000000 --- a/Emby.Server.Implementations/Plugins/PlugInManifest.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; - -namespace Emby.Server.Implementations.Plugins -{ - /// - /// Defines a Plugin manifest file. - /// - public class PluginManifest - { - /// - /// Gets or sets the category of the plugin. - /// - public string Category { get; set; } - - /// - /// Gets or sets the changelog information. - /// - public string Changelog { get; set; } - - /// - /// Gets or sets the description of the plugin. - /// - public string Description { get; set; } - - /// - /// Gets or sets the Global Unique Identifier for the plugin. - /// - public Guid Guid { get; set; } - - /// - /// Gets or sets the Name of the plugin. - /// - public string Name { get; set; } - - /// - /// Gets or sets an overview of the plugin. - /// - public string Overview { get; set; } - - /// - /// Gets or sets the owner of the plugin. - /// - public string Owner { get; set; } - - /// - /// Gets or sets the compatibility version for the plugin. - /// - public string TargetAbi { get; set; } - - /// - /// Gets or sets the timestamp of the plugin. - /// - public DateTime Timestamp { get; set; } - - /// - /// Gets or sets the Version number of the plugin. - /// - public string Version { get; set; } - } -} diff --git a/Emby.Server.Implementations/Plugins/PluginManifest.cs b/Emby.Server.Implementations/Plugins/PluginManifest.cs new file mode 100644 index 0000000000..33762791bc --- /dev/null +++ b/Emby.Server.Implementations/Plugins/PluginManifest.cs @@ -0,0 +1,60 @@ +using System; + +namespace Emby.Server.Implementations.Plugins +{ + /// + /// Defines a Plugin manifest file. + /// + public class PluginManifest + { + /// + /// Gets or sets the category of the plugin. + /// + public string Category { get; set; } + + /// + /// Gets or sets the changelog information. + /// + public string Changelog { get; set; } + + /// + /// Gets or sets the description of the plugin. + /// + public string Description { get; set; } + + /// + /// Gets or sets the Global Unique Identifier for the plugin. + /// + public Guid Guid { get; set; } + + /// + /// Gets or sets the Name of the plugin. + /// + public string Name { get; set; } + + /// + /// Gets or sets an overview of the plugin. + /// + public string Overview { get; set; } + + /// + /// Gets or sets the owner of the plugin. + /// + public string Owner { get; set; } + + /// + /// Gets or sets the compatibility version for the plugin. + /// + public string TargetAbi { get; set; } + + /// + /// Gets or sets the timestamp of the plugin. + /// + public DateTime Timestamp { get; set; } + + /// + /// Gets or sets the Version number of the plugin. + /// + public string Version { get; set; } + } +} -- cgit v1.2.3