Added NatoManga page provider logic. Fixed UI font configuration.

This commit is contained in:
2025-06-09 09:58:23 -04:00
parent c26ed11bfc
commit 000a20bb0f
7 changed files with 100 additions and 11 deletions

View File

@@ -0,0 +1,43 @@
using HtmlAgilityPack;
using MangaReader.Core.Http;
using MangaReader.Core.Pages;
namespace MangaReader.Core.Sources.NatoManga.Pages;
public class NatoMangaPageProvider(IHtmlLoader htmlLoader) : IMangaPageProvider
{
public string SourceId => "NatoManga";
public async Task<IReadOnlyList<string>> GetPageImageUrlsAsync(string chapterUrl, CancellationToken cancellationToken)
{
List<string> imageUrlCollection = [];
HtmlDocument document = await htmlLoader.GetHtmlDocumentAsync(chapterUrl, cancellationToken);
HtmlNodeCollection? htmlNodeCollection = GetImageNodeCollection(document);
if (htmlNodeCollection == null)
return imageUrlCollection;
foreach (var htmlNode in htmlNodeCollection)
{
string imageSourceUrl = htmlNode.GetAttributeValue<string>("src", string.Empty);
if (string.IsNullOrWhiteSpace(imageSourceUrl))
continue;
imageUrlCollection.Add(imageSourceUrl);
}
return imageUrlCollection;
}
private static HtmlNodeCollection? GetImageNodeCollection(HtmlDocument document)
{
HtmlNode? chapterReaderNode = document.DocumentNode.SelectSingleNode(".//div[@class='container-chapter-reader']");
if (chapterReaderNode == null)
return null;
return chapterReaderNode.SelectNodes(".//img");
}
}