diff --git a/src/NzbDrone.Core/Indexers/Definitions/Anidex.cs b/src/NzbDrone.Core/Indexers/Definitions/Anidex.cs index 6e3f9fe98..874f87091 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Anidex.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Anidex.cs @@ -200,7 +200,7 @@ namespace NzbDrone.Core.Indexers.Definitions var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll("div#content table > tbody > tr"); foreach (var row in rows) diff --git a/src/NzbDrone.Core/Indexers/Definitions/Anidub.cs b/src/NzbDrone.Core/Indexers/Definitions/Anidub.cs index 5c6588c9d..010b37bc9 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Anidub.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Anidub.cs @@ -77,7 +77,7 @@ namespace NzbDrone.Core.Indexers.Definitions else { var parser = new HtmlParser(); - var document = await parser.ParseDocumentAsync(response.Content); + using var document = await parser.ParseDocumentAsync(response.Content); var errorMessage = document.QuerySelector("#content .berror .berror_c")?.TextContent.Trim(); throw new IndexerAuthException(errorMessage ?? "Unknown error message, please report."); @@ -433,7 +433,7 @@ namespace NzbDrone.Core.Indexers.Definitions { var torrentInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); foreach (var t in dom.QuerySelectorAll("#tabs .torrent_c > div")) { @@ -465,7 +465,7 @@ namespace NzbDrone.Core.Indexers.Definitions var torrentInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var links = dom.QuerySelectorAll(".searchitem > h3 > a[href], #dle-content > .story > .story_h > .lcol > h2 > a[href]"); foreach (var link in links) diff --git a/src/NzbDrone.Core/Indexers/Definitions/AnimeTorrents.cs b/src/NzbDrone.Core/Indexers/Definitions/AnimeTorrents.cs index 5a3c8fc3c..7ba07ab80 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/AnimeTorrents.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/AnimeTorrents.cs @@ -275,7 +275,7 @@ namespace NzbDrone.Core.Indexers.Definitions var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll("table tr"); foreach (var (row, index) in rows.Skip(1).Select((v, i) => (v, i))) diff --git a/src/NzbDrone.Core/Indexers/Definitions/Animedia.cs b/src/NzbDrone.Core/Indexers/Definitions/Animedia.cs index 5e29a2130..8d08c03b3 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Animedia.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Animedia.cs @@ -253,7 +253,7 @@ namespace NzbDrone.Core.Indexers.Definitions { var torrentInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); foreach (var t in dom.QuerySelectorAll("ul.media__tabs__nav > li > a")) { @@ -291,7 +291,7 @@ namespace NzbDrone.Core.Indexers.Definitions var torrentInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var links = dom.QuerySelectorAll("a.ads-list__item__title"); foreach (var link in links) diff --git a/src/NzbDrone.Core/Indexers/Definitions/Anthelion.cs b/src/NzbDrone.Core/Indexers/Definitions/Anthelion.cs index 10138d441..78465e54b 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Anthelion.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Anthelion.cs @@ -72,7 +72,7 @@ namespace NzbDrone.Core.Indexers.Definitions if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var errorMessage = dom.QuerySelector("form#loginform")?.TextContent.Trim(); throw new IndexerAuthException(errorMessage ?? "Unknown error message, please report."); @@ -206,7 +206,7 @@ namespace NzbDrone.Core.Indexers.Definitions var torrentInfos = new List(); var parser = new HtmlParser(); - var doc = parser.ParseDocument(indexerResponse.Content); + using var doc = parser.ParseDocument(indexerResponse.Content); var rows = doc.QuerySelectorAll("table.torrent_table > tbody > tr.torrent"); foreach (var row in rows) { diff --git a/src/NzbDrone.Core/Indexers/Definitions/AroLol.cs b/src/NzbDrone.Core/Indexers/Definitions/AroLol.cs index 25e204bc3..5c12cdfc6 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/AroLol.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/AroLol.cs @@ -37,7 +37,7 @@ public class AroLol : GazelleBase if (response.Content.Contains("loginform")) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var errorMessage = dom.QuerySelector("#loginform > .warning")?.TextContent.Trim(); throw new IndexerAuthException(errorMessage ?? "Unknown error message, please report."); diff --git a/src/NzbDrone.Core/Indexers/Definitions/AudioBookBay.cs b/src/NzbDrone.Core/Indexers/Definitions/AudioBookBay.cs index 8c72753de..ff4fb51ca 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/AudioBookBay.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/AudioBookBay.cs @@ -88,7 +88,7 @@ public class AudioBookBay : TorrentIndexerBase var response = await _httpClient.ExecuteProxiedAsync(request, Definition); var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var hash = dom.QuerySelector("td:contains(\"Info Hash:\") ~ td")?.TextContent.Trim(); if (hash == null) @@ -333,7 +333,7 @@ public class AudioBookBayParser : IParseIndexerResponse private static IHtmlDocument ParseHtmlDocument(string response) { var parser = new HtmlParser(); - var doc = parser.ParseDocument(response); + using var doc = parser.ParseDocument(response); var hidden = doc.QuerySelectorAll("div.post.re-ab"); foreach (var element in hidden) diff --git a/src/NzbDrone.Core/Indexers/Definitions/BB.cs b/src/NzbDrone.Core/Indexers/Definitions/BB.cs index 4a8bf08bb..d5fa934f0 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/BB.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/BB.cs @@ -72,7 +72,7 @@ namespace NzbDrone.Core.Indexers.Definitions if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var messageEl = dom.QuerySelectorAll("#loginform"); var messages = new List(); for (var i = 0; i < 13; i++) @@ -242,7 +242,7 @@ namespace NzbDrone.Core.Indexers.Definitions var torrentInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll("#torrent_table > tbody > tr.torrent"); foreach (var row in rows) diff --git a/src/NzbDrone.Core/Indexers/Definitions/BakaBT.cs b/src/NzbDrone.Core/Indexers/Definitions/BakaBT.cs index d8b4acd72..ecfe03140 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/BakaBT.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/BakaBT.cs @@ -55,7 +55,7 @@ namespace NzbDrone.Core.Indexers.Definitions var response = await _httpClient.ExecuteProxiedAsync(request, Definition); var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var downloadLink = dom.QuerySelector(".download_link")?.GetAttribute("href"); if (downloadLink.IsNullOrWhiteSpace()) @@ -82,7 +82,7 @@ namespace NzbDrone.Core.Indexers.Definitions var loginPage = await ExecuteAuth(new HttpRequest(loginUrl)); var parser = new HtmlParser(); - var dom = await parser.ParseDocumentAsync(loginPage.Content); + using var dom = await parser.ParseDocumentAsync(loginPage.Content); var loginKey = dom.QuerySelector("input[name=\"loginKey\"]"); if (loginKey != null) { @@ -102,7 +102,7 @@ namespace NzbDrone.Core.Indexers.Definitions if (CheckIfLoginNeeded(response)) { var htmlParser = new HtmlParser(); - var document = await htmlParser.ParseDocumentAsync(response.Content); + using var document = await htmlParser.ParseDocumentAsync(response.Content); var errorMessage = document.QuerySelector("#loginError, .error")?.TextContent.Trim(); throw new IndexerAuthException(errorMessage ?? "Unknown error message, please report."); @@ -247,7 +247,7 @@ namespace NzbDrone.Core.Indexers.Definitions var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll(".torrents tr.torrent, .torrents tr.torrent_alt"); var currentCategories = new List { NewznabStandardCategory.TVAnime }; diff --git a/src/NzbDrone.Core/Indexers/Definitions/BinSearch.cs b/src/NzbDrone.Core/Indexers/Definitions/BinSearch.cs index 93540972f..a261f2c71 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/BinSearch.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/BinSearch.cs @@ -161,7 +161,7 @@ namespace NzbDrone.Core.Indexers.Definitions var releaseInfos = new List(); var parser = new HtmlParser(); - var doc = parser.ParseDocument(indexerResponse.Content); + using var doc = parser.ParseDocument(indexerResponse.Content); var rows = doc.QuerySelectorAll("table.xMenuT > tbody > tr").Skip(1); foreach (var row in rows) { diff --git a/src/NzbDrone.Core/Indexers/Definitions/BitHDTV.cs b/src/NzbDrone.Core/Indexers/Definitions/BitHDTV.cs index f579be009..16a8bb5fb 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/BitHDTV.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/BitHDTV.cs @@ -185,7 +185,7 @@ namespace NzbDrone.Core.Indexers.Definitions var torrentInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); foreach (var child in dom.QuerySelectorAll("#needseed")) { child.Remove(); diff --git a/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannRequestGenerator.cs index f543d1b0a..72cccca19 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannRequestGenerator.cs @@ -598,7 +598,7 @@ namespace NzbDrone.Core.Indexers.Definitions.Cardigann } var resultParser = new HtmlParser(); - var resultDocument = resultParser.ParseDocument(loginResult.Content); + using var resultDocument = resultParser.ParseDocument(loginResult.Content); foreach (var error in errorBlocks) { var selection = resultDocument.QuerySelector(error.Selector); @@ -984,7 +984,7 @@ namespace NzbDrone.Core.Indexers.Definitions.Cardigann var selectorText = ApplyGoTemplateText(selector.Selector, variables); var parser = new HtmlParser(); - var resultDocument = parser.ParseDocument(response.Content); + using var resultDocument = parser.ParseDocument(response.Content); var element = resultDocument.QuerySelector(selectorText); if (element == null) @@ -1045,7 +1045,7 @@ namespace NzbDrone.Core.Indexers.Definitions.Cardigann if (_definition.Login.Test?.Selector != null && (response.Headers.ContentType?.Contains("text/html") ?? true)) { var parser = new HtmlParser(); - var document = parser.ParseDocument(response.Content); + using var document = parser.ParseDocument(response.Content); var selection = document.QuerySelectorAll(_definition.Login.Test.Selector); if (selection.Length == 0) diff --git a/src/NzbDrone.Core/Indexers/Definitions/FunFile.cs b/src/NzbDrone.Core/Indexers/Definitions/FunFile.cs index 2ae1886a4..cf6890fcd 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/FunFile.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/FunFile.cs @@ -70,7 +70,7 @@ public class FunFile : TorrentIndexerBase if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = await parser.ParseDocumentAsync(response.Content); var errorMessage = dom.QuerySelector("td.mf_content")?.TextContent.Trim(); throw new IndexerAuthException(errorMessage ?? "Unknown error message, please report."); @@ -276,7 +276,7 @@ public class FunFileParser : IParseIndexerResponse var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll("table.mainframe table[cellpadding=\"2\"] > tbody > tr:has(td.row3)"); foreach (var row in rows) diff --git a/src/NzbDrone.Core/Indexers/Definitions/HDSpace.cs b/src/NzbDrone.Core/Indexers/Definitions/HDSpace.cs index 2cd58c40f..e2ec566e1 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/HDSpace.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/HDSpace.cs @@ -73,7 +73,7 @@ namespace NzbDrone.Core.Indexers.Definitions if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var errorMessages = dom .QuerySelectorAll("table.lista td.lista span[style*=\"#FF0000\"], table.lista td.header:contains(\"login attempts\")") .Select(r => r.TextContent.Trim()) diff --git a/src/NzbDrone.Core/Indexers/Definitions/HDTorrents.cs b/src/NzbDrone.Core/Indexers/Definitions/HDTorrents.cs index 6819b2dcf..a16db1721 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/HDTorrents.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/HDTorrents.cs @@ -74,7 +74,7 @@ namespace NzbDrone.Core.Indexers.Definitions if (response.Content != null && !response.Content.ContainsIgnoreCase("If your browser doesn't have javascript enabled")) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = await parser.ParseDocumentAsync(response.Content); var errorMessage = dom.QuerySelector("div > font[color=\"#FF0000\"]")?.TextContent.Trim(); @@ -256,7 +256,7 @@ namespace NzbDrone.Core.Indexers.Definitions var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var userInfo = dom.QuerySelector("table.navus tr"); var userRank = userInfo?.Children[1].TextContent.Replace("Rank:", string.Empty).Trim(); diff --git a/src/NzbDrone.Core/Indexers/Definitions/IPTorrents.cs b/src/NzbDrone.Core/Indexers/Definitions/IPTorrents.cs index 1c85a711f..5036239f7 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/IPTorrents.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/IPTorrents.cs @@ -291,7 +291,7 @@ namespace NzbDrone.Core.Indexers.Definitions var torrentInfos = new List(); var parser = new HtmlParser(); - var doc = parser.ParseDocument(indexerResponse.Content); + using var doc = parser.ParseDocument(indexerResponse.Content); var rows = doc.QuerySelectorAll("table[id=\"torrents\"] > tbody > tr"); foreach (var row in rows) diff --git a/src/NzbDrone.Core/Indexers/Definitions/ImmortalSeed.cs b/src/NzbDrone.Core/Indexers/Definitions/ImmortalSeed.cs index b75160742..7803fff78 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/ImmortalSeed.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/ImmortalSeed.cs @@ -266,7 +266,7 @@ namespace NzbDrone.Core.Indexers.Definitions var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll("table#sortabletable > tbody > tr:has(a[href*=\"details.php?id=\"])"); foreach (var row in rows) diff --git a/src/NzbDrone.Core/Indexers/Definitions/Libble.cs b/src/NzbDrone.Core/Indexers/Definitions/Libble.cs index 457320616..74a9020a4 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Libble.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Libble.cs @@ -77,7 +77,7 @@ public class Libble : TorrentIndexerBase if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var errorMessage = dom.QuerySelector("#loginform > .warning")?.TextContent.Trim(); throw new IndexerAuthException(errorMessage ?? "Unknown error message, please report."); @@ -238,7 +238,7 @@ public class LibbleParser : IParseIndexerResponse var releaseInfos = new List(); var parser = new HtmlParser(); - var doc = parser.ParseDocument(indexerResponse.Content); + using var doc = parser.ParseDocument(indexerResponse.Content); var groups = doc.QuerySelectorAll("table#torrent_table > tbody > tr.group:has(strong > a[href*=\"torrents.php?id=\"])"); foreach (var group in groups) diff --git a/src/NzbDrone.Core/Indexers/Definitions/MoreThanTV.cs b/src/NzbDrone.Core/Indexers/Definitions/MoreThanTV.cs index f86fe2535..9b4d10fd5 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/MoreThanTV.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/MoreThanTV.cs @@ -177,7 +177,7 @@ public class MoreThanTVParser : IParseIndexerResponse try { var parser = new HtmlParser(); - var document = parser.ParseDocument(indexerResponse.Content); + using var document = parser.ParseDocument(indexerResponse.Content); var torrents = document.QuerySelectorAll("#torrent_table > tbody > tr.torrent"); var movies = new[] { "movie" }; var tv = new[] { "season", "episode" }; diff --git a/src/NzbDrone.Core/Indexers/Definitions/NorBits.cs b/src/NzbDrone.Core/Indexers/Definitions/NorBits.cs index 49f913fa7..ddfff26cf 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/NorBits.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/NorBits.cs @@ -263,7 +263,7 @@ public class NorBitsParser : IParseIndexerResponse var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll("#torrentTable > tbody > tr").Skip(1).ToCollection(); diff --git a/src/NzbDrone.Core/Indexers/Definitions/PirateTheNet.cs b/src/NzbDrone.Core/Indexers/Definitions/PirateTheNet.cs index e1f7a4ab2..a1e9d37bb 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/PirateTheNet.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/PirateTheNet.cs @@ -234,7 +234,7 @@ public class PirateTheNetParser : IParseIndexerResponse var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll("table.main > tbody > tr"); foreach (var row in rows.Skip(1)) diff --git a/src/NzbDrone.Core/Indexers/Definitions/PixelHD.cs b/src/NzbDrone.Core/Indexers/Definitions/PixelHD.cs index 29c315403..1c78174ca 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/PixelHD.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/PixelHD.cs @@ -171,7 +171,7 @@ public class PixelHDParser : IParseIndexerResponse var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var groups = dom.QuerySelectorAll("div.browsePoster"); foreach (var group in groups) diff --git a/src/NzbDrone.Core/Indexers/Definitions/PreToMe.cs b/src/NzbDrone.Core/Indexers/Definitions/PreToMe.cs index 3a533809f..9528e7b90 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/PreToMe.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/PreToMe.cs @@ -85,7 +85,7 @@ public class PreToMe : TorrentIndexerBase if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var errorMessage = dom.QuerySelector("table.body_table font[color~=\"red\"]")?.TextContent.Trim(); throw new IndexerAuthException(errorMessage ?? "Unknown error message, please report."); @@ -340,7 +340,7 @@ public class PreToMeParser : IParseIndexerResponse var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll("table > tbody > tr.browse"); foreach (var row in rows) diff --git a/src/NzbDrone.Core/Indexers/Definitions/RevolutionTT.cs b/src/NzbDrone.Core/Indexers/Definitions/RevolutionTT.cs index acc798305..f158ef6b8 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/RevolutionTT.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/RevolutionTT.cs @@ -249,7 +249,7 @@ namespace NzbDrone.Core.Indexers.Definitions var torrentInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll("#torrents-table > tbody > tr"); foreach (var row in rows.Skip(1)) diff --git a/src/NzbDrone.Core/Indexers/Definitions/RuTracker.cs b/src/NzbDrone.Core/Indexers/Definitions/RuTracker.cs index b8973adf1..648062479 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/RuTracker.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/RuTracker.cs @@ -63,7 +63,7 @@ namespace NzbDrone.Core.Indexers.Definitions var response = await _httpClient.ExecuteProxiedAsync(request, Definition); var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var magnetLink = dom.QuerySelector("table.attach a.magnet-link[href^=\"magnet:?\"]")?.GetAttribute("href"); if (magnetLink == null) @@ -104,7 +104,7 @@ namespace NzbDrone.Core.Indexers.Definitions if (!response.Content.Contains("id=\"logged-in-username\"")) { var parser = new HtmlParser(); - var document = await parser.ParseDocumentAsync(response.Content); + using var document = await parser.ParseDocumentAsync(response.Content); var errorMessage = document.QuerySelector("h4.warnColor1.tCenter.mrg_16, div.msg-main")?.TextContent.Trim(); throw new IndexerAuthException(errorMessage ?? "RuTracker Auth Failed"); @@ -1580,7 +1580,7 @@ namespace NzbDrone.Core.Indexers.Definitions var releaseInfos = new List(); var parser = new HtmlParser(); - var doc = parser.ParseDocument(indexerResponse.Content); + using var doc = parser.ParseDocument(indexerResponse.Content); var rows = doc.QuerySelectorAll("table#tor-tbl > tbody > tr"); foreach (var row in rows) diff --git a/src/NzbDrone.Core/Indexers/Definitions/SceneTime.cs b/src/NzbDrone.Core/Indexers/Definitions/SceneTime.cs index d11660fc4..9a0f430a0 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/SceneTime.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/SceneTime.cs @@ -225,7 +225,7 @@ namespace NzbDrone.Core.Indexers.Definitions var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var table = dom.QuerySelector("table.movehere"); if (table == null) diff --git a/src/NzbDrone.Core/Indexers/Definitions/Shazbat.cs b/src/NzbDrone.Core/Indexers/Definitions/Shazbat.cs index 158ffb6fb..61a5f0182 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Shazbat.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Shazbat.cs @@ -78,7 +78,7 @@ public class Shazbat : TorrentIndexerBase if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = await parser.ParseDocumentAsync(response.Content); var errorMessage = dom.QuerySelector("div#fail .modal-body")?.TextContent.Trim(); throw new IndexerAuthException(errorMessage ?? "Unknown error message, please report."); @@ -223,7 +223,7 @@ public class ShazbatParser : IParseIndexerResponse var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var hasGlobalFreeleech = dom.QuerySelector("span:contains(\"Freeleech until:\"):has(span.datetime)") != null; @@ -303,7 +303,7 @@ public class ShazbatParser : IParseIndexerResponse var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); if (!hasGlobalFreeleech) { diff --git a/src/NzbDrone.Core/Indexers/Definitions/SpeedCD.cs b/src/NzbDrone.Core/Indexers/Definitions/SpeedCD.cs index 24a01763b..5388f7831 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/SpeedCD.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/SpeedCD.cs @@ -96,7 +96,7 @@ public class SpeedCD : TorrentIndexerBase if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var errorMessage = dom.QuerySelector("h5")?.TextContent.Trim(); if (response.Content.Contains("Wrong Captcha!")) @@ -323,7 +323,7 @@ public class SpeedCDParser : IParseIndexerResponse var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll("div.boxContent > table > tbody > tr"); foreach (var row in rows) diff --git a/src/NzbDrone.Core/Indexers/Definitions/TVVault.cs b/src/NzbDrone.Core/Indexers/Definitions/TVVault.cs index d388cd6b7..4b75923a0 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/TVVault.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/TVVault.cs @@ -75,7 +75,7 @@ namespace NzbDrone.Core.Indexers.Definitions if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var errorMessage = dom.QuerySelector("form#loginform")?.TextContent.Trim(); throw new IndexerAuthException(errorMessage ?? "Unknown error message, please report."); @@ -224,7 +224,7 @@ namespace NzbDrone.Core.Indexers.Definitions var torrentInfos = new List(); var parser = new HtmlParser(); - var doc = parser.ParseDocument(indexerResponse.Content); + using var doc = parser.ParseDocument(indexerResponse.Content); // get params to build download link (user could be banned without those params) var rssFeedUri = new Uri(_settings.BaseUrl + doc.QuerySelector("link[href^=\"/feeds.php?feed=\"]") diff --git a/src/NzbDrone.Core/Indexers/Definitions/Toloka.cs b/src/NzbDrone.Core/Indexers/Definitions/Toloka.cs index c7960dbfd..2e4955699 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Toloka.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Toloka.cs @@ -74,7 +74,7 @@ namespace NzbDrone.Core.Indexers.Definitions if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = await parser.ParseDocumentAsync(response.Content); var errorMessage = dom.QuerySelector("table.forumline table span.gen")?.FirstChild?.TextContent; throw new IndexerAuthException(errorMessage ?? "Unknown error message, please report."); @@ -367,7 +367,7 @@ namespace NzbDrone.Core.Indexers.Definitions var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll("table.forumline > tbody > tr[class*=prow]"); foreach (var row in rows) diff --git a/src/NzbDrone.Core/Indexers/Definitions/TorrentBytes.cs b/src/NzbDrone.Core/Indexers/Definitions/TorrentBytes.cs index 45d920611..efda3329b 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/TorrentBytes.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/TorrentBytes.cs @@ -71,7 +71,7 @@ namespace NzbDrone.Core.Indexers.Definitions if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var errorMessage = dom.QuerySelector("td.embedded")?.TextContent.Trim(); throw new IndexerAuthException(errorMessage ?? "Unknown error message, please report."); @@ -245,7 +245,7 @@ namespace NzbDrone.Core.Indexers.Definitions var torrentInfos = new List(); var parser = new HtmlParser(); - var doc = parser.ParseDocument(indexerResponse.Content); + using var doc = parser.ParseDocument(indexerResponse.Content); var rows = doc.QuerySelectorAll("table > tbody:has(tr > td.colhead) > tr:not(:has(td.colhead))"); foreach (var row in rows) { diff --git a/src/NzbDrone.Core/Indexers/Definitions/Uniotaku.cs b/src/NzbDrone.Core/Indexers/Definitions/Uniotaku.cs index 0909f5ddb..9405e63c3 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Uniotaku.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Uniotaku.cs @@ -65,7 +65,7 @@ public class Uniotaku : TorrentIndexerBase if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = await parser.ParseDocumentAsync(response.Content); var errorMessage = dom.QuerySelector(".login-content span.text-red")?.TextContent.Trim(); throw new IndexerAuthException(errorMessage ?? "Unknown error message, please report."); @@ -92,7 +92,7 @@ public class Uniotaku : TorrentIndexerBase var response = await _httpClient.ExecuteProxiedAsync(request, Definition); var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = parser.ParseDocument(response.Content); var downloadLink = dom.QuerySelector("a[href^=\"download.php?id=\"]")?.GetAttribute("href")?.Trim(); if (downloadLink == null) @@ -250,9 +250,9 @@ public class UniotakuParser : IParseIndexerResponse var publishDate = DateTime.Now; foreach (var item in jsonContent.Value("data")) { - var detailsDom = parser.ParseDocument(item.SelectToken("[0]").Value()); - var categoryDom = parser.ParseDocument(item.SelectToken("[1]").Value()); - var groupDom = parser.ParseDocument(item.SelectToken("[7]").Value()); + using var detailsDom = parser.ParseDocument(item.SelectToken("[0]").Value()); + using var categoryDom = parser.ParseDocument(item.SelectToken("[1]").Value()); + using var groupDom = parser.ParseDocument(item.SelectToken("[7]").Value()); var qTitleLink = detailsDom.QuerySelector("a[href^=\"torrents-details.php?id=\"]"); var title = qTitleLink?.TextContent.Trim(); diff --git a/src/NzbDrone.Core/Indexers/Definitions/XSpeeds.cs b/src/NzbDrone.Core/Indexers/Definitions/XSpeeds.cs index 0c6e32d61..fabfd9533 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/XSpeeds.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/XSpeeds.cs @@ -72,7 +72,7 @@ public class XSpeeds : TorrentIndexerBase if (CheckIfLoginNeeded(response)) { var parser = new HtmlParser(); - var dom = parser.ParseDocument(response.Content); + using var dom = await parser.ParseDocumentAsync(response.Content); var errorMessage = dom.QuerySelector(".left_side table:nth-of-type(1) tr:nth-of-type(2)")?.TextContent.Trim().Replace("\n\t", " "); if (errorMessage.IsNullOrWhiteSpace()) { @@ -289,7 +289,7 @@ public class XSpeedsParser : IParseIndexerResponse var releaseInfos = new List(); var parser = new HtmlParser(); - var dom = parser.ParseDocument(indexerResponse.Content); + using var dom = parser.ParseDocument(indexerResponse.Content); var rows = dom.QuerySelectorAll("table#sortabletable > tbody > tr:has(a[href*=\"details.php?id=\"])"); foreach (var row in rows) diff --git a/src/NzbDrone.Core/Indexers/Definitions/ZonaQ.cs b/src/NzbDrone.Core/Indexers/Definitions/ZonaQ.cs index 799fc12fe..d3e1b3101 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/ZonaQ.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/ZonaQ.cs @@ -59,7 +59,7 @@ namespace NzbDrone.Core.Indexers.Definitions // The first page set the cookies and the session_id var loginPage = await ExecuteAuth(new HttpRequest(Login1Url)); var parser = new HtmlParser(); - var dom = parser.ParseDocument(loginPage.Content); + using var dom = parser.ParseDocument(loginPage.Content); var sessionId = dom.QuerySelector("input#session_id")?.GetAttribute("value"); if (string.IsNullOrWhiteSpace(sessionId)) { @@ -315,7 +315,7 @@ namespace NzbDrone.Core.Indexers.Definitions var torrentInfos = new List(); var parser = new HtmlParser(); - var doc = parser.ParseDocument(indexerResponse.Content); + using var doc = parser.ParseDocument(indexerResponse.Content); var rows = doc.QuerySelectorAll("table.torrent_list > tbody > tr");