diff options
| author | SeaEagle1 <seaeagle1@users.sourceforge.net> | 2023-05-13 00:07:20 +0200 |
|---|---|---|
| committer | SeaEagle1 <seaeagle1@users.sourceforge.net> | 2023-05-13 00:28:07 +0200 |
| commit | 126047bfd6fbb3156c07905b8cf58506cde2c664 (patch) | |
| tree | 8381073b19ae9e1bc2a6a7901220bb6a6aba107f | |
| parent | 9352a243744d5d6805f80dc57792919f15ca5b90 (diff) | |
Use compile-time generated regex and remove loglevel check
| -rw-r--r-- | Emby.Dlna/PlayTo/DlnaHttpClient.cs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/Emby.Dlna/PlayTo/DlnaHttpClient.cs b/Emby.Dlna/PlayTo/DlnaHttpClient.cs index 9930f0ede..4e9903f26 100644 --- a/Emby.Dlna/PlayTo/DlnaHttpClient.cs +++ b/Emby.Dlna/PlayTo/DlnaHttpClient.cs @@ -17,7 +17,10 @@ using Microsoft.Extensions.Logging; namespace Emby.Dlna.PlayTo { - public class DlnaHttpClient + /// <summary> + /// Http client for Dlna PlayTo function. + /// </summary> + public partial class DlnaHttpClient { private readonly ILogger _logger; private readonly IHttpClientFactory _httpClientFactory; @@ -62,8 +65,7 @@ namespace Emby.Dlna.PlayTo var xmlString = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); // find and replace unescaped ampersands (&) - Regex regex = new Regex(@"(&(?![a-z]*;))"); - xmlString = regex.Replace(xmlString, @"&"); + xmlString = EscapeAmpersandRegex().Replace(xmlString, "&"); try { @@ -77,10 +79,7 @@ namespace Emby.Dlna.PlayTo catch (XmlException ex) { _logger.LogError(ex, "Failed to parse response"); - if (_logger.IsEnabled(LogLevel.Debug)) - { - _logger.LogDebug("Malformed response: {Content}\n", xmlString); - } + _logger.LogDebug("Malformed response: {Content}\n", xmlString); return null; } @@ -125,5 +124,12 @@ namespace Emby.Dlna.PlayTo // Have to await here instead of returning the Task directly, otherwise request would be disposed too soon return await SendRequestAsync(request, cancellationToken).ConfigureAwait(false); } + + /// <summary> + /// Compile-time generated regular expression for escaping ampersands. + /// </summary> + /// <returns>Compiled regular expression.</returns> + [GeneratedRegex("(&(?![a-z]*;))")] + private static partial Regex EscapeAmpersandRegex(); } } |
