aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server
diff options
context:
space:
mode:
authorcrobibero <cody@robibe.ro>2020-05-22 10:48:01 -0600
committercrobibero <cody@robibe.ro>2020-05-22 10:48:01 -0600
commit341b947cdecdfc791c1bc3e72da1e68cd3754c3a (patch)
tree0dde9d707204d306cb8746873ed02a23b9dfdd9d /Jellyfin.Server
parent2f2bceb1104d8ea669ca21fc40200247aca956ed (diff)
Move int64 converter to JsonDefaults location
Diffstat (limited to 'Jellyfin.Server')
-rw-r--r--Jellyfin.Server/Converters/LongToStringConverter.cs56
-rw-r--r--Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs2
2 files changed, 0 insertions, 58 deletions
diff --git a/Jellyfin.Server/Converters/LongToStringConverter.cs b/Jellyfin.Server/Converters/LongToStringConverter.cs
deleted file mode 100644
index ad66b7b0c3..0000000000
--- a/Jellyfin.Server/Converters/LongToStringConverter.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System;
-using System.Buffers;
-using System.Buffers.Text;
-using System.Globalization;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace Jellyfin.Server.Converters
-{
- /// <summary>
- /// Long to String JSON converter.
- /// Javascript does not support 64-bit integers.
- /// </summary>
- public class LongToStringConverter : JsonConverter<long>
- {
- /// <summary>
- /// Read JSON string as Long.
- /// </summary>
- /// <param name="reader"><see cref="Utf8JsonReader"/>.</param>
- /// <param name="type">Type.</param>
- /// <param name="options">Options.</param>
- /// <returns>Parsed value.</returns>
- public override long Read(ref Utf8JsonReader reader, Type type, JsonSerializerOptions options)
- {
- if (reader.TokenType == JsonTokenType.String)
- {
- // try to parse number directly from bytes
- ReadOnlySpan<byte> span = reader.HasValueSequence ? reader.ValueSequence.ToArray() : reader.ValueSpan;
- if (Utf8Parser.TryParse(span, out long number, out int bytesConsumed) && span.Length == bytesConsumed)
- {
- return number;
- }
-
- // try to parse from a string if the above failed, this covers cases with other escaped/UTF characters
- if (long.TryParse(reader.GetString(), out number))
- {
- return number;
- }
- }
-
- // fallback to default handling
- return reader.GetInt64();
- }
-
- /// <summary>
- /// Write long to JSON string.
- /// </summary>
- /// <param name="writer"><see cref="Utf8JsonWriter"/>.</param>
- /// <param name="value">Value to write.</param>
- /// <param name="options">Options.</param>
- public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options)
- {
- writer.WriteStringValue(value.ToString(NumberFormatInfo.InvariantInfo));
- }
- }
-}
diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs
index afd42ac5ac..71ef9a69a2 100644
--- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs
+++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs
@@ -4,7 +4,6 @@ using Jellyfin.Api.Auth.FirstTimeSetupOrElevatedPolicy;
using Jellyfin.Api.Auth.RequiresElevationPolicy;
using Jellyfin.Api.Constants;
using Jellyfin.Api.Controllers;
-using Jellyfin.Server.Converters;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.DependencyInjection;
@@ -76,7 +75,6 @@ namespace Jellyfin.Server.Extensions
{
// Setting the naming policy to null leaves the property names as-is when serializing objects to JSON.
options.JsonSerializerOptions.PropertyNamingPolicy = null;
- options.JsonSerializerOptions.Converters.Add(new LongToStringConverter());
})
.AddControllersAsServices();
}