From ed10eee9748eac8de0856ab682e06d055282a47b Mon Sep 17 00:00:00 2001 From: Archi Date: Mon, 21 Jun 2021 22:45:18 +0200 Subject: [PATCH] Improve ASF codebase --- ArchiSteamFarm/Compatibility/StaticHelpers.cs | 20 +++++++++++++++++++ ArchiSteamFarm/Steam/Bot.cs | 4 ---- ArchiSteamFarm/Web/WebBrowser.cs | 8 -------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/ArchiSteamFarm/Compatibility/StaticHelpers.cs b/ArchiSteamFarm/Compatibility/StaticHelpers.cs index a109baffb..6c4f7dd5b 100644 --- a/ArchiSteamFarm/Compatibility/StaticHelpers.cs +++ b/ArchiSteamFarm/Compatibility/StaticHelpers.cs @@ -120,6 +120,16 @@ namespace ArchiSteamFarm.Compatibility { return source.IndexOf(value.ToString(), comparisonType); } + public static async Task ReadAsync(this Stream stream, ReadOnlyMemory buffer) { + if (stream == null) { + throw new ArgumentNullException(nameof(stream)); + } + + byte[] byteArray = buffer.ToArray(); + + return await stream.ReadAsync(byteArray, 0, byteArray.Length).ConfigureAwait(false); + } + public static async Task ReceiveAsync(this WebSocket webSocket, byte[] buffer, CancellationToken cancellationToken) { if (webSocket == null) { throw new ArgumentNullException(nameof(webSocket)); @@ -182,6 +192,16 @@ namespace ArchiSteamFarm.Compatibility { } public static void TrimExcess(this Dictionary _) { } // no-op + + public static async Task WriteAsync(this Stream stream, ReadOnlyMemory buffer) { + if (stream == null) { + throw new ArgumentNullException(nameof(stream)); + } + + byte[] byteArray = buffer.ToArray(); + + await stream.WriteAsync(byteArray, 0, byteArray.Length).ConfigureAwait(false); + } #endif } } diff --git a/ArchiSteamFarm/Steam/Bot.cs b/ArchiSteamFarm/Steam/Bot.cs index 269ca4132..3900c13d0 100644 --- a/ArchiSteamFarm/Steam/Bot.cs +++ b/ArchiSteamFarm/Steam/Bot.cs @@ -2902,11 +2902,7 @@ namespace ArchiSteamFarm.Steam { await using (fileStream.ConfigureAwait(false)) { fileStream.Seek(callback.Offset, SeekOrigin.Begin); -#if NETFRAMEWORK - await fileStream.WriteAsync(callback.Data, 0, callback.BytesToWrite).ConfigureAwait(false); -#else await fileStream.WriteAsync(callback.Data.AsMemory(0, callback.BytesToWrite)).ConfigureAwait(false); -#endif fileSize = fileStream.Length; fileStream.Seek(0, SeekOrigin.Begin); diff --git a/ArchiSteamFarm/Web/WebBrowser.cs b/ArchiSteamFarm/Web/WebBrowser.cs index 5e64605c2..af3f9fa02 100644 --- a/ArchiSteamFarm/Web/WebBrowser.cs +++ b/ArchiSteamFarm/Web/WebBrowser.cs @@ -155,21 +155,13 @@ namespace ArchiSteamFarm.Web { byte[] buffer = new byte[8192]; // This is HttpClient's buffer, using more doesn't make sense while (response.Content.CanRead) { -#if NETFRAMEWORK - int read = await response.Content.ReadAsync(buffer, 0, buffer.Length).ConfigureAwait(false); -#else int read = await response.Content.ReadAsync(buffer.AsMemory(0, buffer.Length)).ConfigureAwait(false); -#endif if (read == 0) { break; } -#if NETFRAMEWORK - await ms.WriteAsync(buffer, 0, read).ConfigureAwait(false); -#else await ms.WriteAsync(buffer.AsMemory(0, read)).ConfigureAwait(false); -#endif if ((batchIncreaseSize == 0) || (batch >= 99)) { continue;