diff options
| -rw-r--r-- | MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableInt32Converter.cs (renamed from MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStructConverter.cs) | 21 | ||||
| -rw-r--r-- | MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStringConverter.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Plugins/Omdb/OmdbItemProvider.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs | 2 | ||||
| -rw-r--r-- | tests/Jellyfin.Common.Tests/Json/JsonOmdbConverterTests.cs | 2 |
5 files changed, 17 insertions, 12 deletions
diff --git a/MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStructConverter.cs b/MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableInt32Converter.cs index 062c49737..cb3d83f58 100644 --- a/MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStructConverter.cs +++ b/MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableInt32Converter.cs @@ -8,12 +8,10 @@ namespace MediaBrowser.Common.Json.Converters /// <summary> /// Converts a string <c>N/A</c> to <c>string.Empty</c>. /// </summary> - /// <typeparam name="T">The resulting type.</typeparam> - public class JsonOmdbNotAvailableStructConverter<T> : JsonConverter<T?> - where T : struct + public class JsonOmdbNotAvailableInt32Converter : JsonConverter<int?> { /// <inheritdoc /> - public override T? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public override int? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { if (reader.TokenType == JsonTokenType.String) { @@ -24,16 +22,23 @@ namespace MediaBrowser.Common.Json.Converters } var converter = TypeDescriptor.GetConverter(typeToConvert); - return (T?)converter.ConvertFromString(str); + return (int?)converter.ConvertFromString(str); } - return JsonSerializer.Deserialize<T>(ref reader, options); + return JsonSerializer.Deserialize<int?>(ref reader, options); } /// <inheritdoc /> - public override void Write(Utf8JsonWriter writer, T? value, JsonSerializerOptions options) + public override void Write(Utf8JsonWriter writer, int? value, JsonSerializerOptions options) { - JsonSerializer.Serialize(value, options); + if (value.HasValue) + { + writer.WriteNumberValue(value.Value); + } + else + { + writer.WriteNullValue(); + } } } } diff --git a/MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStringConverter.cs b/MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStringConverter.cs index 4fec2ea3f..6a8790374 100644 --- a/MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStringConverter.cs +++ b/MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStringConverter.cs @@ -29,7 +29,7 @@ namespace MediaBrowser.Common.Json.Converters /// <inheritdoc /> public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options) { - JsonSerializer.Serialize(value, options); + writer.WriteStringValue(value); } } } diff --git a/MediaBrowser.Providers/Plugins/Omdb/OmdbItemProvider.cs b/MediaBrowser.Providers/Plugins/Omdb/OmdbItemProvider.cs index 71d551063..97fcbfb6f 100644 --- a/MediaBrowser.Providers/Plugins/Omdb/OmdbItemProvider.cs +++ b/MediaBrowser.Providers/Plugins/Omdb/OmdbItemProvider.cs @@ -50,7 +50,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb _jsonOptions = new JsonSerializerOptions(JsonDefaults.GetOptions()); _jsonOptions.Converters.Add(new JsonOmdbNotAvailableStringConverter()); - _jsonOptions.Converters.Add(new JsonOmdbNotAvailableStructConverter<int>()); + _jsonOptions.Converters.Add(new JsonOmdbNotAvailableInt32Converter()); } public string Name => "The Open Movie Database"; diff --git a/MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs b/MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs index a759f5408..3da999ad0 100644 --- a/MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs +++ b/MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs @@ -41,7 +41,7 @@ namespace MediaBrowser.Providers.Plugins.Omdb _jsonOptions = new JsonSerializerOptions(JsonDefaults.GetOptions()); _jsonOptions.Converters.Add(new JsonOmdbNotAvailableStringConverter()); - _jsonOptions.Converters.Add(new JsonOmdbNotAvailableStructConverter<int>()); + _jsonOptions.Converters.Add(new JsonOmdbNotAvailableInt32Converter()); } public async Task Fetch<T>(MetadataResult<T> itemResult, string imdbId, string language, string country, CancellationToken cancellationToken) diff --git a/tests/Jellyfin.Common.Tests/Json/JsonOmdbConverterTests.cs b/tests/Jellyfin.Common.Tests/Json/JsonOmdbConverterTests.cs index 6f85fe092..03226cf31 100644 --- a/tests/Jellyfin.Common.Tests/Json/JsonOmdbConverterTests.cs +++ b/tests/Jellyfin.Common.Tests/Json/JsonOmdbConverterTests.cs @@ -14,7 +14,7 @@ namespace Jellyfin.Common.Tests.Json { _options = new JsonSerializerOptions(); _options.Converters.Add(new JsonOmdbNotAvailableStringConverter()); - _options.Converters.Add(new JsonOmdbNotAvailableStructConverter<int>()); + _options.Converters.Add(new JsonOmdbNotAvailableInt32Converter()); _options.NumberHandling = JsonNumberHandling.AllowReadingFromString; } |
