aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStructConverter.cs4
-rw-r--r--MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs32
2 files changed, 8 insertions, 28 deletions
diff --git a/MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStructConverter.cs b/MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStructConverter.cs
index b9e67ce2d..062c49737 100644
--- a/MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStructConverter.cs
+++ b/MediaBrowser.Common/Json/Converters/JsonOmdbNotAvailableStructConverter.cs
@@ -1,4 +1,5 @@
using System;
+using System.ComponentModel;
using System.Text.Json;
using System.Text.Json.Serialization;
@@ -21,6 +22,9 @@ namespace MediaBrowser.Common.Json.Converters
{
return null;
}
+
+ var converter = TypeDescriptor.GetConverter(typeToConvert);
+ return (T?)converter.ConvertFromString(str);
}
return JsonSerializer.Deserialize<T>(ref reader, options);
diff --git a/MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs b/MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs
index 2372e3183..a759f5408 100644
--- a/MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs
+++ b/MediaBrowser.Providers/Plugins/Omdb/OmdbProvider.cs
@@ -214,39 +214,15 @@ namespace MediaBrowser.Providers.Plugins.Omdb
internal async Task<RootObject> GetRootObject(string imdbId, CancellationToken cancellationToken)
{
var path = await EnsureItemInfo(imdbId, cancellationToken).ConfigureAwait(false);
-
- string resultString;
-
- using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
- {
- using (var reader = new StreamReader(stream, new UTF8Encoding(false)))
- {
- resultString = reader.ReadToEnd();
- resultString = resultString.Replace("\"N/A\"", "\"\"");
- }
- }
-
- var result = JsonSerializer.Deserialize<RootObject>(resultString, _jsonOptions);
- return result;
+ await using var stream = File.OpenRead(path);
+ return await JsonSerializer.DeserializeAsync<RootObject>(stream, _jsonOptions, cancellationToken);
}
internal async Task<SeasonRootObject> GetSeasonRootObject(string imdbId, int seasonId, CancellationToken cancellationToken)
{
var path = await EnsureSeasonInfo(imdbId, seasonId, cancellationToken).ConfigureAwait(false);
-
- string resultString;
-
- using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
- {
- using (var reader = new StreamReader(stream, new UTF8Encoding(false)))
- {
- resultString = reader.ReadToEnd();
- resultString = resultString.Replace("\"N/A\"", "\"\"");
- }
- }
-
- var result = JsonSerializer.Deserialize<SeasonRootObject>(resultString, _jsonOptions);
- return result;
+ await using var stream = File.OpenRead(path);
+ return await JsonSerializer.DeserializeAsync<SeasonRootObject>(stream, _jsonOptions, cancellationToken);
}
internal static bool IsValidSeries(Dictionary<string, string> seriesProviderIds)