mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-04-24 05:47:22 -04:00
Ensure the correct use of disposable parsed documents
This commit is contained in:
parent
93ec6cf89b
commit
19a196e2c7
34 changed files with 63 additions and 63 deletions
|
@ -200,7 +200,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
|||
var releaseInfos = new List<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -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<TorrentInfo>();
|
||||
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<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -275,7 +275,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
|||
var releaseInfos = new List<ReleaseInfo>();
|
||||
|
||||
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)))
|
||||
|
|
|
@ -253,7 +253,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
|||
{
|
||||
var torrentInfos = new List<TorrentInfo>();
|
||||
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<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -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<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -37,7 +37,7 @@ public class AroLol : GazelleBase<AroLolSettings>
|
|||
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.");
|
||||
|
|
|
@ -88,7 +88,7 @@ public class AudioBookBay : TorrentIndexerBase<NoAuthTorrentBaseSettings>
|
|||
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)
|
||||
|
|
|
@ -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<string>();
|
||||
for (var i = 0; i < 13; i++)
|
||||
|
@ -242,7 +242,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
|||
var torrentInfos = new List<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -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<ReleaseInfo>();
|
||||
|
||||
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<IndexerCategory> { NewznabStandardCategory.TVAnime };
|
||||
|
||||
|
|
|
@ -161,7 +161,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
|||
var releaseInfos = new List<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -185,7 +185,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
|||
var torrentInfos = new List<ReleaseInfo>();
|
||||
|
||||
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();
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -70,7 +70,7 @@ public class FunFile : TorrentIndexerBase<UserPassTorrentBaseSettings>
|
|||
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<TorrentInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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<ReleaseInfo>();
|
||||
|
||||
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();
|
||||
|
|
|
@ -291,7 +291,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
|||
var torrentInfos = new List<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -266,7 +266,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
|||
var releaseInfos = new List<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -77,7 +77,7 @@ public class Libble : TorrentIndexerBase<LibbleSettings>
|
|||
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<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -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" };
|
||||
|
|
|
@ -263,7 +263,7 @@ public class NorBitsParser : IParseIndexerResponse
|
|||
var releaseInfos = new List<ReleaseInfo>();
|
||||
|
||||
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();
|
||||
|
||||
|
|
|
@ -234,7 +234,7 @@ public class PirateTheNetParser : IParseIndexerResponse
|
|||
var releaseInfos = new List<ReleaseInfo>();
|
||||
|
||||
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))
|
||||
|
|
|
@ -171,7 +171,7 @@ public class PixelHDParser : IParseIndexerResponse
|
|||
var releaseInfos = new List<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -85,7 +85,7 @@ public class PreToMe : TorrentIndexerBase<PreToMeSettings>
|
|||
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<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -249,7 +249,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
|||
var torrentInfos = new List<TorrentInfo>();
|
||||
|
||||
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))
|
||||
|
|
|
@ -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<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -225,7 +225,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
|||
var releaseInfos = new List<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -78,7 +78,7 @@ public class Shazbat : TorrentIndexerBase<ShazbatSettings>
|
|||
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<ReleaseInfo>();
|
||||
|
||||
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<ReleaseInfo>();
|
||||
|
||||
var parser = new HtmlParser();
|
||||
var dom = parser.ParseDocument(indexerResponse.Content);
|
||||
using var dom = parser.ParseDocument(indexerResponse.Content);
|
||||
|
||||
if (!hasGlobalFreeleech)
|
||||
{
|
||||
|
|
|
@ -96,7 +96,7 @@ public class SpeedCD : TorrentIndexerBase<SpeedCDSettings>
|
|||
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<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -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<ReleaseInfo>();
|
||||
|
||||
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=\"]")
|
||||
|
|
|
@ -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<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -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<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -65,7 +65,7 @@ public class Uniotaku : TorrentIndexerBase<UniotakuSettings>
|
|||
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<UniotakuSettings>
|
|||
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<JArray>("data"))
|
||||
{
|
||||
var detailsDom = parser.ParseDocument(item.SelectToken("[0]").Value<string>());
|
||||
var categoryDom = parser.ParseDocument(item.SelectToken("[1]").Value<string>());
|
||||
var groupDom = parser.ParseDocument(item.SelectToken("[7]").Value<string>());
|
||||
using var detailsDom = parser.ParseDocument(item.SelectToken("[0]").Value<string>());
|
||||
using var categoryDom = parser.ParseDocument(item.SelectToken("[1]").Value<string>());
|
||||
using var groupDom = parser.ParseDocument(item.SelectToken("[7]").Value<string>());
|
||||
|
||||
var qTitleLink = detailsDom.QuerySelector("a[href^=\"torrents-details.php?id=\"]");
|
||||
var title = qTitleLink?.TextContent.Trim();
|
||||
|
|
|
@ -72,7 +72,7 @@ public class XSpeeds : TorrentIndexerBase<UserPassTorrentBaseSettings>
|
|||
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<ReleaseInfo>();
|
||||
|
||||
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)
|
||||
|
|
|
@ -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<ReleaseInfo>();
|
||||
|
||||
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");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue