Fallback to default guid
This commit is contained in:
parent
3633996a53
commit
621e6d28cd
|
@ -51,8 +51,18 @@ namespace Emby.Server.Implementations.Plugins
|
||||||
_pluginsPath = pluginsPath;
|
_pluginsPath = pluginsPath;
|
||||||
_appVersion = appVersion ?? throw new ArgumentNullException(nameof(appVersion));
|
_appVersion = appVersion ?? throw new ArgumentNullException(nameof(appVersion));
|
||||||
_jsonOptions = JsonDefaults.GetOptions();
|
_jsonOptions = JsonDefaults.GetOptions();
|
||||||
_jsonOptions.Converters.Add(new JsonGuidDashConverter());
|
|
||||||
_jsonOptions.WriteIndented = true;
|
_jsonOptions.WriteIndented = true;
|
||||||
|
|
||||||
|
// We need to use the default GUID converter, so we need to remove any custom ones.
|
||||||
|
for (int a = _jsonOptions.Converters.Count - 1; a >= 0; a--)
|
||||||
|
{
|
||||||
|
if (_jsonOptions.Converters[a] is JsonGuidConverter convertor)
|
||||||
|
{
|
||||||
|
_jsonOptions.Converters.Remove(convertor);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_config = config;
|
_config = config;
|
||||||
_appHost = appHost;
|
_appHost = appHost;
|
||||||
_minimumVersion = new Version(0, 0, 0, 1);
|
_minimumVersion = new Version(0, 0, 0, 1);
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Globalization;
|
|
||||||
using System.Text.Json;
|
|
||||||
using System.Text.Json.Serialization;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Common.Json.Converters
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Converts a GUID object or value to/from JSON.
|
|
||||||
/// </summary>
|
|
||||||
public class JsonGuidDashConverter : JsonConverter<Guid>
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
public override Guid Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
|
||||||
{
|
|
||||||
var guidStr = reader.GetString();
|
|
||||||
return guidStr == null ? Guid.Empty : new Guid(guidStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
public override void Write(Utf8JsonWriter writer, Guid value, JsonSerializerOptions options)
|
|
||||||
{
|
|
||||||
writer.WriteStringValue(value.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +1,7 @@
|
||||||
#nullable enable
|
#nullable enable
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
using MediaBrowser.Common.Json.Converters;
|
|
||||||
using MediaBrowser.Model.Plugins;
|
using MediaBrowser.Model.Plugins;
|
||||||
|
|
||||||
namespace MediaBrowser.Common.Plugins
|
namespace MediaBrowser.Common.Plugins
|
||||||
|
@ -11,54 +11,71 @@ namespace MediaBrowser.Common.Plugins
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class PluginManifest
|
public class PluginManifest
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="PluginManifest"/> class.
|
||||||
|
/// </summary>
|
||||||
|
public PluginManifest()
|
||||||
|
{
|
||||||
|
Category = string.Empty;
|
||||||
|
Changelog = string.Empty;
|
||||||
|
Description = string.Empty;
|
||||||
|
Status = PluginStatus.Active;
|
||||||
|
Id = Guid.Empty;
|
||||||
|
Name = string.Empty;
|
||||||
|
Owner = string.Empty;
|
||||||
|
Overview = string.Empty;
|
||||||
|
TargetAbi = string.Empty;
|
||||||
|
Version = string.Empty;
|
||||||
|
AutoUpdate = true;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the category of the plugin.
|
/// Gets or sets the category of the plugin.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonPropertyName("category")]
|
[JsonPropertyName("category")]
|
||||||
public string Category { get; set; } = string.Empty;
|
public string Category { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the changelog information.
|
/// Gets or sets the changelog information.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonPropertyName("changelog")]
|
[JsonPropertyName("changelog")]
|
||||||
public string Changelog { get; set; } = string.Empty;
|
public string Changelog { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the description of the plugin.
|
/// Gets or sets the description of the plugin.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonPropertyName("description")]
|
[JsonPropertyName("description")]
|
||||||
public string Description { get; set; } = string.Empty;
|
public string Description { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the Global Unique Identifier for the plugin.
|
/// Gets or sets the Global Unique Identifier for the plugin.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonPropertyName("guid")]
|
[JsonPropertyName("guid")]
|
||||||
[JsonConverter(typeof(JsonGuidDashConverter))]
|
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the Name of the plugin.
|
/// Gets or sets the Name of the plugin.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonPropertyName("name")]
|
[JsonPropertyName("name")]
|
||||||
public string Name { get; set; } = string.Empty;
|
public string Name { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets an overview of the plugin.
|
/// Gets or sets an overview of the plugin.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonPropertyName("overview")]
|
[JsonPropertyName("overview")]
|
||||||
public string Overview { get; set; } = string.Empty;
|
public string Overview { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the owner of the plugin.
|
/// Gets or sets the owner of the plugin.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonPropertyName("owner")]
|
[JsonPropertyName("owner")]
|
||||||
public string Owner { get; set; } = string.Empty;
|
public string Owner { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the compatibility version for the plugin.
|
/// Gets or sets the compatibility version for the plugin.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonPropertyName("targetAbi")]
|
[JsonPropertyName("targetAbi")]
|
||||||
public string TargetAbi { get; set; } = string.Empty;
|
public string TargetAbi { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the timestamp of the plugin.
|
/// Gets or sets the timestamp of the plugin.
|
||||||
|
@ -70,7 +87,7 @@ namespace MediaBrowser.Common.Plugins
|
||||||
/// Gets or sets the Version number of the plugin.
|
/// Gets or sets the Version number of the plugin.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonPropertyName("version")]
|
[JsonPropertyName("version")]
|
||||||
public string Version { get; set; } = string.Empty;
|
public string Version { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a value indicating the operational status of this plugin.
|
/// Gets or sets a value indicating the operational status of this plugin.
|
||||||
|
@ -82,9 +99,10 @@ namespace MediaBrowser.Common.Plugins
|
||||||
/// Gets or sets a value indicating whether this plugin should automatically update.
|
/// Gets or sets a value indicating whether this plugin should automatically update.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonPropertyName("autoUpdate")]
|
[JsonPropertyName("autoUpdate")]
|
||||||
public bool AutoUpdate { get; set; } = true;
|
public bool AutoUpdate { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Gets or sets the ImagePath
|
||||||
/// Gets or sets a value indicating whether this plugin has an image.
|
/// Gets or sets a value indicating whether this plugin has an image.
|
||||||
/// Image must be located in the local plugin folder.
|
/// Image must be located in the local plugin folder.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user