Files
jsmr/JSMR.Infrastructure/Scanning/Models/DLSiteHtmlDocument.cs
Brian Bicknell 704a6fc433
All checks were successful
ci / build-test (push) Successful in 2m21s
ci / publish-image (push) Has been skipped
Updated scanner logic to handle thumb VueJS components. Removed uneeded DLSiteWork fields.
2026-02-28 22:20:24 -05:00

27 lines
1.1 KiB
C#

using HtmlAgilityPack;
namespace JSMR.Infrastructure.Scanning.Models;
public class DLSiteHtmlDocument(HtmlDocument document)
{
private readonly HtmlNodeCollection _workColumns = document.DocumentNode.SelectNodes("//dl[@class='work_1col']");
private readonly HtmlNodeCollection _workColumnRights = document.DocumentNode.SelectNodes("//td[contains(@class, 'work_1col_right')]");
private readonly HtmlNodeCollection _workThumbs = document.DocumentNode.SelectNodes("//div[@class='work_thumb']");
public HtmlNode PageTotalNode { get; } = document.DocumentNode.SelectNodes("//div[@class='page_total']/strong")[0];
public DLSiteHtmlNode[] GetDLSiteNodes()
{
List<DLSiteHtmlNode> nodes = [];
if (_workColumns.Count != _workColumnRights.Count || _workColumns.Count != _workThumbs.Count)
throw new Exception("Work column node counts do not match!");
for (int i = 0; i < _workColumns.Count; i++)
{
DLSiteHtmlNode node = new(_workColumns[i], _workColumnRights[i], _workThumbs[i]);
nodes.Add(node);
}
return [.. nodes];
}
}