2
0
Эх сурвалжийг харах

Use UTF8 encoding and async correctly

David 4 жил өмнө
parent
commit
3dec1fd6b2

+ 2 - 1
Emby.Server.Implementations/ApplicationHost.cs

@@ -10,6 +10,7 @@ using System.Net;
 using System.Reflection;
 using System.Runtime.InteropServices;
 using System.Security.Cryptography.X509Certificates;
+using System.Text;
 using System.Text.Json;
 using System.Threading;
 using System.Threading.Tasks;
@@ -1047,7 +1048,7 @@ namespace Emby.Server.Implementations
                     var metafile = Path.Combine(dir, "meta.json");
                     if (File.Exists(metafile))
                     {
-                        var jsonString = File.ReadAllText(metafile);
+                        var jsonString = File.ReadAllText(metafile, Encoding.UTF8);
                         var manifest = JsonSerializer.Deserialize<PluginManifest>(jsonString, _jsonOptions);
 
                         if (!Version.TryParse(manifest.TargetAbi, out var targetAbi))

+ 4 - 3
Emby.Server.Implementations/Channels/ChannelManager.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
 using System.Linq;
+using System.Text;
 using System.Text.Json;
 using System.Threading;
 using System.Threading.Tasks;
@@ -341,7 +342,7 @@ namespace Emby.Server.Implementations.Channels
 
             try
             {
-                var jsonString = File.ReadAllText(path);
+                var jsonString = File.ReadAllText(path, Encoding.UTF8);
                 return JsonSerializer.Deserialize<List<MediaSourceInfo>>(jsonString, _jsonOptions)
                     ?? new List<MediaSourceInfo>();
             }
@@ -1180,11 +1181,11 @@ namespace Emby.Server.Implementations.Channels
             {
                 if (enableMediaProbe && !info.IsLiveStream && item.HasPathProtocol)
                 {
-                    await SaveMediaSources(item, new List<MediaSourceInfo>());
+                    await SaveMediaSources(item, new List<MediaSourceInfo>()).ConfigureAwait(false);
                 }
                 else
                 {
-                    await SaveMediaSources(item, info.MediaSources);
+                    await SaveMediaSources(item, info.MediaSources).ConfigureAwait(false);
                 }
             }
 

+ 5 - 3
Emby.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs

@@ -4,7 +4,9 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
+using System.Text;
 using System.Text.Json;
+using System.Threading.Tasks;
 using MediaBrowser.Common.Json;
 using Microsoft.Extensions.Logging;
 
@@ -45,7 +47,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
 
                 try
                 {
-                    var jsonString = File.ReadAllText(_dataPath);
+                    var jsonString = File.ReadAllText(_dataPath, Encoding.UTF8);
                     _items = JsonSerializer.Deserialize<T[]>(jsonString, _jsonOptions);
                     return;
                 }
@@ -61,8 +63,8 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
         private void SaveList()
         {
             Directory.CreateDirectory(Path.GetDirectoryName(_dataPath));
-            using FileStream stream = File.OpenWrite(_dataPath);
-            JsonSerializer.SerializeAsync(stream, _items, _jsonOptions);
+            var jsonString = JsonSerializer.Serialize(_items, _jsonOptions);
+            File.WriteAllText(_dataPath, jsonString);
         }
 
         public IReadOnlyList<T> GetAll()

+ 4 - 3
Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs

@@ -4,6 +4,7 @@ using System;
 using System.Globalization;
 using System.IO;
 using System.Linq;
+using System.Text;
 using System.Text.Json;
 using System.Threading;
 using System.Threading.Tasks;
@@ -144,7 +145,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
                         {
                             try
                             {
-                                var jsonString = File.ReadAllText(path);
+                                var jsonString = File.ReadAllText(path, Encoding.UTF8);
                                 if (!string.IsNullOrWhiteSpace(jsonString))
                                 {
                                     _lastExecutionResult = JsonSerializer.Deserialize<TaskResult>(jsonString, _jsonOptions);
@@ -540,7 +541,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
             TaskTriggerInfo[] list = null;
             if (File.Exists(path))
             {
-                var jsonString = File.ReadAllText(path);
+                var jsonString = File.ReadAllText(path, Encoding.UTF8);
                 list = JsonSerializer.Deserialize<TaskTriggerInfo[]>(jsonString, _jsonOptions);
             }
 
@@ -578,7 +579,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
             Directory.CreateDirectory(Path.GetDirectoryName(path));
 
             var json = JsonSerializer.Serialize(triggers, _jsonOptions);
-            File.WriteAllText(path, json);
+            File.WriteAllText(path, json, Encoding.UTF8);
         }
 
         /// <summary>